.shell[data-v-2358d426]{min-height:100%}.sidebar[data-v-2358d426]{display:none}.content[data-v-2358d426]{padding:var(--space-8) var(--page-pad) var(--space-8);max-width:var(--content-max)}@media(min-width:760px){.shell[data-v-2358d426]{display:grid;grid-template-columns:var(--sidebar-w) 1fr}.sidebar[data-v-2358d426]{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-3)}}.brand[data-v-2358d426]{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);padding:var(--space-2) var(--space-3) var(--space-5)}nav[data-v-2358d426]{display:flex;flex-direction:column;gap:2px}.nav-item[data-v-2358d426]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.nav-item[data-v-2358d426]:hover{color:var(--color-text);background:var(--color-surface)}.nav-item.router-link-active[data-v-2358d426]{color:var(--color-accent);background:var(--color-accent-soft)}.foot[data-v-2358d426]{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.week[data-v-2358d426]{font-size:var(--text-xs);color:var(--color-text-tertiary)}.logout[data-v-2358d426]{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary);transition:color var(--dur-fast) var(--ease-standard)}.logout[data-v-2358d426]:hover{color:var(--color-danger)}.tabbar[data-v-2358d426]{display:none;position:fixed;bottom:0;left:0;right:0;justify-content:space-around;background:color-mix(in srgb,var(--color-canvas) 90%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--color-border);padding:var(--space-2) 0 calc(var(--space-2) + env(safe-area-inset-bottom));z-index:var(--z-nav)}.tab[data-v-2358d426]{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;padding:var(--space-1) 2px;color:var(--color-text-tertiary);font-size:var(--text-2xs);font-weight:var(--weight-medium);transition:color var(--dur-fast) var(--ease-standard)}.tab.router-link-active[data-v-2358d426]{color:var(--color-accent)}@media(max-width:759px){.tabbar[data-v-2358d426]{display:flex}.content[data-v-2358d426]{padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) calc(74px + env(safe-area-inset-bottom))}}:root{--color-canvas: #0b0c0e;--color-surface: #131417;--color-surface-hover: #17191d;--color-raised: #191b1f;--color-border-subtle: #1c1f23;--color-border: #23262b;--color-border-strong: #2e3238;--color-text: #e6e7e9;--color-text-secondary: #878c94;--color-text-tertiary: #565b63;--color-text-disabled: #3c4046;--color-accent: #2dd4bf;--color-accent-hover: #4ee0ce;--color-accent-soft: rgba(45, 212, 191, .1);--color-accent-border: rgba(45, 212, 191, .35);--color-on-accent: #061412;--color-danger: #e5534b;--color-danger-soft: rgba(229, 83, 75, .12);--color-success: var(--color-accent);--color-warning: #e3b341;--color-focus-ring: var(--color-accent-soft);--font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1rem;--text-xl: 1.375rem;--text-2xl: 1.5rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.45;--tracking-tight: -.02em;--tracking-normal: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-full: 999px;--border-hairline: 1px;--shadow-overlay: 0 10px 34px rgba(0, 0, 0, .55);--dur-fast: .12s;--dur-med: .18s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--z-nav: 10;--z-overlay: 100;--z-toast: 200;--sidebar-w: 220px;--content-max: 1040px;--page-pad: 32px;--bp-md: 760px;--bg: var(--color-canvas);--surface: var(--color-surface);--surface-2: var(--color-surface-hover);--line: var(--color-border);--line-strong: var(--color-border-strong);--fg: var(--color-text);--fg-2: var(--color-text-secondary);--fg-3: var(--color-text-tertiary);--accent: var(--color-accent);--accent-fg: var(--color-on-accent);--accent-soft: var(--color-accent-soft);--accent-line: var(--color-accent-border);--danger: var(--color-danger);--radius: var(--radius-md);--sans: var(--font-sans);--mono: var(--font-mono);--ease: var(--ease-standard)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}::selection{background:var(--color-accent-soft)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}.t-display{font-size:var(--text-2xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.t-h1{font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.t-h2{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}.t-title{font-size:var(--text-md);font-weight:var(--weight-medium)}.t-body{font-size:var(--text-base)}.t-label{font-size:var(--text-xs);color:var(--color-text-secondary)}.t-meta{font-size:var(--text-sm);color:var(--color-text-secondary)}.t-caption{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.muted{color:var(--color-text-secondary)}.dim{color:var(--color-text-tertiary)}.row{display:flex;align-items:center}.spread{justify-content:space-between}.hr{height:1px;background:var(--color-border);border:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full);border:3px solid var(--color-canvas)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:34px;padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.btn:hover{border-color:var(--color-text-tertiary)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);font-weight:var(--weight-semibold)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-ghost{border-color:transparent}.btn-ghost:hover{background:var(--color-surface-hover);border-color:transparent}.btn-danger:hover{border-color:var(--color-danger);color:var(--color-danger)}.btn-sm{height:28px;padding:0 var(--space-3);font-size:var(--text-xs)}.btn.is-loading{color:transparent;pointer-events:none;position:relative}.btn.is-loading:after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);color:var(--color-on-accent);animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.icon-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.icon-btn.sm{width:24px;height:24px}.icon-btn.danger:hover{color:var(--color-danger)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field>label{font-size:var(--text-xs);color:var(--color-text-secondary)}input,select,textarea{height:36px;padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--text-base);width:100%;transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-focus-ring)}input[aria-invalid=true]{border-color:var(--color-danger)}input:disabled,select:disabled{opacity:.5}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--space-6);background-image:linear-gradient(45deg,transparent 50%,var(--color-text-secondary) 50%),linear-gradient(135deg,var(--color-text-secondary) 50%,transparent 50%);background-position:calc(100% - 15px) center,calc(100% - 10px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.tag{font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);letter-spacing:.02em}.badge{display:inline-flex;align-items:center;font-size:var(--text-2xs);font-weight:var(--weight-medium);padding:1px var(--space-2);border-radius:var(--radius-sm);color:var(--color-accent);border:1px solid var(--color-accent-border)}.badge-danger{color:var(--color-danger);border-color:var(--color-danger)}.badge-muted{color:var(--color-text-secondary);border-color:var(--color-border-strong)}.segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.segmented>button{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);transition:color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.segmented>button:hover{color:var(--color-text)}.segmented>button.is-active{background:var(--color-surface);color:var(--color-text)}.checkbox{width:18px;height:18px;border:1.5px solid var(--color-border-strong);border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--color-on-accent);transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.checkbox:hover{border-color:var(--color-accent)}.checkbox.is-checked{background:var(--color-accent);border-color:var(--color-accent)}.empty{color:var(--color-text-tertiary);font-size:var(--text-sm);padding:var(--space-6) 0}
