/*!
TEKRAM Lineup Share Styles (c) 2026 TEKRAM by Gravity Projex, All Rights Reserved. Proprietary software license.
Theme Name: TEKRAM Caloundra. (Client: Caloundra Markets). 
Theme URI: https://caloundra.tekram.com.au
Text Domain: TekramCaloundra
Last Updated: September 2026
Version: 1.2.0
Requires at least: 7.0
Tested up to: 7.1
Requires PHP: 8.4
Author: Gravity Projex
Author URI: https://gravityprojex.com.au 
Description: Enterprise-grade custom theme for Caloundra Markets — complete market stall management system including vendor applications, bookings, check-ins, payments, and public vendor directory. All functionality built into the theme. Developed by Gravity Projex.
Tags: custom theme, saas platform, ecommerce, accessibility-ready. Unauthorised copying, modification, distribution, or sale prohibited. https://tekram.com.au/terms-of-service
License: TEKRAM by Gravity Projex Proprietary License. Copyright (c) 2026 Gravity Projex. All Rights Reserved.
License URI: https://tekram.com.au/terms-of-service
Unauthorized copying, modification, distribution, or sale is strictly prohibited.
Contact: admin@gravityprojex.com | https://gravityprojex.com

PROPRIETARY SOFTWARE LICENSE - Copyright (c) 2026 Gravity Projex. All Rights Reserved. 
Business located in Australia. This software and associated documentation files (the "Software") are proprietary and confidential to Gravity Projex.
The source code contained or described herein and all documents related to the source code ("Material") and website framework are owned by Gravity Projex or its licensors and authorised representatives. Title to the Material remains with Gravity Projex or its licensors and authorised representatives. The Material contains trade secrets and proprietary and confidential information of Gravity Projex or its licensors and authorised representatives. 
RESTRICTIONS:
 1. You may NOT copy, modify, distribute, or sell copies of the Software or coding, scripts or framework
 2. You may NOT reverse engineer, decompile, or disassemble the Software or coding, scripts or framework
 3. You may NOT remove any proprietary notices or labels on the Software or coding, scripts or framework
 4. Unauthorized use may result in legal action and monetary damages
OWNERSHIP: The Software is owned by Gravity Projex and is protected by Australian copyright laws and international treaty provisions.
 The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Gravity Projex prior express written permission.
CONTACT: For licensing inquiries: admin@gravityprojex.com
Website: https://gravityprojex.com
No license under any patent, copyright, trade secret or other intellectual  property right is granted to or conferred upon you by disclosure or  delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be expressed and approved by Gravity Projex in writing.
VIOLATIONS:Unauthorized copying or use of this Software will result in:
 - Immediate cease and desist notice
 - Legal action under Australian Copyright Act 1968
 - Monetary damages and legal fees

"Share this lineup" bar, stallholders market header card only.
Loaded on the stallholders page only (Tekram_Lineup_Share::enqueue).
v1.1.0: white floating toolbar tinted per market. --tkl-deep is the market's
--mkt-grad-from darkened 40%: text 5.5:1+ and icons 5.1:1+ (hover 5.5:1+) on
all six palettes. Browsers without color-mix() fall back to neutral slate.
v1.2.0: "Story image" download chip (appears once the Story graphic exists).
*/

.tkl-share {
    /* Fallback for browsers without color-mix() */
    --tkl-deep: #1f2937;
    --tkl-chip: #f1f5f9;
    position: relative;
    z-index: 2;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.75rem;
    margin: 1.25rem 0 0;
    padding: 0.3125rem 0.3125rem 0.3125rem 1.125rem;
    border-radius: 999px;
    background: #ffffff;
    box-shadow: 0 10px 24px -12px rgba(15, 23, 42, 0.35);
    font-family: var(--font-sans, 'Inter', system-ui, sans-serif);
}

@supports (color: color-mix(in srgb, red, blue)) {
    .tkl-share {
        --tkl-deep: color-mix(in srgb, var(--mkt-grad-from, #1f2937) 60%, #000000);
        --tkl-chip: color-mix(in srgb, var(--mkt-grad-from, #1f2937) 10%, #ffffff);
    }
}

.tekram-market-header .tkl-share__label,
.tkl-share .tkl-share__label {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.2;
    color: var(--tkl-deep);
}

.tkl-share__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tkl-share__list > li {
    margin: 0;
    padding: 0;
}

.tkl-share [hidden] {
    display: none !important;
}

.tkl-share .tkl-share__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;   /* WCAG 2.2 SC 2.5.8 */
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--tkl-chip);
    color: var(--tkl-deep);
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.tkl-share .tkl-share__btn svg {
    display: block;
    width: 20px;
    height: 20px;
    pointer-events: none;
}

.tkl-share .tkl-share__btn:hover,
.tkl-share .tkl-share__btn[data-state="done"] {
    background: var(--tkl-deep);
    color: #ffffff;
}

.tkl-share .tkl-share__btn:active {
    transform: scale(0.94);
}

.tkl-share .tkl-share__btn:focus {
    outline: none;
}

/* Tray is white, so the focus ring uses the market's deep colour */
.tkl-share .tkl-share__btn:focus-visible {
    outline: 2px solid var(--tkl-deep);
    outline-offset: 2px;
}

.tkl-share .tkl-share__btn[aria-busy="true"] {
    cursor: progress;
    opacity: 0.7;
}

/* Copy link: swap the link icon for a tick while confirming.
   Specificity must beat ".tkl-share .tkl-share__btn svg" above. */
.tkl-share .tkl-share__btn .tkl-share__done,
.tkl-share .tkl-share__btn[data-state="done"] .tkl-share__icon {
    display: none;
}

.tkl-share .tkl-share__btn[data-state="done"] .tkl-share__done {
    display: block;
}

/* "Story image" download chip */
.tkl-share .tkl-share__story {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 44px;
    margin: 0;
    padding: 0 1.125rem 0 0.875rem;
    border-radius: 999px;
    background: var(--tkl-chip);
    color: var(--tkl-deep);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.tkl-share .tkl-share__story svg {
    display: block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    pointer-events: none;
}

.tkl-share .tkl-share__story:hover {
    background: var(--tkl-deep);
    color: #ffffff;
}

.tkl-share .tkl-share__story:active {
    transform: scale(0.97);
}

.tkl-share .tkl-share__story:focus {
    outline: none;
}

.tkl-share .tkl-share__story:focus-visible {
    outline: 2px solid var(--tkl-deep);
    outline-offset: 2px;
}

.tkl-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Toast (created by tekram-lineup-share.js) */
.tkl-toast {
    position: fixed;
    left: 50%;
    bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
    z-index: 100000;
    max-width: min(28rem, calc(100% - 2rem));
    padding: 0.75rem 1.125rem;
    border-radius: 0.75rem;
    background: #0f172a;
    color: #ffffff;
    font-family: var(--font-sans, 'Inter', system-ui, sans-serif);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.28);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 0.75rem);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
    pointer-events: none;
}

.tkl-toast.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s;
}

@media (max-width: 480px) {
    .tkl-share {
        display: flex;
        border-radius: 1rem;
        padding: 0.75rem 0.625rem 0.625rem;
    }
    .tkl-share .tkl-share__label {
        flex-basis: 100%;
        padding-left: 0.25rem;
    }
    .tkl-share__list {
        flex: 1 1 100%;
        justify-content: space-between;
    }
    .tkl-share .tkl-share__story {
        flex: 1 1 100%;
        margin-top: 0.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tkl-share .tkl-share__btn,
    .tkl-share .tkl-share__story,
    .tkl-toast,
    .tkl-toast.is-visible {
        transition: none;
    }
    .tkl-share .tkl-share__btn:active,
    .tkl-share .tkl-share__story:active {
        transform: none;
    }
}

@media (forced-colors: active) {
    .tkl-share,
    .tkl-share .tkl-share__btn,
    .tkl-share .tkl-share__story {
        border: 1px solid ButtonText;
    }
    .tkl-share .tkl-share__btn:focus-visible {
        outline-color: Highlight;
    }
    .tkl-toast {
        border: 1px solid CanvasText;
    }
}