/* =========================================================
   firmabox-ui — core.css
   Tokeny (jasny + ciemny motyw) i wspólny reset.
   Ładowany ZAWSZE jako pierwszy: konto, serwis, rezerwacje, ewidencja.
   ========================================================= */
:root {
    /* paleta bazowa (jak w www) */
    --black: #0b0b0c;
    --ink: #16181c;
    --g-700: #3d4148;
    --g-500: #6b7079;
    --g-400: #9aa0a8;
    --g-300: #c9ccd1;
    --g-200: #e3e5e8;
    --g-100: #f1f2f4;
    --g-50: #f8f9fa;
    --white: #ffffff;

    --accent: #003da5;
    --accent-600: #00318a;
    --accent-100: #dce6f6;
    --accent-50: #f0f4fb;
    --accent-ring: rgba(0, 61, 165, .14);

    /* role aplikacji */
    --bg: var(--g-50);
    --surface: var(--white);
    --surface-2: var(--g-50);
    --border: var(--g-200);
    --border-strong: var(--g-300);
    --text: var(--ink);
    --text-muted: var(--g-500);
    --primary: var(--black);
    --primary-text: var(--white);
    --hover: var(--g-100);
    --active: var(--accent-50);
    --active-text: var(--accent);
    --info: var(--accent);
    --danger: #b42318;
    --warning: #b54708;
    --success: #067647;

    /* szkło */
    --glass-bg: rgba(255, 255, 255, .58);
    --glass-bg-strong: rgba(255, 255, 255, .95);
    --glass-edge: rgba(11, 11, 12, .07);
    --glass-blur: blur(16px) saturate(1.6);
    --glass-shine: inset 0 1px 0 rgba(255, 255, 255, .9);
    --backdrop: rgba(11, 11, 12, .38);
    --glow: rgba(0, 61, 165, .05);

    --radius: 10px;
    --radius-lg: 14px;
    --radius-xl: 20px;
    --shadow: 0 1px 2px rgba(11, 11, 12, .04), 0 8px 24px rgba(11, 11, 12, .06);
    --shadow-lg: 0 2px 4px rgba(11, 11, 12, .05), 0 22px 48px rgba(11, 11, 12, .11);
    --shadow-sm: 0 1px 2px rgba(11, 11, 12, .04), 0 2px 8px rgba(11, 11, 12, .03);
    --font: "Urbanist", system-ui, -apple-system, "Segoe UI", sans-serif;
    --mono: "Urbanist", system-ui, -apple-system, "Segoe UI", sans-serif;
    /*--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;*/
    /* większa strzałka selecta (konto) */
    --select-arrow-lg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%236b7079' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E");
    --ease: cubic-bezier(.2, .7, .2, 1);
    --select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%239aa0a8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");
    color-scheme: light;

    /* aliasy (stare nazwy z konta) */
    --error: var(--danger);
    --ok: var(--success);
    --warn: var(--warning);
    --warn-bg: #fef6e7;
}

:root[data-theme="dark"] {
    --bg: #0d0e11;
    --surface: #15171b;
    --surface-2: #1b1d22;
    --border: #272a31;
    --border-strong: #363a43;
    --text: #eceef1;
    --text-muted: #9aa0a8;
    --primary: #f1f2f4;
    --primary-text: #0b0b0c;
    --hover: #1f2228;
    --active: rgba(122, 162, 240, .14);
    --active-text: #a9c3f5;
    --accent: #7aa2f0;
    --accent-600: #a9c3f5;
    --accent-100: rgba(122, 162, 240, .28);
    --accent-50: rgba(122, 162, 240, .1);
    --accent-ring: rgba(122, 162, 240, .22);
    --info: #7aa2f0;
    --danger: #f97066;
    --warning: #fdb022;
    --success: #47cd89;

    --glass-bg: rgba(21, 23, 27, .6);
    --glass-bg-strong: rgba(21, 23, 27, .95);
    --glass-edge: rgba(255, 255, 255, .07);
    --glass-shine: inset 0 1px 0 rgba(255, 255, 255, .04);
    --backdrop: rgba(0, 0, 0, .55);
    --glow: rgba(122, 162, 240, .06);

    --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);
    --shadow-lg: 0 2px 4px rgba(0, 0, 0, .35), 0 22px 48px rgba(0, 0, 0, .45);
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);
    --select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%236b7079' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");
    color-scheme: dark;
}

/* =========================================================
   Reset wspólny
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
html { -webkit-text-size-adjust: 100%; }
::selection { background: var(--accent-100); color: var(--text); }
a { color: inherit; }
h1, h2, h3 { margin: 0; line-height: 1.15; letter-spacing: -.02em; }
p { margin: 0; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
[hidden] { display: none !important; }
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* =========================================================
   Animacje wspólne
   ========================================================= */
@keyframes drop { from { opacity: 0; transform: translateY(-6px); } }
@keyframes fade { from { opacity: 0; } }
@keyframes dot {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 40%, transparent); }
    70%, 100% { box-shadow: 0 0 0 6px transparent; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}