@layer tokens,base,utilities,layout,components;@layer tokens{:root{--color-primary: #17254C;--color-secondary: #39A9DB;--color-accent: #12B3A6;--color-warm: #F2B266;--color-success: #16A34A;--color-warning: #F59E0B;--color-danger: #EF4444;--bg: #F7FAFC;--bg-alt: #EEF2F7;--text: #0F172A;--text-soft: #475569;--panel: #FFFFFF;--panel-2: #FAFCFF;--panel-3: #F3F7FC;--panel-border: #E2E8F0;--link: var(--color-accent);--link-hover: color-mix(in srgb, var(--color-accent), black 14%);--ring: color-mix(in srgb, var(--color-secondary), white 20%);--shadow-1: 0 4px 12px rgba(0,0,0,.08);--shadow-2: 0 10px 30px rgba(0,0,0,.14);--sb-bg-top: var(--color-primary);--sb-bg-bottom: #0F1B36;--sb-text: color-mix(in srgb, #fff, transparent 12%);--sb-muted: color-mix(in srgb, #fff, transparent 38%);--sb-hover: color-mix(in srgb, #fff, transparent 84%);--sb-active: color-mix(in srgb, var(--color-secondary), transparent 68%);--sb-indicator: var(--color-secondary);--primary: var(--color-primary);--primary-contrast: #fff}[data-theme=dark]{--primary: var(--color-primary);--primary-contrast: #fff}[data-theme=dark]{--color-primary: #46A5D1;--color-secondary: #2A3F74;--color-accent: #21B7AC;--color-warm: #E7A65C;--color-success: #22C55E;--color-warning: #F8B84E;--color-danger: #F97070;--bg: #0B1220;--bg-alt: #0F1828;--text: #E6EEF7;--text-soft: #A1B4C6;--panel: #121D2F;--panel-2: #0F1B2D;--panel-3: #0D1727;--panel-border: #2A384D;--link: color-mix(in srgb, var(--color-accent), white 22%);--link-hover: color-mix(in srgb, var(--color-accent), white 34%);--ring: color-mix(in srgb, var(--color-primary), white 26%);--shadow-1: 0 6px 18px rgba(0,0,0,.35);--shadow-2: 0 18px 40px rgba(0,0,0,.5);--sb-bg-top: #14223A;--sb-bg-bottom: #0B1220;--sb-text: color-mix(in srgb, #fff, transparent 10%);--sb-muted: color-mix(in srgb, #fff, transparent 40%);--sb-hover: color-mix(in srgb, #fff, transparent 78%);--sb-active: color-mix(in srgb, var(--color-primary), transparent 58%);--sb-indicator: var(--color-primary)}:root,[data-theme=dark]{--radius-1: 8px;--radius-2: 12px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial}}@layer base{html,body,#root{height:100%}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial}.mono-muted{color:var(--sb-muted);font-size:.8rem}}@layer utilities{.u-flex{display:flex;gap:.5rem;align-items:center}.u-grid{display:grid;gap:.75rem}.u-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;box-shadow:var(--shadow)}.u-muted{color:var(--text-soft)}.u-table{width:100%;border-collapse:separate;border-spacing:0}.u-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}}@layer layout{:root{--sidebar-w: 280px;--topbar-h: 64px}.app-layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;min-height:100dvh;background:var(--bg, #fff)}.sidebar-slot{grid-row:1 / span 2}.topbar-slot{grid-column:2;position:sticky;top:0;z-index:20}.content-slot{grid-column:2;padding:1rem}.sidebar-backdrop{position:fixed;inset:0;background:#0f172a66;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:35}.sidebar-backdrop.is-visible{opacity:1;visibility:visible}@media (max-width: 1024px){.app-layout{grid-template-columns:1fr;grid-template-rows:var(--topbar-h) 1fr}.sidebar-slot{grid-row:1 / 3;position:fixed;inset:0 auto 0 0;width:min(80vw,320px);max-width:100%;transform:translate(-100%);transition:transform .22s ease;z-index:40}.sidebar-slot.is-open{transform:translate(0)}.topbar-slot{grid-column:1}.content-slot{grid-column:1;padding:.75rem}}}@layer layout{.sidebar{height:100%;background:linear-gradient(180deg,var(--sb-bg-top),var(--sb-bg-bottom));color:var(--sb-text);display:flex;flex-direction:column;border-right:1px solid var(--panel-border)}.sidebar__brand{display:grid;grid-template-columns:44px 1fr auto;gap:.75rem;align-items:center;padding:1rem 1rem .75rem}.sidebar__title{line-height:1.05}.sidebar__title strong{display:block;font-size:.95rem;letter-spacing:.3px}.sidebar__title span{display:block;font-size:.95rem;letter-spacing:.3px;margin-top:-2px}.sidebar__title small{display:block;opacity:.7;margin-top:2px;font-size:.72rem}.sidebar__close{display:none;background:transparent;color:inherit}.sidebar__list{list-style:none;margin:.5rem 0 1rem;padding:0 .5rem;overflow:auto}.sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin:.25rem;border-radius:12px;text-decoration:none;color:inherit;opacity:.9}.sidebar__link:hover{background:var(--sb-hover);opacity:1}.sidebar__link.is-active{background:var(--sb-active);opacity:1}.sidebar__icon{flex:0 0 20px}.sidebar__text{white-space:nowrap}[data-theme=dark] .sidebar__logo{background:linear-gradient(180deg,color-mix(in srgb,var(--panel),white 8%),color-mix(in srgb,var(--panel-2),white 4%))}@media (max-width: 1024px){.sidebar{box-shadow:var(--shadow-2)}.sidebar__close{display:inline-flex;border:0;padding:.25rem;margin-left:.25rem;cursor:pointer}}.sidebar__logo-plate{width:44px;height:44px;padding:6px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(180deg,#fff,#eef4ff);border:1px solid rgba(255,255,255,.75);box-shadow:0 6px 16px #00000047,0 0 0 4px #ffffff0d inset}.sidebar__logo{width:100%;height:100%;object-fit:contain;display:block;background:none!important;filter:none!important}}@layer layout{.topbar{height:var(--topbar-h, 64px);display:flex;align-items:center;gap:.5rem;padding:0 .75rem;background:var(--panel);border-bottom:1px solid var(--panel-border);width:100%;color:var(--text)}.topbar__title{font-size:clamp(1rem,1.5vw,1.25rem);font-weight:700;min-width:0}.topbar__hamburger{display:none;border:0;background:transparent;padding:.5rem;border-radius:10px;color:var(--text);cursor:pointer}@media (max-width: 1024px){.topbar__hamburger{display:inline-flex}}.topbar__actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.theme-toggle{background:transparent;border:0;padding:.35rem;border-radius:8px;cursor:pointer;color:var(--text)}.theme-toggle:hover{background:var(--bg-alt);color:var(--text)}.theme-toggle .sun{display:inline-block}.theme-toggle .moon,[data-theme=dark] .theme-toggle .sun{display:none}[data-theme=dark] .theme-toggle .moon{display:inline-block}.topbar__user{position:relative}.avatar-btn{background:transparent;border:0;padding:0;cursor:pointer}.topbar .avatar,.avatar{--topbar-avatar-size: 36px;width:var(--topbar-avatar-size);height:var(--topbar-avatar-size);border-radius:999px;display:grid;place-items:center;border:1px solid var(--panel-border);background:color-mix(in srgb,var(--color-secondary),#fff 85%);color:var(--color-primary);font-weight:700}[data-theme=dark] .topbar .avatar,[data-theme=dark] .avatar{background:color-mix(in srgb,var(--color-secondary),white 22%);color:color-mix(in srgb,var(--color-secondary),white 35%)}.user-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:180px;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;box-shadow:0 10px 20px #0000001f;padding:.4rem;z-index:50}.user-menu__item{width:100%;display:flex;align-items:center;gap:.5rem;background:transparent;border:0;text-align:left;padding:.55rem .6rem;border-radius:8px;cursor:pointer;color:var(--text);font:inherit}.user-menu__item:hover{background:var(--bg-alt)}.user-menu__item.is-danger{color:var(--color-danger, #b42318)}.user-menu__divider{height:1px;background:var(--panel-border);margin:.25rem .3rem}.topbar svg,.topbar .icon{color:inherit!important;stroke:currentColor!important;fill:none}.topbar button:focus-visible{outline:2px solid var(--ring, color-mix(in srgb, var(--color-secondary), white 20%));outline-offset:2px}.lang-select{appearance:none;padding:.35rem .6rem;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);border-radius:.6rem;margin-right:.5rem}.lang-select:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@layer components{.auth{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg)}.auth__left{width:min(92vw,440px);background:var(--panel);padding:var(--space-8) var(--space-6);border-radius:var(--radius-2);box-shadow:var(--shadow-1);display:grid;gap:var(--space-6);color:var(--text)}.auth__brand{display:flex;align-items:center;gap:var(--space-3);color:var(--color-primary);font-weight:700;margin-bottom:var(--space-1)}.brand__logo{height:40px;width:auto;display:block}.brand__name{font-size:1.05rem;letter-spacing:.4px}.auth__title{font-size:clamp(1.9rem,4.2vw,2.4rem);font-weight:800;color:var(--text);line-height:1.05}.face{color:var(--color-primary)}.muted{color:var(--text-soft)}.small{font-size:.86rem}.auth__form{display:grid;gap:var(--space-4)}.field{display:grid;gap:var(--space-2)}.field__label{font-weight:700;font-size:.82rem;color:var(--text);text-transform:uppercase;letter-spacing:.35px}.input{width:100%;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-1);padding:.85rem .95rem;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s,background .2s}.input::placeholder{color:color-mix(in srgb,var(--text-soft),transparent 10%)}.input:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring),transparent 70%)}.input--with-addon{display:grid;grid-template-columns:1fr auto;align-items:stretch;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-1);overflow:hidden;transition:border-color .15s,box-shadow .15s,background .2s}.input--with-addon:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring),transparent 70%)}.input__control{width:100%;border:none;border-radius:var(--radius-1) 0 0 var(--radius-1);padding:.85rem .95rem;background:transparent;color:var(--text);outline:none}.input__control::placeholder{color:color-mix(in srgb,var(--text-soft),transparent 10%)}.input__addon{display:grid;place-items:center;padding:0 var(--space-4);border:0;background:var(--panel);color:var(--text-soft);cursor:pointer;height:100%;transition:background .2s,color .2s,transform .04s}.input__addon:hover{background:color-mix(in srgb,var(--color-primary),transparent 90%);color:var(--color-primary)}.input__addon:active{transform:translateY(1px)}.small-link{font-size:.9rem;color:var(--link);text-decoration:none}.small-link:hover{color:var(--link-hover);text-decoration:underline}.btn{font:inherit;border:1px solid transparent;border-radius:var(--radius-1);cursor:pointer;padding:.9rem 1rem;font-weight:800;transition:filter .2s,transform .04s,background .2s,box-shadow .2s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-1)}[data-theme=dark] .btn-primary{color:#0b1022}.btn-primary:hover{filter:brightness(1.06)}.auth__submit{width:100%}.auth__signup{font-size:.95rem;text-align:center;margin-top:var(--space-3)}@media (max-width: 520px){.auth__left{padding:var(--space-6) var(--space-4)}.brand__logo{height:34px}}}@layer components{.tc-wrap{width:100%;max-width:760px;margin:3rem auto;padding:0 2rem}.tc-welcome{margin:0;font-size:clamp(2rem,3vw,2.4rem);line-height:1.1;font-weight:800;letter-spacing:.2px;color:var(--text)}.tc-sub{margin:.5rem 0 2rem;font-size:1.1rem;font-weight:600;color:var(--text-soft)}.tc-field{margin-bottom:1.25rem}.tc-label{display:block;font-size:.8rem;font-weight:800;letter-spacing:.06em;color:var(--text-soft);text-transform:uppercase;margin:0 0 .6rem}.tc-required{color:var(--primary)}.tc-select,.tc-textarea{width:100%;background:color-mix(in srgb,var(--panel),transparent 6%);color:var(--text);border:1px solid color-mix(in srgb,var(--panel-border),transparent 10%);border-radius:12px;padding:.95rem 1.1rem;font-size:1rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.tc-select{height:50px}.tc-textarea{min-height:120px;resize:vertical}.tc-select:focus,.tc-textarea:focus{border-color:color-mix(in srgb,var(--primary),transparent 40%);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary),transparent 85%)}.tc-actions{display:flex;align-items:center;gap:1.2rem;margin-top:1rem}.btn{appearance:none;border:1px solid transparent;padding:.9rem 1.6rem;font-size:1rem;font-weight:700;border-radius:12px;cursor:pointer;transition:transform .12s ease,background .25s ease,color .25s ease,box-shadow .25s ease}.btn-primary{background:var(--primary);color:var(--primary-contrast);border:none;box-shadow:0 4px 10px color-mix(in srgb,var(--primary),transparent 80%);transition:background .25s ease,box-shadow .25s ease,transform .12s ease}.btn-primary:hover{background:color-mix(in srgb,var(--primary),white 12%);box-shadow:0 6px 14px color-mix(in srgb,var(--primary),transparent 70%)}.btn-primary:active{transform:scale(.97);box-shadow:0 3px 8px color-mix(in srgb,var(--primary),transparent 75%)}.btn-link{background:transparent;color:var(--link);border-color:transparent;padding:.9rem .6rem}.btn-link:hover{color:color-mix(in srgb,var(--link),white 18%)}.tc-field+.tc-actions{margin-top:1.25rem}@media (min-width: 1280px){.tc-wrap{margin-left:4rem}}@media (max-width: 520px){.tc-wrap{margin:2rem auto;padding:0 1rem}}}@layer components{.tm-container{--tm-bg: var(--bg);--tm-card: var(--panel);--tm-text: var(--text);--tm-muted: var(--muted);--tm-line: var(--panel-border);--tm-surface-hover: var(--bg-alt);--tm-accent: var(--color-primary);--tm-accent-strong: var(--color-secondary);--tm-warn: #f59e0b;--tm-warn-bg: color-mix(in srgb, var(--tm-warn), var(--tm-card) 85%);--tm-warn-border: color-mix(in srgb, var(--tm-warn), transparent 70%);--tm-radius: 16px;--tm-shadow: 0 14px 30px rgba(0,0,0,.14), 0 6px 14px rgba(0,0,0,.08);min-height:100vh;background:var(--tm-bg);color:var(--tm-text);padding:18px}.tm-container .tm-filters{padding:18px 20px}.tm-container .tm-filters-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.tm-container .tm-range{background:var(--tm-card);border:1px solid var(--tm-line);padding:10px 12px;border-radius:12px}.tm-container .tm-label{font-size:12px;color:var(--tm-muted);display:block;margin-bottom:6px}.tm-container .tm-range-fields{display:flex;align-items:center;gap:8px}.tm-container .tm-range input{border:1px solid var(--tm-line);padding:6px 8px;border-radius:8px;background:var(--tm-card);color:var(--tm-text)}.tm-container .btn-outline{padding:10px 14px;border:1px solid var(--tm-line);border-radius:12px;background:var(--tm-card);font-weight:600;color:var(--tm-text)}.tm-container .btn-outline:disabled{opacity:.5}.tm-container .btn-outline:hover{background:var(--tm-surface-hover)}.tm-container .tm-search{position:relative;flex:1;min-width:260px;background:var(--tm-card);border:1px solid var(--tm-line);border-radius:12px;display:flex;align-items:center;padding:6px 10px}.tm-container .tm-search input{border:none;outline:none;width:100%;background:transparent;color:var(--tm-text);padding:6px 8px 6px 28px}.tm-container .tm-search-icon{position:absolute;left:10px;color:var(--tm-muted)}.tm-container .tm-card{background:var(--tm-card);margin:0 20px 24px;border:1px solid var(--tm-line);border-radius:14px;overflow:hidden}.tm-container .tm-table{width:100%}.tm-container .tm-table-head{display:grid;grid-template-columns:2fr 1.2fr 1.2fr .8fr 1fr .8fr;gap:8px;padding:12px 16px;border-bottom:1px solid var(--tm-line);font-size:12px;color:var(--tm-muted);font-weight:700}.tm-container .tm-table .right{text-align:right}.tm-container .th-sort{background:none;border:none;text-align:left;font-weight:700;color:var(--tm-muted);cursor:pointer}.tm-container .th-sort:hover{color:var(--tm-text)}.tm-container .th-arrow{margin-left:6px}.tm-container .tm-row-wrap{position:relative;border-bottom:1px solid var(--tm-line);padding:0 8px}.tm-container .tm-row-line{display:grid;grid-template-columns:2fr 1.2fr 1.2fr .8fr 1fr .8fr;gap:8px;padding:14px 16px;align-items:center}.tm-container .col-job .job-title{font-weight:700}.tm-container .col-job .job-sub{color:var(--tm-muted);font-size:12px;margin-top:2px}.tm-container .col-time .time{font-weight:800}.tm-container .col-time .date{color:var(--tm-muted);font-size:12px}.tm-container .chip{display:inline-block;margin-top:4px;padding:4px 8px;background:var(--tm-warn-bg);color:var(--tm-warn);border-radius:10px;font-size:11px;font-weight:700;border:1px solid var(--tm-warn-border)}.tm-container .pill{display:inline-block;padding:6px 10px;border-radius:10px;background:var(--tm-surface-hover);font-weight:700;font-size:12px}.tm-container .pill-blue{background:color-mix(in srgb,var(--tm-accent),var(--tm-card) 82%);color:var(--tm-accent-strong)}.tm-container .icon-chip{width:34px;height:34px;border-radius:10px;border:1px solid var(--tm-line);background:var(--tm-card);display:grid;place-items:center;cursor:pointer}.tm-container .icon-chip:hover{background:var(--tm-surface-hover)}.tm-container .col-actions{display:flex;gap:10px;justify-content:flex-end}.tm-container .col-duration,.tm-container .col-mileage{display:flex;align-items:center}.tm-container .tm-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;color:var(--tm-muted)}.tm-container .tm-pages{display:flex;gap:10px;align-items:center}.tm-container .tm-page-indicator{font-weight:700;color:var(--tm-text)}.tm-container .tm-table-head .right{justify-self:end;padding-right:12px}.tm-container .tm-row-detail.popover{position:absolute;top:calc(100% + 10px);right:12px;width:min(560px,92vw);background:var(--tm-card);border:1px solid var(--tm-line);border-radius:var(--tm-radius);box-shadow:var(--tm-shadow);padding:12px;z-index:10;animation:tm-pop .14s ease-out}@keyframes tm-pop{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.tm-container .popover-arrow{position:absolute;top:-7px;right:40px;width:14px;height:14px;background:var(--tm-card);transform:rotate(45deg);border-left:1px solid var(--tm-line);border-top:1px solid var(--tm-line)}.tm-container .tm-detail-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:10px 18px}.tm-container .tm-detail-field{display:contents}.tm-container .tm-detail-field .df-label{color:var(--tm-muted);font-size:.92rem}.tm-container .tm-detail-field .df-value{color:var(--tm-text);font-weight:600}.tm-container .tm-detail-field.wide{grid-column:1 / -1;display:block}.tm-container .tm-detail-field.wide .df-label{display:block;margin-bottom:4px}.tm-container .tm-detail-field.wide .df-value{display:block}@media (max-width: 900px){.tm-container .tm-table-head,.tm-container .tm-row-line{grid-template-columns:1.8fr 1.2fr 1.2fr .9fr .9fr .8fr}}@media (max-width: 720px){.tm-container .tm-table-head{display:none}.tm-container .tm-row-line{display:grid;grid-template-columns:1fr;gap:10px;padding:12px;border:1px solid var(--tm-line);border-radius:12px;margin:10px 12px;background:var(--tm-card)}.tm-container .tm-row-line>.col-time,.tm-container .tm-row-line>.col-duration,.tm-container .tm-row-line>.col-mileage,.tm-container .tm-row-line>.col-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.tm-container .tm-row-line>.col-time:before,.tm-container .tm-row-line>.col-duration:before,.tm-container .tm-row-line>.col-mileage:before,.tm-container .tm-row-line>.col-actions:before{content:attr(data-label);font-size:12px;font-weight:700;color:var(--tm-muted);margin-right:12px;flex:0 0 40%}.tm-container .col-job{display:block}.tm-container .col-job:before{content:attr(data-label);display:block;font-size:12px;font-weight:700;color:var(--tm-muted);margin-bottom:6px}.tm-container .col-actions{justify-content:flex-start;gap:8px}.tm-container .pill,.tm-container .chip{white-space:nowrap}.tm-container .tm-row-detail.popover{right:8px}}}@layer components{.user-form-container{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 10px #00000014;max-width:900px;margin:2rem auto;font-family:Arial,sans-serif}.tabs{display:flex;border-bottom:2px solid #e5e7eb;margin-bottom:1.5rem}.tab{padding:.8rem 1.5rem;cursor:pointer;font-weight:600;color:#6b7280;border-bottom:3px solid transparent;transition:color .2s,border-color .2s}.tab.active{color:#2563eb;border-bottom-color:#2563eb}.tab:hover{color:#1d4ed8}.user-form{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 2rem}.user-form label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.3rem;color:#374151}.user-form input,.user-form select{width:100%;padding:.6rem .8rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:border .2s,box-shadow .2s}.user-form input:focus,.user-form select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33;outline:none}.avatar-section{grid-column:span 2;display:flex;align-items:center;gap:1rem}.user-avatar{width:70px;height:70px;border-radius:50%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#9ca3af;border:2px dashed #cbd5e1}.avatar-section button{background:#f9fafb;border:1px solid #d1d5db;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:background .2s}.avatar-section button:hover{background:#e5e7eb}.radio-group{display:flex;gap:1.5rem}.radio-group label{display:flex;align-items:center;gap:.4rem}.user-form-container button[type=submit]{grid-column:span 2;background:#2563eb;color:#fff;padding:.9rem;border-radius:8px;font-weight:700;font-size:1rem;border:none;cursor:pointer;margin-top:1rem;transition:background .2s}.user-form-container button[type=submit]:hover{background:#1d4ed8}.user-list-container{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 10px #00000014;max-width:1100px;margin:2rem auto;font-family:Arial,sans-serif}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.list-header .actions{display:flex;gap:.8rem}.list-header input{padding:.6rem;border:1px solid #d1d5db;border-radius:6px}.btn{padding:.6rem 1.2rem;border-radius:6px;cursor:pointer;font-weight:600;border:none}.btn.primary{background:#2563eb;color:#fff}.btn.secondary{background:#f3f4f6;border:1px solid #d1d5db}.btn.outline{background:#fff;border:1px solid #d1d5db;color:#374151}.btn.danger{background:#ef4444;color:#fff}.btn[disabled],.btn:disabled{opacity:.7;cursor:not-allowed}.filters{display:flex;gap:1rem;margin-bottom:1rem}.user-table{width:100%;border-collapse:collapse}.user-table th,.user-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb}.user-table tbody tr:hover{background:#fafafa}.user-info{display:flex;align-items:center;gap:.8rem}.avatar{width:36px;height:36px;border-radius:50%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;font-weight:700}.yes{color:green;font-weight:600}.no{color:red;font-weight:600}.actions button{margin-right:.5rem;cursor:pointer;border:none;background:none;font-size:1.1rem;line-height:1;padding:.25rem;border-radius:6px;transition:background .15s ease}.actions button:hover{background:#f3f4f6}.actions input[type=text]{height:42px;padding:0 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.actions input[type=text]:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:999;animation:fadeIn .2s ease}.modal{background:#fff;border-radius:12px;padding:1.5rem 1.5rem 1.25rem;width:520px;max-width:95%;box-shadow:0 6px 16px #0003;position:relative;animation:scaleIn .25s ease}.modal h3{margin-top:0;margin-bottom:1rem;font-size:1.25rem;font-weight:700;color:#1f2937;text-align:center}.modal-body p{margin:.5rem 0;font-size:.95rem;color:#374151;display:flex;justify-content:space-between}.modal-body strong{color:#111827;font-weight:600}.modal label{display:block;font-size:.85rem;font-weight:600;margin:.5rem 0 .25rem;color:#374151}.modal input[type=text],.modal input[type=email],.modal select{width:100%;padding:.6rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;outline:none;transition:border .2s,box-shadow .2s}.modal input[type=text]:focus,.modal input[type=email]:focus,.modal select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.modal .switch{display:inline-flex;align-items:center;gap:.5rem;margin-top:.6rem;-webkit-user-select:none;user-select:none}.modal .field-group{margin-bottom:.75rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.25rem}.modal-actions .btn{background:#2563eb;color:#fff;border:none;border-radius:8px;padding:.6rem 1.2rem;font-weight:600;cursor:pointer;transition:background .2s ease,box-shadow .2s ease}.modal-actions .btn:hover{background:#1d4ed8}.modal-actions .btn.secondary{background:#f3f4f6;color:#1f2937;border:1px solid #d1d5db}.modal-actions .btn.secondary:hover{background:#e5e7eb}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.groups-wrap{margin-top:.75rem}.groups-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.groups-title{margin:0;font-size:1.05rem;font-weight:800;color:#111827}.groups-actions{display:flex;gap:.5rem}.groups-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 720px){.groups-grid{grid-template-columns:1fr 1fr}}@media (min-width: 1024px){.groups-grid{grid-template-columns:1fr 1fr 1fr}}.group-card{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #0000000a;transition:box-shadow .15s ease,border-color .15s ease}.group-card:hover{box-shadow:0 6px 16px #00000014;border-color:#dbe2ea}.group-card.is-collapsed .group-card__header{border-bottom:none}.group-card__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer;padding:.85rem 1rem;background:radial-gradient(120% 70% at 0% 0%,#2563eb0f,#2563eb00 60%),linear-gradient(180deg,#fafbfe,#fff);border-bottom:1px solid #eef2f7}.group-card__title{display:flex;align-items:center;gap:.5rem}.group-card__dot{width:10px;height:10px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 3px #2563eb26}.group-card__name{font-weight:800;color:#0f172a;letter-spacing:.2px}.group-card__meta{display:flex;align-items:center;gap:.5rem}.chev{border:1px solid #e5e7eb;background:#fff;border-radius:8px;padding:.15rem .5rem;font-size:.9rem;cursor:pointer}.chip{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700}.chip--count{background:#eef2ff;color:#3730a3;border:1px solid #e0e7ff}.group-card__list{list-style:none;margin:0;padding:.25rem .5rem .75rem}.group-user{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .5rem;border-radius:10px;transition:background .15s ease}.group-user:hover{background:#f8fafc}.group-user__left{display:flex;align-items:center;gap:.75rem;min-width:0}.group-avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:800;color:#2563eb;background:#eef2ff;border:1px solid #e0e7ff}.group-user__info{min-width:0}.group-user__top{display:flex;align-items:center;gap:.5rem}.group-user__name{color:#0f172a;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-user__email{color:#374151;font-size:.875rem;text-decoration:none}.group-user__email:hover{text-decoration:underline}.role-badge{font-size:.7rem;padding:.15rem .45rem;border-radius:999px;background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;font-weight:700}.role-admin{background:#fee2e2;color:#991b1b;border-color:#fecaca}.role-manager{background:#fff7ed;color:#9a3412;border-color:#ffedd5}.role-user{background:#ecfeff;color:#155e75;border-color:#cffafe}.group-user__right{display:flex;align-items:center;gap:.35rem}.status-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px #10b98126}.status-dot.ok{background:#10b981}.status-dot.off{background:#e11d48;box-shadow:0 0 0 3px #e11d4826}.group-empty{display:flex;align-items:center;gap:.6rem;padding:.75rem;color:#6b7280}.group-empty__icon{font-size:1.1rem}.schedule-wrap{margin-top:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mt-3{margin-top:12px}.muted{color:#6b7280}.schedule-grid{display:grid;grid-template-columns:180px 1fr 120px;gap:10px 16px;align-items:start;border-top:1px solid #e5e7eb;padding-top:12px}.schedule-row{display:contents}.schedule-day{grid-column:1 / span 1;display:flex;align-items:center;height:40px}.day-select{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;color:#111827;cursor:default}.schedule-ranges{grid-column:2 / span 1}.schedule-ranges.disabled{opacity:.55;pointer-events:none}.range-line{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.clock{display:inline-flex;align-items:center;gap:6px}.clock select{padding:6px 8px;border:1px solid #d1d5db;border-radius:8px;background:#fff;min-width:64px;height:36px}.to-label{color:#6b7280;margin:0 4px}.link-btn{appearance:none;background:transparent;border:1px dashed #9ca3af;color:#374151;padding:6px 10px;border-radius:8px;cursor:pointer;margin-top:4px}.link-btn:hover{border-color:#4b5563}.icon-btn{appearance:none;background:#f9fafb;border:1px solid #e5e7eb;color:#6b7280;width:32px;height:32px;border-radius:8px;cursor:pointer}.icon-btn:hover{background:#f3f4f6;color:#374151}.all-day{grid-column:3 / span 1;display:flex;align-items:center;gap:8px;height:40px;color:#111827}.error-text{grid-column:2 / span 2;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;padding:6px 10px;border-radius:8px;margin-top:-6px}@media (max-width: 900px){.schedule-grid{grid-template-columns:130px 1fr 100px}}@media (max-width: 640px){.schedule-grid{grid-template-columns:1fr}.schedule-day,.schedule-ranges,.all-day,.error-text{grid-column:1 / -1}.schedule-day{margin-top:8px}.all-day{justify-content:flex-start}}}@layer components{.reports-container{display:grid;gap:var(--space-6, 1.5rem)}.reports-container *{box-sizing:border-box}.r-header{display:grid;gap:var(--space-4, 1rem);align-items:end}@media (min-width: 920px){.r-header{grid-template-columns:1fr auto;align-items:center}}.r-title{font-size:clamp(1.25rem,2.8vw,1.6rem);font-weight:800;letter-spacing:.2px;margin:0 0 var(--space-1, .25rem) 0}.r-subtitle{margin:0;color:var(--text-soft, #6b7280)}.r-search{display:flex;align-items:center;gap:.5rem;background:var(--panel, #fff);border:1px solid var(--panel-border, #e2e8f0);border-radius:var(--radius-2, 12px);padding:.55rem .75rem;min-width:min(100%,420px);box-shadow:var(--shadow, 0 4px 12px rgba(0,0,0,.08));transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.r-search:focus-within{border-color:color-mix(in srgb,var(--color-secondary, #46A5D1),var(--panel-border, #e2e8f0) 30%);box-shadow:0 8px 24px #0000001a}.r-search input{flex:1;border:0;outline:none;background:transparent;color:var(--text, #17254C);font-size:var(--fs-1, 1rem);min-width:8ch}.r-grid{display:grid;gap:var(--space-4, 1rem);grid-template-columns:repeat(1,minmax(0,1fr));padding-bottom:var(--space-4, 1rem)}@media (min-width: 640px){.r-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.r-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1360px){.r-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.r-grid>*{border:0!important}.r-card{display:grid;grid-template-rows:auto 1fr auto;gap:.5rem;padding:var(--space-4, 1rem);background:var(--panel, #fff);border:1px solid var(--panel-border, #e2e8f0);border-radius:var(--radius-2, 12px);box-shadow:var(--shadow, 0 4px 12px rgba(0,0,0,.08));background-clip:padding-box;overflow:hidden;text-decoration:none;color:inherit;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,outline-color .16s ease}.r-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-secondary, #46A5D1),var(--panel-border, #e2e8f0) 40%);box-shadow:0 14px 30px #0000001f}.r-card:focus-visible{outline:3px solid color-mix(in srgb,var(--color-secondary, #46A5D1),transparent 60%);outline-offset:2px}.r-card__head{display:flex;gap:.5rem;justify-content:space-between;align-items:start}.r-card__title{margin:0;font-weight:800;font-size:1rem;line-height:1.25;letter-spacing:.2px}.r-card__desc{margin:0;color:var(--text-soft, #5a5a5a);min-height:2.8em}.r-card__cta{margin-top:.35rem;display:inline-flex;align-items:center;gap:.35rem;font-weight:700;letter-spacing:.2px;color:var(--color-accent, #2EC4B6);text-decoration:none}.r-card__cta svg{stroke:currentColor;transition:transform .16s ease}.r-card:hover .r-card__cta{color:color-mix(in srgb,var(--color-accent, #2EC4B6),black 18%)}.r-card:hover .r-card__cta svg{transform:translate(2px)}.r-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem;font-size:.72rem;font-weight:800;border-radius:999px;border:1px solid var(--panel-border, #e2e8f0);white-space:nowrap;box-shadow:0 2px 8px #0000000f}.r-badge--new{background:color-mix(in srgb,var(--color-accent, #2EC4B6),var(--panel, #fff) 80%);border-color:color-mix(in srgb,var(--color-accent, #2EC4B6),white 40%);color:color-mix(in srgb,var(--color-accent, #2EC4B6),black 10%)}.r-badge--beta{background:color-mix(in srgb,var(--color-warm, #F6C177),var(--panel, #fff) 82%);border-color:color-mix(in srgb,var(--color-warm, #F6C177),white 35%);color:color-mix(in srgb,var(--color-warm, #F6C177),black 15%)}.r-empty{display:grid;place-items:center;padding:clamp(2rem,4vw,3rem);border:1px dashed var(--panel-border, #e2e8f0);border-radius:var(--radius-2, 12px);color:var(--text-soft, #5a5a5a);background:color-mix(in srgb,var(--panel, #fff),var(--bg-alt, #F0F2F5) 25%)}@media (prefers-reduced-motion: reduce){.r-card,.r-card__cta svg,.r-search{transition:none}.r-card:hover{transform:none}}[data-theme=dark] .reports-container .r-card__cta{color:color-mix(in srgb,var(--color-accent, #2EC4B6),white 22%)}[data-theme=dark] .reports-container .r-card:hover .r-card__cta{color:color-mix(in srgb,var(--color-accent, #2EC4B6),white 35%)}[data-theme=dark] .reports-container .r-badge--new{background:color-mix(in srgb,var(--color-accent, #2EC4B6),black 70%);border-color:color-mix(in srgb,var(--color-accent, #2EC4B6),white 35%);color:#fff}[data-theme=dark] .reports-container .r-badge--beta{background:color-mix(in srgb,var(--color-warm, #F6C177),black 72%);border-color:color-mix(in srgb,var(--color-warm, #F6C177),white 35%);color:#fff}}.toast-root{position:fixed;inset:0;pointer-events:none;z-index:9999}.toast-zone{position:absolute;display:grid;gap:12px;margin:14px}.toast-zone.tr{top:0;right:0}.toast-zone.tl{top:0;left:0}.toast-zone.br{bottom:0;right:0}.toast-zone.bl{bottom:0;left:0}.toast{--radius: 14px;--pad-x: 16px;--gap: 14px;--badge: 36px;pointer-events:auto;display:grid;grid-template-columns:var(--badge) 1fr auto;gap:10px var(--gap);align-items:center;min-width:420px;max-width:min(92vw,640px);padding:14px var(--pad-x);border-radius:var(--radius);color:#fff;position:relative;overflow:hidden;box-shadow:0 10px 26px #0f172a2e;animation:toast-in-desktop .18s ease-out both}.toast-leaving{animation:toast-out-desktop .18s ease-in both}.toast--success{--c: hsl(150 58% 44%)}.toast--info{--c: hsl(215 80% 46%)}.toast--warn{--c: hsl(42 92% 52%)}.toast--error{--c: hsl(4 75% 57%)}.toast--neutral{--c: hsl(215 18% 32%)}.toast{background:var(--c);background-image:linear-gradient(180deg,color-mix(in srgb,var(--c) 92%,white 8%),color-mix(in srgb,var(--c) 88%,black 12%))}.toast__badge{width:var(--badge);height:var(--badge);border-radius:999px;display:grid;place-items:center;background:color-mix(in srgb,#fff 20%,var(--c));border:1px solid color-mix(in srgb,#fff 28%,var(--c));box-shadow:inset 0 0 0 1px #ffffff0f;color:#fff}.toast__title{font-weight:800;font-size:1.05rem;letter-spacing:.2px}.toast__desc{opacity:.98;white-space:pre-line;font-size:.98rem}.toast__close{appearance:none;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;cursor:pointer;color:#fff;background:#ffffff24;border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background .18s ease,border-color .18s ease,transform .06s linear,opacity .18s ease;opacity:.9}.toast__close:hover{background:#ffffff38;border-color:#ffffff73;opacity:1}.toast__close:active{transform:scale(.96)}.toast__progress{position:absolute;left:0;right:0;bottom:0;height:6px;background:color-mix(in srgb,#fff 22%,var(--c));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden;transform:translateZ(0);will-change:transform}.toast__progress:after{content:"";display:block;height:100%;width:100%;background:#fff;opacity:.85;transform-origin:left;animation:toast-progress var(--_dur, 3.5s) linear forwards}@keyframes toast-in-desktop{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out-desktop{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.985)}}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (max-width: 520px){.toast-zone.tr,.toast-zone.tl,.toast-zone.bl{display:none}.toast-zone.br{inset:auto 8px 8px;margin:0;gap:10px}.toast{--radius: 16px;--pad-x: 12px;--gap: 12px;--badge: 28px;min-width:auto;width:auto;max-width:100%;padding:12px var(--pad-x);box-shadow:0 8px 20px #0f172a2e;animation:toast-in-mobile .2s cubic-bezier(.2,.8,.2,1) both}.toast-leaving{animation:toast-out-mobile .18s ease both}.toast__title{font-size:1rem}.toast__desc{font-size:.95rem}.toast__close{width:32px;height:32px}.toast__progress{height:3px}}@keyframes toast-in-mobile{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out-mobile{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(14px) scale(.98)}}@media (prefers-reduced-motion: reduce){.toast,.toast-leaving,.toast__progress:after{animation-duration:1ms!important;transition-duration:1ms!important}}.sidebar{height:100%;background:linear-gradient(180deg,var(--sb-bg-top),var(--sb-bg-bottom));color:var(--sb-text);display:flex;flex-direction:column;border-right:1px solid var(--panel-border)}.sidebar__brand{display:grid;grid-template-columns:44px 1fr auto;gap:.75rem;align-items:center;padding:1rem 1rem .75rem}.sidebar__title{line-height:1.05}.sidebar__title strong{display:block;font-size:.95rem;letter-spacing:.3px}.sidebar__title span{display:block;font-size:.95rem;letter-spacing:.3px;margin-top:-2px}.sidebar__title small{display:block;opacity:.7;margin-top:2px;font-size:.72rem}.sidebar__close{display:none;background:transparent;color:inherit}.sidebar__list{list-style:none;margin:.5rem 0 1rem;padding:0 .5rem;overflow:auto}.sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin:.25rem;border-radius:12px;text-decoration:none;color:inherit;opacity:.9}.sidebar__link:hover{background:var(--sb-hover);opacity:1}.sidebar__link.is-active{background:var(--sb-active);opacity:1}.sidebar__icon{flex:0 0 20px}.sidebar__text{white-space:nowrap}[data-theme=dark] .sidebar__logo{background:linear-gradient(180deg,color-mix(in srgb,var(--panel),white 8%),color-mix(in srgb,var(--panel-2),white 4%))}@media (max-width: 1024px){.sidebar{box-shadow:var(--shadow-2)}.sidebar__close{display:inline-flex;border:0;padding:.25rem;margin-left:.25rem;cursor:pointer}}.sidebar__logo-plate{width:44px;height:44px;padding:6px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(180deg,#fff,#eef4ff);border:1px solid rgba(255,255,255,.75);box-shadow:0 6px 16px #00000047,0 0 0 4px #ffffff0d inset}.sidebar__logo{width:100%;height:100%;object-fit:contain;display:block;background:none!important;filter:none!important}.topbar{height:var(--topbar-h, 64px);display:flex;align-items:center;gap:.5rem;padding:0 .75rem;background:var(--panel);border-bottom:1px solid var(--panel-border);width:100%;color:var(--text)}.topbar__title{font-size:clamp(1rem,1.5vw,1.25rem);font-weight:700;min-width:0}.topbar__hamburger{display:none;border:0;background:transparent;padding:.5rem;border-radius:10px;color:var(--text);cursor:pointer}@media (max-width: 1024px){.topbar__hamburger{display:inline-flex}}.topbar__actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.theme-toggle{background:transparent;border:0;padding:.35rem;border-radius:8px;cursor:pointer;color:var(--text)}.theme-toggle:hover{background:var(--bg-alt);color:var(--text)}.theme-toggle .sun{display:inline-block}.theme-toggle .moon,[data-theme=dark] .theme-toggle .sun{display:none}[data-theme=dark] .theme-toggle .moon{display:inline-block}.topbar__user{position:relative}.avatar-btn{background:transparent;border:0;padding:0;cursor:pointer}.topbar .avatar,.avatar{--topbar-avatar-size: 36px;width:var(--topbar-avatar-size);height:var(--topbar-avatar-size);border-radius:999px;display:grid;place-items:center;border:1px solid var(--panel-border);background:color-mix(in srgb,var(--color-secondary),#fff 85%);color:var(--color-primary);font-weight:700}[data-theme=dark] .topbar .avatar,[data-theme=dark] .avatar{background:color-mix(in srgb,var(--color-secondary),white 22%);color:color-mix(in srgb,var(--color-secondary),white 35%)}.user-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:180px;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;box-shadow:0 10px 20px #0000001f;padding:.4rem;z-index:50}.user-menu__item{width:100%;display:flex;align-items:center;gap:.5rem;background:transparent;border:0;text-align:left;padding:.55rem .6rem;border-radius:8px;cursor:pointer;color:var(--text);font:inherit}.user-menu__item:hover{background:var(--bg-alt)}.user-menu__item.is-danger{color:var(--color-danger, #b42318)}.user-menu__divider{height:1px;background:var(--panel-border);margin:.25rem .3rem}.topbar svg,.topbar .icon{color:inherit!important;stroke:currentColor!important;fill:none}.topbar button:focus-visible{outline:2px solid var(--ring, color-mix(in srgb, var(--color-secondary), white 20%));outline-offset:2px}.lang-select{appearance:none;padding:.35rem .6rem;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);border-radius:.6rem;margin-right:.5rem}.lang-select:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lang-switch{position:relative;display:inline-block;z-index:30}.lang-trigger{min-width:2.4rem;height:2rem;padding:0 .6rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);border-radius:var(--radius-1);cursor:pointer;line-height:1;font-weight:700;transition:background .15s ease,border-color .15s ease}.lang-trigger:hover{background:var(--panel-2);border-color:color-mix(in srgb,var(--panel-border),var(--text) 10%)}.lang-trigger:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.lang-current{font-weight:700;letter-spacing:.03em}.lang-menu{position:absolute;top:calc(100% + .4rem);right:0;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-2);box-shadow:var(--shadow-1);min-width:10rem;padding:.25rem}.lang-menu li{list-style:none}.lang-menu button{width:100%;display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;background:transparent;border:none;color:var(--text);border-radius:var(--radius-1);text-align:left;cursor:pointer}.lang-menu button:hover{background:var(--panel-2)}.lang-menu button.is-active{background:color-mix(in srgb,var(--color-accent),transparent 85%);font-weight:600;border:1px solid color-mix(in srgb,var(--color-accent),var(--panel-border) 70%)}.iso{width:2rem;font-weight:700;text-align:center}.label{flex:1;text-transform:capitalize}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-1);border:1px solid var(--panel-border);background:var(--panel);color:var(--text);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.theme-toggle:hover{background:var(--panel-2);border-color:color-mix(in srgb,var(--panel-border),var(--text) 10%)}.theme-toggle:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.theme-toggle .icon{transition:opacity .25s ease,transform .25s ease}.theme-toggle .sun{opacity:var(--sun-opacity, 1);transform:rotate(var(--sun-rot, 0deg))}.theme-toggle .moon{position:absolute;opacity:var(--moon-opacity, 0);transform:rotate(var(--moon-rot, -90deg))}[data-theme=dark] .theme-toggle .sun{--sun-opacity: 0;--sun-rot: 90deg}[data-theme=dark] .theme-toggle .moon{--moon-opacity: 1;--moon-rot: 0deg}:root{--sidebar-w: 280px;--topbar-h: 64px}.app-layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;min-height:100dvh;background:var(--bg, #fff)}.sidebar-slot{grid-row:1 / span 2}.topbar-slot{grid-column:2;position:sticky;top:0;z-index:20}.content-slot{grid-column:2;padding:1rem}.sidebar-backdrop{position:fixed;inset:0;background:#0f172a66;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:35}.sidebar-backdrop.is-visible{opacity:1;visibility:visible}@media (max-width: 1024px){.app-layout{grid-template-columns:1fr;grid-template-rows:var(--topbar-h) 1fr}.sidebar-slot{grid-row:1 / 3;position:fixed;inset:0 auto 0 0;width:min(80vw,320px);max-width:100%;transform:translate(-100%);transition:transform .22s ease;z-index:40}.sidebar-slot.is-open{transform:translate(0)}.topbar-slot{grid-column:1}.content-slot{grid-column:1;padding:.75rem}}.auth-layout{position:relative;min-height:100dvh;display:grid;place-items:center;background:var(--bg);color:var(--text)}.auth-controls{position:absolute;top:1rem;right:1.5rem;display:flex;align-items:center;gap:.6rem;z-index:30}.auth-container{width:380px;padding:2rem;border:1px solid var(--panel-border);border-radius:var(--radius-2, 12px);background:var(--panel);box-shadow:var(--shadow-1);transition:background .3s ease,color .3s ease}.auth-layout:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 80%),color-mix(in srgb,var(--color-accent),transparent 92%));z-index:0}@media (max-width: 420px){.auth-container{width:90%;padding:1.5rem}.auth-controls{right:.75rem;top:.75rem;gap:.4rem}}
