.pf-shell{display:flex;flex-direction:column;height:calc(100vh / .9);overflow:hidden;background:var(--color-bg);color:var(--color-text)}.pf-topline{height:3px;background:var(--color-accent);flex-shrink:0}.pf-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.pf-brand{display:inline-flex;align-items:center;gap:var(--space-3);font-weight:700;letter-spacing:.06em;font-size:var(--text-sm)}.pf-mark{width:10px;height:10px;background:var(--color-accent);flex-shrink:0}.pf-badge{padding:2px 8px;border-radius:var(--radius-sm);background:var(--color-accent-bg);color:var(--color-text);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.pf-nav{display:flex;align-items:center;gap:var(--space-2)}.pf-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);text-decoration:none}.pf-nav a:hover{background:var(--color-surface-2);color:var(--color-text)}.pf-nav a.active{background:var(--color-surface-2);color:var(--color-text);font-weight:600}.pf-right{display:flex;align-items:center;gap:var(--space-3)}.pf-account{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.pf-main{flex:1;overflow-y:auto;padding:var(--space-5)}.pf-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.pf-page-head h1{margin:0 0 var(--space-1);font-size:var(--text-xl)}.pf-page-head p{margin:0;color:var(--color-text-muted);font-size:var(--text-sm);max-width:70ch}.pf-filters{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.pf-note{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.5;margin-bottom:var(--space-4)}.pf-login{min-height:calc(100vh / .9);display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--color-bg)}.pf-login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-top:3px solid var(--color-accent);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.pf-login-card h1{margin:0;font-size:var(--text-lg)}@media (max-width: 720px){.pf-header{flex-wrap:wrap}.pf-nav{order:3;width:100%}}.form-section-title{margin:var(--space-5) 0 var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-hairline);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.form-section-title:first-of-type{margin-top:var(--space-3)}.provisioning-steps{margin:var(--space-3) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-1);max-height:20rem;overflow-y:auto}.provisioning-steps li{display:grid;grid-template-columns:1.25rem 1fr auto;align-items:baseline;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-muted)}.provisioning-steps li[data-status=done]{color:var(--color-text)}.provisioning-steps li[data-status=running]{background:var(--color-surface-2);color:var(--color-text)}.provisioning-steps li[data-status=failed]{color:var(--color-danger)}.provisioning-mark{font-family:var(--font-mono);text-align:center}.provisioning-steps li[data-status=done] .provisioning-mark{color:var(--color-success)}.provisioning-steps li[data-status=failed] .provisioning-mark{color:var(--color-danger)}@media (prefers-reduced-motion: no-preference){.provisioning-steps li[data-status=running] .provisioning-mark{animation:pf-pulse 1.2s ease-in-out infinite}}@keyframes pf-pulse{0%,to{opacity:1}50%{opacity:.35}}.pf-badges{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.pf-role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:var(--space-2);margin-top:var(--space-2)}.pf-role-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer}.pf-role-option:hover{border-color:var(--color-border-strong)}.pf-reset-link{margin:var(--space-2) 0;padding:var(--space-3);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-surface-2);font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-all;user-select:all}:root{color-scheme:dark;--color-bg: oklch(16% .028 264);--color-surface: oklch(20% .032 264);--color-surface-2: oklch(25% .036 264);--color-surface-3: oklch(30% .04 264);--color-hairline: oklch(70% .05 264 / .16);--color-hairline-strong: oklch(75% .06 264 / .3);--color-border: var(--color-hairline);--color-border-strong: var(--color-hairline-strong);--color-text: oklch(97% .008 264);--color-text-muted: oklch(78% .015 264);--color-text-faint: oklch(63% .02 264);--color-accent: oklch(66% .18 264);--color-accent-strong: oklch(74% .16 264);--color-accent-bg: oklch(34% .11 264);--color-success: oklch(76% .11 150);--color-warning: oklch(82% .12 85);--color-danger: oklch(70% .16 25);--color-info: oklch(74% .1 250);--tint-success: oklch(76% .11 150 / .15);--tint-warning: oklch(82% .12 85 / .15);--tint-danger: oklch(70% .16 25 / .15);--tint-info: oklch(74% .1 250 / .15);--tint-neutral: oklch(100% 0 0 / .07);--chart-axis: oklch(72% .008 60);--chart-grid: oklch(100% 0 0 / .05);--chart-accent: var(--color-accent);--chart-revenue: oklch(62% .19 264);--chart-revenue-fill: oklch(62% .19 264 / .18);--chart-expense: oklch(72% .18 25);--chart-expense-fill: oklch(72% .18 25 / .16);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-serif: "Fraunces", "New York", "Iowan Old Style", Georgia, serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, ui-monospace, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: clamp(1.625rem, 1.2rem + 1vw, 2rem);--text-display: clamp(2.5rem, 1.6rem + 2vw, 3.75rem);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--duration-fast: .12s;--duration-normal: .22s;--ease-out: cubic-bezier(.2, .7, .2, 1);--shadow-sm: 0 1px 2px rgba(4, 8, 20, .35);--shadow-md: 0 16px 40px rgba(4, 8, 20, .5);--color-backdrop: oklch(16% .03 264 / .66)}:root[data-theme=light]{color-scheme:light;--color-bg: oklch(100% 0 0);--color-surface: oklch(100% 0 0);--color-surface-2: oklch(97% 0 0);--color-surface-3: oklch(94% 0 0);--color-hairline: oklch(0% 0 0 / .12);--color-hairline-strong: oklch(0% 0 0 / .45);--color-border: var(--color-hairline);--color-border-strong: var(--color-hairline-strong);--color-text: oklch(10% 0 0);--color-text-muted: oklch(40% 0 0);--color-text-faint: oklch(56% 0 0);--color-accent: oklch(15% 0 0);--color-accent-strong: oklch(0% 0 0);--color-accent-bg: oklch(94% 0 0);--color-success: oklch(48% .15 145);--color-warning: oklch(58% .16 80);--color-danger: oklch(54% .2 25);--color-info: oklch(50% .16 250);--tint-success: oklch(48% .15 145 / .07);--tint-warning: oklch(58% .16 80 / .08);--tint-danger: oklch(54% .2 25 / .07);--tint-info: oklch(50% .16 250 / .07);--tint-neutral: oklch(0% 0 0 / .05);--chart-axis: oklch(40% 0 0);--chart-grid: oklch(0% 0 0 / .07);--chart-accent: oklch(62% .19 264);--chart-revenue: oklch(62% .19 264);--chart-revenue-fill: oklch(62% .19 264 / .18);--chart-expense: oklch(72% .18 25);--chart-expense-fill: oklch(72% .18 25 / .16);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 8px 20px rgba(0, 0, 0, .1);--color-backdrop: rgba(0, 0, 0, .35)}*{box-sizing:border-box}html{zoom:.9}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);font-feature-settings:"cv11";line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,.display-serif{font-family:var(--font-serif);font-feature-settings:"ss01";letter-spacing:-.02em;font-weight:500;line-height:1.08}.mono,.num,.table td.num,.metric-value{font-family:var(--font-mono);font-feature-settings:"tnum","ss01"}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-strong)}button,input,select,textarea{font-family:inherit}.muted{color:var(--color-text-muted)}.faint{color:var(--color-text-faint)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-lg{font-size:var(--text-lg)}.mono{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SF Mono,Menlo,monospace}.app-shell{display:flex;flex-direction:column;height:calc(100vh / .9);overflow:hidden}.sidebar{position:fixed;top:0;bottom:0;left:0;width:280px;max-width:85vw;z-index:60;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-5) var(--space-3);display:flex;flex-direction:column;gap:var(--space-5);transform:translate(-105%);transition:transform var(--duration-normal) var(--ease-out);overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar.open{transform:translate(0)}.sidebar-backdrop{position:fixed;inset:0;background:var(--color-backdrop);z-index:55;opacity:0;pointer-events:none;transition:opacity var(--duration-normal) var(--ease-out)}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.brand{display:flex;align-items:baseline;gap:var(--space-2);padding:0 var(--space-2);font-family:var(--font-serif);font-weight:600;letter-spacing:-.015em;font-size:1.35rem}.brand-mark{width:10px;height:28px;border-radius:0;background:var(--color-accent);align-self:stretch;margin-right:4px}.sidebar nav{display:flex;flex-direction:column;gap:2px}.nav-section-title{font-size:.6875rem;text-transform:uppercase;letter-spacing:.14em;font-weight:600;color:var(--color-text-faint);padding:var(--space-4) var(--space-3) var(--space-1)}.nav-group{display:flex;flex-direction:column}.nav-group-header{appearance:none;display:flex;align-items:center;justify-content:space-between;width:calc(100% - 2 * var(--space-2));margin:2px var(--space-2);padding:8px var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;letter-spacing:-.005em;cursor:pointer;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.nav-group-header:hover{color:var(--color-text);background:var(--color-surface-2)}.nav-group-header.has-active{color:var(--color-text)}.nav-group-chevron{width:16px;height:16px;flex-shrink:0;color:var(--color-text-faint);transition:transform var(--duration-fast) var(--ease-out)}.nav-group.open .nav-group-chevron{transform:rotate(90deg)}.nav-group-items{display:flex;flex-direction:column;padding-left:var(--space-3);margin-bottom:var(--space-1)}.nav-group-items .nav-link{font-weight:500}.nav-link-top{font-weight:600}.nav-link{position:relative;display:flex;align-items:center;gap:var(--space-2);margin:0 var(--space-2);padding:8px var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);font-weight:500;letter-spacing:-.005em;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.nav-link:before{content:"";position:absolute;left:calc(-1 * var(--space-2));top:7px;bottom:7px;width:3px;border-radius:0 2px 2px 0;background:transparent;transition:background var(--duration-fast) var(--ease-out)}.nav-link:hover{color:var(--color-text);background:var(--color-surface-2)}.nav-link.active{color:var(--color-text);font-weight:600;background:var(--color-accent-bg)}.nav-link.active:before{background:var(--color-accent)}.topbar{position:sticky;top:0;flex:none;display:flex;align-items:center;justify-content:flex-start;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-hairline);background:color-mix(in oklch,var(--color-bg) 75%,transparent);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);z-index:40}.topbar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0;flex:none}.topbar-user{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin-left:auto;flex:none}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:1px solid var(--color-hairline);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.menubar{display:none;align-items:center;gap:2px;min-width:0;margin-left:var(--space-8)}.menubar-group{position:relative}.menubar-item{appearance:none;display:inline-flex;align-items:center;gap:4px;padding:8px var(--space-3);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;letter-spacing:-.005em;text-decoration:none;cursor:pointer;white-space:nowrap;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.menubar-item:hover{color:var(--color-text);background:var(--color-surface-2)}.menubar-item.active{color:var(--color-text);background:var(--color-accent-bg)}.menubar-item.open{color:var(--color-text);background:var(--color-surface-2)}.menubar-caret{width:14px;height:14px;color:var(--color-text-faint);transition:transform var(--duration-fast) var(--ease-out)}.menubar-item.open .menubar-caret{transform:rotate(180deg)}.menu-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1);z-index:70;display:flex;flex-direction:column;gap:1px}.menu-dropdown-item{display:block;padding:8px var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-sm);font-weight:500;white-space:nowrap;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.menu-dropdown-item:hover{color:var(--color-text);background:var(--color-surface-2)}.menu-dropdown-item.active{color:var(--color-text);font-weight:600;background:var(--color-accent-bg)}.topbar-user .email{display:none}.sidebar-toggle{appearance:none;background:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text);cursor:pointer}.sidebar-toggle:hover{background:var(--color-surface-2)}.sidebar-toggle svg{width:20px;height:20px}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-strong));display:grid;place-items:center;color:#fff;font-weight:600;font-size:var(--text-sm);flex-shrink:0}.user-menu{position:relative}.avatar-button{border:none;cursor:pointer;padding:0;transition:box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.avatar-button:hover{transform:translateY(-1px)}.avatar-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.user-menu-panel{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:220px;width:max-content;max-width:min(92vw,420px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 12px 32px rgba(0, 0, 0, .18));padding:var(--space-2);z-index:70;display:flex;flex-direction:column;gap:var(--space-1)}.user-menu-identity{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-2) var(--space-3);border-bottom:1px solid var(--color-hairline)}.user-menu-name{font-weight:600;font-size:var(--text-sm);color:var(--color-text)}.user-menu-email{font-size:var(--text-xs);color:var(--color-text-muted);overflow-wrap:anywhere}.user-menu-item{text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:8px var(--space-2);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.user-menu-item:hover{background:var(--color-surface-2)}.content{flex:1;overflow-y:auto;min-width:0;min-height:0}.page{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.page-header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.page-header h1{font-size:var(--text-display);margin:0 0 var(--space-2)}.page-header>div:first-child{min-width:0}.page-header p.muted{font-size:var(--text-md);max-width:56ch}.page-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}@media (min-width: 640px){.page-header{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}.topbar{padding:var(--space-4) var(--space-5)}.topbar-user .email{display:inline}}@media (min-width: 1024px){.menubar{display:flex}.sidebar,.sidebar-backdrop,.sidebar-toggle{display:none}.page{padding:var(--space-6);gap:var(--space-5)}.topbar{padding:var(--space-4) var(--space-6)}}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:8px var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-hairline-strong);background:transparent;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;letter-spacing:-.005em;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.btn:hover{background:var(--color-surface-2);border-color:var(--color-text-muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--color-accent-strong);border-color:var(--color-accent-strong);color:#fff}.btn.primary:hover{background:var(--color-accent);border-color:var(--color-accent)}.btn.danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--color-surface-2)}.btn.sm{padding:4px 10px;font-size:var(--text-xs)}.input,.select,.textarea{width:100%;padding:10px var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-hairline-strong);background:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-accent) 22%,transparent)}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.6875rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.field-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.form-stack{display:flex;flex-direction:column;gap:var(--space-4)}.card{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:var(--space-5)}.card-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-hairline)}.card-title{font-family:var(--font-serif);font-weight:500;letter-spacing:-.015em;font-size:1.375rem;margin:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-3)}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);container-type:inline-size;min-width:0}.metric-label{font-size:.6875rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.14em;font-weight:600;display:block;min-height:2.4em}.metric-value{font-family:var(--font-mono);font-feature-settings:"tnum";font-size:1.875rem;font-size:clamp(1rem,9.5cqw,1.875rem);white-space:nowrap;font-weight:500;letter-spacing:-.02em;color:var(--color-text)}.metric-trend{font-size:var(--text-xs)}.table-wrap{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;min-width:480px}.table th,.table td{text-align:left;padding:14px var(--space-4);font-size:var(--text-sm);border-bottom:1px solid var(--color-hairline)}.table th{background:transparent;font-weight:600;font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--color-surface-2)}.table td.num{font-family:var(--font-mono);font-feature-settings:"tnum";text-align:right}.table th.num{text-align:right}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;border:1px solid transparent;background:var(--tint-neutral);color:var(--color-text-muted);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.success{color:var(--color-success);background:var(--tint-success)}.badge.warning{color:var(--color-warning);background:var(--tint-warning)}.badge.danger{color:var(--color-danger);background:var(--tint-danger)}.badge.info{color:var(--color-info);background:var(--tint-info)}.badge.neutral{color:var(--color-text-muted);background:var(--tint-neutral)}.inline-create{display:flex;gap:var(--space-2);align-items:stretch}.inline-create>.select{flex:1;min-width:0}.inline-create-btn{flex-shrink:0;white-space:nowrap;border:1px dashed var(--color-hairline-strong);color:var(--color-accent)}.inline-create-btn:hover{background:var(--color-accent-bg);border-color:var(--color-accent)}.searchable-select{position:relative;width:100%}.inline-create>.searchable-select{flex:1;min-width:0}.searchable-select-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:80;margin:0;padding:4px;list-style:none;max-height:240px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-hairline-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 12px 32px rgba(0, 0, 0, .18))}.searchable-select-option{display:flex;flex-direction:column;gap:2px;padding:8px var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.searchable-select-option.is-active{background:var(--color-surface-2)}.searchable-select-option-label{color:var(--color-text);font-size:var(--text-sm)}.searchable-select-option-sub{color:var(--color-text-muted);font-size:.75rem}.searchable-select-empty{padding:8px var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);color:var(--color-text-muted);text-align:center;gap:var(--space-2)}.toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.toolbar .input{max-width:320px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;background:var(--color-backdrop);display:grid;place-items:center;padding:var(--space-4);z-index:50}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(640px,100%);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-md)}.modal-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.modal-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-2)}@media (min-width: 640px){.modal-header{padding:var(--space-4) var(--space-5)}.modal-body{padding:var(--space-5)}.modal-footer{padding:var(--space-4) var(--space-5)}}@media (max-width: 540px){.field-row{grid-template-columns:1fr}}.login-page{min-height:calc(100vh / .9);display:grid;place-items:center;padding:var(--space-6);background:radial-gradient(ellipse at top,color-mix(in oklch,var(--color-accent) 14%,transparent) 0%,transparent 50%),var(--color-bg)}.login-card{width:min(400px,100%);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-md)}.login-card h1{margin:0;font-size:2rem}.login-card .muted{font-size:var(--text-sm)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm)}.alert.danger{background:color-mix(in oklch,var(--color-danger) 14%,transparent);color:var(--color-danger);border:1px solid var(--color-danger)}.alert.warning{background:color-mix(in oklch,var(--color-warning) 14%,transparent);color:var(--color-warning);border:1px solid var(--color-warning)}.alert.success{background:color-mix(in oklch,var(--color-success) 14%,transparent);color:var(--color-success);border:1px solid var(--color-success)}.alert.info{background:color-mix(in oklch,var(--color-info) 14%,transparent);color:var(--color-info);border:1px solid var(--color-info)}.journal-opening td,.journal-closing td{font-weight:600;background:var(--color-surface-2)}.journal-closing td{border-top:2px solid var(--color-border)}.option-group{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.option-card{appearance:none;text-align:left;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:grid;grid-template-columns:20px 1fr;align-items:center;gap:var(--space-3);color:inherit;font-family:inherit;cursor:pointer;width:100%;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.option-card:hover{background:var(--color-surface-3)}.option-card.selected{border-color:var(--color-accent);background:var(--color-accent-bg)}.option-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.option-label{font-weight:600;font-size:var(--text-md);line-height:1.25}.option-description{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.4}.option-indicator{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-border-strong);position:relative;flex-shrink:0;background:var(--color-surface);transition:border-color var(--duration-fast) var(--ease-out)}.option-card.selected .option-indicator{border-color:var(--color-accent)}.option-card.selected .option-indicator:after{content:"";position:absolute;inset:3px;background:var(--color-accent);border-radius:50%}.kanban{display:grid;grid-template-columns:repeat(6,minmax(260px,1fr));gap:var(--space-3);overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:var(--space-2)}.kanban-col{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;min-width:260px;scroll-snap-align:start}.kanban-col-head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.kanban-col-body{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);min-height:200px}.opp-card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:4px}.opp-card .title{font-weight:600;font-size:var(--text-sm)}.opp-card .meta{color:var(--color-text-muted);font-size:var(--text-xs);display:flex;gap:var(--space-2);justify-content:space-between}.invoice-print-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-4)}.invoice-toolbar{width:min(800px,100%);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.invoice-toolbar-actions{display:flex;gap:var(--space-2)}.invoice-doc{width:min(800px,100%);background:#fff;color:#1a1a1a;border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:clamp(24px,5vw,56px);font-size:14px;line-height:1.5}.invoice-doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-bottom:24px;border-bottom:2px solid #1a1a1a}.invoice-doc-brand-name{font-family:var(--font-serif);font-size:22px;font-weight:600;color:#1a1a1a}.invoice-doc-muted{color:#6b6b6b;font-size:13px}.invoice-doc-title{text-align:right}.invoice-doc-title h1{font-family:var(--font-serif);font-size:30px;margin:0;color:#1a1a1a;letter-spacing:-.01em}.invoice-doc-number{font-family:var(--font-mono);color:#4a4a4a;margin-top:4px}.invoice-doc-parties{display:flex;justify-content:space-between;gap:var(--space-5);margin:28px 0}.invoice-doc-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#8a8a8a;font-weight:700;margin-bottom:6px}.invoice-doc-party-name{font-weight:600;font-size:15px;color:#1a1a1a}.invoice-doc-meta{display:flex;flex-direction:column;gap:4px;text-align:right}.invoice-doc-meta>div{display:flex;gap:var(--space-4);justify-content:flex-end}.invoice-doc-meta span{color:#8a8a8a}.invoice-doc-meta strong{color:#1a1a1a;min-width:90px;text-align:right}.invoice-doc-table{width:100%;border-collapse:collapse;margin:24px 0}.invoice-doc-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8a8a8a;font-weight:700;padding:8px 10px;border-bottom:1px solid #d4d4d4}.invoice-doc-table td{padding:12px 10px;border-bottom:1px solid #ececec;vertical-align:top;color:#1a1a1a}.invoice-doc-table .num{text-align:right;font-family:var(--font-mono);white-space:nowrap}.invoice-doc-totals{display:flex;justify-content:flex-end;margin-top:8px}.invoice-doc-totals-box{width:280px;display:flex;flex-direction:column;gap:6px}.invoice-doc-totals-box>div{display:flex;justify-content:space-between}.invoice-doc-totals-box span{color:#6b6b6b}.invoice-doc-totals-box strong{font-family:var(--font-mono);color:#1a1a1a}.invoice-doc-due{border-top:2px solid #1a1a1a;margin-top:6px;padding-top:8px;font-size:16px}.invoice-doc-due strong{font-size:16px}.invoice-doc-notes{margin-top:28px}.invoice-doc-notes p{margin:0;color:#4a4a4a}.invoice-doc-footer{margin-top:40px;padding-top:16px;border-top:1px solid #ececec;text-align:center;color:#8a8a8a;font-size:12px}.csv-import{display:flex;flex-direction:column;gap:var(--space-3)}.csv-import-fields{display:flex;flex-direction:column;gap:var(--space-2)}.csv-chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.csv-chip{font-size:var(--text-xs);padding:3px 10px;border-radius:999px;background:var(--tint-neutral);color:var(--color-text-muted);border:1px solid var(--color-hairline)}.csv-chip.required{color:var(--color-accent);border-color:var(--color-accent)}.csv-preview{display:flex;flex-direction:column;gap:var(--space-2)}.csv-error-list{margin:var(--space-2) 0 0;padding-left:var(--space-4);font-size:var(--text-sm)}.alert.success{background:var(--tint-success);color:var(--color-success);border:1px solid var(--color-success)}.invoice-doc-qr{margin-top:24px;border-top:1px dashed #b0b0b0}.qr-bill{width:100%;overflow-x:auto;background:#fff}.qr-bill svg{width:100%;height:auto;display:block}.qr-hint{margin-top:16px;padding:var(--space-3) var(--space-4);border:1px dashed var(--color-warning);border-radius:var(--radius-sm);color:var(--color-warning);font-size:var(--text-sm)}.settings-divider{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-hairline);font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--color-text-muted)}.settings-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:var(--space-6);align-items:start}.settings-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:var(--space-4)}.settings-nav-item{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;cursor:pointer;padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.settings-nav-item:hover{background:var(--color-surface-2);color:var(--color-text)}.settings-nav-item.active{background:var(--color-accent-bg);color:var(--color-text);font-weight:600}.settings-nav-item svg{width:17px;height:17px;flex:none;opacity:.9}.settings-panel{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.settings-section-head h2{font-family:var(--font-serif);font-weight:500;font-size:var(--text-xl);letter-spacing:-.01em;margin:0;line-height:1.1}.settings-section-head p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-sm);max-width:60ch}@media (max-width: 860px){.settings-layout{grid-template-columns:1fr;gap:var(--space-4)}.settings-nav{position:static;flex-direction:row;overflow-x:auto;gap:var(--space-1);padding-bottom:var(--space-2)}.settings-nav-item{white-space:nowrap}.settings-nav-item svg{display:none}}.attachment-list{display:flex;flex-direction:column;gap:var(--space-2)}.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-surface-2)}.attachment-info{display:flex;flex-direction:column;gap:2px;min-width:0}.attachment-name{background:none;border:none;padding:0;cursor:pointer;text-align:left;color:var(--color-accent);font:inherit;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.attachment-name:hover{color:var(--color-accent-strong);text-decoration:underline}.tab-bar{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-hairline);margin-bottom:var(--space-1)}.tab{appearance:none;background:transparent;border:none;padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.tab:hover{color:var(--color-text)}.tab-active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.section-subtitle{font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 var(--space-3)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.cal-grid>*{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.cal-grid>:nth-child(7n){border-right:none}.cal-grid>:nth-last-child(-n+7){border-bottom:none}.cal-head{padding:var(--space-2);text-align:center;font-size:.8rem;font-weight:600;text-transform:capitalize}.cal-cell{min-height:96px;padding:var(--space-1) var(--space-2);cursor:pointer}.cal-cell.cal-empty{background:var(--color-surface-2);cursor:default}.leave-calendar{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-5);align-items:start}.absence-list,.holiday-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.absence-item{display:flex;gap:var(--space-3);align-items:stretch;background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-md);padding:var(--space-3)}.absence-bar{width:4px;border-radius:99px;flex-shrink:0}.absence-name{font-weight:600}.absence-meta{font-size:var(--text-sm)}.holiday-item{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-hairline)}.holiday-date{color:var(--color-text-muted);font-variant-numeric:tabular-nums}@media (max-width: 860px){.leave-calendar{grid-template-columns:1fr}}.cc-bar-wrap{display:flex;align-items:center;gap:var(--space-2);min-width:120px}.cc-bar{flex:1;height:8px;border-radius:99px;background:var(--color-surface-2);overflow:hidden}.cc-bar-fill{height:100%;background:var(--color-accent);border-radius:99px}.cc-bar-fill.over{background:var(--color-danger)}.cc-bar-label{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;min-width:34px;text-align:right}@media print{.sidebar,.sidebar-backdrop,.topbar,.invoice-toolbar,.no-print{display:none!important}.app-shell{display:block!important;height:auto!important;overflow:visible!important}.content{overflow:visible!important}.invoice-print-wrap{padding:0}.invoice-doc{width:100%;max-width:100%;box-shadow:none;border-radius:0;padding:0}@page{margin:18mm}html,body{background:#fff!important}}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page{animation:page-in var(--duration-normal) var(--ease-out) both}.page-header{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-hairline-strong)}.metric-card{position:relative;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.metric-card:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--color-accent);border-radius:var(--radius-lg) var(--radius-lg) 0 0;opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.metric-card:hover{background:var(--color-surface-2);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.metric-card:hover:before{opacity:1}.metric-delta{font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);display:inline-flex;align-items:center;gap:var(--space-1)}.metric-delta.success{color:var(--color-success)}.metric-delta.danger{color:var(--color-danger)}.metric-delta.muted{color:var(--color-text-muted)}.metric-spark{margin-top:auto;height:32px}.table tbody td{transition:background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.table tbody tr:hover td:first-child{box-shadow:inset 2px 0 0 var(--color-accent)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-line{height:14px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-surface-3) 50%,var(--color-surface-2) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease infinite}.skeleton-table{display:flex;flex-direction:column;gap:14px;padding:var(--space-4)}.skeleton-table .skeleton-line:first-child{height:10px;width:60%}.skeleton-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.skeleton-card{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.skeleton-card .skeleton-line:first-child{width:40%;height:10px}.skeleton-card .skeleton-line:last-child{width:70%;height:24px}.detail-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--color-hairline);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);overflow:hidden}.detail-metric{background:var(--color-surface);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.detail-metric .metric-label{font-size:.625rem}.detail-metric .metric-value{font-size:1.25rem}.toaster{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:100;display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);max-width:360px;pointer-events:none}.toast{pointer-events:auto;appearance:none;cursor:pointer;text-align:left;font:inherit;font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-hairline-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .16));padding:var(--space-3) var(--space-4);animation:toast-in var(--duration-fast) var(--ease-out)}.toast-danger{box-shadow:inset 2px 0 0 var(--color-danger),var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .16))}.toast-success{box-shadow:inset 2px 0 0 var(--color-success),var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .16))}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.page,.skeleton-line,.toast{animation:none}.metric-card,.metric-card:before,.table tbody td{transition:none}}.palette-trigger{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-2) 0 var(--space-3);margin-left:auto;background:none;border:1px solid var(--color-hairline);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.palette-trigger:hover{color:var(--color-text);border-color:var(--color-hairline-strong)}.palette-trigger+.topbar-user{margin-left:0}.palette-trigger-keys{display:none;gap:2px}@media (min-width: 640px){.palette-trigger-keys{display:inline-flex}}.palette-trigger-keys kbd,.palette-kbd{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1;color:var(--color-text-faint);background:var(--color-surface-2);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);padding:3px 5px}.palette-backdrop{position:fixed;inset:0;z-index:90;background:var(--color-backdrop);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}.palette-panel{width:min(640px,92vw);max-height:64vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-hairline-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;animation:palette-in .12s var(--ease-out)}@keyframes palette-in{0%{opacity:0;transform:scale(.98) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.palette-input-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-hairline);color:var(--color-text-faint)}.palette-input{flex:1;min-width:0;font:inherit;font-size:var(--text-md);color:var(--color-text);background:none;border:none;outline:none;padding:0}.palette-input::placeholder{color:var(--color-text-faint)}.palette-results{overflow-y:auto;padding:var(--space-2) var(--space-2) var(--space-3)}.palette-results:empty{display:none}.palette-status:not(:empty){padding:var(--space-2) var(--space-2) var(--space-3)}.palette-group-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-faint);padding:var(--space-3) var(--space-4) var(--space-1)}.palette-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:10px var(--space-4);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.palette-row.selected{background:var(--color-accent-bg);box-shadow:inset 2px 0 0 var(--color-accent)}.palette-row-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-row-secondary{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none;max-width:55%}.palette-hint,.palette-empty{font-size:var(--text-sm);color:var(--color-text-faint);padding:var(--space-3) var(--space-4)}.palette-skeleton{display:flex;flex-direction:column;gap:10px;padding:var(--space-3) var(--space-4)}.palette-skeleton .skeleton-line:nth-child(2){width:70%}.palette-skeleton .skeleton-line:last-child{width:45%}@media (prefers-reduced-motion: reduce){.palette-panel{animation:none}.palette-row{transition:none}}.audit-toolbar{margin-bottom:var(--space-4)}.audit-toolbar .audit-date{max-width:160px}.audit-row.expandable{cursor:pointer}.audit-status-error{color:var(--color-danger);font-weight:600}.audit-stale{opacity:.6}.audit-toggle{margin-left:var(--space-2);padding:0 var(--space-1);border:none;background:none;color:inherit;font:inherit;cursor:pointer;border-radius:var(--radius-sm)}.audit-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.audit-detail-row td{background:var(--color-surface-2);padding-top:var(--space-3);padding-bottom:var(--space-3)}.audit-detail{display:flex;flex-direction:column;gap:var(--space-2)}.audit-detail pre{margin:0;padding:var(--space-3);font-size:var(--text-xs);line-height:1.5;background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-md);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.audit-pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.notif,.notif-bell{position:relative}.notif-badge{position:absolute;top:-5px;right:-6px;min-width:16px;padding:2px 4px;border-radius:999px;background:var(--color-accent);color:#fff;font-size:10px;font-weight:700;line-height:1.2;text-align:center;pointer-events:none}.notif-panel{position:absolute;top:calc(100% + var(--space-2));right:0;width:340px;max-width:calc(100vw - 2 * var(--space-4));max-height:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 12px 32px rgba(0, 0, 0, .18));padding:var(--space-2);z-index:70;display:flex;flex-direction:column;gap:var(--space-1)}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-2);border-bottom:1px solid var(--color-hairline)}.notif-head-title{font-weight:600;font-size:var(--text-sm);color:var(--color-text)}.notif-readall{appearance:none;background:none;border:none;padding:2px 4px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;color:var(--color-accent);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.notif-readall:hover:not(:disabled){background:var(--color-accent-bg)}.notif-readall:disabled{color:var(--color-text-faint);cursor:default}.notif-empty{margin:0;padding:var(--space-4) var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.notif-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.notif-item{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;text-align:left;background:none;border:none;border-radius:var(--radius-sm);padding:var(--space-2);font-family:var(--font-sans);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.notif-item:hover{background:var(--color-surface-2)}.notif-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.notif-dot{flex:none;width:7px;height:7px;margin-top:6px;border-radius:50%;background:transparent}.notif-item.unread .notif-dot{background:var(--color-accent)}.notif-body{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-text{font-size:var(--text-sm);color:var(--color-text);line-height:1.4;word-break:break-word}.notif-item.unread .notif-text{font-weight:600}.notif-time{font-size:var(--text-xs);color:var(--color-text-muted)}@media (prefers-reduced-motion: reduce){.notif-item,.notif-readall{transition:none}}.user-admin-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.user-admin-list{display:flex;flex-direction:column;gap:var(--space-3)}.user-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-2);padding:var(--space-4);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.user-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.user-card.is-inactive{opacity:.62}.user-card-head{display:flex;align-items:center;gap:var(--space-3)}.avatar.avatar-lg{width:40px;height:40px;font-size:var(--text-md, .95rem)}.user-card-identity{display:flex;flex-direction:column;gap:1px;min-width:0;margin-right:auto}.user-card-name{font-weight:600;color:var(--color-text);line-height:1.25}.user-card-email{font-size:var(--text-sm);color:var(--color-text-faint);overflow:hidden;text-overflow:ellipsis}.role-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.role-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:.3rem .7rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-3);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.role-chip:hover{border-color:var(--color-border-strong);color:var(--color-text)}.role-chip.is-on{background:var(--color-accent-bg);border-color:var(--color-accent);color:var(--color-accent-strong)}.role-chip.is-on:hover{border-color:var(--color-accent-strong)}.role-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.user-admin-head{align-items:center;gap:var(--space-3)}.user-search{flex:1;max-width:360px}.user-count{white-space:nowrap}.user-row{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-2);padding:var(--space-3) var(--space-4);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.user-row:hover{border-color:var(--color-border-strong)}.user-row.is-open{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.user-row.is-inactive{opacity:.6}.user-row-main{display:flex;align-items:center;gap:var(--space-3)}.user-row-roles{display:flex;flex-wrap:wrap;gap:var(--space-1);flex:1;min-width:0;justify-content:flex-end}.role-badge{display:inline-flex;align-items:center;padding:.12rem .55rem;border-radius:999px;font-size:var(--text-xs, .72rem);font-weight:600;letter-spacing:.01em;background:var(--color-accent-bg);color:var(--color-accent-strong);border:1px solid transparent;white-space:nowrap}.role-badge.is-empty{background:transparent;color:var(--color-text-faint);border-color:var(--color-border);font-weight:500}.user-row-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.user-row-edit{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-3);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.user-row-edit:hover{color:var(--color-text);border-color:var(--color-border-strong)}.user-row-edit.is-on{color:var(--color-accent-strong);border-color:var(--color-accent);background:var(--color-accent-bg)}.user-role-filter{max-width:200px;flex-shrink:0}a.metric-card-link{text-decoration:none;color:inherit;cursor:pointer}.metric-link-arrow{margin-left:var(--space-1);opacity:0;transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);display:inline-block;color:var(--color-accent-strong)}a.metric-card-link:hover .metric-link-arrow{opacity:1;transform:translate(2px)}a.metric-card-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.action-center{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-lg);background:color-mix(in oklch,var(--color-accent-bg) 55%,var(--color-surface))}.action-center-title{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--color-accent-strong);white-space:nowrap}.action-center-items{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.action-pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:.35rem .75rem;border-radius:999px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:500;text-decoration:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.action-pill:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.action-pill-count{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .3rem;border-radius:999px;background:var(--color-accent);color:#fff;font-size:var(--text-xs, .72rem);font-weight:700;font-feature-settings:"tnum"}.action-pill-arrow{color:var(--color-text-faint)}.action-pill:hover .action-pill-arrow{color:var(--color-accent-strong)}.action-center-inbox{margin-left:auto;font-size:var(--text-sm);color:var(--color-accent-strong);text-decoration:none;white-space:nowrap}.action-center-inbox:hover{text-decoration:underline}.palette-trigger-or{color:var(--color-text-faint);margin:0 1px}.combobox{position:relative;flex:1;min-width:0}.combobox-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;max-height:280px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.combobox-option{display:flex;align-items:baseline;gap:var(--space-2);width:100%;padding:.45rem .65rem;border:0;background:none;color:var(--color-text);font:inherit;text-align:left;cursor:pointer}.combobox-option.is-active{background:var(--color-accent-soft, var(--color-hairline))}.combobox-option-sku{flex-shrink:0;font-size:var(--text-sm);color:var(--color-text-muted)}.combobox-option-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-option-price{flex-shrink:0;font-size:var(--text-sm);color:var(--color-text-muted)}.combobox-empty{padding:.55rem .65rem;color:var(--color-text-muted);font-size:var(--text-sm)}.combobox-create{display:block;width:100%;padding:.5rem .65rem;border:0;border-top:1px solid var(--color-hairline);background:none;color:var(--color-accent-strong, var(--color-accent));font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.combobox-create:hover{text-decoration:underline}:root[data-theme=light] .badge{background:transparent;border-color:currentColor}.table tbody tr.row-clickable{cursor:pointer}.table tbody tr.row-clickable:hover{background:var(--color-surface-2)}.avatar-photo{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.avatar-button{overflow:hidden;padding:0}.profile-photo{width:96px;height:96px;border-radius:50%;object-fit:cover;border:1px solid var(--color-hairline-strong)}.profile-photo-empty{display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--color-text-faint);background:var(--color-surface-2);text-align:center;padding:var(--space-2)}.self-balances{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.self-balance-card{padding:var(--space-4);border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-surface)}.self-balance-name{font-size:var(--text-sm);color:var(--color-text-muted)}.self-balance-big{margin:var(--space-1) 0;font-size:var(--text-display);line-height:1.1;font-variant-numeric:tabular-nums}.week-nav{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-6)}.week-day{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-surface);min-height:9rem}.week-day[data-missing]{border-color:var(--color-warning);background:var(--color-surface-2)}.week-day[data-off],.week-day[data-holiday]{background:var(--color-surface-2);opacity:.75}.week-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-1)}.week-day-name{font-size:var(--text-sm);font-weight:600}.week-day-hours{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.week-day-entries{margin:var(--space-1) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.week-day-entries li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-1)}.week-day-remove{border:0;background:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-md);line-height:1;padding:0 var(--space-1)}.week-day-remove:hover{color:var(--color-danger)}.balance-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-3);margin-bottom:var(--space-5);max-width:34rem}.balance-tile{padding:var(--space-4);border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-surface)}.balance-value{font-size:var(--text-xl);font-variant-numeric:tabular-nums;margin-top:var(--space-1)}.balance-tile[data-sign=plus] .balance-value{color:var(--color-success)}.balance-tile[data-sign=minus] .balance-value{color:var(--color-danger)}.segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-3)}.segmented button{border:0;padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer}.segmented button.active{background:var(--color-accent-bg);color:var(--color-accent-strong);font-weight:600}@media (max-width: 900px){.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.month-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--color-hairline);border-left:3px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.month-bar[data-status=SUBMITTED]{border-left-color:var(--color-info)}.month-bar[data-status=APPROVED]{border-left-color:var(--color-success)}.month-bar[data-status=REJECTED]{border-left-color:var(--color-danger)}.month-bar-head{display:flex;align-items:center;gap:var(--space-2)}.month-bar-label{font-weight:600}.month-bar-figures{display:flex;gap:var(--space-5);margin:0}.month-bar-figures dt{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.month-bar-figures dd{margin:0;font-size:var(--text-md);font-variant-numeric:tabular-nums}.month-bar-figures div[data-sign=plus] dd{color:var(--color-success)}.month-bar-figures div[data-sign=minus] dd{color:var(--color-danger)}.month-bar-action{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.month-bar-note{flex-basis:100%;margin:0;font-size:var(--text-sm);color:var(--color-danger)}.password-rules{list-style:none;margin:var(--space-1) 0 var(--space-3);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted)}.password-rules li{display:flex;align-items:baseline;gap:var(--space-1)}.password-rules li[data-ok]{color:var(--color-text)}.password-rules li[data-ok] span{color:var(--color-success)}.time-account{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-5);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);border:1px solid var(--color-hairline);border-left:3px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.time-account[data-sign=plus]{border-left-color:var(--color-success)}.time-account[data-sign=minus]{border-left-color:var(--color-danger)}.time-account-main{display:flex;flex-direction:column;gap:var(--space-1)}.time-account-label{margin:0;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.time-account-total{margin:0;font-size:var(--text-xl);font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.time-account[data-sign=plus] .time-account-total{color:var(--color-success)}.time-account[data-sign=minus] .time-account-total{color:var(--color-danger)}.time-account-unit{margin-left:var(--space-1);font-size:var(--text-sm);font-weight:400;color:var(--color-text-muted)}.time-account-parts{display:flex;flex-wrap:wrap;gap:var(--space-5);margin:0 0 0 auto}.time-account-parts dt{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.time-account-parts dd{margin:0;font-size:var(--text-md);font-variant-numeric:tabular-nums}.time-account-note{flex-basis:100%;margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}@media (max-width: 720px){.time-account-parts{margin-left:0}}.decide-empty{padding:var(--space-6);text-align:center;border:1px dashed var(--color-hairline);border-radius:var(--radius-md);color:var(--color-text-muted)}.decide-section+.decide-section{margin-top:var(--space-6)}.decide-section h2{font-size:var(--text-lg);margin-bottom:var(--space-1)}.decide-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.leave-preview{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-hairline);border-left:3px solid var(--color-info);border-radius:var(--radius-md);background:var(--color-surface-2);font-size:var(--text-sm)}.leave-preview[data-short]{border-left-color:var(--color-danger)}.leave-preview-total{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.leave-preview-total strong{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.leave-preview ul{margin:0;padding-left:var(--space-4)}.leave-preview-short{color:var(--color-danger);font-weight:600}.lt-name{display:inline-flex;align-items:center;gap:var(--space-2)}.lt-dot{width:.6rem;height:.6rem;border-radius:50%;flex:none}.lt-flags{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}.cal-wrap{overflow-x:auto;border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-surface)}.cal-grid{border-collapse:collapse;width:max-content;min-width:100%;font-size:var(--text-sm)}.cal-name-col{position:sticky;left:0;z-index:1;background:var(--color-surface);text-align:left;font-weight:500;white-space:nowrap;padding:var(--space-1) var(--space-3);border-right:1px solid var(--color-hairline);min-width:11rem}.cal-day-head{padding:var(--space-1) 0;min-width:1.6rem;font-weight:500;border-bottom:1px solid var(--color-hairline);line-height:1.15}.cal-day-wd{display:block;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase}.cal-day-num{display:block;font-variant-numeric:tabular-nums}.cal-cell{height:1.9rem;min-width:1.6rem;padding:2px;border-bottom:1px solid var(--color-hairline)}.cal-day-head[data-weekend],.cal-cell[data-weekend]{background:var(--color-surface-2)}.cal-day-head[data-holiday],.cal-cell[data-holiday]{background:var(--color-surface-2);box-shadow:inset 0 -2px 0 var(--color-info)}.cal-day-head[data-holiday=COMPANY],.cal-cell[data-holiday=COMPANY]{box-shadow:inset 0 -2px 0 var(--color-warning)}.cal-day-head[data-holiday=BRIDGE],.cal-cell[data-holiday=BRIDGE]{box-shadow:inset 0 -2px 0 var(--color-success)}.cal-bar{display:block;width:100%;height:100%;min-height:1.1rem;border:0;border-radius:var(--radius-sm);background:var(--bar, var(--color-accent));cursor:pointer;padding:0}.cal-bar[data-status=PENDING]{background:transparent;border:1.5px dashed var(--bar, var(--color-accent))}.cal-bar[data-half]{width:50%}.cal-events{list-style:none;margin:0 0 var(--space-3);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-3)}.cal-events li{display:inline-flex;align-items:center;gap:var(--space-2)}.cal-event-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--color-warning)}.cal-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.cal-legend-item{display:inline-flex;align-items:center;gap:var(--space-2)}.cal-legend-item .cal-bar{width:1.4rem;height:.9rem;min-height:0;cursor:default}.cal-legend-swatch{width:1.4rem;height:.9rem;border-radius:var(--radius-sm);background:var(--color-surface-2);box-shadow:inset 0 -2px 0 var(--color-info)}.cal-legend-swatch[data-holiday=COMPANY]{box-shadow:inset 0 -2px 0 var(--color-warning)}.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}.report-table th.num,.report-table td.num{text-align:right;font-variant-numeric:tabular-nums}.report-table tr[data-off] td{color:var(--color-text-muted)}.report-signatures{display:flex;gap:var(--space-8, 3rem);margin-top:var(--space-8, 3rem)}.report-signatures>div{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.report-sig-line{display:block;border-bottom:1px solid var(--color-text);height:2.5rem}@media print{.report-table thead{display:table-header-group}.report-table tfoot{display:table-footer-group}.report-table tr,.invoice-doc-table tr,.report-signatures{break-inside:avoid;page-break-inside:avoid}}.journal-voucher{margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4)}.journal-voucher-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.journal-voucher-id{display:flex;align-items:baseline;gap:var(--space-2)}.journal-voucher-marks{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.journal-voucher-text{margin:var(--space-1) 0 var(--space-2);color:var(--color-text-muted)}.journal-lines{margin:0}.journal-lines th,.journal-lines td{padding-top:var(--space-1);padding-bottom:var(--space-1)}.report-section{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.report-card-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.report-note{margin-top:var(--space-3);font-size:var(--text-sm)}.checkbox-field{display:flex;align-items:center;gap:var(--space-2);align-self:end;padding-bottom:var(--space-2)}.checkbox-field>span{color:var(--color-text)}.qst-preview{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.qst-findings{margin:var(--space-2) 0;padding-left:var(--space-5);color:var(--color-warning);font-size:var(--text-sm)}.chart-card{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.chart-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);border-bottom:1px solid var(--color-hairline);padding-bottom:var(--space-2)}.chart-card-title{font-family:var(--font-sans);font-size:var(--text-md);font-weight:700;letter-spacing:-.01em;margin:0}.chart-card-subtitle{font-size:var(--text-xs);color:var(--color-text-muted);margin:2px 0 0}.donut-with-legend{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.donut-canvas{flex:none}.donut-tip{position:absolute;left:0;top:0;z-index:5;pointer-events:none;opacity:0;transform:translate(12px,12px);display:flex;flex-direction:column;gap:1px;padding:6px 10px;background:var(--color-surface-3);border:1px solid var(--color-hairline-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-xs);white-space:nowrap;transition:opacity var(--duration-fast) var(--ease-out)}.donut-tip.is-visible{opacity:1}.donut-tip-label{color:var(--color-text-muted)}.donut-tip-value{font-family:var(--font-mono);font-weight:600;color:var(--color-text)}.donut-legend{flex:1 1 150px;min-width:150px;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.donut-legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.donut-legend-dot{width:10px;height:10px;border-radius:2px;flex:none}.donut-legend-label{color:var(--color-text-muted)}.donut-legend-value{margin-left:auto;font-family:var(--font-mono);font-weight:600;color:var(--color-text)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.dashboard-grid .span-2{grid-column:1 / -1}@media (max-width: 900px){.dashboard-grid{grid-template-columns:1fr}.dashboard-grid .span-2{grid-column:auto}}.period-switch{display:inline-flex;gap:2px;border:1px solid var(--color-hairline);border-radius:var(--radius-md);padding:2px}.period-btn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);background:transparent;border:0;border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer}.period-btn.active{background:var(--color-accent);color:#fff}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--color-hairline);background:transparent;color:var(--color-text-muted);cursor:pointer}.theme-toggle:hover{color:var(--color-text);border-color:var(--color-hairline-strong)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.project-card{display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:var(--space-4);text-decoration:none;color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.project-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.project-card-top{display:flex;justify-content:space-between;align-items:center}.project-card-code{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.08em}.project-card-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:600}.project-card-meta{font-size:var(--text-sm);color:var(--color-text-muted)}.project-card-budget{margin-top:auto}.project-card-budget-bar{height:6px;background:var(--color-surface-2);border-radius:99px;overflow:hidden}.project-card-budget-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-strong))}.project-card-budget-text{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:4px}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;padding:3px 10px;border-radius:999px;background:var(--tint-neutral);color:var(--color-text-muted);white-space:nowrap}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.status-pill.status-planned{background:var(--tint-info);color:var(--color-info)}.status-pill.status-active{background:var(--tint-success);color:var(--color-success)}.status-pill.status-paused{background:var(--tint-warning);color:var(--color-warning)}.status-pill.status-completed{background:var(--tint-neutral);color:var(--color-text-muted)}.status-pill.status-cancelled{background:var(--tint-danger);color:var(--color-danger)}.time-billable{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.time-billable input{width:18px;height:18px}.project-detail-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--color-hairline);padding-bottom:var(--space-4);margin-bottom:var(--space-4)}.project-detail-eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted)}.project-detail-title{font-family:var(--font-serif);font-size:var(--text-display);margin:4px 0}.project-detail-meta{font-size:var(--text-sm);color:var(--color-text-muted)}.kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.kanban-col-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:var(--space-2)}.kanban-card{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);padding:var(--space-3);margin-bottom:var(--space-2);cursor:grab}.kanban-card.priority-high{border-left:3px solid var(--color-danger)}.kanban-card-title{font-size:var(--text-sm);font-weight:500}.kanban-card-meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:6px;display:flex;gap:8px}.kanban-card.dragging{opacity:.5}.kanban-col.drop-target{background:var(--color-accent-bg);border-radius:var(--radius-sm)}.timeline{display:flex;align-items:flex-start}.timeline-node{text-align:center;flex:1;font-size:var(--text-xs)}.timeline-dot{width:14px;height:14px;border-radius:99px;background:var(--color-surface-2);margin:0 auto}.timeline-dot.done{background:var(--color-success)}.timeline-dot.next{background:var(--color-warning);box-shadow:0 0 0 4px color-mix(in oklch,var(--color-warning) 25%,transparent)}.timeline-line{height:2px;background:var(--color-hairline-strong);flex:1;margin-top:6px}.timeline-line.done{background:var(--color-success)}
