.toast-host[data-v-0275ea2a]{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}.toast-item[data-v-0275ea2a]{padding:10px 16px;border-radius:var(--r-lg);font-size:13px;font-weight:500;box-shadow:var(--ui-shadow-pop);animation:fadeInUp .22s ease;max-width:320px;background:var(--ui-chrome);color:var(--ui-on-chrome)}.toast-success[data-v-0275ea2a]{background:var(--ui-success);color:var(--ui-on-status)}.toast-error[data-v-0275ea2a]{background:var(--ui-danger);color:var(--ui-on-status)}.toast-warning[data-v-0275ea2a]{background:var(--ui-brand);color:var(--ui-on-brand)}.toast-actions[data-v-0275ea2a]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;pointer-events:auto}.toast-action[data-v-0275ea2a]{padding:4px 10px;font:inherit;font-size:12px;font-weight:600;color:inherit;cursor:pointer;background:transparent;border:1px solid currentColor;border-radius:var(--r-sm)}.toast-action[data-v-0275ea2a]:hover{background:var(--ui-scrim)}.toast-action[data-v-0275ea2a]:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(max-width:480px){.toast-host[data-v-0275ea2a]{left:12px;right:12px;bottom:12px}.toast-item[data-v-0275ea2a]{max-width:none}}@font-face{font-family:DM Sans;font-style:italic;font-weight:300;font-display:swap;src:url(/fonts/DMSans-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:300;font-display:swap;src:url(/fonts/DMSans-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/DMSans-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/DMSans-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/DMSans-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/DMSans-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/DMSans-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/DMSans-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/DMSans-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/DMSans-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/DMSans-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/DMSans-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:italic;font-weight:300;font-display:swap;src:url(/fonts/Fraunces-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:italic;font-weight:300;font-display:swap;src:url(/fonts/Fraunces-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/Fraunces-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/Fraunces-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Fraunces-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Fraunces-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Fraunces-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Fraunces-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ui-bg: #f6f5f0;--ui-surface: #ffffff;--ui-surface-2: #f0efe9;--ui-border: rgba(26,26,46,.1);--ui-border-strong: rgba(26,26,46,.18);--ui-text: #1a1a2e;--ui-text-2: #5a5a7a;--ui-text-3: #9999b3;--ui-chrome: #1a1a2e;--ui-chrome-2: #2d2d4e;--ui-on-chrome: #ffffff;--ui-on-chrome-muted: rgba(255,255,255,.6);--ui-on-chrome-45: rgba(255,255,255,.45);--ui-on-chrome-50: rgba(255,255,255,.5);--ui-on-chrome-70: rgba(255,255,255,.7);--ui-on-chrome-75: rgba(255,255,255,.75);--ui-on-chrome-15: rgba(255,255,255,.15);--ui-chrome-line: rgba(255,255,255,.06);--ui-chrome-chip: rgba(255,255,255,.12);--ui-chrome-outline: rgba(255,255,255,.3);--ui-chrome-wash: rgba(26,26,46,.05);--ui-scrim: rgba(0,0,0,.5);--ui-scrim-40: rgba(0,0,0,.4);--ui-scrim-45: rgba(0,0,0,.45);--ui-scrim-60: rgba(0,0,0,.6);--ui-scrim-85: rgba(0,0,0,.85);--ui-scrim-92: rgba(0,0,0,.92);--ui-chrome-scrim: rgba(26,26,46,.55);--ui-chrome-scrim-60: rgba(26,26,46,.6);--ui-chrome-sep: rgba(255,255,255,.18);--ui-paper: #fafaf8;--ui-shadow-menu: 0 4px 16px rgba(0,0,0,.12);--ui-shadow-lightbox: 0 8px 40px rgba(0,0,0,.6);--ui-photo-backdrop: #000000;--ui-qr-ink: #000000;--ui-shadow-pop: 0 4px 20px rgba(0,0,0,.15);--ui-shadow-banner: 0 4px 24px rgba(0,0,0,.2);--ui-shadow-pin: 0 2px 8px rgba(0,0,0,.3);--ui-shadow-live: 0 2px 12px rgba(99,102,241,.25);--ui-stamp: rgba(0,0,0,.22);--ui-brand: #e8a838;--ui-brand-soft: #f5d68a;--ui-brand-hover: color-mix(in srgb, var(--ui-brand) 91%, #000);--ui-on-brand: #1a1a2e;--ui-on-brand-light: #ffffff;--ui-focus-ring: color-mix(in srgb, var(--ui-brand) 15%, transparent);--ui-gold: #e8a838;--ui-amber: var(--ui-gold);--ui-gold-hover: #d4952a;--ui-violet: #534AB7;--ui-amber-wash: #FFF8DC;--ui-amber-cream: #FFFEF0;--ui-amber-tint: #FFF8EC;--ui-amber-ink: #7a4f00;--ui-amber-ink-2: #a06000;--ui-danger-line: #F09595;--ui-danger-strong: #c0392b;--ui-amber-pale: #FFF4DD;--ui-amber-line: #F0D78C;--ui-gold-deep: #c8a200;--ui-note-bg: #FFF3CD;--ui-preview-bg: #FFF4E0;--ui-preview-ink: #7A5600;--ui-note-ink: #856404;--ui-success-wash: #F0FBF7;--ui-pink-line: #F4C0D1;--ui-swatch-line: #cccccc;--ui-shadow-knob: 0 1px 3px rgba(0,0,0,.2);--ui-success: #1D9E75;--ui-info: #185FA5;--ui-alert: #E24B4A;--ui-danger: #e05c5c;--ui-danger-hover: #c04040;--ui-sage: #4a9e7f;--ui-on-status: #ffffff;--ui-role-admin: #534AB7;--ui-role-emcee: #c0392b;--ui-role-guide: #8e44ad;--ui-role-speaker: #16a085;--ui-role-staff: #d35400;--ui-role-attendee: #2980b9;--ui-track-default: #534AB7;--ui-tone-violet-bg: #EEEDFE;--ui-tone-violet-fg: #3C3489;--ui-tone-rust-bg: #FAECE7;--ui-tone-rust-fg: #712B13;--ui-tone-pink-bg: #FBEAF0;--ui-tone-pink-fg: #72243E;--ui-tone-green-bg: #E1F5EE;--ui-tone-green-fg: #085041;--ui-tone-amber-bg: #FAEEDA;--ui-tone-amber-fg: #633806;--ui-tone-blue-bg: #E6F1FB;--ui-tone-blue-fg: #0C447C;--ui-tone-olive-bg: #EAF3DE;--ui-tone-olive-fg: #27500A;--ui-tone-sky-bg: #E8F4FD;--ui-tone-sky-fg: #1565C0;--ui-tone-stone-bg: #F1EFE8;--ui-tone-stone-fg: #5F5E5A;--ui-tone-red-bg: #FCEBEB;--ui-tone-red-fg: #791F1F;--ui-badge-admin-bg: var(--ui-tone-violet-bg);--ui-badge-admin-fg: var(--ui-tone-violet-fg);--ui-badge-emcee-bg: var(--ui-tone-rust-bg);--ui-badge-emcee-fg: var(--ui-tone-rust-fg);--ui-badge-guide-bg: var(--ui-tone-pink-bg);--ui-badge-guide-fg: var(--ui-tone-pink-fg);--ui-badge-speaker-bg: var(--ui-tone-green-bg);--ui-badge-speaker-fg: var(--ui-tone-green-fg);--ui-badge-staff-bg: var(--ui-tone-amber-bg);--ui-badge-staff-fg: var(--ui-tone-amber-fg);--ui-badge-attendee-bg: var(--ui-tone-blue-bg);--ui-badge-attendee-fg: var(--ui-tone-blue-fg);--ui-badge-trainer-bg: var(--ui-tone-olive-bg);--ui-badge-trainer-fg: var(--ui-tone-olive-fg);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--t-fast: .12s ease;--t-mid: .22s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background:var(--ui-bg);color:var(--ui-text);line-height:1.6;min-height:100dvh}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.15rem}p{line-height:1.65}a{color:var(--ui-brand);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea,button{font-family:var(--font-body);font-size:14px}input[type=text],input[type=email],input[type=password],input[type=time],input[type=number],input[type=date],select,textarea{width:100%;padding:9px 12px;background:var(--ui-surface);border:1px solid var(--ui-border-strong);border-radius:var(--r-md);color:var(--ui-text);transition:border-color var(--t-fast),box-shadow var(--t-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ui-brand);box-shadow:0 0 0 3px var(--ui-focus-ring)}textarea{resize:vertical;min-height:80px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border:1px solid var(--ui-border-strong);border-radius:var(--r-md);background:var(--ui-surface);color:var(--ui-text);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--t-fast);white-space:nowrap;user-select:none}.btn:hover{background:var(--ui-surface-2);border-color:var(--ui-border-strong)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ui-chrome);color:var(--ui-on-chrome);border-color:var(--ui-chrome)}.btn-primary:hover{background:var(--ui-chrome-2);border-color:var(--ui-chrome-2)}.btn-accent{background:var(--ui-brand);color:var(--ui-on-brand);border-color:var(--ui-brand);font-weight:600}.btn-accent:hover{background:var(--ui-brand-hover)}.btn-danger{background:var(--ui-danger);color:var(--ui-on-status);border-color:var(--ui-danger)}.btn-danger:hover{background:var(--ui-danger-hover)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--ui-surface-2)}.btn-sm{padding:5px 12px;font-size:12px;border-radius:var(--r-sm)}.btn-xs{padding:3px 8px;font-size:11px;border-radius:var(--r-sm)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--r-lg);overflow:hidden}.card-body{padding:16px 18px}.card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--ui-border)}.card-title{font-size:14px;font-weight:600}.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap}.badge-admin{background:var(--ui-badge-admin-bg);color:var(--ui-badge-admin-fg)}.badge-emcee{background:var(--ui-badge-emcee-bg);color:var(--ui-badge-emcee-fg)}.badge-guide{background:var(--ui-badge-guide-bg);color:var(--ui-badge-guide-fg)}.badge-speaker{background:var(--ui-badge-speaker-bg);color:var(--ui-badge-speaker-fg)}.badge-staff{background:var(--ui-badge-staff-bg);color:var(--ui-badge-staff-fg)}.badge-attendee{background:var(--ui-badge-attendee-bg);color:var(--ui-badge-attendee-fg)}.badge-trainer{background:var(--ui-badge-trainer-bg);color:var(--ui-badge-trainer-fg)}.avatar{width:36px;height:36px;border-radius:50%;background:var(--ui-surface-2);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--ui-text-2);overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:28px;height:28px;font-size:11px}.avatar-lg{width:48px;height:48px;font-size:16px}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.app-topbar{position:sticky;top:0;z-index:40;background:var(--ui-chrome);color:var(--ui-on-chrome);padding:0 20px;height:56px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--ui-chrome-line)}.app-brand{font-family:var(--font-display);font-size:1.25rem;color:var(--ui-brand);font-style:italic;font-weight:300;letter-spacing:-.02em}.app-body{display:flex;flex:1;overflow:hidden}.app-sidebar{width:220px;flex-shrink:0;background:var(--ui-surface);border-right:1px solid var(--ui-border);overflow-y:auto;padding:12px 0;position:sticky;top:56px;height:calc(100dvh - 56px);align-self:flex-start}.app-main{flex:1;overflow-y:auto;padding:20px 40px;height:calc(100dvh - 56px);max-width:900px;margin:0 auto;box-sizing:border-box}.nav-group{padding:10px 0 4px}.nav-group+.nav-group{border-top:1px solid var(--ui-border)}.nav-label{font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--ui-text-3);text-transform:uppercase;padding:0 16px 4px}.nav-link{display:flex;align-items:center;gap:9px;padding:7px 16px;font-size:13px;font-weight:400;color:var(--ui-text-2);cursor:pointer;border-left:2px solid transparent;transition:all var(--t-fast);user-select:none}.nav-link:hover{background:var(--ui-surface-2);color:var(--ui-text)}.nav-link.active{background:var(--ui-chrome-wash);color:var(--ui-chrome);border-left-color:var(--ui-brand);font-weight:500}.nav-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.nav-unread{margin-left:auto;background:var(--ui-danger);color:var(--ui-on-status);font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px}.ann-banner{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:50;min-width:280px;max-width:480px;width:90%;background:var(--ui-chrome);color:var(--ui-on-chrome);border-radius:var(--r-lg);padding:12px 16px;display:flex;align-items:flex-start;gap:10px;box-shadow:var(--ui-shadow-banner);animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ann-banner.urgent{background:var(--ui-danger)}.ann-banner.info{background:var(--ui-info)}.toast{position:fixed;bottom:20px;right:20px;z-index:60;background:var(--ui-chrome);color:var(--ui-on-chrome);padding:10px 16px;border-radius:var(--r-lg);font-size:13px;box-shadow:var(--ui-shadow-pop);animation:fadeInUp .25s ease;pointer-events:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.spinner{width:24px;height:24px;border:2px solid var(--ui-border-strong);border-top-color:var(--ui-brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:12px;color:var(--ui-text-3);font-size:13px}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-label{font-size:13px;font-weight:500;color:var(--ui-text-2)}.form-row{display:flex;gap:12px;flex-wrap:wrap}.form-row>*{flex:1;min-width:140px}.form-error{font-size:12px;color:var(--ui-danger);margin-top:2px}.form-hint{font-size:12px;color:var(--ui-text-3);margin-top:2px}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-muted{color:var(--ui-text-3)}.text-secondary{color:var(--ui-text-2)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-full{width:100%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:768px){.app-sidebar{display:none}.app-main{padding:12px 12px calc(80px + env(safe-area-inset-bottom))}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--ui-surface);border-top:1px solid var(--ui-border);padding-bottom:env(safe-area-inset-bottom)}.mobile-nav-scroll{display:flex;width:100%}.mobile-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:6px 8px;font-size:9px;color:var(--ui-text-3);cursor:pointer;gap:2px;white-space:nowrap;overflow:hidden}.mobile-nav-item.active{color:var(--ui-brand)}.mobile-nav-item svg{width:18px;height:18px}}@media(min-width:769px){.mobile-nav{display:none}}
