:root{--gv-coral-600:#b94f31;--gv-coral-400:#e27a57;--gv-coral-200:#f3a98c;--gv-coral-050:#fbe7df;--gv-coral-900:#8f3a22;--gv-coral-shadow:#3a241c;--gv-evergreen-600:#5e7a66;--gv-evergreen-400:#8fb49a;--gv-evergreen-200:#a6cbb2;--gv-evergreen-050:#e4ece5;--gv-evergreen-900:#3e5947;--gv-evergreen-shadow:#26302a;--gv-cream:#faf6ef;--gv-surface-light:#fffdf9;--gv-soft-light:#f3ece2;--gv-line-light:#e9dfd3;--gv-ink:#2b231e;--gv-muted:#6f625a;--gv-night-000:#121010;--gv-night-050:#1b1714;--gv-night-100:#241f1b;--gv-night-150:#2c2621;--gv-night-200:#3a322b;--gv-night-ink:#f3ece3;--gv-night-muted:#b5a99e;--gv-on-coral-dark:#241109;--gv-on-evergreen-dark:#16221b;--gv-white:#fff;--gv-danger-600:#9e3a31;--gv-danger-500:#b8443a;--gv-amber-600:#9b5d12;--gv-amber-050:#f7e8cf;--gv-linen:#f6f3ec;--gv-slate-ink:#282e36;--gv-slate-muted:#646a72;--gv-sage-600:#6a8577;--gv-sage-050:#e5ece7;--color-bg:var(--gv-cream);--color-surface:var(--gv-surface-light);--color-soft:var(--gv-soft-light);--color-line:var(--gv-line-light);--color-text:var(--gv-ink);--color-text-muted:var(--gv-muted);--color-accent:var(--gv-coral-600);--color-accent-soft:var(--gv-coral-050);--color-accent-text:var(--gv-coral-900);--color-on-accent:var(--gv-white);--color-support:var(--gv-evergreen-600);--color-support-soft:var(--gv-evergreen-050);--color-support-text:var(--gv-evergreen-900);--color-on-support:var(--gv-white);--color-danger-text:var(--gv-danger-600);--color-danger-border:var(--gv-danger-500);--color-focus:var(--gv-coral-600);--focus-ring:3px solid var(--color-focus);--focus-offset:2px;--font-heading:"Fredoka", system-ui, sans-serif;--font-body:"Source Sans 3", system-ui, sans-serif;--font-weight-heading:500;--font-weight-body:400;--font-weight-strong:600;--font-size-display:2.5rem;--font-size-heading:1.75rem;--font-size-title:1.25rem;--font-size-body:1rem;--font-size-label:.875rem;--font-size-caption:.8125rem;--line-height-display:1.1;--line-height-heading:1.2;--line-height-title:1.3;--line-height-body:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-1:0 1px 2px #2b231e0f;--shadow-2:0 8px 24px #2b231e1a, 0 1px 2px #2b231e0f;--control-height:44px;--control-height-lg:48px}:root[data-theme=dark]{--color-bg:var(--gv-night-050);--color-surface:var(--gv-night-100);--color-soft:var(--gv-night-150);--color-line:var(--gv-night-200);--color-text:var(--gv-night-ink);--color-text-muted:var(--gv-night-muted);--color-accent:var(--gv-coral-400);--color-accent-soft:var(--gv-coral-shadow);--color-accent-text:var(--gv-coral-200);--color-on-accent:var(--gv-on-coral-dark);--color-support:var(--gv-evergreen-400);--color-support-soft:var(--gv-evergreen-shadow);--color-support-text:var(--gv-evergreen-200);--color-on-support:var(--gv-on-evergreen-dark);--color-danger-text:#f0a79e;--color-danger-border:#c4645b;--color-focus:#e9906f;--shadow-1:0 1px 2px #00000080;--shadow-2:0 10px 28px #0000008c, 0 1px 2px #00000080}@media (prefers-color-scheme:dark){:root[data-theme=system]{--color-bg:var(--gv-night-050);--color-surface:var(--gv-night-100);--color-soft:var(--gv-night-150);--color-line:var(--gv-night-200);--color-text:var(--gv-night-ink);--color-text-muted:var(--gv-night-muted);--color-accent:var(--gv-coral-400);--color-accent-soft:var(--gv-coral-shadow);--color-accent-text:var(--gv-coral-200);--color-on-accent:var(--gv-on-coral-dark);--color-support:var(--gv-evergreen-400);--color-support-soft:var(--gv-evergreen-shadow);--color-support-text:var(--gv-evergreen-200);--color-on-support:var(--gv-on-evergreen-dark);--color-focus:#e9906f}}body{background:var(--color-bg);color:var(--color-text);font:var(--font-weight-body) var(--font-size-body) / var(--line-height-body) var(--font-body);text-wrap:pretty;margin:0}h1,h2,h3{font-family:var(--font-heading);font-weight:var(--font-weight-heading);margin:0}a{color:var(--color-accent-text)}a:hover{color:var(--color-accent)}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}*,:before,:after{box-sizing:border-box}html,body{height:100%;padding:0;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{grid-template-columns:var(--sidebar-width,240px) 1fr;grid-template-rows:56px 1fr;width:100%;height:100vh;display:grid}.app-header{padding:0 var(--space-6);border-bottom:1px solid var(--color-line);background:var(--color-bg);z-index:100;grid-area:1/1/auto/-1;justify-content:space-between;align-items:center;height:56px;display:flex;position:sticky;top:0}.app-sidebar{border-right:1px solid var(--color-line);padding:var(--space-4) var(--space-3) var(--space-4) var(--space-4);background:var(--color-bg);gap:var(--space-1);scrollbar-width:thin;scrollbar-color:var(--color-line) transparent;flex-direction:column;grid-area:2/1;display:flex;position:relative;overflow-y:auto}.app-main{padding:var(--space-6) var(--space-8);background:var(--color-bg);overflow-wrap:break-word;scrollbar-width:none;grid-area:2/2;min-width:0;overflow:hidden auto}.app-main::-webkit-scrollbar{display:none}@media (width<=768px){.app-shell{grid-template-columns:1fr}.app-sidebar{display:none}.app-main{grid-column:1}}.t-display{font-family:var(--font-heading);font-size:var(--font-size-display);line-height:var(--line-height-display);font-weight:var(--font-weight-heading);letter-spacing:-.02em;color:var(--color-text)}.t-h1{font-family:var(--font-heading);font-size:var(--font-size-heading);line-height:var(--line-height-heading);font-weight:var(--font-weight-heading);letter-spacing:-.012em;color:var(--color-text)}.t-h2{font-family:var(--font-heading);font-size:var(--font-size-title);line-height:var(--line-height-title);font-weight:var(--font-weight-heading);letter-spacing:-.008em;color:var(--color-text)}.t-body{font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:var(--font-weight-body);color:var(--color-text)}.t-ui{font-size:var(--font-size-label);line-height:var(--line-height-title);font-weight:var(--font-weight-body);color:var(--color-text)}.t-caption{font-size:var(--font-size-caption);line-height:var(--line-height-title);font-weight:var(--font-weight-body);color:var(--color-text-muted)}.t-label{font-size:var(--font-size-caption);line-height:var(--line-height-title);font-weight:var(--font-weight-strong);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.tx-secondary,.tx-tertiary{color:var(--color-text-muted)}.tx-accent{color:var(--color-accent-text)}.row{align-items:center;gap:var(--space-3);display:flex}.col{gap:var(--space-3);flex-direction:column;display:flex}.between{justify-content:space-between}.center{justify-content:center;align-items:center;display:flex}.wrap{flex-wrap:wrap}.gap-0{gap:0}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.surface{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-6)}.surface-elevated{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-1)}.divider{background:var(--color-line);border:0;height:1px;margin:0}.skeleton{background:var(--color-soft);border-radius:var(--radius-sm);animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.v-field{gap:var(--space-1);flex-direction:column;display:flex}.v-field-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-body);color:var(--color-text-muted)}.v-field-input{height:var(--control-height);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--font-size-body);color:var(--color-text);outline:none;align-items:center;width:100%;display:flex}.v-field-input:hover{border-color:var(--color-accent)}.v-field-input:focus,.v-field-input[data-focused]{border-color:var(--color-focus)}.v-field-input[data-focus-visible]{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.v-field-input::placeholder{color:var(--color-text-muted)}.v-field-input[data-disabled]{opacity:.5;cursor:not-allowed}.v-field-input[data-invalid]{border-color:var(--color-danger-border)}.v-field-error{font-size:var(--font-size-caption);color:var(--color-danger-text)}.v-btn{align-items:center;gap:var(--space-2);padding:0 var(--space-4);height:var(--control-height);font-family:var(--font-body);font-size:var(--font-size-label);font-weight:var(--font-weight-strong);letter-spacing:-.005em;border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;outline:none;line-height:1;text-decoration:none;display:inline-flex}.v-btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.v-btn--primary{background:var(--color-accent);color:var(--color-on-accent)}.v-btn--primary:hover{filter:brightness(1.08)}.v-btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-line)}.v-btn--secondary:hover{background:var(--color-soft)}.v-btn--ghost{color:var(--color-text-muted);background:0 0}.v-btn--ghost:hover{background:var(--color-soft);color:var(--color-text)}.v-btn--danger{background:var(--color-danger-border);color:var(--gv-white)}.v-btn--danger:hover{filter:brightness(1.06)}.v-btn[data-disabled],.v-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.v-icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;outline:none;justify-content:center;align-items:center;display:inline-flex}.v-icon-btn:hover{background:var(--color-soft);color:var(--color-text)}.v-icon-btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.v-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--space-4);background:#0006;justify-content:center;align-items:center;animation:.18s v-overlay-fade-in;display:flex;position:fixed;inset:0}@keyframes v-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes v-overlay-fade-out{0%{opacity:1}to{opacity:0}}.v-modal{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);outline:none;width:100%;max-height:calc(100vh - 64px);animation:.18s v-overlay-fade-in;display:flex;overflow:hidden}.v-modal-dialog{padding:var(--space-6);outline:none;flex-direction:column;flex:1;min-width:0;display:flex}.v-modal-title{font-size:var(--font-size-title);font-weight:var(--font-weight-heading);line-height:var(--line-height-title);color:var(--color-text);margin:0 0 var(--space-4) 0}.v-tabs{flex-direction:column;display:flex}.v-tabs-list{border-bottom:1px solid var(--color-line);gap:0;display:flex;overflow:auto hidden}.v-tabs-tab{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--font-size-label);font-weight:var(--font-weight-body);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;outline:none;margin-bottom:-1px;display:inline-flex}.v-tabs-tab:hover{color:var(--color-text)}.v-tabs-tab[data-selected]{color:var(--color-text);font-weight:var(--font-weight-strong);border-bottom-color:var(--color-accent)}.v-tabs-tab[data-focus-visible]{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.v-tabs-panel{padding-top:var(--space-4);outline:none}.v-tooltip{background:var(--gv-ink);color:var(--gv-cream);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--font-size-caption);box-shadow:var(--shadow-2);z-index:1100;border:none;max-width:240px;animation:.12s v-overlay-fade-in}:root[data-theme=dark] .v-tooltip{background:var(--gv-night-ink);color:var(--gv-night-050)}
