:root{color-scheme:light;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: clamp(1.5rem, 1.2rem + 1.2vw, 1.875rem);--text-3xl: clamp(1.875rem, 1.4rem + 1.8vw, 2.5rem);--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.2;--leading-normal: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgb(16 42 40 / .06);--shadow-md: 0 4px 16px rgb(16 42 40 / .08);--shadow-lg: 0 20px 48px rgb(16 42 40 / .18);--control-height: 2.75rem;--control-height-sm: 2.25rem;--duration-fast: .15s;--duration-base: .2s;--ease: cubic-bezier(.2, 0, 0, 1);--z-sticky: 10;--z-sidebar: 30;--z-toast: 50;--sidebar-width: 248px;--topbar-height: 4.25rem;--content-max: 1200px;--color-bg: #f4f6f3;--color-surface: #ffffff;--color-surface-muted: #f1f5f2;--color-surface-hover: #eaf2ee;--color-border: #e1e8e3;--color-border-strong: #cad6cf;--color-text: #15302d;--color-text-muted: #4a625e;--color-text-subtle: #5d736f;--color-overlay: rgb(9 33 31 / .55);--color-primary: #157a74;--color-primary-hover: #0f645f;--color-primary-contrast: #ffffff;--color-primary-soft: #e2f2ee;--color-primary-soft-text: #0f5c57;--color-focus: #2fa89f;--tone-neutral-bg: #eef2ef;--tone-neutral-fg: #3e5550;--tone-info-bg: #e5f0fa;--tone-info-fg: #1d5584;--tone-success-bg: #e3f4ea;--tone-success-fg: #17663d;--tone-warning-bg: #fdf3dc;--tone-warning-fg: #7a4d00;--tone-warning-border: #f0dcaa;--tone-danger-bg: #fdecea;--tone-danger-fg: #a1251a;--tone-danger-border: #f5c6c0;--color-danger: #b42318;--color-danger-hover: #951c13;--sidebar-bg: #113c3a;--sidebar-fg: #c3dad2;--sidebar-fg-strong: #ffffff;--sidebar-muted: #8fb2a8;--sidebar-hover: rgb(255 255 255 / .07);--sidebar-active: rgb(255 255 255 / .12);--sidebar-border: rgb(255 255 255 / .1);--calendar-hour: 120px}:root[data-theme=dark]{color-scheme:dark;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow-md: 0 4px 16px rgb(0 0 0 / .3);--shadow-lg: 0 20px 48px rgb(0 0 0 / .5);--color-bg: #0d1716;--color-surface: #142120;--color-surface-muted: #1a2a28;--color-surface-hover: #1f3230;--color-border: #243533;--color-border-strong: #334845;--color-text: #e4eeeb;--color-text-muted: #a9bdb7;--color-text-subtle: #91a7a0;--color-overlay: rgb(2 10 9 / .72);--color-primary: #2a9d94;--color-primary-hover: #33b0a6;--color-primary-contrast: #061e1b;--color-primary-soft: #173a35;--color-primary-soft-text: #8fdcd1;--color-focus: #5fd0c5;--tone-neutral-bg: #1e2e2c;--tone-neutral-fg: #b5c8c2;--tone-info-bg: #16303f;--tone-info-fg: #92c8ec;--tone-success-bg: #143224;--tone-success-fg: #8fdcae;--tone-warning-bg: #2f2716;--tone-warning-fg: #ecc982;--tone-warning-border: #4a3d1f;--tone-danger-bg: #3a1c18;--tone-danger-fg: #f6b3a8;--tone-danger-border: #5c2e26;--color-danger: #c63d31;--color-danger-hover: #b53328;--sidebar-bg: #0a2322;--sidebar-fg: #b4ccc4;--sidebar-muted: #7d9c93}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;overflow-x:clip;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);font-synthesis:none;-webkit-font-smoothing:antialiased}h1,h2,h3,p,dl,dd,figure{margin:0}h1,h2,h3{line-height:var(--leading-tight);letter-spacing:-.02em}button,input,select,textarea{font:inherit;color:inherit}button,a,label,select{touch-action:manipulation}button{cursor:pointer}a{color:inherit}fieldset{margin:0;padding:0;border:0;min-width:0}legend{padding:0}ul[role=list]{list-style:none;margin:0;padding:0}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:-100px;z-index:var(--z-toast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);font-weight:var(--weight-semibold)}.skip-link:focus{top:var(--space-4)}.text-muted{color:var(--color-text-muted)}.text-subtle{color:var(--color-text-subtle)}.text-sm{font-size:var(--text-sm)}.amount{font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold)}.stack-md{display:grid;gap:var(--space-4)}.stack-lg{display:grid;gap:var(--space-6)}.eyebrow{margin-bottom:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle)}.display-title{font-size:var(--text-3xl);font-weight:var(--weight-bold);letter-spacing:-.035em}.page-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.03em}.page-description{margin-top:var(--space-1);color:var(--color-text-muted)}.section-title{font-size:var(--text-xl);font-weight:var(--weight-semibold)}.section-title:first-letter{text-transform:uppercase}.icon{display:inline-flex;flex:none;width:var(--icon-size, 18px);height:var(--icon-size, 18px)}.icon svg{width:100%;height:100%}.brand{display:inline-flex;align-items:center;gap:var(--space-2);font-size:1.5rem;font-weight:var(--weight-bold);letter-spacing:-.06em;line-height:1;color:var(--color-primary)}.brand svg{width:28px;height:28px;flex:none}.brand-dot{color:#7fcfbf}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1;white-space:nowrap;text-decoration:none;transition:background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.btn-link{min-height:auto;padding:var(--space-1) 0;background:none;color:var(--color-primary)}.btn-link:hover:not(:disabled){color:var(--color-primary-hover);text-decoration:underline;text-underline-offset:3px}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-danger-ghost{background:transparent;border-color:var(--tone-danger-border);color:var(--tone-danger-fg)}.btn-danger-ghost:hover:not(:disabled){background:var(--tone-danger-bg)}.btn-sm{min-height:var(--control-height-sm);padding:0 var(--space-3)}.btn-lg{min-height:3rem;font-size:var(--text-base)}.btn-block{width:100%}.btn-icon{width:var(--control-height);padding:0;flex:none}.btn-icon-sm{width:2rem;min-height:2rem}.spinner{display:inline-block;flex:none;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.spinner-lg{width:1.75rem;height:1.75rem;border-width:3px;color:var(--color-primary)}@keyframes spin{to{transform:rotate(360deg)}}.form-stack{display:grid;gap:var(--space-5)}.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.form-section{display:grid;gap:var(--space-4)}.form-section+.form-section{padding-top:var(--space-5);border-top:1px solid var(--color-border)}.form-section-title{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);font-size:var(--text-base);font-weight:var(--weight-semibold)}.step{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary-soft-text);font-size:var(--text-xs);font-weight:var(--weight-bold)}.field{display:grid;gap:var(--space-2);min-width:0}.field-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.optional{font-weight:400;color:var(--color-text-subtle)}.field-hint{font-size:var(--text-sm);color:var(--color-text-subtle)}.field-error{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--tone-danger-fg)}.input{width:100%;min-height:var(--control-height);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.input::placeholder{color:var(--color-text-subtle);opacity:.8}.input:hover:not(:disabled){border-color:var(--color-text-subtle)}.input:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 35%,transparent)}.input:disabled{cursor:not-allowed;opacity:.6}.input[aria-invalid=true]{border-color:var(--color-danger)}.input[aria-invalid=true]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 25%,transparent)}textarea.input{resize:vertical;min-height:5.5rem}.input-sm{min-height:var(--control-height-sm);font-size:var(--text-sm)}.input-color{width:4.5rem;padding:var(--space-1);cursor:pointer}.color-field{display:flex;align-items:center;gap:var(--space-3)}app-date-field{display:block;min-width:0}.date-field{position:relative;display:flex;align-items:center;gap:var(--space-2);min-width:0}.date-field-text{flex:1 1 auto;width:auto;min-width:0;font-variant-numeric:tabular-nums}.date-field-native{position:absolute;right:0;bottom:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.alert,.callout{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm)}.alert>.icon,.callout>.icon{margin-top:2px}.alert p,.callout p{color:inherit}.alert strong{display:block;margin-bottom:var(--space-1)}.alert-danger{background:var(--tone-danger-bg);border-color:var(--tone-danger-border);color:var(--tone-danger-fg)}.alert-warning{background:var(--tone-warning-bg);border-color:var(--tone-warning-border);color:var(--tone-warning-fg)}.callout{background:var(--color-surface-muted);color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel{padding:var(--space-5);min-width:0}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.panel-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.panel-title:first-letter{text-transform:uppercase}.count{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--tone-neutral-bg);color:var(--tone-neutral-fg);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.panel-accent{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);background:var(--color-primary-soft);border-color:transparent}.panel-accent .text-muted{color:var(--color-text-muted)}.panel-accent-icon{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary)}.panel-accent .btn{margin-top:auto}.badge{display:inline-flex;align-items:center;gap:var(--space-1);flex:none;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;background:var(--tone-neutral-bg);color:var(--tone-neutral-fg)}.badge-dot{width:.4rem;height:.4rem;border-radius:50%;background:currentColor}.badge-info{background:var(--tone-info-bg);color:var(--tone-info-fg)}.badge-success{background:var(--tone-success-bg);color:var(--tone-success-fg)}.badge-warning{background:var(--tone-warning-bg);color:var(--tone-warning-fg)}.badge-danger{background:var(--tone-danger-bg);color:var(--tone-danger-fg)}.tone-neutral{background:var(--tone-neutral-bg);color:var(--tone-neutral-fg)}.tone-info{background:var(--tone-info-bg);color:var(--tone-info-fg)}.tone-success{background:var(--tone-success-bg);color:var(--tone-success-fg)}.tone-warning{background:var(--tone-warning-bg);color:var(--tone-warning-fg)}.avatar{display:inline-grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary-soft-text);font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:.02em}.avatar-sm{width:2rem;height:2rem;font-size:var(--text-xs)}.avatar-accent{box-shadow:inset 0 0 0 2px var(--avatar-accent)}.empty-state{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center}.empty-state-icon{display:inline-grid;place-items:center;width:3rem;height:3rem;margin-bottom:var(--space-1);border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-subtle)}.empty-state-title{font-weight:var(--weight-semibold)}.empty-state-text{max-width:36ch;font-size:var(--text-sm);color:var(--color-text-muted)}.empty-state .btn{margin-top:var(--space-2)}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,var(--color-surface-muted) 0%,var(--color-surface-hover) 50%,var(--color-surface-muted) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton-text{height:.875rem}.skeleton-title{height:2rem}.skeleton-block,.skeleton-chip{height:var(--control-height)}.skeleton-card{height:8.5rem;border-radius:var(--radius-lg)}.skeleton-panel{height:18rem;border-radius:var(--radius-lg)}.w-30{width:30%}.w-40{width:40%}.w-50{width:50%}.w-70{width:70%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.list-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-width:0;padding:var(--space-3) var(--space-2);border:0;border-top:1px solid var(--color-border);background:none;text-align:left}.list>li:first-child>.list-item,.panel-header+.list-item{border-top:0}.list-item-action{border-radius:var(--radius-md);transition:background-color var(--duration-fast) var(--ease)}.list-item-action:hover{background:var(--color-surface-hover)}.list-item-action+.list-item-action:hover,.list-item-action:hover+.list-item-action{border-top-color:transparent}.list-item-main{display:grid;gap:.125rem;flex:1 1 auto;min-width:0}.list-item-title{font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item-meta{font-size:var(--text-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.list-item-meta-row{display:flex;flex-wrap:wrap;column-gap:var(--space-4);row-gap:var(--space-1)}.list-item-meta-row>span{display:inline-flex;align-items:center;gap:var(--space-1);min-width:0}.list-item-time{flex:none;width:3.25rem;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-primary)}.list-item-icon{display:inline-grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-text-muted)}.list-item-end{flex:none;margin-left:auto}.color-chip{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-subtle)}.color-swatch{width:.875rem;height:.875rem;border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f}.modal{width:min(100% - 2rem,540px);max-height:calc(100dvh - 2rem);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg)}.modal::backdrop{background:var(--color-overlay)}.modal[open]{animation:modal-in var(--duration-base) var(--ease)}.modal-panel{padding:var(--space-6)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.modal-header .btn-icon{margin:calc(var(--space-2) * -1) calc(var(--space-2) * -1) 0 0}.modal-title{font-size:var(--text-xl);font-weight:var(--weight-semibold)}.modal-body{display:grid;gap:var(--space-5)}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.modal-actions-note{flex:1 1 100%;font-size:var(--text-sm);color:var(--color-text-muted)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.detail-title{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.detail-list{display:grid;gap:var(--space-3)}.detail-list>div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:var(--space-3);font-size:var(--text-sm)}.detail-list dt{color:var(--color-text-subtle)}.detail-list dd{font-weight:var(--weight-medium);overflow-wrap:anywhere}.detail-list dd:first-letter{text-transform:uppercase}.toast-region{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:var(--z-toast);display:grid;gap:var(--space-2);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);max-width:26rem;pointer-events:auto;padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);font-size:var(--text-sm);animation:modal-in var(--duration-base) var(--ease)}.toast>.icon:first-child{color:var(--tone-success-fg)}.splash{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:var(--space-6)}.auth-page{position:relative;min-height:100vh;display:grid;place-items:center;padding:var(--space-6) var(--space-4);background:radial-gradient(circle at 15% 15%,var(--color-primary-soft),transparent 40%),var(--color-bg)}.auth-toolbar{position:absolute;top:var(--space-4);right:var(--space-4)}.auth-card{width:min(100%,440px);display:grid;gap:var(--space-6);padding:var(--space-10) var(--space-8);box-shadow:var(--shadow-md)}.auth-intro{display:grid;gap:var(--space-2)}.public-page{min-height:100vh;display:flex;flex-direction:column}.public-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:min(100% - 2rem,640px);margin:0 auto;padding:var(--space-5) 0}.public-main{flex:1;width:min(100% - 2rem,640px);margin:0 auto}.public-card{display:grid;gap:var(--space-6);padding:var(--space-8);box-shadow:var(--shadow-md)}.public-footer{padding:var(--space-6) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--color-text-subtle)}.section-intro{display:grid;gap:var(--space-2)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:var(--space-2)}.slot{position:relative;display:block;cursor:pointer}.slot input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.slot span{display:grid;place-items:center;min-height:var(--control-height);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;transition:background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.slot:hover span{border-color:var(--color-primary);background:var(--color-surface-hover)}.slot input:checked+span{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-primary-contrast)}.slot input:focus-visible+span{outline:3px solid var(--color-focus);outline-offset:2px}.summary{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-primary-soft-text);font-size:var(--text-sm)}.summary>div{display:grid;gap:.125rem}.summary span:first-letter{text-transform:uppercase}.success-panel{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-4) 0;text-align:center}.success-icon{display:inline-grid;place-items:center;width:4rem;height:4rem;margin-bottom:var(--space-2);border-radius:50%;background:var(--tone-success-bg);color:var(--tone-success-fg)}.reference-box{display:grid;gap:var(--space-1);width:100%;padding:var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-muted)}.reference-box span{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle)}.reference-box strong{font-size:var(--text-xl);letter-spacing:.06em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5) var(--space-3);overflow-y:auto;background:var(--sidebar-bg);color:var(--sidebar-fg)}.sidebar .brand{color:var(--sidebar-fg-strong)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);margin-bottom:var(--space-6);min-height:var(--control-height)}.sidebar-close{display:none;color:var(--sidebar-fg);background:transparent}.sidebar-close:hover{background:var(--sidebar-hover)}.sidebar-label{padding:0 var(--space-3);margin-bottom:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--sidebar-muted)}.sidebar-nav{display:grid;gap:var(--space-1)}.sidebar-footer{display:grid;gap:var(--space-1);margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--sidebar-border)}.nav-item{position:relative;display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--control-height);padding:0 var(--space-3);border:0;border-radius:var(--radius-md);background:transparent;color:var(--sidebar-fg);font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:left;text-decoration:none;transition:background-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.nav-item:hover:not(:disabled){background:var(--sidebar-hover);color:var(--sidebar-fg-strong)}.nav-item.active{background:var(--sidebar-active);color:var(--sidebar-fg-strong);font-weight:var(--weight-semibold)}.nav-item.active:before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:3px;border-radius:0 3px 3px 0;background:#7fcfbf}.nav-item:disabled{cursor:not-allowed;opacity:.55}.nav-item:focus-visible{outline-color:#7fcfbf;outline-offset:-2px}.nav-item-end{margin-left:auto;opacity:.7}.nav-backdrop{display:none}.main-area{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:var(--z-sticky);height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 clamp(var(--space-4),3vw,var(--space-10));border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px)}.topbar-start,.topbar-end{display:flex;align-items:center;gap:var(--space-3);min-width:0}.topbar-end{justify-content:flex-end}.mobile-menu{display:none}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-subtle);white-space:nowrap}.breadcrumb [aria-current]{font-weight:var(--weight-semibold);color:var(--color-text)}.workspace-picker{min-width:0}.workspace-picker .input{width:100%;max-width:260px;text-overflow:ellipsis;background-color:var(--color-surface-muted)}.user-chip{display:flex;align-items:center;gap:var(--space-2);min-width:0}.user-chip-name{max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);font-weight:var(--weight-medium)}.content{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-8) clamp(var(--space-4),3vw,var(--space-10)) var(--space-12);display:grid;align-content:start;gap:var(--space-6)}.content:focus{outline:none}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-header-text{min-width:0}.view{display:grid;gap:var(--space-6);min-width:0;transition:opacity var(--duration-base) var(--ease)}.view.is-refreshing{opacity:.6;pointer-events:none}.view>*{display:grid;align-content:start;gap:var(--space-6);min-width:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.date-controls{display:flex;align-items:center;gap:var(--space-2)}.date-input{width:14rem}.toolbar-filter{display:flex;align-items:center;gap:var(--space-3);min-width:0}.toolbar-filter .field-label{color:var(--color-text-muted);font-weight:var(--weight-medium);white-space:nowrap}.toolbar-filter .input{min-width:13rem}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.stat{display:grid;gap:var(--space-1);padding:var(--space-5);min-width:0}.stat-icon{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:var(--space-2);border-radius:var(--radius-md)}.stat-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-hint{font-size:var(--text-xs);color:var(--color-text-subtle)}.split-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--space-4);align-items:start}.split-even{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-scroll{overflow-x:auto;margin:0 calc(var(--space-5) * -1) calc(var(--space-5) * -1);padding:0 var(--space-5) var(--space-5)}.calendar-scroll:focus-visible{outline-offset:-3px}.calendar-grid{display:grid;min-width:max-content}.calendar-corner{position:sticky;left:0;z-index:2;background:var(--color-surface)}.calendar-person{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3) var(--space-4);border-left:1px solid var(--color-border)}.calendar-person-text{display:grid;min-width:0;font-size:var(--text-sm)}.calendar-person-text strong,.calendar-person-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-person-text small{font-size:var(--text-xs);color:var(--color-text-subtle)}.calendar-hours{display:grid;grid-auto-rows:var(--calendar-hour)}.calendar-hours span{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-text-subtle);transform:translateY(-.5rem)}.calendar-column{position:relative;height:calc(var(--calendar-hour) * 9);border-left:1px solid var(--color-border);background:repeating-linear-gradient(to bottom,var(--color-border) 0,var(--color-border) 1px,transparent 1px,transparent var(--calendar-hour))}.calendar-event{position:absolute;left:4px;right:4px;overflow:hidden;display:grid;align-content:start;gap:1px;padding:3px 6px;border:0;border-left:3px solid var(--event-color, var(--color-primary));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--event-color, var(--color-primary)) 14%,var(--color-surface));color:var(--color-text);font-size:var(--text-xs);line-height:1.25;text-align:left;transition:background-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.calendar-event:hover{background:color-mix(in srgb,var(--event-color, var(--color-primary)) 24%,var(--color-surface));box-shadow:var(--shadow-md)}.calendar-event.is-completed{background:var(--color-surface-muted);color:var(--color-text-muted)}.calendar-event strong,.calendar-event span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-chip-name{display:none}}@media(max-width:960px){.split-grid,.split-even{grid-template-columns:minmax(0,1fr)}.breadcrumb-root{display:none}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:var(--z-sidebar);width:min(85vw,280px);height:100dvh;transform:translate(-100%);visibility:hidden;transition:transform var(--duration-base) var(--ease),visibility 0s linear var(--duration-base)}.sidebar.open{transform:none;visibility:visible;transition:transform var(--duration-base) var(--ease);box-shadow:var(--shadow-lg)}.sidebar-close{display:inline-flex}.nav-backdrop{display:block;position:fixed;inset:0;z-index:calc(var(--z-sidebar) - 1);background:var(--color-overlay)}.mobile-menu{display:inline-flex}.breadcrumb{display:none}.topbar{height:3.75rem;gap:var(--space-2)}.topbar-start{flex:none}.topbar-end{flex:1 1 auto;gap:var(--space-2)}.workspace-picker{flex:1 1 auto;max-width:260px}.workspace-picker .input{max-width:none}.content{padding-top:var(--space-6);gap:var(--space-5)}.page-header{align-items:stretch;flex-direction:column}.page-header>.btn{width:100%}.toolbar{flex-direction:column;align-items:stretch}.date-controls{width:100%;flex-wrap:wrap}.date-input{flex:1 1 11rem;width:auto;min-width:0}.toolbar-filter{width:100%}.toolbar-filter .input{flex:1;min-width:0}.panel{padding:var(--space-4)}.calendar-scroll{margin:0 calc(var(--space-4) * -1) calc(var(--space-4) * -1);padding:0 var(--space-4) var(--space-4)}.auth-card,.public-card{padding:var(--space-6) var(--space-5)}.modal{width:100%;max-width:none;max-height:92dvh;margin:auto 0 0;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-panel{padding:var(--space-5) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom))}.modal-actions>.btn{flex:1 1 auto}.toast-region{left:var(--space-4);right:var(--space-4);bottom:var(--space-4)}.toast{max-width:none}}@media(max-width:420px){.stats-grid{gap:var(--space-3)}.stat{padding:var(--space-4)}.stat-value{font-size:var(--text-xl)}.form-columns{grid-template-columns:minmax(0,1fr)}.date-controls{gap:var(--space-1)}.workspace-picker{max-width:150px}.list-item:has(.list-item-end){flex-wrap:wrap}.list-item .btn.list-item-end{width:100%}.detail-list>div{grid-template-columns:minmax(0,1fr);gap:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
