:root{color-scheme:dark;--color-brand: #5aa7ff;--color-brand-strong: #8cc1ff;--color-brand-muted: color-mix(in srgb, var(--color-brand) 18%, transparent);--color-brand-soft: color-mix(in srgb, var(--color-brand) 9%, transparent);--color-accent: #38d6b4;--color-accent-soft: color-mix(in srgb, var(--color-accent) 13%, transparent);--color-success: #54d18f;--color-success-soft: color-mix(in srgb, var(--color-success) 13%, transparent);--color-warning: #e5b454;--color-warning-soft: color-mix(in srgb, var(--color-warning) 14%, transparent);--color-danger: #ff6b7a;--color-danger-soft: color-mix(in srgb, var(--color-danger) 13%, transparent);--color-info: #73b8ff;--color-info-soft: color-mix(in srgb, var(--color-info) 13%, transparent);--surface-page: #090b10;--surface-shell: #0f1218;--surface-canvas: #11151d;--surface-rail: #141922;--surface-panel: #171c25;--surface-panel-raised: #1d2430;--surface-control: #10141c;--surface-control-hover: #1a212c;--surface-hover: #202734;--surface-selected: #172b43;--surface-overlay: rgb(5 7 11 / 68%);--surface-glass: rgb(13 17 24 / 88%);--surface-popover: #191f2a;--surface-line: rgb(255 255 255 / 6%);--text-main: #eef2f7;--text-subtle: #aab3c2;--text-dim: #738092;--text-muted: var(--text-dim);--text-inverse: #ffffff;--border-subtle: rgb(255 255 255 / 8%);--border-strong: rgb(255 255 255 / 16%);--border-danger: color-mix(in srgb, var(--color-danger) 36%, transparent);--shadow-xs: 0 1px 2px rgb(0 0 0 / 24%);--shadow-sm: 0 4px 14px rgb(0 0 0 / 22%);--shadow-md: 0 16px 38px rgb(0 0 0 / 26%);--shadow-lg: 0 28px 70px rgb(0 0 0 / 38%);--shadow-focus: 0 0 0 3px color-mix(in srgb, var(--color-brand) 24%, transparent);--shadow-glow: 0 14px 34px color-mix(in srgb, var(--color-brand) 12%, transparent);--shadow-brand: 0 10px 28px color-mix(in srgb, var(--color-brand) 18%, transparent);--shadow-brand-strong: 0 14px 34px color-mix(in srgb, var(--color-brand) 24%, transparent);--shadow-nav-active: inset 0 0 0 var(--border-width) color-mix(in srgb, var(--color-brand) 28%, transparent);--calendar-todo: #5aa7ff;--calendar-debt: #ff6b7a;--calendar-event: #54d18f;--calendar-orange: #e5b454;--calendar-purple: #b59cff;--calendar-cyan: #38d6b4;--cal-todo: var(--calendar-todo);--cal-debt: var(--calendar-debt);--cal-event: var(--calendar-event);--radius-xs: 3px;--radius-sm: 5px;--radius-md: 7px;--radius-lg: 8px;--radius-xl: 10px;--radius-round: 50%;--radius-pill: 999px;--border-width: 1px;--border-width-strong: 2px;--border-width-accent: 3px;--caret-size: 4px;--hairline: 1px;--space-half: 2px;--space-0-75: 3px;--space-1: 4px;--space-1-25: 5px;--space-1-5: 6px;--space-1-75: 7px;--space-2: 8px;--space-2-25: 9px;--space-2-5: 10px;--space-2-75: 11px;--space-3: 12px;--space-3-25: 13px;--space-3-5: 14px;--space-4: 16px;--space-4-5: 18px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-15: 60px;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "Cascadia Code", Consolas, monospace;--font-size-2xs: .6rem;--font-size-xs: .65rem;--font-size-xs-plus: .66rem;--font-size-sm: .68rem;--font-size-sm-plus: .7rem;--font-size-caption: .72rem;--font-size-caption-plus: .74rem;--font-size-body-xs: .75rem;--font-size-body-sm: .76rem;--font-size-body: .8rem;--font-size-body-plus: .82rem;--font-size-body-lg: .84rem;--font-size-control: .85rem;--font-size-label: .88rem;--font-size-base: .9rem;--font-size-base-plus: .92rem;--font-size-lg: .95rem;--font-size-lg-plus: .98rem;--font-size-xl: 1rem;--font-size-title-xs: 1.05rem;--font-size-title-sm: 1.08rem;--font-size-title: 1.1rem;--font-size-title-md: 1.15rem;--font-size-title-lg: 1.2rem;--font-size-title-xl: 1.25rem;--font-size-display-xs: 1.32rem;--font-size-display-sm: 1.4rem;--font-size-display-md: 1.45rem;--font-size-display-lg: 1.52rem;--font-size-display-xl: 1.55rem;--font-size-display-2xl: 1.58rem;--font-size-display: 2rem;--font-size-empty: 3rem;--font-weight-regular: 560;--font-weight-medium: 600;--font-weight-semibold: 650;--font-weight-nav: 680;--font-weight-bold: 700;--font-weight-button: 720;--font-weight-strong: 760;--font-weight-heading: 780;--font-weight-heavy: 800;--font-weight-display: 820;--font-weight-hero: 850;--font-weight-hero-strong: 860;--font-weight-hero-max: 880;--line-height-none: 1;--line-height-tight: 1.12;--line-height-title: 1.18;--line-height-heading: 1.2;--line-height-compact: 1.35;--line-height-snug: 1.45;--line-height-base: 1.5;--line-height-body: 1.55;--line-height-relaxed: 1.6;--line-height-card: 1.65;--line-height-copy: 1.75;--line-height-hero: 1.85;--letter-spacing-reset: 0;--opacity-hidden: 0;--opacity-muted: .45;--opacity-disabled: .5;--opacity-soft: .55;--opacity-subtle: .58;--opacity-secondary: .6;--opacity-visible-muted: .65;--opacity-emphasis: .86;--opacity-visible: 1;--control-height-sm: 28px;--control-height-md: 32px;--control-height-lg: 36px;--control-height-xl: 40px;--icon-size-2xs: 6px;--icon-size-xs: 8px;--icon-size-sm: 10px;--icon-size-md: 16px;--icon-size-lg: 24px;--icon-size-xl: 32px;--icon-size-2xl: 40px;--icon-size-3xl: 48px;--icon-size-empty: 60px;--icon-size-inline: 18px;--size-full: 100%;--viewport-width: 100vw;--viewport-height: 100vh;--viewport-center: 50%;--viewport-dialog-gutter: 32px;--content-narrow-width: 720px;--content-readable-width: 760px;--content-medium-width: 500px;--content-wide-width: 560px;--background-depth: 340px;--todo-title-width: 440px;--todo-detail-indent: 52px;--modal-width-sm: 420px;--modal-width-md: 480px;--modal-width-lg: 500px;--modal-max-height: 90vh;--panel-width-sm: 280px;--panel-width-md: 300px;--tooltip-width: 340px;--tooltip-mobile-width: 280px;--table-col-xs: 60px;--table-col-sm: 100px;--table-col-md: 120px;--table-col-lg: 150px;--table-scroll-min-md: 700px;--table-scroll-min-lg: 900px;--control-height-2xs: 3px;--control-height-xs: 34px;--control-height-compact: 38px;--control-height-topbar: 56px;--control-height-avatar: 42px;--switch-width: 44px;--toolbar-date-width: 160px;--filter-field-min-width: 180px;--input-field-min-width: 220px;--empty-min-height-sm: 160px;--empty-min-height-md: 180px;--empty-min-height-lg: 200px;--card-min-height-sm: 112px;--card-min-height-md: 154px;--card-min-height-lg: 176px;--card-min-height-xl: 210px;--calendar-cell-min-height: 108px;--calendar-cell-mobile-height: 70px;--calendar-cell-compact-height: 50px;--calendar-hour-height: 60px;--calendar-form-min-height: 80px;--auth-panel-min-height: 440px;--dashboard-hero-min-height: 340px;--chart-height-sm: 140px;--chart-height-md: 160px;--chart-bar-min-height: 2px;--chart-label-width: 80px;--job-market-height-offset: 88px;--job-market-min-height: 620px;--job-market-metric-height: 52px;--job-market-label-width: 74px;--job-market-mobile-height: 60vh;--job-market-mobile-max-height: 42vh;--sidebar-collapsed-width: 82px;--document-viewer-max-height: 800px;--grid-aside-width: 240px;--grid-card-width-sm: 240px;--grid-card-width-md: 260px;--grid-card-width-lg: 280px;--grid-card-width-xl: 300px;--grid-card-width-2xl: 340px;--calendar-time-column-width: 60px;--calendar-time-column-mobile-width: 40px;--layout-main-ratio: 1.2fr;--layout-aside-ratio: .8fr;--layout-data-aside-ratio: .48fr;--layout-finance-main-ratio: 2fr;--motion-lift-sm: -1px;--motion-lift-md: -2px;--motion-shift-xs: 2px;--motion-shift-sm: 3px;--motion-enter-sm: 6px;--motion-enter-md: 10px;--motion-enter-lg: 12px;--motion-tooltip-offset: 4px;--motion-toggle-offset: 20px;--motion-rest: 0;--motion-scale-in-start: .98;--motion-scale-full: 1;--brightness-hover: 1.05;--blur-none: 0;--blur-soft: 6px;--blur-medium: 12px;--blur-strong: 16px;--blur-protected: 4px;--transform-center: translate(-50%, -50%);--transform-center-x: translateX(-50%);--duration-pop: .18s;--duration-reveal: .2s;--duration-reveal-slow: .22s;--duration-chart: .5s;--duration-toast: .25s;--duration-page: .3s;--duration-page-slow: .35s;--duration-spinner: .8s;--transition-fast: .14s ease;--transition-base: .2s ease;--transition-slow: .28s ease;--transition-pop: var(--duration-pop) ease;--transition-reveal: var(--duration-reveal) ease;--transition-reveal-slow: var(--duration-reveal-slow) ease;--transition-chart: var(--duration-chart) ease;--transition-toast: var(--duration-toast) ease;--transition-page: var(--duration-page) ease;--transition-page-slow: var(--duration-page-slow) ease;--transition-spinner: var(--duration-spinner) linear;--z-base: 1;--z-floating: 10;--z-sticky: 50;--z-topbar: 600;--z-sidebar: 800;--z-modal: 2000;--z-toast: 3000;--sidebar-width: 268px;--topbar-height: 70px;--navbar-height: var(--topbar-height);--footer-height: 44px;--max-content-width: 1380px;--primary: var(--color-brand);--primary-light: var(--color-brand-strong);--primary-dark: var(--color-brand);--secondary: var(--color-accent);--accent: var(--color-warning);--success: var(--color-success);--warning: var(--color-warning);--error: var(--color-danger);--bg-primary: var(--surface-page);--bg-secondary: var(--surface-rail);--bg-tertiary: var(--surface-hover);--bg-card: var(--surface-panel);--bg-hover: var(--surface-hover);--text-primary: var(--text-main);--text-secondary: var(--text-subtle);--border-color: var(--border-subtle)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--surface-page)}body{min-height:var(--viewport-height);background:radial-gradient(circle at 18% -14%,var(--color-brand-soft),transparent 28%),linear-gradient(180deg,var(--surface-shell) 0,var(--surface-page) var(--background-depth)),var(--surface-page);color:var(--text-main);font-family:var(--font-sans);line-height:var(--line-height-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:var(--viewport-height)}a{color:var(--color-brand);text-decoration:none;transition:color var(--transition-fast),opacity var(--transition-fast)}a:hover{color:var(--color-brand-strong)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed}input,select,textarea{min-width:0}::selection{background:var(--color-brand-muted);color:var(--text-main)}::-webkit-scrollbar{width:var(--icon-size-sm);height:var(--icon-size-sm)}::-webkit-scrollbar-track{background:var(--surface-page)}::-webkit-scrollbar-thumb{background:var(--surface-panel-raised);border:var(--border-width-strong) solid var(--surface-page);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--surface-hover)}@keyframes fadeIn{0%{opacity:var(--opacity-hidden);transform:translateY(var(--motion-enter-sm))}to{opacity:var(--opacity-visible);transform:translateY(var(--motion-rest))}}@keyframes fadeInUp{0%{opacity:var(--opacity-hidden);transform:translateY(var(--motion-enter-lg))}to{opacity:var(--opacity-visible);transform:translateY(var(--motion-rest))}}@keyframes scaleIn{0%{opacity:var(--opacity-hidden);transform:scale(var(--motion-scale-in-start))}to{opacity:var(--opacity-visible);transform:scale(var(--motion-scale-full))}}@keyframes toastIn{0%{opacity:var(--opacity-hidden);transform:var(--transform-center-x) translateY(var(--motion-enter-md))}to{opacity:var(--opacity-visible);transform:var(--transform-center-x) translateY(var(--motion-rest))}}@keyframes spin{to{transform:rotate(360deg)}}.btn-primary,.btn-outline,.btn-secondary,.cp-btn,.cp-popup-btn,.page-btn{min-height:var(--control-height-lg);border-radius:var(--radius-md)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2-25) var(--space-4);background:var(--color-brand);color:var(--text-inverse);font-size:var(--font-size-label);font-weight:var(--font-weight-button);box-shadow:var(--shadow-brand);transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),opacity var(--transition-fast)}.btn-primary:hover{transform:translateY(var(--motion-lift-sm));background:var(--color-brand-strong);color:var(--surface-page);box-shadow:var(--shadow-brand-strong)}.btn-primary:disabled{opacity:var(--opacity-soft);transform:none;box-shadow:none}.btn-outline,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2-25) var(--space-4);background:var(--surface-control);color:var(--text-subtle);border:var(--border-width) solid var(--border-subtle);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);box-shadow:var(--shadow-xs);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.btn-outline:hover,.btn-secondary:hover{color:var(--text-main);border-color:var(--border-strong);background:var(--surface-control-hover);box-shadow:var(--shadow-sm)}.btn-sm{min-height:var(--control-height-md);padding:var(--space-1-75) var(--space-3);font-size:var(--font-size-body)}.auth-panel{display:flex;align-items:center;justify-content:center;min-height:var(--auth-panel-min-height);padding:var(--space-6)}.auth-card{position:relative;overflow:hidden;width:min(var(--size-full),var(--modal-width-sm));padding:var(--space-10) var(--space-8);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center}.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:var(--control-height-2xs);background:linear-gradient(90deg,var(--color-brand),var(--color-accent));pointer-events:none}.auth-card>*{position:relative}.auth-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-size-3xl);height:var(--icon-size-3xl);margin-bottom:var(--space-4);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-control);color:var(--color-brand);font-size:var(--font-size-display-xl)}.auth-card h2{margin-bottom:var(--space-2);color:var(--text-main);font-size:var(--font-size-title-xl);font-weight:var(--font-weight-heavy)}.auth-desc{margin-bottom:var(--space-6);color:var(--text-subtle);font-size:var(--font-size-base)}.auth-form{display:flex;flex-direction:column;gap:var(--space-3)}.auth-error{margin-top:var(--space-3);padding:var(--space-2-5) var(--space-3-5);background:var(--color-danger-soft);border:var(--border-width) solid var(--border-danger);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-size-control);font-weight:var(--font-weight-semibold)}.form-input,.auth-input,.fp-input-sm,.fp-select-sm,.file-search-input,.tp-filter-select,.tp-filter-input,.fp-form-row input,.fp-form-row select,.fp-form-row textarea,.cp-form-group input[type=text],.cp-form-group input[type=date],.cp-form-group input[type=datetime-local],.cp-form-group textarea,.cp-form-group select{background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-main);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.form-input:focus,.auth-input:focus,.fp-input-sm:focus,.fp-select-sm:focus,.file-search-input:focus,.tp-filter-select:focus,.tp-filter-input:focus,.fp-form-row input:focus,.fp-form-row select:focus,.fp-form-row textarea:focus,.cp-form-group input:focus,.cp-form-group textarea:focus,.cp-form-group select:focus{border-color:var(--color-brand);box-shadow:var(--shadow-focus)}.spinner{display:inline-block;width:var(--icon-size-md);height:var(--icon-size-md);border:var(--border-width-strong) solid var(--border-strong);border-top-color:var(--text-inverse);border-radius:var(--radius-round);animation:spin var(--transition-spinner) infinite}.toast,.fp-toast{position:fixed;bottom:var(--space-7);left:var(--viewport-center);z-index:var(--z-toast);transform:var(--transform-center-x);padding:var(--space-2-75) var(--space-4-5);background:var(--surface-popover);border:var(--border-width) solid var(--border-strong);color:var(--text-inverse);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);animation:toastIn var(--transition-toast)}@media (max-width: 768px){.auth-card{padding:var(--space-8) var(--space-6)}}.app-card,.fp-card,.fp-chart-card,.fp-list-card,.fp-debt-card,.fp-budget-card,.file-table-wrapper,.lc-table-wrapper,.cp-day-container,.cp-popup,.cp-dialog,.query-card,.results-card{background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.app-card:hover,.fp-summary-card:hover,.fp-debt-card:hover,.fp-budget-card:hover,.feature-card:hover,.pa-tool:hover,.ga-tool:hover,.tool-card:hover,.doc-card:hover,.result-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.file-table-wrapper,.lc-table-wrapper{overflow:hidden}.file-table,.lc-table{width:var(--size-full);border-collapse:collapse;font-size:var(--font-size-control);font-variant-numeric:tabular-nums}.file-table thead,.lc-table thead{background:var(--surface-rail)}.file-table th,.lc-table th{padding:var(--space-3) var(--space-4);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-heavy);text-align:left;text-transform:uppercase;white-space:nowrap}.file-table td,.lc-table td{padding:var(--space-3-25) var(--space-4);border-top:var(--border-width) solid var(--border-subtle);color:var(--text-main);vertical-align:middle}.file-table tbody tr,.lc-table tbody tr{transition:background var(--transition-fast)}.file-table tbody tr:hover,.lc-table tbody tr:hover{background:var(--surface-hover)}.table-loader{background:var(--surface-overlay);-webkit-backdrop-filter:blur(var(--blur-protected));backdrop-filter:blur(var(--blur-protected))}.fp-modal-overlay,.cp-popup-overlay,.cp-dialog-overlay{background:var(--surface-overlay);-webkit-backdrop-filter:blur(var(--blur-soft));backdrop-filter:blur(var(--blur-soft))}.fp-modal,.cp-popup,.cp-dialog{background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.fp-modal-header,.cp-day-header{border-color:var(--border-subtle)}.fp-modal-close,.cp-popup-close{color:var(--text-dim)}.fp-modal-close:hover,.cp-popup-close:hover{background:var(--surface-hover);color:var(--text-main)}.fp-empty,.cp-empty,.tp-empty,.file-empty,.lc-empty,.no-results{color:var(--text-dim)}.fp-empty,.cp-empty,.tp-empty,.file-empty{min-height:var(--empty-min-height-md);text-align:center}.empty-icon,.cp-empty-icon,.tp-empty-icon{opacity:var(--opacity-disabled)}.app-loading,.page-loading{padding:var(--space-10);color:var(--text-dim);text-align:center}.file-type-badge,.fp-tag,.tp-todo-type-badge,.tp-todo-status,.result-tag,.section-badge{border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-sm)}.fp-badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.fp-badge-warn{background:var(--color-warning-soft);color:var(--color-warning)}.lc-controls,.file-controls,.tp-filters,.cp-toolbar{padding:var(--space-4);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.difficulty-pill,.page-btn,.cp-nav-btn,.cp-view-btn,.fp-tab,.tp-filter-clear{border-radius:var(--radius-md)}.difficulty-pill.active,.cp-nav-btn.today,.fp-tab.active,.cp-view-btn.active{background:var(--surface-selected);border-color:color-mix(in srgb,var(--color-brand) 30%,transparent);color:var(--color-brand);box-shadow:var(--shadow-xs)}.fp-page-header,.cp-page-header,.tp-page-header{padding:var(--space-5);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.fp-page-header h1,.cp-page-header h1,.tp-page-header h1{letter-spacing:var(--letter-spacing-reset)}.fp-summary-card,.tp-todo-item,.fp-list-card,.fp-chart-card,.fp-debt-card,.fp-budget-card{background:var(--surface-panel);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.fp-summary-card:hover,.tp-todo-item:hover,.fp-debt-card:hover,.fp-budget-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.fp-list-item-icon,.fp-debt-icon,.fp-budget-icon,.feature-icon,.pa-tool-icon{border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-rail)}.tp-todo-due,.tp-todo-repeat,.tp-todo-tags,.tp-action-btn,.fp-text-error,.fp-badge-danger,.fp-badge-warn,.fp-icon-btn,.fp-list-item-delete{display:inline-flex;align-items:center;gap:var(--space-1)}.u-muted{color:var(--text-dim)}.u-center{text-align:center}.u-full-width{width:var(--size-full)}.u-stack-sm{display:flex;flex-direction:column;gap:var(--space-2)}.layout{display:grid;min-height:var(--viewport-height);grid-template-columns:var(--sidebar-width) minmax(0,1fr);background:var(--surface-page)}.sidebar{position:sticky;top:0;z-index:var(--z-sidebar);display:flex;height:var(--viewport-height);flex-direction:column;border-right:var(--border-width) solid var(--border-subtle);background:var(--surface-shell)}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);min-height:var(--topbar-height);padding:0 var(--space-5);border-bottom:var(--border-width) solid var(--border-subtle);color:var(--text-main)}.sidebar-brand-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-xs);height:var(--control-height-xs);border:var(--border-width) solid color-mix(in srgb,var(--color-brand) 32%,transparent);border-radius:var(--radius-lg);background:var(--surface-panel-raised);color:var(--color-brand-strong);box-shadow:var(--shadow-xs)}.sidebar-brand-copy{display:flex;min-width:0;flex-direction:column;line-height:var(--line-height-tight)}.sidebar-brand-text{overflow:hidden;color:var(--text-main);font-size:var(--font-size-lg-plus);font-weight:var(--font-weight-hero);text-overflow:ellipsis;white-space:nowrap}.sidebar-brand-subtitle{margin-top:var(--space-0-75);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-button);text-transform:uppercase}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-4)}.nav-section{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-5)}.nav-section-title{padding:var(--space-2) var(--space-2) var(--space-1);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-heavy);text-transform:uppercase}.nav-link,.nav-child-link{position:relative;display:flex;align-items:center;min-height:var(--control-height-compact);gap:var(--space-2);padding:0 var(--space-3);border-radius:var(--radius-lg);color:var(--text-subtle);font-size:var(--font-size-label);font-weight:var(--font-weight-button);transition:color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.nav-link:hover,.nav-child-link:hover{background:var(--surface-hover);color:var(--text-main)}.nav-link.active,.nav-child-link.active{background:var(--surface-selected);color:var(--color-brand-strong);box-shadow:var(--shadow-nav-active)}.nav-icon{display:inline-flex;width:var(--icon-size-inline);flex:0 0 var(--icon-size-inline);justify-content:center}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-children{display:flex;flex-direction:column;gap:var(--space-1);margin:var(--space-1) 0 var(--space-2) var(--space-7);padding-left:var(--space-2);border-left:var(--border-width) solid var(--border-subtle)}.nav-child-link{min-height:var(--control-height-md);padding:0 var(--space-2);font-size:var(--font-size-body-plus);font-weight:var(--font-weight-nav)}.nav-lock{margin-left:auto;color:var(--text-dim)}.nav-child-link.locked{color:var(--text-dim)}.sidebar-footer{padding:var(--space-4) var(--space-5);border-top:var(--border-width) solid var(--border-subtle);color:var(--text-dim)}.sidebar-footer strong{display:block;color:var(--text-main);font-size:var(--font-size-body-plus)}.sidebar-footer span{display:block;margin-top:var(--space-half);font-size:var(--font-size-body-sm)}.layout-main{display:flex;min-width:0;min-height:var(--viewport-height);flex-direction:column}.page-header{position:sticky;top:0;z-index:var(--z-topbar);display:flex;align-items:center;justify-content:space-between;min-height:var(--topbar-height);gap:var(--space-4);padding:0 var(--space-8);background:var(--surface-glass);border-bottom:var(--border-width) solid var(--border-subtle);backdrop-filter:blur(var(--blur-strong));-webkit-backdrop-filter:blur(var(--blur-strong))}.page-header h1{margin:var(--hairline) 0 0;color:var(--text-main);font-size:var(--font-size-title-md);font-weight:var(--font-weight-hero);letter-spacing:var(--letter-spacing-reset)}.page-header p{max-width:var(--content-narrow-width);color:var(--text-dim);font-size:var(--font-size-body-lg)}.page-kicker{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-strong);text-transform:uppercase}.page-header-meta{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1-75) var(--space-2-5);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-canvas);color:var(--text-subtle);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-bold);box-shadow:var(--shadow-xs);white-space:nowrap}.main-content{width:var(--size-full);max-width:var(--max-content-width);flex:1;padding:var(--space-6) var(--space-8) var(--space-8);align-self:center}.footer{display:flex;align-items:center;justify-content:center;min-height:var(--footer-height);padding:0 var(--space-4);border-top:var(--border-width) solid var(--border-subtle);color:var(--text-dim);font-size:var(--font-size-body-sm)}.footer a{color:var(--text-subtle)}.footer a:hover{color:var(--color-brand)}.footer-icp{margin-left:var(--space-4);padding-left:var(--space-4);border-left:var(--border-width) solid var(--border-subtle)}@media (max-width: 1080px){.layout{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)}.sidebar{width:var(--sidebar-collapsed-width)}.sidebar-brand{justify-content:center;padding:0 var(--space-3)}.sidebar-brand-copy,.nav-section-title,.nav-label,.nav-lock,.sidebar-footer{display:none}.sidebar-nav{padding:var(--space-3)}.nav-link,.nav-child-link{justify-content:center;padding:0}.nav-children{margin-left:0;padding-left:0;border-left:0}}@media (max-width: 760px){.layout{display:flex;min-height:var(--viewport-height);flex-direction:column}.sidebar{position:sticky;top:0;width:var(--size-full);height:auto;border-right:0;border-bottom:var(--border-width) solid var(--border-subtle)}.sidebar-brand{display:none}.sidebar-nav{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-2) var(--space-3)}.nav-section{flex:0 0 auto;flex-direction:row;margin:0}.nav-children{display:none}.nav-link{width:var(--control-height-avatar);height:var(--control-height-compact)}.page-header{align-items:flex-start;min-height:auto;padding:var(--space-4)}.page-header-meta{display:none}.main-content{padding:var(--space-4)}.footer{flex-direction:column;gap:var(--space-1);padding:var(--space-3)}.footer-icp{margin-left:0;padding-left:0;border-left:0}}.manager-page{display:flex;flex-direction:column;gap:var(--space-6);animation:fadeIn var(--transition-page)}.workbench-hero{display:grid;grid-template-columns:minmax(0,var(--layout-main-ratio)) minmax(var(--grid-card-width-lg),var(--layout-aside-ratio));gap:var(--hairline);overflow:hidden;min-height:var(--dashboard-hero-min-height);background:var(--border-subtle);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.workbench-hero-main{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:var(--space-10);background:linear-gradient(135deg,var(--surface-canvas),var(--surface-panel) 100%),var(--surface-canvas)}.workbench-eyebrow,.workbench-section-header span{color:var(--color-brand);font-family:var(--font-mono);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-heading);text-transform:uppercase}.workbench-hero h2{max-width:var(--content-readable-width);margin-top:var(--space-3);color:var(--text-main);font-size:var(--font-size-display);font-weight:var(--font-weight-hero-max);line-height:var(--line-height-title);letter-spacing:var(--letter-spacing-reset)}.workbench-hero p{max-width:var(--content-readable-width);margin-top:var(--space-4);color:var(--text-subtle);font-size:var(--font-size-lg);line-height:var(--line-height-hero)}.workbench-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.workbench-status{display:grid;align-content:stretch;gap:var(--hairline);background:var(--border-subtle)}.status-tile{display:grid;align-content:center;gap:var(--space-2);min-height:var(--card-min-height-sm);padding:var(--space-6);background:var(--surface-panel)}.status-tile svg{color:var(--color-accent)}.status-tile span{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-strong);text-transform:uppercase}.status-tile strong{color:var(--text-main);font-size:var(--font-size-lg);font-weight:var(--font-weight-strong)}.workbench-section{display:flex;flex-direction:column;gap:var(--space-4)}.workbench-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}.workbench-section-header h3{color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-display)}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--grid-card-width-sm),1fr));gap:var(--space-4)}.feature-grid.public{grid-template-columns:repeat(auto-fit,minmax(var(--grid-card-width-xl),1fr))}.feature-card{display:flex;min-height:var(--card-min-height-md);flex-direction:column;padding:var(--space-6);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;box-shadow:var(--shadow-xs);animation:fadeInUp var(--transition-page) backwards;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.feature-card:hover{transform:translateY(var(--motion-lift-md));background:var(--surface-panel-raised);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.feature-card:visited{color:inherit}.feature-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-xl);height:var(--control-height-xl);margin-bottom:var(--space-4);color:var(--color-brand)}.feature-card-private .feature-icon{color:var(--color-accent)}.feature-card h4{margin-bottom:var(--space-2);color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-heavy)}.feature-card p{color:var(--text-subtle);font-size:var(--font-size-control);line-height:var(--line-height-card)}@media (max-width: 900px){.workbench-hero{grid-template-columns:1fr}.workbench-status{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.workbench-hero-main{padding:var(--space-6)}.workbench-hero h2{font-size:var(--font-size-display-md)}.workbench-status{grid-template-columns:1fr}}.technical-doc-page{display:flex;flex-direction:column;gap:var(--space-8);animation:fadeIn var(--transition-page)}.section-header{margin-bottom:var(--space-5)}.section-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1-5) var(--space-3);background:var(--surface-canvas);color:var(--color-brand);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-heading);margin-bottom:var(--space-3);text-transform:uppercase}.section-badge.tools{background:var(--color-accent-soft);color:var(--color-accent)}.section-desc{color:var(--text-subtle);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--grid-card-width-2xl),1fr));gap:var(--space-4);align-items:start}.doc-card{background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xs);transition:border-color var(--transition-base),box-shadow var(--transition-base),background var(--transition-base)}.doc-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.doc-card-header{width:var(--size-full);display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);background:transparent;cursor:pointer;color:var(--text-main);transition:background var(--transition-fast)}.doc-card-header:hover{background:var(--surface-hover)}.doc-card-title{display:flex;align-items:center;gap:var(--space-2-5);font-size:var(--font-size-xl);font-weight:var(--font-weight-heading)}.doc-card-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-xs);height:var(--control-height-xs);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--category-color)}.doc-card-toggle{color:var(--text-dim);transition:transform var(--transition-base)}.doc-card-toggle.expanded{transform:rotate(90deg)}.doc-card-body{max-height:0;overflow:hidden;transition:max-height var(--transition-slow),padding var(--transition-slow)}.doc-card-body.expanded{max-height:var(--document-viewer-max-height);padding:0 var(--space-5) var(--space-5)}.doc-links{display:flex;flex-direction:column;gap:var(--space-1-5)}.doc-link{display:flex;align-items:center;gap:var(--space-2-5);padding:var(--space-2-5) var(--space-3);border:var(--border-width) solid transparent;border-radius:var(--radius-md);color:inherit;transition:all var(--transition-fast);animation:fadeIn var(--transition-reveal) backwards}.doc-link:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.doc-link-icon{color:var(--text-dim)}.doc-link-label{flex:1;color:var(--text-main);font-size:var(--font-size-base);font-weight:var(--font-weight-regular)}.doc-link:hover .doc-link-label,.doc-link:hover .doc-link-arrow{color:var(--color-brand)}.doc-link-arrow{color:var(--text-dim);transition:all var(--transition-fast)}.doc-link:hover .doc-link-arrow{transform:translate(var(--motion-shift-sm))}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-card-width-sm),1fr));gap:var(--space-4)}.tool-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;box-shadow:var(--shadow-xs);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);animation:fadeInUp var(--transition-page) backwards}.tool-card:hover{transform:translateY(var(--motion-lift-md));border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.tool-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-avatar);height:var(--control-height-avatar);background:var(--color-accent-soft);border:var(--border-width) solid color-mix(in srgb,var(--color-accent) 30%,transparent);border-radius:var(--radius-lg);color:var(--color-accent);flex-shrink:0}.tool-info{flex:1;min-width:0}.tool-info h4{color:var(--text-main);font-size:var(--font-size-lg-plus);font-weight:var(--font-weight-strong);margin-bottom:var(--space-1)}.tool-info p{color:var(--text-dim);font-size:var(--font-size-body)}.tool-arrow{color:var(--text-dim);transition:all var(--transition-fast)}.tool-card:hover .tool-arrow{color:var(--color-accent);transform:translate(var(--motion-shift-xs),var(--motion-lift-md))}@media (max-width: 768px){.doc-grid,.tools-grid{grid-template-columns:1fr}.tool-card{padding:var(--space-4)}}.knowledge-page{animation:fadeIn var(--transition-page)}.kb-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(var(--grid-card-width-xl),.42fr);gap:var(--space-4);align-items:start}.kb-panel{border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-panel);box-shadow:var(--shadow-sm)}.kb-chat-panel{display:flex;min-height:640px;flex-direction:column;padding:var(--space-5)}.kb-side{display:flex;flex-direction:column;gap:var(--space-4)}.kb-side .kb-panel{padding:var(--space-4)}.kb-panel-header,.kb-ask-toolbar,.kb-answer-meta,.kb-provider-toggle,.kb-topk-control,.kb-upload-result,.kb-source-title{display:flex;align-items:center}.kb-panel-header{justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.kb-panel-header.compact{margin-bottom:var(--space-3)}.kb-panel-header h2{margin-top:var(--space-1);color:var(--text-main);font-size:var(--font-size-display-xs);font-weight:var(--font-weight-hero)}.kb-eyebrow{display:inline-flex;align-items:center;gap:var(--space-1-5);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-heavy);text-transform:uppercase}.kb-provider-toggle{gap:var(--space-1);padding:var(--space-1);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg)}.kb-provider-toggle button{min-height:var(--control-height-md);padding:0 var(--space-3);border-radius:var(--radius-md);background:transparent;color:var(--text-subtle);font-size:var(--font-size-body);font-weight:var(--font-weight-bold)}.kb-provider-toggle button:hover,.kb-provider-toggle button.active{background:var(--surface-panel-raised);color:var(--text-main);box-shadow:var(--shadow-xs)}.kb-question-input{min-height:170px;resize:vertical;padding:var(--space-4);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-control);color:var(--text-main);font-family:inherit;font-size:var(--font-size-base);line-height:var(--line-height-body);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.kb-question-input:focus{border-color:var(--color-brand);background:var(--surface-canvas);box-shadow:var(--shadow-focus)}.kb-readiness-banner,.kb-answer-warning{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-rail);color:var(--text-subtle);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-body)}.kb-readiness-banner.info{border-color:var(--color-brand-soft);background:var(--color-brand-soft);color:var(--color-brand-strong)}.kb-readiness-banner.warning,.kb-answer-warning{border-color:var(--color-warning-soft);background:var(--color-warning-soft);color:var(--color-warning)}.kb-readiness-banner.danger{border-color:var(--border-danger);background:var(--color-danger-soft);color:var(--color-danger)}.kb-ask-toolbar{justify-content:space-between;gap:var(--space-3);margin:var(--space-4) 0;flex-wrap:wrap}.kb-topk-control{gap:var(--space-2);color:var(--text-subtle);font-size:var(--font-size-body);font-weight:var(--font-weight-bold)}.kb-topk-control input{width:var(--control-height-topbar);min-height:var(--control-height-md);padding:0 var(--space-2);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-control);color:var(--text-main);font-family:var(--font-mono);outline:none}.kb-answer-box{flex:1;min-height:280px;padding:var(--space-5);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-canvas)}.kb-answer-meta{gap:var(--space-2);margin-bottom:var(--space-4);color:var(--text-dim);font-size:var(--font-size-body);font-weight:var(--font-weight-bold)}.kb-answer-meta strong,.kb-status-pill{margin-left:auto;padding:var(--space-half) var(--space-2);border-radius:var(--radius-pill);background:var(--color-brand-soft);color:var(--color-brand-strong);font-family:var(--font-mono);font-size:var(--font-size-xs)}.kb-observe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-4)}.kb-observe-item{min-width:0;padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-panel)}.kb-observe-item.wide{grid-column:1 / -1}.kb-observe-item span,.kb-observe-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-observe-item span{margin-bottom:var(--space-half);color:var(--text-dim);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-bold)}.kb-observe-item strong{color:var(--text-main);font-family:var(--font-mono);font-size:var(--font-size-xs-plus)}.kb-answer-text{white-space:pre-wrap;color:var(--text-main);font-size:var(--font-size-base-plus);line-height:var(--line-height-copy)}.kb-answer-warning{margin:0 0 var(--space-4)}.kb-empty-state{display:flex;min-height:220px;align-items:center;justify-content:center;gap:var(--space-2);color:var(--text-dim);font-size:var(--font-size-control);font-weight:var(--font-weight-semibold)}.kb-muted{color:var(--text-dim);font-size:var(--font-size-body-lg);line-height:var(--line-height-relaxed)}.kb-upload-button{cursor:pointer}.kb-upload-result{gap:var(--space-3);color:var(--color-success)}.kb-upload-result div{display:flex;min-width:0;flex-direction:column;gap:var(--space-half)}.kb-upload-result strong{overflow:hidden;color:var(--text-main);font-size:var(--font-size-control);text-overflow:ellipsis;white-space:nowrap}.kb-upload-result span{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus)}.kb-upload-result span+span{display:none}.btn-ghost-icon{display:inline-flex;width:var(--control-height-md);height:var(--control-height-md);align-items:center;justify-content:center;border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-control);color:var(--text-subtle);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.btn-ghost-icon:hover:not(:disabled){background:var(--surface-panel-raised);color:var(--text-main)}.btn-ghost-icon.danger:hover:not(:disabled){border-color:var(--border-danger);background:var(--color-danger-soft);color:var(--color-danger)}.btn-ghost-icon:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.kb-document-panel{max-height:430px;overflow:hidden}.kb-document-list{display:flex;max-height:350px;flex-direction:column;gap:var(--space-2);overflow-y:auto}.kb-document-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);padding:var(--space-3);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-canvas)}.kb-document-item.pending{border-color:var(--color-brand-soft)}.kb-document-item.failed{border-color:var(--border-danger)}.kb-document-main{min-width:0}.kb-document-main strong{display:block;overflow:hidden;color:var(--text-main);font-size:var(--font-size-body);text-overflow:ellipsis;white-space:nowrap}.kb-document-main span,.kb-document-meta,.kb-document-error{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus)}.kb-document-meta,.kb-document-actions{display:flex;align-items:center}.kb-document-meta{grid-column:1 / -1;gap:var(--space-2)}.kb-document-meta span{padding:var(--space-half) var(--space-2);border-radius:var(--radius-pill);background:var(--surface-rail)}.kb-document-error{grid-column:1 / -1;overflow:hidden;color:var(--color-danger);text-overflow:ellipsis;white-space:nowrap}.kb-document-actions{gap:var(--space-1)}.kb-health-list,.kb-source-list{display:flex;flex-direction:column;gap:var(--space-2)}.kb-health-row{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--border-subtle);color:var(--text-dim);font-size:var(--font-size-body)}.kb-health-row:last-child{border-bottom:0}.kb-health-row strong{max-width:58%;overflow:hidden;color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--font-size-xs-plus);text-overflow:ellipsis;white-space:nowrap}.kb-source-panel{max-height:420px;overflow:hidden}.kb-source-list{max-height:340px;overflow-y:auto}.kb-source-item{padding:var(--space-3);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-canvas)}.kb-source-title{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.kb-source-title strong{min-width:0;overflow:hidden;color:var(--text-main);font-size:var(--font-size-body);text-overflow:ellipsis;white-space:nowrap}.kb-source-title span{flex-shrink:0;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus)}.kb-source-item p{display:-webkit-box;overflow:hidden;color:var(--text-subtle);font-size:var(--font-size-body-sm);line-height:var(--line-height-relaxed);-webkit-box-orient:vertical;-webkit-line-clamp:4}.kb-spin{animation:spin var(--transition-spinner) infinite}@media (max-width: 1080px){.kb-grid{grid-template-columns:1fr}.kb-chat-panel{min-height:560px}}@media (max-width: 760px){.kb-panel-header,.kb-ask-toolbar{align-items:stretch;flex-direction:column}.kb-provider-toggle{width:var(--size-full)}.kb-provider-toggle button{flex:1}.kb-observe-grid{grid-template-columns:1fr}}.pa-page{display:flex;width:var(--size-full);flex-direction:column;gap:var(--space-6);animation:fadeIn var(--transition-page)}.pa-hero{display:grid;grid-template-columns:minmax(0,1fr) var(--grid-aside-width);gap:var(--space-4);align-items:stretch;padding:var(--space-8);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.pa-kicker{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-brand);font-family:var(--font-mono);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-heading);text-transform:uppercase}.pa-hero h2{margin-top:var(--space-3);margin-bottom:var(--space-3);color:var(--text-main);font-size:var(--font-size-display-lg);font-weight:var(--font-weight-hero-strong);letter-spacing:var(--letter-spacing-reset)}.pa-hero-desc{max-width:var(--content-readable-width);color:var(--text-subtle);font-size:var(--font-size-base-plus);line-height:var(--line-height-copy)}.pa-hero-panel{display:grid;align-content:center;gap:var(--space-2);padding:var(--space-5);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg)}.pa-hero-panel svg{color:var(--color-accent)}.pa-hero-panel span{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-strong);text-transform:uppercase}.pa-hero-panel strong{color:var(--text-main);font-size:var(--font-size-xl)}.pa-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-card-width-md),1fr));gap:var(--space-4)}.pa-tool{display:flex;min-height:var(--card-min-height-lg);flex-direction:column;justify-content:space-between;padding:var(--space-6);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;box-shadow:var(--shadow-xs);animation:fadeInUp var(--transition-page) both;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.pa-tool:hover{transform:translateY(var(--motion-lift-md));background:var(--surface-canvas);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.pa-tool-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-6)}.pa-tool-top span{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-strong);text-transform:uppercase}.pa-tool-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-xl);height:var(--control-height-xl);color:var(--color-brand)}.pa-tool h4{margin-bottom:var(--space-2);color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-heavy)}.pa-tool p{color:var(--text-subtle);font-size:var(--font-size-control);line-height:var(--line-height-card)}.pa-tool.blurred{cursor:not-allowed;opacity:var(--opacity-subtle)}.pa-tool.blurred:hover{transform:none;background:var(--surface-panel);border-color:var(--border-subtle);box-shadow:none}.blurred-text{color:var(--text-dim);letter-spacing:var(--letter-spacing-reset);-webkit-user-select:none;user-select:none}@media (max-width: 768px){.pa-hero{grid-template-columns:1fr;padding:var(--space-6)}}.dr-page{display:flex;flex-direction:column;gap:var(--space-6);animation:fadeIn var(--transition-page)}.dr-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(var(--grid-card-width-md),var(--layout-data-aside-ratio));gap:var(--space-4);align-items:stretch;padding:var(--space-8);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.dr-kicker{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-heading);text-transform:uppercase}.dr-hero h2{margin-top:var(--space-3);margin-bottom:var(--space-3);color:var(--text-main);font-size:var(--font-size-display-2xl);font-weight:var(--font-weight-hero-strong);letter-spacing:var(--letter-spacing-reset)}.dr-hero-desc{max-width:var(--content-readable-width);color:var(--text-subtle);font-size:var(--font-size-base-plus);line-height:var(--line-height-copy)}.dr-hero-metrics{display:grid;gap:var(--space-3)}.dr-metric{display:grid;align-content:center;gap:var(--space-2);padding:var(--space-5);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg)}.dr-metric svg{color:var(--color-brand)}.dr-metric span,.dr-card-top span{color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-strong);text-transform:uppercase}.dr-metric strong{color:var(--text-main);font-size:var(--font-size-lg)}.dr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-card-width-xl),1fr));gap:var(--space-4)}.dr-card{display:flex;min-height:var(--card-min-height-xl);flex-direction:column;justify-content:space-between;padding:var(--space-6);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);color:inherit;box-shadow:var(--shadow-xs);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.dr-card:hover{transform:translateY(var(--motion-lift-md));background:var(--surface-panel-raised);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.dr-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-6)}.dr-card-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-avatar);height:var(--control-height-avatar);background:var(--color-accent-soft);border:var(--border-width) solid color-mix(in srgb,var(--color-accent) 30%,transparent);border-radius:var(--radius-lg);color:var(--color-accent)}.dr-card h4{margin-bottom:var(--space-2);color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-heavy)}.dr-card p{color:var(--text-subtle);font-size:var(--font-size-control);line-height:var(--line-height-card)}.dr-card-action{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-6);color:var(--color-brand);font-size:var(--font-size-body-lg);font-weight:var(--font-weight-strong)}@media (max-width: 768px){.dr-hero{grid-template-columns:1fr;padding:var(--space-6)}}.lc-ratings-page{animation:fadeIn var(--transition-page)}.lc-controls{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-4)}.difficulty-bar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.difficulty-pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}.difficulty-pill{padding:var(--space-2) var(--space-3-5);background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);color:var(--text-subtle);font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-fast)}.difficulty-pill:hover{border-color:var(--border-strong);color:var(--text-main)}.difficulty-pill.active{background:var(--surface-selected);border-color:color-mix(in srgb,var(--color-brand) 30%,transparent);color:var(--color-brand)}.lc-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.page-info strong,.lc-stats strong{color:var(--color-brand)}.lc-stats{margin-bottom:var(--space-4);color:var(--text-dim);font-size:var(--font-size-control)}.lc-table-wrapper{position:relative}.lc-table-wrapper.loading{min-height:var(--empty-min-height-lg)}.col-id,.col-qid{width:var(--table-col-xs);color:var(--text-dim);font-size:var(--font-size-body);font-variant-numeric:tabular-nums;text-align:center}.col-solution{width:var(--table-col-xs);text-align:center}.col-tags{width:var(--table-col-md)}.link-cell{color:var(--color-brand);font-weight:var(--font-weight-semibold);transition:all var(--transition-fast)}.solution-link{display:inline-block;font-size:var(--font-size-title);transition:transform var(--transition-fast)}.solution-link:hover{transform:scale(1.12)}.solution-empty{color:var(--text-dim);opacity:var(--opacity-muted)}.tag{display:inline-block;padding:var(--space-1) var(--space-2-5);background:var(--color-accent-soft);color:var(--color-accent);border-radius:var(--radius-sm);font-size:var(--font-size-caption-plus);font-weight:var(--font-weight-bold);filter:blur(var(--blur-protected));transition:filter var(--transition-base),background var(--transition-base);-webkit-user-select:none;user-select:none}.tag:hover,.lc-table tbody tr:hover .tag{filter:blur(var(--blur-none))}.rating-badge{display:inline-block;padding:var(--space-1) var(--space-2-5);background:var(--color-brand-muted);border:var(--border-width) solid color-mix(in srgb,var(--color-brand) 30%,transparent);border-radius:var(--radius-sm);color:var(--color-brand);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-strong)}.status-select{padding:var(--space-1-5) var(--space-2-5);background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-main);cursor:pointer;font-size:var(--font-size-body);outline:none;transition:all var(--transition-fast)}.status-select:focus{border-color:var(--color-brand);box-shadow:var(--shadow-focus)}.lc-table tbody tr.status-0{border-left:var(--border-width-accent) solid transparent}.lc-table tbody tr.status-1{border-left:var(--border-width-accent) solid var(--color-info)}.lc-table tbody tr.status-2{border-left:var(--border-width-accent) solid var(--color-danger)}.lc-table tbody tr.status-3,.lc-table tbody tr.status-4{border-left:var(--border-width-accent) solid var(--color-warning)}.lc-table tbody tr.status-5{border-left:var(--border-width-accent) solid var(--color-success)}.lc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-15) var(--space-5)}@media (max-width: 1024px){.lc-table th,.lc-table td{padding:var(--space-2-5) var(--space-3)}}@media (max-width: 768px){.lc-actions{flex-direction:column;align-items:stretch}.pagination{justify-content:center}.lc-table-wrapper{overflow-x:auto}.lc-table{min-width:var(--table-scroll-min-lg)}}.file-manager-page{animation:fadeIn var(--transition-page)}.file-controls{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-4)}.file-search-bar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.control-label{color:var(--text-subtle);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);white-space:nowrap}.file-search-input{flex:1;min-width:var(--input-field-min-width);padding:var(--space-2-5) var(--space-3-5);font-size:var(--font-size-base)}.file-actions{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:var(--space-3)}.pagination{display:flex;align-items:center;gap:var(--space-3)}.page-btn{padding:var(--space-2) var(--space-3-5);background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);color:var(--text-main);font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);transition:all var(--transition-fast)}.page-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.page-btn:disabled{cursor:not-allowed;opacity:var(--opacity-muted)}.page-info{color:var(--text-subtle);font-size:var(--font-size-body-lg);white-space:nowrap}.page-info strong{color:var(--text-main)}.upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:auto;padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--font-size-body-plus)}.upload-btn input{display:none}.file-stats{margin-bottom:var(--space-3);color:var(--text-dim);font-size:var(--font-size-control)}.file-stats strong{color:var(--color-brand)}.stat-sep{margin:0 var(--space-2)}.storage-quota{flex:1;min-width:var(--input-field-min-width);margin-bottom:0;padding:var(--space-2-5) var(--space-3-5);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg)}.quota-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--font-size-body-plus)}.quota-label{color:var(--text-main);font-weight:var(--font-weight-bold)}.quota-text{color:var(--text-subtle);font-weight:var(--font-weight-semibold)}.quota-bar-bg{position:relative;width:var(--size-full);height:var(--icon-size-xs);overflow:visible;background:var(--border-subtle);border-radius:var(--radius-pill)}.quota-bar-fill{height:var(--size-full);width:var(--quota-width);background:var(--color-brand);border-radius:var(--radius-pill);transition:width var(--transition-chart)}.quota-bar-fill.warning{background:var(--color-warning)}.quota-bar-fill.danger{background:var(--color-danger)}.quota-tooltip{position:absolute;bottom:calc(var(--size-full) + var(--space-1-5));left:var(--viewport-center);z-index:var(--z-floating);padding:var(--space-1) var(--space-2-5);transform:var(--transform-center-x) translateY(var(--motion-tooltip-offset));background:var(--surface-popover);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text-main);font-size:var(--font-size-body-xs);font-weight:var(--font-weight-bold);opacity:var(--opacity-hidden);pointer-events:none;transition:all var(--transition-fast);visibility:hidden;white-space:nowrap}.quota-bar-bg:hover .quota-tooltip{opacity:var(--opacity-visible);transform:var(--transform-center-x) translateY(var(--motion-rest));visibility:visible}.quota-tooltip:after{content:"";position:absolute;top:var(--size-full);left:var(--viewport-center);transform:var(--transform-center-x);border:var(--caret-size) solid transparent;border-top-color:var(--border-subtle)}.file-table-wrapper{position:relative}.file-table-wrapper.loading{min-height:var(--empty-min-height-lg)}.col-id{width:var(--table-col-xs);color:var(--text-dim);font-size:var(--font-size-body);font-variant-numeric:tabular-nums;text-align:center}.col-type{width:var(--table-col-md)}.col-size{width:var(--table-col-sm);font-variant-numeric:tabular-nums}.col-time{width:var(--table-col-lg);color:var(--text-subtle);font-size:var(--font-size-body)}.col-actions{width:var(--table-col-sm);text-align:center;white-space:nowrap}.link-cell{background:transparent;border:0;color:var(--color-brand);cursor:pointer;font-weight:var(--font-weight-semibold);transition:all var(--transition-fast)}.link-cell:hover{color:var(--color-brand-strong);text-decoration:underline}.file-name-link{display:inline-block;max-width:var(--panel-width-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-type-badge{display:inline-block;padding:var(--space-1) var(--space-2-5);background:var(--color-brand-muted);color:var(--color-brand);font-size:var(--font-size-caption-plus);font-weight:var(--font-weight-button)}.action-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-md);height:var(--control-height-md);margin:0 var(--space-half);background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);transition:all var(--transition-fast)}.action-btn:hover{transform:translateY(var(--motion-lift-sm))}.download-btn:hover{background:var(--color-brand-muted);border-color:color-mix(in srgb,var(--color-brand) 30%,transparent)}.delete-btn:hover{background:var(--color-danger-soft);border-color:var(--border-danger)}.table-loader{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3)}.table-loader p{color:var(--text-subtle);font-size:var(--font-size-base)}.file-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-15) var(--space-5)}.empty-icon{margin-bottom:var(--space-3);font-size:var(--font-size-empty)}@media (max-width: 1024px){.file-table th,.file-table td{padding:var(--space-2-5) var(--space-3)}.file-name-link{max-width:var(--empty-min-height-lg)}}@media (max-width: 768px){.file-actions{flex-direction:column;align-items:stretch}.pagination{justify-content:center}.file-table-wrapper{overflow-x:auto}.file-table{min-width:var(--table-scroll-min-md)}.file-name-link{max-width:var(--table-col-lg)}}.ga-page{display:flex;flex-direction:column;gap:var(--space-6);animation:fadeIn var(--transition-page)}.ga-hero{padding:var(--space-8);background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);animation:fadeInUp var(--transition-page)}.ga-hero-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-size-3xl);height:var(--icon-size-3xl);margin-bottom:var(--space-4);border:var(--border-width) solid color-mix(in srgb,var(--color-brand) 30%,transparent);border-radius:var(--radius-lg);background:var(--color-brand-muted);color:var(--color-brand)}.ga-hero h2{margin-bottom:var(--space-2);color:var(--text-main);font-size:var(--font-size-display-md);font-weight:var(--font-weight-hero)}.ga-hero-desc{max-width:var(--content-medium-width);color:var(--text-subtle);font-size:var(--font-size-base-plus)}.ga-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-card-width-md),1fr));gap:var(--space-4)}.ga-tool{display:flex;min-height:var(--chart-height-md);flex-direction:column;background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);animation:fadeInUp var(--transition-page) backwards;cursor:pointer;text-decoration:none;color:inherit;box-shadow:var(--shadow-xs)}.ga-tool:hover{transform:translateY(var(--motion-lift-md));background:var(--surface-canvas);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.ga-tool-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height-xl);height:var(--control-height-xl);margin-bottom:var(--space-4);border:var(--border-width) solid color-mix(in srgb,var(--color-accent) 30%,transparent);border-radius:var(--radius-lg);background:var(--color-accent-soft);color:var(--color-accent)}.ga-tool h4{margin-bottom:var(--space-2);color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-heavy)}.ga-tool p{color:var(--text-subtle);font-size:var(--font-size-control);line-height:var(--line-height-base)}.lk-egg-query-page{animation:fadeIn var(--transition-page-slow);max-width:var(--content-readable-width);margin:0 auto}.query-card{background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-8);margin-bottom:var(--space-6);animation:fadeInUp var(--transition-page-slow)}.query-header{text-align:center;margin-bottom:var(--space-7)}.query-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--icon-size-3xl);height:var(--icon-size-3xl);margin-bottom:var(--space-4);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-control);color:var(--color-brand)}.query-header h2{font-size:var(--font-size-display-sm);font-weight:var(--font-weight-hero);color:var(--text-main);margin-bottom:var(--space-2)}.query-desc{color:var(--text-subtle);font-size:var(--font-size-base)}.query-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-1-5)}.form-group label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary)}.form-input{padding:var(--space-2-5) var(--space-3-5);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-lg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.form-input::placeholder{color:var(--text-muted)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.query-form .btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);flex:1;padding:var(--space-2-5) var(--space-5);border-radius:var(--radius-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);border:none}.btn-secondary{background:var(--surface-hover);color:var(--text-subtle);border:var(--border-width) solid var(--border-subtle)}.btn-secondary:hover{background:var(--surface-control);color:var(--text-main)}.results-card{background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);animation:fadeInUp var(--transition-page-slow)}.results-card h3{font-size:var(--font-size-title);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-4)}.results-list{display:flex;flex-direction:column;gap:var(--space-3)}.result-item{background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-4);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.result-item:hover{border-color:var(--primary);box-shadow:var(--shadow-glow)}.result-name{font-size:var(--font-size-title-lg);font-weight:var(--font-weight-bold);color:var(--primary-light);margin-bottom:var(--space-2)}.result-details{display:flex;flex-wrap:wrap;gap:var(--space-2)}.result-tag{background:var(--color-brand-soft);color:var(--primary-light);padding:calc(var(--space-1) / 2) var(--space-2-5);border-radius:var(--radius-pill);font-size:var(--font-size-body-xs);font-weight:var(--font-weight-medium)}.result-range{color:var(--text-secondary);font-size:var(--font-size-control)}.no-results{text-align:center;color:var(--text-muted);font-size:var(--font-size-lg);padding:var(--space-5)}@keyframes fadeIn{0%{opacity:var(--opacity-hidden)}to{opacity:var(--opacity-visible)}}@media (max-width: 768px){.query-card{padding:var(--space-5)}.form-actions{flex-direction:column}}.finance-page{animation:fadeIn var(--transition-page)}.fp-content{padding:0 0 var(--space-8)}.fp-topbar{position:sticky;top:var(--topbar-height);z-index:var(--z-sticky);margin:0 calc(var(--space-8) * -1);padding:0 var(--space-8);background:var(--surface-glass);border-bottom:var(--border-width) solid var(--border-subtle);-webkit-backdrop-filter:blur(var(--blur-medium));backdrop-filter:blur(var(--blur-medium))}.fp-topbar-inner{display:flex;align-items:center;justify-content:space-between;height:var(--control-height-topbar);max-width:var(--max-content-width);margin:0 auto}.fp-topbar-brand,.fp-topbar-actions,.fp-page-header,.fp-page-header-right,.fp-summary-card-header,.fp-card-header,.fp-chart-header,.fp-chart-controls,.fp-chart-legend,.fp-list-header,.fp-list-filters,.fp-list-item,.fp-debt-card-header,.fp-debt-title,.fp-debt-footer,.fp-debt-date,.fp-debt-meta,.fp-budget-card-header,.fp-budget-title,.fp-budget-badges,.fp-budget-amount,.fp-form-actions{display:flex;align-items:center}.fp-topbar-brand{gap:var(--space-2-5)}.fp-topbar-logo,.fp-avatar,.fp-icon-btn,.fp-list-item-icon,.fp-debt-icon,.fp-budget-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.fp-topbar-logo{width:var(--control-height-md);height:var(--control-height-md);background:var(--color-brand-muted);border:var(--border-width) solid color-mix(in srgb,var(--color-brand) 30%,transparent);border-radius:var(--radius-lg);color:var(--color-brand)}.fp-topbar-title{display:flex;flex-direction:column;line-height:var(--line-height-heading)}.fp-topbar-title span{color:var(--text-main);font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}.fp-topbar-sub{color:var(--text-dim);font-size:var(--font-size-sm-plus)}.fp-topbar-actions{gap:var(--space-1)}.fp-icon-btn{position:relative;width:var(--control-height-xs);height:var(--control-height-xs);background:transparent;border-radius:var(--radius-md);color:var(--text-dim);transition:all var(--transition-fast)}.fp-icon-btn:hover{background:var(--surface-hover);color:var(--text-main)}.fp-icon-btn.danger:hover,.fp-list-item-delete:hover{background:var(--color-danger-soft);color:var(--color-danger)}.fp-badge{position:absolute;top:var(--space-1-75);right:var(--space-1-75);width:var(--icon-size-2xs);height:var(--icon-size-2xs);background:var(--color-danger);border-radius:var(--radius-round)}.fp-avatar{width:var(--control-height-sm);height:var(--control-height-sm);margin-left:var(--space-1);background:var(--surface-hover);border-radius:var(--radius-round);color:var(--text-main);font-size:var(--font-size-body-xs);font-weight:var(--font-weight-bold)}.fp-page-header{justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.fp-page-header-left{display:flex;flex-direction:column;gap:var(--space-1)}.fp-page-header-right{gap:var(--space-2)}.fp-page-header-tag{color:var(--text-dim);font-size:var(--font-size-sm);font-weight:var(--font-weight-strong);text-transform:uppercase}.fp-page-header h1{color:var(--text-main);font-size:var(--font-size-display-xs);font-weight:var(--font-weight-hero)}.fp-page-header p,.fp-card-header p,.fp-list-header p{color:var(--text-subtle);font-size:var(--font-size-body-lg)}.fp-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-5)}.fp-summary-card{display:flex;flex-direction:column;gap:var(--space-2-5);padding:var(--space-5);border-radius:var(--radius-lg);transition:all var(--transition-base)}.fp-summary-card-header{justify-content:space-between;color:var(--text-dim);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold)}.fp-summary-card-icon{color:var(--text-dim)}.fp-summary-card-value,.fp-stats-value,.fp-list-item-amount,.fp-text-accent,.fp-budget-amount>span:first-child,.fp-input-prefix input,.fp-form-row input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.fp-summary-card-value{color:var(--text-main);font-size:var(--font-size-display-sm);font-weight:var(--font-weight-heavy)}.fp-summary-card.income .fp-summary-card-value,.fp-stats-value.income,.fp-list-item-amount.income{color:var(--color-success)}.fp-summary-card.expense .fp-summary-card-value,.fp-stats-value.expense,.fp-list-item-amount.expense,.fp-text-error{color:var(--color-danger)}.fp-summary-card.debt .fp-summary-card-value,.fp-stats-value.accent,.fp-text-accent{color:var(--color-warning)}.fp-summary-card-sub{color:var(--text-dim);font-size:var(--font-size-body-xs)}.fp-tabs{margin-top:var(--space-5)}.fp-tab-list{display:flex;width:fit-content;gap:var(--space-1);overflow-x:auto;margin-bottom:var(--space-4);padding:var(--space-1);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg)}.fp-tab{display:flex;align-items:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-3-5);background:transparent;color:var(--text-subtle);font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);white-space:nowrap;transition:all var(--transition-fast)}.fp-tab:hover{color:var(--text-main)}.fp-tab-panel{animation:fadeIn var(--transition-reveal-slow)}.fp-card,.fp-chart-card{padding:var(--space-5);margin-bottom:var(--space-4)}.fp-card-header,.fp-list-header,.fp-chart-header{justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.fp-card-header{align-items:flex-start;margin-bottom:var(--space-4)}.fp-card-header h3,.fp-list-header h3,.fp-chart-header span{color:var(--text-main);font-size:var(--font-size-lg-plus);font-weight:var(--font-weight-strong)}.fp-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-4)}.fp-stats-grid>div{display:flex;flex-direction:column;gap:var(--space-1)}.fp-stats-label,.fp-progress-header,.fp-debt-progress-footer,.fp-text-muted,.fp-debt-note,.fp-debt-meta,.fp-budget-amount,.fp-list-item-date,.fp-list-item-note{color:var(--text-dim)}.fp-stats-label,.fp-progress-header,.fp-debt-progress-footer,.fp-debt-meta{font-size:var(--font-size-body-xs)}.fp-stats-value{color:var(--text-main);font-size:var(--font-size-title-md);font-weight:var(--font-weight-heavy)}.fp-progress-section{margin-top:var(--space-3)}.fp-progress-track{width:var(--size-full);height:var(--icon-size-xs);overflow:hidden;background:var(--border-subtle);border-radius:var(--radius-pill)}.fp-progress-fill{height:var(--size-full);width:var(--progress-width);background:var(--color-brand);border-radius:var(--radius-pill);transition:width var(--transition-chart)}.fp-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1-5)}.fp-chart-header{margin-bottom:var(--space-5)}.fp-chart-legend{gap:var(--space-4);color:var(--text-subtle);font-size:var(--font-size-body-xs)}.fp-chart-controls{gap:var(--space-3)}.fp-chart-legend>span{display:flex;align-items:center;gap:var(--space-1-5)}.fp-legend-dot{display:inline-block;width:var(--icon-size-xs);height:var(--icon-size-xs);border-radius:var(--radius-round)}.fp-legend-dot.income,.fp-chart-bar.income{background:var(--color-success)}.fp-legend-dot.expense,.fp-chart-bar.expense{background:var(--color-danger)}.fp-chart-bars{display:flex;align-items:flex-end;justify-content:space-around;gap:var(--space-2);height:var(--chart-height-md);padding:0 var(--space-2)}.fp-chart-bar-group{display:flex;flex:1;max-width:var(--chart-label-width);flex-direction:column;align-items:center;gap:var(--space-2)}.fp-chart-bar-col{display:flex;align-items:flex-end;justify-content:center;gap:var(--space-1);width:var(--size-full);height:var(--chart-height-sm)}.fp-chart-bar{width:var(--icon-size-md);height:var(--bar-height);min-height:var(--chart-bar-min-height);border-radius:var(--radius-xs) var(--radius-xs) 0 0;transition:height var(--transition-chart)}.fp-chart-bar-label{color:var(--text-dim);font-size:var(--font-size-sm-plus)}.fp-list-card{overflow:hidden}.fp-list-header{align-items:flex-start;padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-subtle)}.fp-list-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-half)}.fp-list-filters{gap:var(--space-2)}.fp-list{display:flex;flex-direction:column}.fp-list-item{gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:var(--border-width) solid var(--border-subtle);transition:background var(--transition-fast)}.fp-list-item:last-child{border-bottom:none}.fp-list-item:hover{background:var(--surface-hover)}.fp-list-item-icon,.fp-debt-icon,.fp-budget-icon{width:var(--control-height-lg);height:var(--control-height-lg);font-size:var(--font-size-xl)}.fp-debt-icon{width:var(--control-height-xl);height:var(--control-height-xl)}.fp-list-item-info,.fp-debt-info,.fp-budget-info,.fp-debt-footer-info{flex:1;min-width:0}.fp-list-item-info{display:flex;flex-direction:column;gap:var(--space-half)}.fp-list-item-title{overflow:hidden;color:var(--text-main);font-size:var(--font-size-control);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap}.fp-list-item-date{font-size:var(--font-size-body-xs)}.fp-list-item-amount{color:var(--text-main);font-size:var(--font-size-base);font-weight:var(--font-weight-strong);white-space:nowrap}.fp-list-item-delete{justify-content:center;width:var(--control-height-sm);height:var(--control-height-sm);background:transparent;border-radius:var(--radius-md);cursor:pointer;opacity:var(--opacity-hidden);transition:all var(--transition-fast);flex-shrink:0}.fp-list-item:hover .fp-list-item-delete{opacity:var(--opacity-visible-muted)}.fp-overview-grid{display:grid;grid-template-columns:minmax(0,var(--layout-finance-main-ratio)) minmax(var(--grid-card-width-lg),1fr);gap:var(--space-4)}.fp-debt-grid,.fp-budget-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.fp-debt-card{overflow:hidden;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.fp-debt-card-header{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.fp-debt-title{gap:var(--space-2);flex-wrap:wrap}.fp-debt-title span:first-child,.fp-budget-title>span:first-child,.fp-debt-date>span:first-child{color:var(--text-main);font-size:var(--font-size-label);font-weight:var(--font-weight-bold)}.fp-tag{display:inline-block;padding:calc(var(--space-1) / 2) var(--space-2);background:var(--surface-hover);color:var(--text-subtle);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-semibold)}.fp-tag.fp-tag-other{background:var(--color-warning-soft);color:var(--color-warning)}.fp-debt-note{overflow:hidden;margin-top:var(--space-1);font-size:var(--font-size-body-xs);text-overflow:ellipsis;white-space:nowrap}.fp-debt-progress{padding:0 var(--space-5) var(--space-3)}.fp-debt-progress-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-1-5)}.fp-debt-footer{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--surface-rail);border-top:var(--border-width) solid var(--border-subtle)}.fp-debt-date{gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-1)}.fp-debt-meta{gap:var(--space-2);padding:var(--space-2) var(--space-5) var(--space-3);flex-wrap:wrap}.fp-budget-card{padding:var(--space-4);transition:all var(--transition-base)}.fp-budget-card.over{border-color:var(--border-danger)}.fp-budget-card-header{align-items:flex-start;gap:var(--space-3)}.fp-budget-icon.danger{background:var(--color-danger-soft);color:var(--color-danger)}.fp-budget-title{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.fp-budget-badges{gap:var(--space-1-5)}.fp-budget-amount{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--font-size-body-lg)}.fp-budget-amount>span:first-child{color:var(--text-main);font-weight:var(--font-weight-strong)}.fp-badge-danger,.fp-badge-warn{padding:calc(var(--space-1) / 2) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-bold);white-space:nowrap}.fp-section-actions{display:flex;justify-content:flex-end;margin-bottom:var(--space-4)}.fp-input-sm,.fp-select-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-body-lg)}.fp-select-sm{cursor:pointer}.fp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-6);animation:fadeIn var(--transition-pop)}.fp-modal{display:flex;width:var(--size-full);max-width:var(--modal-width-md);max-height:var(--modal-max-height);flex-direction:column;overflow:hidden;animation:scaleIn var(--transition-pop)}.fp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-subtle)}.fp-modal-header h3{color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-strong)}.fp-modal-close{width:var(--control-height-sm);height:var(--control-height-sm);background:transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.fp-modal-body{overflow-y:auto;padding:var(--space-5)}.fp-form{display:flex;flex-direction:column;gap:var(--space-4)}.fp-form-row{display:flex;flex-direction:column;gap:var(--space-1-5)}.fp-form-row label{color:var(--text-subtle);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold)}.fp-form-row input,.fp-form-row select,.fp-form-row textarea{padding:var(--space-2-5) var(--space-3);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);outline:none;font-family:inherit;transition:all var(--transition-fast)}.fp-form-row textarea{resize:vertical}.fp-form-row input:disabled{cursor:not-allowed;opacity:var(--opacity-secondary)}.fp-input-prefix{display:flex;align-items:center;padding:0 var(--space-3);background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast)}.fp-input-prefix:focus-within{border-color:var(--color-brand);box-shadow:var(--shadow-focus)}.fp-input-prefix span{margin-right:var(--space-1-5);color:var(--text-dim);font-size:var(--font-size-base)}.fp-input-prefix input{flex:1;padding:var(--space-2-5) 0;background:transparent;border:none;color:var(--text-main);font-size:var(--font-size-xl);outline:none}.fp-form-toggle{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1);padding:var(--space-1);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg)}.fp-form-toggle button{padding:var(--space-2-5);background:transparent;border-radius:var(--radius-md);color:var(--text-dim);cursor:pointer;font-size:var(--font-size-control);font-weight:var(--font-weight-bold);transition:all var(--transition-fast)}.fp-form-toggle button.active{background:var(--surface-panel);box-shadow:var(--shadow-xs);color:var(--text-main)}.fp-form-toggle button.active:first-child{color:var(--color-danger)}.fp-form-toggle button.active:last-child{color:var(--color-success)}.fp-form-actions{justify-content:flex-end;gap:var(--space-2-5);margin-top:var(--space-2)}.fp-form-hint{color:var(--text-dim);font-size:var(--font-size-body-sm)}.fp-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-5);color:var(--text-dim);font-size:var(--font-size-control)}.fp-empty-wide{width:var(--size-full)}@media (max-width: 1024px){.fp-summary-cards,.fp-stats-grid{grid-template-columns:repeat(2,1fr)}.fp-overview-grid{grid-template-columns:1fr}}@media (max-width: 768px){.fp-summary-cards,.fp-debt-grid,.fp-budget-grid{grid-template-columns:1fr}.fp-tab-list{width:var(--size-full)}.fp-page-header{flex-direction:column;align-items:flex-start}}.job-market-page{display:flex;height:calc(var(--viewport-height) - var(--navbar-height) - var(--footer-height) - var(--job-market-height-offset));min-height:var(--job-market-min-height);overflow:hidden;position:relative;background:var(--surface-panel);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-xl);color:var(--text-main);animation:fadeIn var(--transition-page-slow)}.jm-sidebar{display:flex;width:var(--panel-width-sm);flex-shrink:0;flex-direction:column;gap:var(--space-5);overflow-y:auto;padding:var(--space-5);background:var(--surface-rail);border-right:var(--border-width) solid var(--border-subtle)}.jm-sidebar h1{margin:0;color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-heavy);line-height:var(--line-height-compact)}.jm-subtitle{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--font-size-caption);line-height:var(--line-height-base)}.jm-subtitle a,.jm-data-note a{color:var(--primary-light)}.jm-stat-section{display:flex;flex-direction:column;gap:var(--space-2)}.jm-stat-section h3{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-heavy);text-transform:uppercase}.jm-stat-big{display:flex;align-items:baseline;gap:var(--space-1);color:var(--text-main);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-hero);line-height:var(--line-height-none)}.jm-stat-number{font-size:var(--font-size-display-xl);font-weight:var(--font-weight-hero)}.jm-stat-unit{color:var(--text-muted);font-size:var(--font-size-control);font-weight:var(--font-weight-semibold)}.jm-stat-label{color:var(--text-muted);font-size:var(--font-size-caption)}.jm-exposure-value{color:var(--exposure-color)}.jm-histogram{display:flex;align-items:flex-end;height:var(--job-market-metric-height);gap:var(--space-1)}.jm-hist-bar{position:relative;height:var(--bar-height);min-height:var(--chart-bar-min-height);flex:1;background:var(--bar-color);border-radius:var(--radius-xs) var(--radius-xs) 0 0}.jm-hist-labels{display:flex;justify-content:space-between;margin-top:var(--space-1);color:var(--text-muted);font-size:var(--font-size-xs)}.jm-tier-bar,.jm-hbar-chart{display:flex;flex-direction:column;gap:var(--space-1)}.jm-tier-row,.jm-hbar-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-caption)}.jm-tier-color{width:var(--icon-size-sm);height:var(--icon-size-sm);flex-shrink:0;background:var(--tier-color);border-radius:var(--radius-xs)}.jm-tier-name,.jm-tier-pct,.jm-hbar-label,.jm-stat-label,.jm-data-note,.jm-warning{color:var(--text-muted)}.jm-tier-name{flex:1}.jm-tier-jobs,.jm-tier-pct,.jm-hbar-val{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.jm-tier-pct{width:var(--control-height-xs);font-size:var(--font-size-sm)}.jm-hbar-label{width:var(--job-market-label-width);flex-shrink:0;font-size:var(--font-size-sm);text-align:right}.jm-hbar-track{height:var(--icon-size-sm);flex:1;overflow:hidden;background:var(--surface-control);border-radius:var(--radius-xs)}.jm-hbar-fill{height:var(--size-full);width:var(--bar-width);background:var(--bar-color);border-radius:var(--radius-xs)}.jm-hbar-val{width:var(--control-height-sm);flex-shrink:0;color:var(--text-subtle);font-size:var(--font-size-sm)}.jm-gradient-legend{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--font-size-sm)}.jm-gradient-legend canvas{border-radius:var(--radius-xs)}.jm-data-note{padding-top:var(--space-4);border-top:var(--border-width) solid var(--border-subtle);font-size:var(--font-size-caption);line-height:var(--line-height-body)}.jm-data-note h4{margin:0 0 var(--space-2);color:var(--text-subtle);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-heavy)}.jm-data-note p{margin:0 0 var(--space-2)}.jm-data-note ul{margin:0 0 var(--space-2);padding-left:var(--space-4)}.jm-data-note li{margin-bottom:var(--space-1)}.jm-data-note a:hover{text-decoration:underline}.jm-warning{margin-top:var(--space-2);color:var(--color-warning);font-size:var(--font-size-sm)}.jm-canvas-container{position:relative;flex:1;overflow:hidden;padding:var(--space-4);background:var(--surface-page)}.jm-canvas-container canvas{display:block;width:var(--size-full);height:var(--size-full);cursor:default;border-radius:var(--radius-lg);box-shadow:inset 0 0 0 var(--border-width) var(--border-subtle)}.jm-loading{position:absolute;top:var(--viewport-center);left:var(--viewport-center);z-index:var(--z-base);transform:var(--transform-center);color:var(--text-muted);font-size:var(--font-size-base)}.jm-tooltip{position:fixed;top:var(--tooltip-top);left:var(--tooltip-left);z-index:var(--z-modal);max-width:var(--tooltip-width);padding:var(--space-3) var(--space-4);pointer-events:none;background:var(--surface-popover);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text-subtle);font-size:var(--font-size-body-plus);line-height:var(--line-height-base)}.jm-tt-title{margin-bottom:var(--space-2);color:var(--text-main);font-size:var(--font-size-base);font-weight:var(--font-weight-heavy)}.jm-tt-exposure{margin-bottom:var(--space-2);font-size:var(--font-size-body-sm)}.jm-tt-exposure-score{color:var(--exposure-color);font-weight:var(--font-weight-medium)}.jm-tt-exposure-track{height:var(--space-1);margin-top:var(--radius-xs);overflow:hidden;background:var(--border-subtle);border-radius:var(--radius-xs)}.jm-tt-exposure-fill{width:var(--bar-width);height:var(--size-full);background:var(--bar-color);border-radius:var(--radius-xs)}.jm-tt-stats{display:grid;grid-template-columns:auto auto;gap:var(--space-1) var(--space-3);font-size:var(--font-size-body-sm)}.jm-tt-label{color:var(--text-muted)}.jm-tt-value{color:var(--text-subtle);text-align:right}.jm-tt-rationale{margin-top:var(--space-2);padding-top:var(--space-2);border-top:var(--border-width) solid var(--border-subtle);color:var(--text-muted);font-size:var(--font-size-caption);line-height:var(--line-height-snug)}@media (max-width: 768px){.job-market-page{height:auto;min-height:0;flex-direction:column}.jm-sidebar{width:var(--size-full);max-height:var(--job-market-mobile-max-height);border-right:0;border-bottom:var(--border-width) solid var(--border-subtle)}.jm-canvas-container{height:var(--job-market-mobile-height)}.jm-tooltip{max-width:var(--tooltip-mobile-width);padding:var(--space-3);font-size:var(--font-size-body-xs)}}.todo-page{animation:fadeIn var(--transition-page)}.tp-content{padding:0 0 var(--space-8)}.tp-page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.tp-page-header h1{color:var(--text-main);font-size:var(--font-size-display-xs);font-weight:var(--font-weight-hero)}.tp-filters{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-3)}.tp-filter-select,.tp-filter-input{padding:var(--space-2) var(--space-3);font-size:var(--font-size-control)}.tp-filter-input{flex:1;min-width:var(--filter-field-min-width)}.tp-list-count{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);color:var(--text-dim);font-size:var(--font-size-body)}.tp-filter-clear{padding:var(--space-0-75) var(--space-2);background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);color:var(--color-brand);font-size:var(--font-size-body);cursor:pointer;transition:all var(--transition-fast)}.tp-filter-clear:hover{background:var(--surface-hover)}.tp-todo-item{overflow:hidden;margin-bottom:var(--space-2);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-fast)}.tp-todo-item:hover{transform:translateY(var(--motion-lift-sm))}.tp-todo-main{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3-5) var(--space-4)}.tp-todo-check{display:flex;align-items:center;justify-content:center;width:var(--icon-size-lg);height:var(--icon-size-lg);flex-shrink:0;background:var(--surface-control);border:var(--border-width-strong) solid var(--border-strong);border-radius:var(--radius-round);color:var(--text-inverse);cursor:pointer;font-size:var(--font-size-body-xs);transition:all var(--transition-fast)}.tp-todo-check:hover{border-color:var(--color-brand)}.tp-todo-check.checked{background:var(--color-success);border-color:var(--color-success)}.tp-todo-check.loading{cursor:wait;opacity:var(--opacity-secondary)}.tp-todo-content{flex:1;min-width:0;cursor:pointer}.tp-todo-title-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.tp-todo-title{overflow:hidden;max-width:var(--todo-title-width);color:var(--text-main);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap}.tp-todo-title.done{color:var(--text-dim);text-decoration:line-through}.tp-todo-type-badge{display:inline-block;padding:calc(var(--space-1) / 2) var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-button);white-space:nowrap}.tp-todo-type-badge[data-type=long_term]{background:var(--color-brand-muted);color:var(--color-brand)}.tp-todo-type-badge[data-type=short_term]{background:var(--color-success-soft);color:var(--color-success)}.tp-todo-priority-dot{width:var(--icon-size-xs);height:var(--icon-size-xs);flex-shrink:0;background:var(--priority-color);border-radius:var(--radius-round)}.tp-todo-priority-dot[data-priority="0"]{--priority-color: var(--color-success)}.tp-todo-priority-dot[data-priority="1"]{--priority-color: var(--color-warning)}.tp-todo-priority-dot[data-priority="2"]{--priority-color: var(--color-danger)}.tp-todo-meta{display:flex;align-items:center;gap:var(--space-2-5);margin-top:var(--space-1);flex-wrap:wrap}.tp-todo-status{padding:var(--hairline) var(--space-1-75);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold)}.tp-todo-status.pending{background:var(--surface-hover);color:var(--text-dim)}.tp-todo-status.doing{background:var(--color-brand-muted);color:var(--color-brand)}.tp-todo-status.done{background:var(--color-success-soft);color:var(--color-success)}.tp-todo-priority,.tp-todo-due,.tp-todo-tags{color:var(--text-dim);font-size:var(--font-size-body-xs)}.tp-todo-due.overdue{color:var(--color-danger);font-weight:var(--font-weight-bold)}.tp-todo-repeat{color:var(--color-warning);font-size:var(--font-size-body-xs)}.tp-todo-actions{display:flex;align-items:center;gap:var(--space-half);opacity:var(--opacity-hidden);transition:opacity var(--transition-fast)}.tp-todo-item:hover .tp-todo-actions{opacity:var(--opacity-visible)}.tp-action-btn{justify-content:center;width:var(--control-height-sm);height:var(--control-height-sm);background:transparent;border-radius:var(--radius-md);color:var(--text-dim);cursor:pointer;font-size:var(--font-size-control);transition:all var(--transition-fast)}.tp-action-btn:hover{background:var(--surface-hover);color:var(--text-main)}.tp-action-btn.danger:hover{background:var(--color-danger-soft);color:var(--color-danger)}.tp-todo-expanded{padding:var(--space-3) var(--space-4) var(--space-3) var(--todo-detail-indent);border-top:var(--border-width) solid var(--border-subtle);background:var(--surface-rail);animation:fadeIn var(--transition-pop)}.tp-todo-detail{margin-bottom:var(--space-3)}.tp-todo-detail p{color:var(--text-subtle);font-size:var(--font-size-control);line-height:var(--line-height-base)}.tp-subtask-list{margin-top:var(--space-2)}.tp-subtask-header{margin-bottom:var(--space-2);color:var(--text-dim);font-size:var(--font-size-body);font-weight:var(--font-weight-bold)}.tp-subtask-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1-5) 0;border-bottom:var(--border-width) solid var(--border-subtle)}.tp-subtask-item:last-child{border-bottom:none}.tp-subtask-status{width:var(--icon-size-inline);flex-shrink:0;font-size:var(--font-size-control);text-align:center}.tp-subtask-status.done{color:var(--color-success)}.tp-subtask-title{flex:1;color:var(--text-main);font-size:var(--font-size-control)}.tp-subtask-title.done{color:var(--text-dim);text-decoration:line-through}.tp-subtask-due,.tp-subtask-loading{color:var(--text-dim);font-size:var(--font-size-body-xs)}.tp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-5)}.tp-empty-icon{margin-bottom:var(--space-3);font-size:var(--font-size-empty)}.tp-empty p{margin:0;font-size:var(--font-size-base)}.tp-empty-sub{margin-top:var(--space-1);font-size:var(--font-size-body)}.tp-dialog{max-width:var(--content-wide-width)}.tp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.tp-repeat-section{display:flex;flex-direction:column;gap:var(--space-3)}.tp-error{margin-bottom:var(--space-4)}@media (max-width: 768px){.tp-filters{flex-direction:column;align-items:stretch}.tp-filter-input{min-width:var(--size-full)}.tp-form-grid{grid-template-columns:1fr}.tp-todo-title{max-width:var(--empty-min-height-lg)}.tp-todo-actions{opacity:var(--opacity-visible)}.tp-page-header{flex-direction:column;align-items:flex-start}}.calendar-page{animation:fadeIn var(--transition-page)}.cp-content{padding:0 0 var(--space-8)}.cp-page-header,.cp-toolbar,.cp-nav-controls,.cp-view-switcher,.cp-legend,.cp-legend-item,.cp-day-header,.cp-day-allday,.cp-day-allday-events,.cp-popup-header,.cp-popup-detail-row,.cp-popup-actions,.cp-dialog-actions,.cp-toggle-row,.cp-color-picker{display:flex;align-items:center}.cp-page-header{justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.cp-page-header-left{display:flex;flex-direction:column;gap:var(--space-1)}.cp-page-header h1{color:var(--text-main);font-size:var(--font-size-display-xs);font-weight:var(--font-weight-hero)}.cp-page-header p{color:var(--text-subtle);font-size:var(--font-size-control)}.cp-toolbar{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.cp-nav-controls{gap:var(--space-2)}.cp-nav-btn,.cp-view-btn,.cp-btn,.cp-popup-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1-5);padding:var(--space-2) var(--space-3);background:var(--surface-control);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-subtle);font-size:var(--font-size-body-plus);font-weight:var(--font-weight-bold);cursor:pointer;transition:all var(--transition-fast)}.cp-nav-btn:hover,.cp-view-btn:hover,.cp-btn:hover,.cp-popup-btn:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text-main)}.cp-nav-btn.today,.cp-view-btn.active,.cp-btn.primary,.cp-popup-btn.primary{background:var(--color-brand);border-color:var(--color-brand);color:var(--text-inverse)}.cp-current-date{min-width:var(--toolbar-date-width);color:var(--text-main);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);text-align:center}.cp-view-switcher{gap:var(--space-1);padding:var(--space-1);background:var(--surface-rail);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg)}.cp-view-btn{background:transparent;border-color:transparent}.cp-view-btn.active{background:var(--surface-panel);border-color:var(--border-subtle);color:var(--color-brand);box-shadow:var(--shadow-xs)}.cp-legend{gap:var(--space-4);padding:var(--space-1-5) 0;flex-wrap:wrap}.cp-legend-item{gap:var(--space-1-5);color:var(--text-subtle);font-size:var(--font-size-body)}.cp-legend-dot{width:var(--icon-size-sm);height:var(--icon-size-sm);border-radius:var(--radius-round);flex-shrink:0}.cp-legend-dot.todo,.cp-month-event.todo,.cp-week-event.todo,.cp-day-allday-event.todo,.cp-day-event.todo{background:var(--cal-todo)}.cp-legend-dot.debt,.cp-month-event.debt,.cp-week-event.debt,.cp-day-allday-event.debt,.cp-day-event.debt{background:var(--cal-debt)}.cp-legend-dot.event,.cp-month-event.event,.cp-week-event.event,.cp-day-allday-event.event,.cp-day-event.event{background:var(--cal-event)}.cp-month-grid{display:grid;grid-template-columns:repeat(7,1fr);overflow:hidden;background:var(--border-subtle);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);gap:var(--hairline)}.cp-month-header,.cp-week-header-cell,.cp-week-time-label,.cp-day-header{background:var(--surface-rail)}.cp-month-header{padding:var(--space-2-5) var(--space-2);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-heavy);text-align:center;text-transform:uppercase}.cp-month-cell{position:relative;min-height:var(--calendar-cell-min-height);overflow:hidden;padding:var(--space-1-75) var(--space-2);background:var(--surface-panel);cursor:pointer;transition:background var(--transition-fast)}.cp-month-cell:hover{background:var(--surface-hover)}.cp-month-cell.today{background:var(--color-brand-soft)}.cp-month-cell.other-month{opacity:var(--opacity-muted)}.cp-month-date{margin-bottom:var(--space-1-25);color:var(--text-subtle);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-strong)}.cp-month-cell.today .cp-month-date{display:flex;align-items:center;justify-content:center;width:var(--icon-size-lg);height:var(--icon-size-lg);background:var(--color-brand);border-radius:var(--radius-round);color:var(--text-inverse)}.cp-month-events{display:flex;flex-direction:column;gap:var(--space-half)}.cp-month-event,.cp-week-event,.cp-day-event,.cp-day-allday-event{overflow:hidden;color:var(--text-inverse);cursor:pointer;font-weight:var(--font-weight-semibold);text-overflow:ellipsis;transition:opacity var(--transition-fast);white-space:nowrap}.cp-month-event,.cp-week-event{padding:var(--space-0-75) var(--space-1-5);border-radius:var(--radius-xs);font-size:var(--font-size-sm)}.cp-month-event:hover,.cp-week-event:hover,.cp-day-event:hover,.cp-day-allday-event:hover{opacity:var(--opacity-emphasis)}.cp-month-more{padding:var(--space-half) var(--space-1-5);color:var(--text-dim);cursor:pointer;font-size:var(--font-size-sm-plus)}.cp-month-more:hover{color:var(--color-brand)}.cp-week-grid{display:grid;grid-template-columns:var(--calendar-time-column-width) repeat(7,1fr);overflow:hidden;background:var(--border-subtle);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-lg);gap:var(--hairline)}.cp-week-header-cell{padding:var(--space-3) var(--space-2);color:var(--text-dim);font-size:var(--font-size-body-xs);text-align:center}.cp-week-header-cell.today{color:var(--color-brand)}.cp-week-header-cell .week-day-num{display:block;margin-top:var(--space-half);color:var(--text-main);font-size:var(--font-size-title-md);font-weight:var(--font-weight-heavy)}.cp-week-header-cell.today .week-day-num{color:var(--color-brand)}.cp-week-time-label{display:flex;align-items:flex-start;justify-content:flex-end;min-height:var(--icon-size-3xl);padding:var(--space-1) var(--space-2);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:var(--line-height-none);text-align:right}.cp-week-day-cell{position:relative;min-height:var(--icon-size-3xl);padding:var(--space-1);background:var(--surface-panel)}.cp-week-day-cell.today{background:var(--color-brand-soft)}.cp-day-container{overflow:hidden}.cp-day-header{justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-subtle)}.cp-day-header-date{color:var(--text-main);font-size:var(--font-size-title-xs);font-weight:var(--font-weight-strong)}.cp-day-header-weekday{color:var(--text-subtle);font-size:var(--font-size-body-lg)}.cp-today-pill{color:var(--color-brand);font-size:var(--font-size-body-xs);font-weight:var(--font-weight-heavy)}.cp-day-allday{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface-panel);border-bottom:var(--border-width) solid var(--border-subtle)}.cp-day-allday-label{width:var(--table-col-xs);flex-shrink:0;color:var(--text-dim);font-size:var(--font-size-body-xs);font-weight:var(--font-weight-semibold)}.cp-day-allday-events{flex:1;gap:var(--space-1-5);flex-wrap:wrap}.cp-day-allday-event,.cp-day-event{padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-md);font-size:var(--font-size-body-xs)}.cp-day-timeline{position:relative;background:var(--surface-panel)}.cp-day-hour-row{display:grid;grid-template-columns:var(--calendar-time-column-width) 1fr;min-height:var(--calendar-hour-height);border-bottom:var(--border-width) solid var(--border-subtle)}.cp-day-hour-label{padding:var(--space-1) var(--space-2);border-right:var(--border-width) solid var(--border-subtle);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--font-size-sm);text-align:right}.cp-day-hour-content{position:relative;min-height:var(--calendar-hour-height);padding:var(--space-1) var(--space-2)}.cp-popup-overlay,.cp-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;animation:fadeIn var(--transition-pop)}.cp-popup,.cp-dialog{animation:scaleIn var(--transition-pop)}.cp-popup{width:min(var(--modal-width-sm),calc(var(--viewport-width) - var(--viewport-dialog-gutter)));padding:var(--space-6)}.cp-popup-header{align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.cp-popup-title{color:var(--text-main);font-size:var(--font-size-title-xs);font-weight:var(--font-weight-strong)}.cp-popup-close{width:var(--control-height-sm);height:var(--control-height-sm);background:transparent;border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.cp-popup-source{display:inline-flex;align-items:center;gap:var(--space-1-5);margin-bottom:var(--space-3);padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-pill);font-size:var(--font-size-body-xs);font-weight:var(--font-weight-semibold)}.cp-popup-source.todo{background:var(--color-info-soft);color:var(--cal-todo)}.cp-popup-source.debt{background:var(--color-danger-soft);color:var(--cal-debt)}.cp-popup-source.event{background:var(--color-success-soft);color:var(--cal-event)}.cp-popup-detail{margin-bottom:var(--space-4);color:var(--text-subtle);font-size:var(--font-size-body-lg);line-height:var(--line-height-relaxed)}.cp-popup-detail-row{gap:var(--space-2);margin-bottom:var(--space-1-5)}.cp-popup-detail-label{min-width:var(--table-col-xs);color:var(--text-dim)}.cp-popup-actions,.cp-dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}.cp-popup-btn.danger,.cp-btn.danger{background:transparent;border-color:var(--border-danger);color:var(--color-danger)}.cp-popup-btn.danger:hover,.cp-btn.danger:hover{background:var(--color-danger-soft)}.cp-dialog{width:min(var(--modal-width-lg),calc(var(--viewport-width) - var(--viewport-dialog-gutter)));padding:var(--space-6)}.cp-dialog h2{margin-bottom:var(--space-5);color:var(--text-main);font-size:var(--font-size-title-sm);font-weight:var(--font-weight-heading)}.cp-form-group{margin-bottom:var(--space-4)}.cp-form-group label{display:block;margin-bottom:var(--space-1-5);color:var(--text-subtle);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold)}.cp-form-group input[type=text],.cp-form-group input[type=date],.cp-form-group input[type=datetime-local],.cp-form-group textarea,.cp-form-group select{width:var(--size-full);padding:var(--space-2-25) var(--space-3);font-size:var(--font-size-control);font-family:inherit}.cp-form-group textarea{min-height:var(--calendar-form-min-height);resize:vertical}.cp-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.cp-toggle-row{justify-content:space-between;padding:var(--space-2) 0}.cp-toggle-label{color:var(--text-subtle);font-size:var(--font-size-control)}.cp-toggle{position:relative;width:var(--switch-width);height:var(--icon-size-lg);background:var(--border-strong);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-fast)}.cp-toggle.active{background:var(--color-brand)}.cp-toggle:after{content:"";position:absolute;top:var(--space-0-75);left:var(--space-0-75);width:var(--icon-size-inline);height:var(--icon-size-inline);background:var(--text-inverse);border-radius:var(--radius-round);transition:transform var(--transition-fast)}.cp-toggle.active:after{transform:translate(var(--motion-toggle-offset))}.cp-color-picker{gap:var(--space-2);flex-wrap:wrap}.cp-color-option{width:var(--control-height-sm);height:var(--control-height-sm);background:var(--event-color);border:var(--border-width-strong) solid transparent;border-radius:var(--radius-round);cursor:pointer;transition:all var(--transition-fast)}.cp-color-option:hover{transform:scale(1.12)}.cp-color-option.selected{border-color:var(--text-main);box-shadow:0 0 0 var(--border-width-strong) var(--surface-panel),0 0 0 var(--caret-size) var(--text-main)}.cp-btn-compact{gap:var(--space-2);padding:var(--space-1-75) var(--space-3-25);font-size:var(--font-size-body)}.cp-error{margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-danger-soft);border:var(--border-width) solid var(--border-danger);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-size-control)}.cp-loading,.cp-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-10);color:var(--text-dim);font-size:var(--font-size-base)}.cp-empty{flex-direction:column;text-align:center}.cp-empty-icon{margin-bottom:var(--space-3);font-size:var(--font-size-empty)}@media (max-width: 768px){.cp-nav-controls{order:3;width:var(--size-full);justify-content:center}.cp-current-date{min-width:auto}.cp-month-cell{min-height:var(--calendar-cell-mobile-height);padding:var(--space-1)}.cp-month-event{padding:var(--hairline) var(--space-1);font-size:var(--font-size-2xs)}.cp-week-grid{grid-template-columns:var(--calendar-time-column-mobile-width) repeat(7,1fr)}.cp-form-row{grid-template-columns:1fr}}@media (max-width: 480px){.cp-view-btn{padding:var(--space-1-25) var(--space-2-25)}.cp-month-cell{min-height:var(--calendar-cell-compact-height)}}
