:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--brand-hue:285;--color-bg:oklch(98.5% .006 var(--brand-hue));--color-bg-alt:oklch(96% .014 var(--brand-hue));--color-surface:oklch(100% 0 0);--color-surface-2:oklch(97.5% .01 var(--brand-hue));--color-surface-glass:oklch(100% 0 0/.72);--color-border:oklch(25% .05 var(--brand-hue) / .12);--color-border-strong:oklch(25% .05 var(--brand-hue) / .22);--color-text:oklch(22% .04 var(--brand-hue));--color-text-muted:oklch(46% .03 var(--brand-hue));--color-primary:oklch(42% .19 var(--brand-hue));--color-primary-hover:oklch(36% .17 var(--brand-hue));--color-on-primary:oklch(99% 0 0);--color-accent-soft:oklch(93% .045 var(--brand-hue));--color-glow:oklch(62% .2 var(--brand-hue) / .22);--color-success:oklch(55% .15 150);--color-danger:oklch(55% .2 25);--color-warning:oklch(80% .15 85);--color-terminal-bg:oklch(20% .04 var(--brand-hue));--color-warning-text:oklch(from var(--color-warning) calc(l - .26) c h);--shadow-color:270deg 40% 30%;--shadow-sm:0 1px 1px hsl(var(--shadow-color) / .04), 0 2px 3px hsl(var(--shadow-color) / .04), 0 4px 8px hsl(var(--shadow-color) / .04), 0 8px 16px hsl(var(--shadow-color) / .04);--shadow-lg:0 1px 1px hsl(var(--shadow-color) / .05), 0 2px 4px hsl(var(--shadow-color) / .05), 0 6px 12px hsl(var(--shadow-color) / .06), 0 14px 28px hsl(var(--shadow-color) / .07), 0 30px 60px hsl(var(--shadow-color) / .08);--logo-light:block;--logo-dark:none;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "Cascadia Code", Consolas, monospace;--fs-xs:clamp(.75rem, .72rem + .15vw, .82rem);--fs-sm:clamp(.86rem, .82rem + .2vw, .95rem);--fs-base:clamp(1rem, .96rem + .2vw, 1.08rem);--fs-lg:clamp(1.1rem, 1rem + .5vw, 1.3rem);--fs-xl:clamp(1.3rem, 1.1rem + .9vw, 1.7rem);--fs-2xl:clamp(1.8rem, 1.3rem + 2.4vw, 3rem);--fs-3xl:clamp(2.3rem, 1.4rem + 4.2vw, 4.4rem);--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:clamp(1.25rem, 1rem + 1vw, 1.75rem);--space-xl:clamp(1.75rem, 1.3rem + 2vw, 2.75rem);--space-2xl:clamp(2.5rem, 1.8rem + 3.5vw, 4.5rem);--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-full:999px;--header-h:72px;--sidebar-w:248px;--container:1400px;--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--c-bg:var(--color-bg);--c-surface:var(--color-surface);--c-border:var(--color-border);--c-border-dark:var(--color-border-strong);--c-text-primary:var(--color-text);--c-text-secondary:var(--color-text-muted);--c-text-muted:var(--color-text-muted);--c-accent:var(--color-primary);--c-accent-light:var(--color-accent-soft);--c-green:var(--color-success);--c-red:var(--color-danger);--r-sm:8px;--r-md:12px;--r-lg:var(--radius-md)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:oklch(16% .025 var(--brand-hue));--color-bg-alt:oklch(19% .03 var(--brand-hue));--color-surface:oklch(22% .035 var(--brand-hue));--color-surface-2:oklch(25% .04 var(--brand-hue));--color-surface-glass:oklch(18% .03 var(--brand-hue) / .72);--color-border:oklch(90% .03 var(--brand-hue) / .11);--color-border-strong:oklch(90% .03 var(--brand-hue) / .2);--color-text:oklch(95% .01 var(--brand-hue));--color-text-muted:oklch(74% .03 var(--brand-hue));--color-primary:oklch(72% .15 var(--brand-hue));--color-primary-hover:oklch(79% .13 var(--brand-hue));--color-on-primary:oklch(16% .03 var(--brand-hue));--color-accent-soft:oklch(28% .06 var(--brand-hue));--color-glow:oklch(60% .2 var(--brand-hue) / .28);--color-success:oklch(75% .15 150);--color-danger:oklch(72% .16 25);--color-terminal-bg:oklch(12% .02 var(--brand-hue));--color-warning-text:var(--color-warning);--shadow-color:270deg 50% 3%;--shadow-sm:0 1px 1px hsl(var(--shadow-color) / .2), 0 2px 3px hsl(var(--shadow-color) / .2), 0 4px 8px hsl(var(--shadow-color) / .2), 0 8px 16px hsl(var(--shadow-color) / .2);--shadow-lg:0 1px 1px hsl(var(--shadow-color) / .25), 0 2px 4px hsl(var(--shadow-color) / .25), 0 6px 12px hsl(var(--shadow-color) / .28), 0 14px 28px hsl(var(--shadow-color) / .3), 0 30px 60px hsl(var(--shadow-color) / .35);--logo-light:none;--logo-dark:block}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{block-size:100%}body{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.65}img,svg{max-inline-size:100%;display:block}img{block-size:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--color-primary);text-underline-offset:.2em;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;line-height:1.12}::selection{background:var(--color-primary);color:var(--color-on-primary)}:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px;border-radius:6px}.muted{color:var(--color-text-muted)}.mono{font-family:var(--font-mono)}.eyebrow{align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);margin-block-end:var(--space-xs);font-weight:600;line-height:1.4;display:inline-flex}.eyebrow:before{content:"";background:currentColor;border-radius:2px;block-size:2px;inline-size:1.6em}.highlight{background:linear-gradient(100deg, var(--color-primary), oklch(from var(--color-primary) calc(l + .08) c calc(h - 35)));color:#0000;-webkit-background-clip:text;background-clip:text}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--header-h) 1fr;grid-template-areas:"topbar topbar""sidebar main";block-size:100dvh;display:grid;overflow:hidden}.topbar{grid-area:topbar}.sidebar{grid-area:sidebar}.page-content{padding:var(--space-xl) var(--space-xl) var(--space-2xl);background:var(--color-bg);grid-area:main;padding-block-end:calc(var(--space-2xl) + env(safe-area-inset-bottom));padding-inline-end:calc(var(--space-xl) + env(safe-area-inset-right));overflow-y:auto}.page-content>*{max-inline-size:var(--container);margin-inline:auto}.topbar{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-lg);padding-inline:var(--space-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border-block-end:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding-inline-start:calc(var(--space-lg) + env(safe-area-inset-left));padding-inline-end:calc(var(--space-lg) + env(safe-area-inset-right));display:flex;position:relative}.topbar-left{align-items:center;gap:var(--space-sm);min-inline-size:0;display:flex}.topbar-logo{flex-shrink:0;align-items:center;min-block-size:44px;display:inline-flex}.topbar-logo-img{aspect-ratio:570/120;block-size:30px;inline-size:auto}img.logo-light{display:var(--logo-light)}img.logo-dark{display:var(--logo-dark)}.topbar-right{align-items:center;gap:var(--space-md);display:flex}.topbar-user{align-items:center;gap:var(--space-sm);display:flex}.topbar-user-info{text-align:end;line-height:1.3}.topbar-user-name{font-size:var(--fs-sm);font-weight:650}.topbar-user-role{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.user-avatar{background:var(--color-accent-soft);block-size:40px;inline-size:40px;color:var(--color-primary);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:12px;flex-shrink:0;place-items:center;font-weight:800;display:grid}.theme-switch{border-radius:var(--radius-full);background:var(--color-bg-alt);border:1px solid var(--color-border);isolation:isolate;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:inline-grid;position:relative}.theme-switch__thumb{border-radius:var(--radius-full);background:var(--color-surface);inline-size:calc(33.3333% - 2px);box-shadow:var(--shadow-sm);z-index:-1;transform:translateX(calc(var(--theme-index,2) * 100%));transition:transform .45s var(--ease-bounce);position:absolute;inset-block:3px;inset-inline-start:3px}.theme-switch__btn{border-radius:var(--radius-full);block-size:36px;inline-size:40px;color:var(--color-text-muted);transition:color .2s, transform .2s var(--ease-bounce);background:0 0;border:0;place-items:center;display:grid}.theme-switch__btn svg{block-size:17px;inline-size:17px}.theme-switch__btn:hover{color:var(--color-text)}.theme-switch__btn:active{transform:scale(.85)}.theme-switch__btn[aria-pressed=true]{color:var(--color-primary)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}.topbar-burger{border:1px solid var(--color-border);background:var(--color-surface);block-size:44px;inline-size:44px;color:var(--color-text);border-radius:12px;place-items:center;display:none}.topbar-burger svg{block-size:20px;inline-size:20px}.icon-btn{border:1px solid var(--color-border);background:var(--color-surface-2);block-size:44px;inline-size:44px;color:var(--color-text-muted);transition:color .2s, border-color .2s, transform .3s var(--ease-bounce);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.icon-btn svg{block-size:18px;inline-size:18px}.icon-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.icon-btn:active{transform:scale(.94)}.sidebar{gap:var(--space-2xs);padding:var(--space-md) var(--space-sm);background:var(--color-bg-alt);border-inline-end:1px solid var(--color-border);flex-direction:column;padding-block-end:calc(var(--space-md) + env(safe-area-inset-bottom));display:flex;overflow-y:auto}.sidebar-section{gap:2px;display:grid}.sidebar-section+.sidebar-section{margin-block-start:var(--space-xs)}.sidebar-item,.sidebar-group-header{align-items:center;gap:var(--space-sm);min-block-size:42px;inline-size:100%;padding-inline:var(--space-sm);color:var(--color-text-muted);font-size:var(--fs-sm);text-align:start;background:0 0;border:0;border-radius:12px;font-weight:550;text-decoration:none;transition:color .2s,background-color .2s;display:flex;position:relative}.sidebar-item:hover,.sidebar-group-header:hover{color:var(--color-text);background:var(--color-accent-soft);text-decoration:none}.sidebar-item svg,.sidebar-group-header svg{flex-shrink:0;block-size:18px;inline-size:18px}.sidebar-item.active{color:var(--color-primary);background:var(--color-accent-soft);font-weight:650}.sidebar-item.active:before{content:"";background:var(--color-primary);border-radius:3px;inline-size:3px;position:absolute;inset-block:9px;inset-inline-start:0}.sidebar-item.sub{padding-inline-start:calc(var(--space-sm) + 18px + var(--space-sm))}.sidebar-group-header{-webkit-user-select:none;user-select:none;justify-content:space-between}.sidebar-group-header .group-left{align-items:center;gap:var(--space-sm);display:flex}.sidebar-group-header .chevron{opacity:.6;block-size:14px;inline-size:14px;transition:transform .3s var(--ease-bounce)}.sidebar-group-header.open .chevron{transform:rotate(180deg)}.sidebar-badge{border-radius:var(--radius-full);background:oklch(from var(--color-danger) l c h / .14);min-inline-size:1.6rem;color:var(--color-danger);font-family:var(--font-mono);font-size:var(--fs-xs);text-align:center;font-variant-numeric:tabular-nums;margin-inline-start:auto;padding:.1rem .5rem;font-weight:700}.sidebar-footer{border-block-start:1px solid var(--color-border);margin-block-start:auto;padding-block-start:var(--space-sm)}.sidebar-overlay{display:none}.btn{--btn-bg:transparent;--btn-fg:var(--color-text);--btn-bd:var(--color-border-strong);justify-content:center;align-items:center;gap:var(--space-xs);min-block-size:44px;padding-inline:var(--space-lg);border-radius:var(--radius-full);border:1px solid var(--btn-bd);background:var(--btn-bg);color:var(--btn-fg);font-weight:650;font-size:var(--fs-sm);white-space:nowrap;transition:transform .35s var(--ease-bounce), background-color .2s, border-color .2s, color .2s, box-shadow .3s;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-2px)}.btn:active{transform:translateY(0)scale(.97)}.btn svg{block-size:18px;inline-size:18px;transition:transform .3s var(--ease-bounce)}.btn:hover svg{transform:translate(3px)}.btn-primary{--btn-bg:var(--color-primary);--btn-fg:var(--color-on-primary);--btn-bd:transparent;box-shadow:0 6px 20px -6px var(--color-glow)}.btn-primary:hover{--btn-bg:var(--color-primary-hover);box-shadow:0 10px 30px -8px var(--color-glow)}.btn-secondary:hover{--btn-bd:var(--color-primary)}.btn-danger{--btn-fg:var(--color-danger);--btn-bd:oklch(from var(--color-danger) l c h / .35);--btn-bg:oklch(from var(--color-danger) l c h / .08)}.btn-danger:hover{--btn-bd:var(--color-danger);--btn-bg:oklch(from var(--color-danger) l c h / .14)}.btn-sm{min-block-size:36px;padding-inline:var(--space-md);font-size:var(--fs-xs)}.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.btn-group{gap:var(--space-xs);flex-wrap:wrap;display:flex}.badge,.tag{border-radius:var(--radius-full);font-size:var(--fs-xs);white-space:nowrap;background:var(--color-accent-soft);color:var(--color-primary);align-items:center;gap:.4em;padding:.2rem .65rem;font-weight:650;line-height:1.5;display:inline-flex}.badge-blue{background:var(--color-accent-soft);color:var(--color-primary)}.badge-green{background:oklch(from var(--color-success) l c h / .14);color:var(--color-success)}.badge-amber{background:oklch(from var(--color-warning) l c h / .2);color:var(--color-warning-text)}.badge-red{background:oklch(from var(--color-danger) l c h / .14);color:var(--color-danger)}.badge-gray{background:var(--color-surface-2);color:var(--color-text-muted)}.status-text{white-space:nowrap;border-radius:var(--radius-full);font-size:var(--fs-xs);align-items:center;gap:.4em;padding:.2rem .65rem;font-weight:700;line-height:1.5;display:inline-flex}.status-text:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;block-size:7px;inline-size:7px}.status-ouvert{color:var(--color-primary);background:var(--color-accent-soft)}.status-en_cours{color:var(--color-warning-text);background:oklch(from var(--color-warning) l c h / .2)}.status-resolu{color:var(--color-success);background:oklch(from var(--color-success) l c h / .14)}.status-ferme{color:var(--color-text-muted);background:var(--color-surface-2)}.priority-text{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.priority-basse{color:var(--color-text-muted)}.priority-normale{color:var(--color-primary)}.priority-haute{color:var(--color-warning-text)}.priority-urgente{color:var(--color-danger)}.status-pills{gap:var(--space-xs);flex-wrap:wrap;margin-block-end:var(--space-lg);display:flex}.status-pills>span{border-radius:var(--radius-full);font-size:var(--fs-xs);align-items:center;gap:.4em;padding:.2rem .65rem;font-weight:700;line-height:1.5;display:inline-flex}.status-pills>span:before{content:"";background:currentColor;border-radius:50%;block-size:7px;inline-size:7px}.status-pill-blue{color:var(--color-primary);background:var(--color-accent-soft)}.status-pill-green{color:var(--color-success);background:oklch(from var(--color-success) l c h / .14)}.status-pill-amber{color:var(--color-warning-text);background:oklch(from var(--color-warning) l c h / .2)}.status-pill-red{color:var(--color-danger);background:oklch(from var(--color-danger) l c h / .14)}.status-pill-muted{color:var(--color-text-muted);background:var(--color-surface-2)}.status-pills>.status-text{padding:.2rem .65rem}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;margin-block-end:var(--space-lg);display:flex}.page-header>div:first-child{min-inline-size:0}.page-header .eyebrow{inline-size:fit-content;display:flex}.page-header .btn+.eyebrow,.page-header .page-subtitle+.eyebrow{margin-block-start:var(--space-md)}.page-title{font-size:var(--fs-2xl);font-weight:800}.page-subtitle{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);letter-spacing:.02em;margin-block-start:var(--space-2xs);display:inline-block}a.page-subtitle:hover{color:var(--color-primary)}.card{--card-pad:var(--space-lg);padding:var(--card-pad);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);margin-block-end:var(--space-lg);position:relative}.card-header{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-block-end:var(--space-md);display:flex}.card-title{font-size:var(--fs-lg);letter-spacing:-.01em;font-weight:700}.card-header .form-select,.card-header .form-input{inline-size:auto}.card-emphasis{border-color:oklch(from var(--color-primary) l c h / .45);background:radial-gradient(circle at 100% 0%, var(--color-glow), transparent 55%), var(--color-surface)}.stats-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));margin-block-end:var(--space-lg);display:grid}.stat-card{justify-content:flex-end;gap:var(--space-2xs);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);text-align:start;flex-direction:column-reverse;display:flex}.stat-label{font-size:var(--fs-sm);color:var(--color-text-muted);line-height:1.35}.stat-value{font-size:var(--fs-xl);color:var(--color-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:800;line-height:1.1}.stat-card-clickable{font:inherit;color:inherit;transition:transform .45s var(--ease-bounce), box-shadow .35s var(--ease-out), border-color .25s, background-color .25s}.stat-card-clickable:hover{box-shadow:var(--shadow-lg);border-color:var(--color-border-strong);transform:translateY(-4px)}.stat-card-clickable:active{transform:scale(.98)}.stat-card-clickable.active{border-color:var(--color-primary);background:var(--color-accent-soft);box-shadow:0 0 0 1px var(--color-primary), var(--shadow-sm)}.info-cards{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));margin-block-end:var(--space-lg);display:grid}.info-cards>.card{margin-block-end:0}.section-label{align-items:center;gap:var(--space-xs);margin:var(--space-lg) 0 var(--space-xs);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600;display:flex}.section-label:first-child{margin-block-start:0}.detail-label{font-size:var(--fs-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-block-end:2px;font-weight:600}.detail-value{font-size:var(--fs-sm);color:var(--color-text);word-break:break-word;margin-block-end:var(--space-sm)}.detail-grid{columns:2;column-gap:var(--space-2xl)}.detail-item{break-inside:avoid;margin-block-end:var(--space-md)}.detail-item .detail-label{margin-block-end:var(--space-2xs)}.detail-item .detail-value{margin-block-end:0}.empty-state{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-text-muted);font-size:var(--fs-sm)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;inline-size:100%}th{padding:var(--space-sm) var(--space-md);background:var(--color-surface-2);border-block-end:1px solid var(--color-border);text-align:start;font-size:var(--fs-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;font-weight:650}td{padding:var(--space-sm) var(--space-md);border-block-end:1px solid var(--color-border);font-size:var(--fs-sm);vertical-align:middle}th:first-child,td:first-child{padding-inline-start:var(--card-pad,var(--space-md))}th:last-child,td:last-child{padding-inline-end:var(--card-pad,var(--space-md))}tbody tr:last-child td{border-block-end:0}tbody tr{transition:background-color .15s}tbody tr:hover td{background:var(--color-surface-2)}tbody tr.row-clickable{cursor:pointer}td a{color:var(--color-text);font-weight:650}td a:hover{color:var(--color-primary);text-decoration:none}.card>.table-wrap{margin-inline:calc(-1 * var(--card-pad))}.card>.table-wrap:first-child{border-start-start-radius:calc(var(--radius-md) - 1px);border-start-end-radius:calc(var(--radius-md) - 1px);margin-block-start:calc(-1 * var(--card-pad))}.card>.table-wrap:last-child{border-end-end-radius:calc(var(--radius-md) - 1px);border-end-start-radius:calc(var(--radius-md) - 1px);margin-block-end:calc(-1 * var(--card-pad))}.card>.card-header+.table-wrap{border-block-start:1px solid var(--color-border)}.form-group{align-content:start;gap:.35rem;margin-block-end:var(--space-md);display:grid}.form-label{font-size:var(--fs-sm);color:var(--color-text);font-weight:600;display:block}.form-label .required{color:var(--color-danger);margin-inline-start:2px}.form-input,.form-select,.form-textarea{border:1.5px solid var(--color-border-strong);background:var(--color-surface-2);min-block-size:44px;inline-size:100%;color:var(--color-text);font-size:var(--fs-sm);border-radius:12px;outline:none;padding:.55rem .95rem;transition:border-color .2s,box-shadow .25s,background-color .2s}.form-input::placeholder,.form-textarea::placeholder{color:oklch(from var(--color-text-muted) l c h / .7)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:oklch(from var(--color-primary) l c h / .5)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-glow);background:var(--color-surface)}.form-input:disabled,.form-select:disabled{opacity:.7;cursor:not-allowed}.form-textarea{resize:vertical;min-block-size:110px}.form-select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px;padding-inline-end:2.5rem}.form-hint{font-size:var(--fs-xs);color:var(--color-text-muted)}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary);flex-shrink:0;block-size:18px;inline-size:18px}input[type=file]{font-size:var(--fs-sm)}.checkbox-item{align-items:center;gap:var(--space-xs);min-block-size:44px;padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;transition:border-color .2s,background-color .2s;display:flex}.checkbox-item:hover{border-color:oklch(from var(--color-primary) l c h / .5)}.checkbox-item:has(input:checked){border-color:var(--color-primary);background:var(--color-accent-soft)}.form-inline{gap:var(--space-sm);flex-wrap:wrap;align-items:flex-end;margin-block-end:var(--space-lg);display:flex}.form-inline .form-input,.form-inline .form-select{inline-size:auto}.form-row{gap:0 var(--space-md);grid-template-columns:1fr 1fr;display:grid}.tabs{gap:var(--space-2xs);inline-size:fit-content;max-inline-size:100%;border-radius:var(--radius-full);background:var(--color-surface-2);border:1px solid var(--color-border);flex-wrap:wrap;margin-block-end:var(--space-lg);padding:4px;display:flex}.tab-btn{min-block-size:40px;padding-inline:var(--space-md);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:var(--fs-sm);transition:background-color .2s, color .2s, transform .3s var(--ease-bounce);background:0 0;border:0;font-weight:650}.tab-btn:hover{color:var(--color-text)}.tab-btn:active{transform:scale(.96)}.tab-btn.active,.tab-btn:disabled{background:var(--color-primary);color:var(--color-on-primary);cursor:default;opacity:1}.auth-page{isolation:isolate;min-block-size:100dvh;padding:var(--space-lg);background:var(--color-bg);place-items:center;display:grid;position:relative;overflow:hidden}.auth-page:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(var(--color-border) 1px, transparent 1px), linear-gradient(90deg, var(--color-border) 1px, transparent 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 75%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 75%)}.auth-page:after{content:"";z-index:-1;pointer-events:none;aspect-ratio:1;background:radial-gradient(circle, var(--color-glow), transparent 65%);filter:blur(20px);inline-size:min(60vw,720px);position:absolute;inset-block-start:5%;inset-inline-end:-10%}.auth-card{inline-size:100%;max-inline-size:26rem;padding:var(--space-xl);border-radius:var(--radius-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border:1px solid var(--color-border);box-shadow:var(--shadow-lg)}.auth-logo{margin:0 auto var(--space-sm);aspect-ratio:570/120;block-size:34px;inline-size:auto;display:block}.auth-eyebrow{justify-content:center;margin-block-end:var(--space-lg);display:flex}.auth-qr{margin:0 auto var(--space-sm);background:#fff;border-radius:12px;inline-size:100%;max-inline-size:200px;padding:8px;display:block}.auth-card .form-group:last-of-type{margin-block-end:var(--space-lg)}.auth-error{padding:var(--space-xs) var(--space-sm);background:oklch(from var(--color-danger) l c h / .12);color:var(--color-danger);font-size:var(--fs-sm);border-radius:12px;margin-block-end:var(--space-sm);font-weight:550}.auth-hint{text-align:center;font-size:var(--fs-xs);color:var(--color-text-muted);overflow-wrap:anywhere;margin-block-end:var(--space-md)}.auth-divider{align-items:center;gap:var(--space-sm);margin-block:var(--space-md);font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;block-size:1px}.modal-overlay{z-index:600;padding:var(--space-md);background:oklch(10% .03 var(--brand-hue) / .55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .3s var(--ease-out);place-items:center;display:grid;position:fixed;inset:0}.modal{max-block-size:calc(100dvh - 2rem);inline-size:min(100%,36rem);padding:var(--space-xl);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);animation:modal-in .5s var(--ease-bounce);overflow-y:auto}.modal-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-block-end:var(--space-lg);display:flex}.modal-title{font-size:var(--fs-xl);letter-spacing:-.02em;font-weight:750;line-height:1.15}.modal-close{border:1px solid var(--color-border);background:var(--color-surface-2);block-size:44px;inline-size:44px;color:var(--color-text-muted);border-radius:12px;flex-shrink:0;place-items:center;transition:color .2s,border-color .2s;display:grid}.modal-close:hover{color:var(--color-primary);border-color:var(--color-primary)}.modal-footer{gap:var(--space-xs);border-block-start:1px solid var(--color-border);flex-wrap:wrap;justify-content:flex-end;margin-block-start:var(--space-lg);padding-block-start:var(--space-md);display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(20px)scale(.96)}}.error-toast{z-index:700;align-items:center;gap:var(--space-xs);max-inline-size:min(34rem, calc(100vw - 2 * var(--space-md)));border-radius:var(--radius-full);background:var(--color-text);color:var(--color-bg);font-weight:600;font-size:var(--fs-sm);box-shadow:var(--shadow-lg);cursor:pointer;animation:toast-in .5s var(--ease-bounce);padding:.7rem 1.1rem;display:flex;position:fixed;inset-block-start:calc(var(--header-h) + var(--space-sm));inset-inline-end:var(--space-md)}.error-toast svg{block-size:18px;inline-size:18px;color:var(--color-danger);flex-shrink:0}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)scale(.9)}}.splash{z-index:2000;background:var(--color-bg);transition:clip-path .9s var(--ease-in-out), opacity .6s;clip-path:inset(0);cursor:pointer;place-items:center;display:grid;position:fixed;inset:0}.splash.is-leaving{clip-path:inset(0 0 100%)}.splash__inner{justify-items:center;gap:var(--space-xl);display:grid}.splash__mark{box-sizing:border-box;isolation:isolate;inline-size:min(88vw,460px);padding-block:clamp(1.1rem,4vw,1.9rem);padding-inline:clamp(1.25rem,5.5vw,2.6rem);position:relative}.splash__ring{pointer-events:none;block-size:100%;inline-size:100%;max-inline-size:none;position:absolute;inset:0;overflow:visible}.splash__ring rect{fill:none;stroke:var(--color-primary);stroke-width:1.5px;stroke-dasharray:1000;stroke-dashoffset:1000px;animation:splash-draw 1.3s var(--ease-in-out) forwards}.splash__logo{clip-path:inset(0 100% 0 0);animation:splash-reveal .9s .35s var(--ease-out) forwards;aspect-ratio:570/120;block-size:auto;inline-size:100%;max-inline-size:none}.splash__glow{z-index:-1;background:radial-gradient(closest-side, var(--color-glow), transparent);opacity:0;animation:1.6s ease-in-out .6s forwards splash-pulse;position:absolute;inset:-40%}.splash__tagline{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.18em;color:var(--color-text-muted);text-transform:uppercase;display:flex}.splash__tagline span{opacity:0;animation:splash-letter .4s var(--ease-bounce) forwards;animation-delay:calc(.9s + var(--i) * 25ms);white-space:pre;display:inline-block;transform:translateY(8px)}.splash__bar{background:var(--color-border);border-radius:2px;block-size:2px;inline-size:160px;overflow:hidden}.splash__bar:after{content:"";background:var(--color-primary);transform-origin:0;block-size:100%;inline-size:100%;animation:splash-progress 1.8s var(--ease-in-out) forwards;display:block;transform:scaleX(0)}@keyframes splash-draw{to{stroke-dashoffset:0}}@keyframes splash-reveal{to{clip-path:inset(0)}}@keyframes splash-pulse{50%{opacity:1;transform:scale(1.1)}to{opacity:.6}}@keyframes splash-letter{to{opacity:1;transform:none}}@keyframes splash-progress{to{transform:scaleX(1)}}.side-layout{gap:var(--space-lg);align-items:flex-start;display:flex}.side-layout-main{flex:1;min-inline-size:0}.side-panel{flex-shrink:0;inline-size:300px}.side-panel-collapse{block-size:36px;inline-size:36px;color:var(--color-text-muted);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.side-panel-collapse:hover{background:var(--color-surface-2);color:var(--color-primary)}.side-panel-toggle{border:1px solid var(--color-border);background:var(--color-surface);block-size:44px;inline-size:44px;color:var(--color-text-muted);box-shadow:var(--shadow-sm);border-radius:12px;flex-shrink:0;place-items:center;display:grid;position:sticky;inset-block-start:0}.side-panel-toggle:hover{color:var(--color-primary);border-color:var(--color-primary)}.doc-grid{gap:var(--space-xs);flex-wrap:wrap;display:flex}.doc-chip{background:var(--color-surface-2);border:1px solid var(--color-border);max-inline-size:260px;transition:border-color .2s, transform .35s var(--ease-bounce);border-radius:12px;align-items:center;display:inline-flex}.doc-chip:hover{border-color:var(--color-primary);transform:translateY(-2px)}.doc-chip-link{align-items:center;gap:var(--space-xs);min-block-size:40px;min-inline-size:0;padding:var(--space-2xs) var(--space-2xs) var(--space-2xs) var(--space-sm);font-size:var(--fs-sm);color:var(--color-text);flex:1;font-weight:550;display:inline-flex}.doc-chip-link:hover{color:var(--color-primary);text-decoration:none}.doc-chip-icon{flex-shrink:0;font-size:16px;line-height:1}.doc-chip-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.doc-chip-delete{padding:4px var(--space-sm) 4px 4px;color:var(--color-text-muted);background:0 0;border:0;flex-shrink:0;font-size:16px;line-height:1}.doc-chip-delete:hover{color:var(--color-danger)}.status-dot{border-radius:50%;flex-shrink:0;block-size:8px;inline-size:8px;margin-inline-end:6px;display:inline-block}.status-dot.online{background:var(--color-success);box-shadow:0 0 0 3px oklch(from var(--color-success) l c h / .2)}.status-dot.offline{background:var(--color-text-muted)}.status-dot.unknown{border:1.5px solid var(--color-border-strong);background:0 0}.disk-usage{align-items:center;gap:var(--space-sm);margin-block-end:var(--space-xs);display:flex}.disk-usage-label{font-family:var(--font-mono);font-size:var(--fs-sm);min-inline-size:24px;font-weight:700}.disk-usage-bar{border-radius:var(--radius-full);background:var(--color-surface-2);flex:1;block-size:8px;max-inline-size:220px;overflow:hidden}.disk-usage-fill{border-radius:var(--radius-full);background:var(--color-primary);block-size:100%}.disk-usage-fill.warn{background:var(--color-warning)}.disk-usage-fill.danger{background:var(--color-danger)}.disk-usage-percent{font-family:var(--font-mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;min-inline-size:36px;font-weight:700}.disk-usage-detail{font-size:var(--fs-xs);color:var(--color-text-muted)}.stepper{padding:var(--space-2xs) 6px;justify-content:safe center;align-items:center;display:flex;overflow-x:auto}.stepper-step{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-xs) var(--space-xs) 0;white-space:nowrap;background:0 0;border:0;display:flex}.stepper-step:not(:last-child){margin-inline-end:var(--space-2xs)}.stepper-step:not(:last-child):after{content:"";block-size:2px;inline-size:20px;background:var(--color-border-strong);border-radius:2px;margin-inline-start:var(--space-xs)}.stepper-index{border:1.5px solid var(--color-border-strong);block-size:28px;inline-size:28px;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--fs-xs);transition:transform .35s var(--ease-bounce);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.stepper-step:hover .stepper-index{transform:scale(1.08)}.stepper-label{font-size:var(--fs-sm);color:var(--color-text-muted)}.stepper-done .stepper-index{background:var(--color-accent-soft);border-color:var(--color-primary);color:var(--color-primary)}.stepper-done .stepper-label{color:var(--color-text)}.stepper-done:not(:last-child):after{background:var(--color-primary)}.stepper-current .stepper-index{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);box-shadow:0 0 0 4px var(--color-glow)}.stepper-current .stepper-label{color:var(--color-primary);font-weight:700}.stepper-todo .stepper-label{color:var(--color-text-muted)}.rich-text-editable{cursor:text;min-block-size:160px;max-block-size:400px;overflow-y:auto}.rich-text-content{font-size:var(--fs-sm);line-height:1.65}.rich-text-content ul,.rich-text-content ol{margin:8px 0;padding-inline-start:22px}.rich-text-content p,.rich-text-content div{margin:0 0 8px}.rich-text-content h1{font-size:var(--fs-xl);margin:12px 0 8px;font-weight:800}.rich-text-content h2{font-size:var(--fs-lg);margin:12px 0 8px;font-weight:750}.rich-text-content h3{font-size:var(--fs-base);margin:10px 0 6px;font-weight:700}.rich-text-content blockquote{border-inline-start:3px solid var(--color-primary);color:var(--color-text-muted);margin:8px 0;padding-inline-start:12px}.rich-text-content hr{border:none;border-block-start:1px solid var(--color-border);margin:12px 0}.recharts-line-curve{stroke:var(--color-primary)}.recharts-cartesian-grid line{stroke:var(--color-border)}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line{stroke:var(--color-border-strong)}.recharts-text{fill:var(--color-text-muted);font-family:var(--font-mono);font-size:.75rem}.recharts-default-tooltip{box-shadow:var(--shadow-lg);border-radius:12px;background:var(--color-surface)!important;border:1px solid var(--color-border)!important}.recharts-tooltip-label{color:var(--color-text);font-weight:650}.recharts-tooltip-item{color:var(--color-primary)!important}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.portal-shell{background:var(--color-bg);min-block-size:100dvh}.portal-header{z-index:20;align-items:center;gap:var(--space-md);block-size:var(--header-h);padding-inline:calc(var(--space-lg) + env(safe-area-inset-left)) calc(var(--space-lg) + env(safe-area-inset-right));background:var(--color-surface-glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border-block-end:1px solid var(--color-border);box-shadow:var(--shadow-sm);display:flex;position:sticky;inset-block-start:0}.portal-header .topbar-right{margin-inline-start:auto}.portal-header-company{font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);font-weight:600}.portal-main{max-inline-size:1000px;padding:var(--space-xl) var(--space-md) calc(var(--space-2xl) + env(safe-area-inset-bottom));margin-inline:auto}.portal-nav .tab-btn{align-items:center;text-decoration:none;display:inline-flex}.portal-nav .tab-btn.active{cursor:pointer}.portal-doc-list{margin:0;padding:0;list-style:none}.portal-doc-item{justify-content:space-between;align-items:center;gap:var(--space-2xs) var(--space-md);padding-block:var(--space-xs);border-block-end:1px solid var(--color-border);flex-wrap:wrap;display:flex}.portal-doc-item:last-child{border-block-end:0}.portal-doc-item .doc-chip{max-inline-size:100%}.portal-doc-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);white-space:nowrap}.portal-mobile-only{display:none}.card>.table-wrap.portal-desktop-only{border-end-end-radius:calc(var(--radius-md) - 1px);border-end-start-radius:calc(var(--radius-md) - 1px);margin-block-end:calc(-1 * var(--card-pad))}.portal-user-name{align-items:center;gap:var(--space-2xs) var(--space-xs);flex-wrap:wrap;display:inline-flex}.portal-account{justify-items:start;gap:2px;display:grid}.portal-account-date,.portal-sub{font-size:var(--fs-xs);color:var(--color-text-muted)}.portal-account-date,.portal-pc-names>span{white-space:nowrap}.portal-email{overflow-wrap:break-word}.portal-pc-names{display:inline-grid}.portal-cards{margin:0;padding:0;list-style:none}.portal-card-item{gap:var(--space-2xs);padding-block:var(--space-sm);border-block-end:1px solid var(--color-border);font-size:var(--fs-sm);justify-items:start;min-inline-size:0;display:grid}.portal-card-item:first-child{padding-block-start:0}.portal-card-item:last-child{border-block-end:0;padding-block-end:0}.portal-card-item>*{overflow-wrap:anywhere;max-inline-size:100%}.portal-card-head{justify-content:space-between;align-items:center;gap:var(--space-sm);inline-size:100%;display:flex}.portal-card-link{color:var(--color-primary)}.portal-card-item.row-clickable{cursor:pointer}.portal-card-title{color:var(--color-text);font-weight:650}.portal-card-title:hover{color:var(--color-primary);text-decoration:none}.portal-card-fields{gap:var(--space-2xs) var(--space-md);margin:var(--space-2xs) 0 0;grid-template-columns:auto 1fr;inline-size:100%;display:grid}.portal-card-fields dt{font-size:var(--fs-xs);color:var(--color-text-muted);align-self:center}.portal-card-fields dd{overflow-wrap:anywhere;min-inline-size:0;margin:0}.portal-footnote{font-size:var(--fs-xs);color:var(--color-text-muted);margin-block-start:var(--space-sm)}.comment-bubble{padding:var(--space-sm) var(--space-md);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:12px;margin-block-end:var(--space-xs)}.comment-head{align-items:center;gap:var(--space-xs);font-size:var(--fs-sm);flex-wrap:wrap;margin-block-end:var(--space-2xs);display:flex}.comment-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);margin-inline-start:auto}.comment-body{white-space:pre-wrap;font-size:var(--fs-sm)}.comment-client{border-inline-start:3px solid var(--color-primary)}.comment-internal{background:oklch(from var(--color-warning) l c h / .12);border-color:oklch(from var(--color-warning) l c h / .4)}@media (width<=960px){:root{--header-h:64px}.app-shell{grid-template-columns:1fr;grid-template-areas:"topbar""main"}.sidebar{z-index:50;inset-inline-start:0;inset-block:var(--header-h) 0;inline-size:min(280px,85vw);transition:transform .45s var(--ease-out);box-shadow:var(--shadow-lg);position:fixed;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar-overlay.visible{z-index:40;inset:var(--header-h) 0 0 0;background:oklch(10% .03 var(--brand-hue) / .45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:block;position:fixed}.topbar-burger{display:grid}.topbar-user-info,.topbar .theme-switch{display:none}.sidebar .theme-switch{display:inline-grid}.page-content{padding:var(--space-lg) var(--space-md) var(--space-xl)}.side-layout{flex-direction:column}.side-panel{inline-size:100%}}.sidebar-theme{display:none}@media (width<=960px){.sidebar-theme{padding:var(--space-sm) var(--space-sm) 0;display:block}}@media (width<=720px){.portal-header-company,.portal-header .topbar-user-info{display:none}.portal-nav{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.portal-nav::-webkit-scrollbar{display:none}.portal-nav .tab-btn{padding-inline:var(--space-sm);flex-shrink:0}.portal-desktop-only{display:none}.portal-mobile-only{display:block}.form-row{grid-template-columns:1fr}.form-inline .form-input,.form-inline .form-select{inline-size:100%}.detail-grid{columns:1}.page-header{align-items:flex-start}.modal{padding:var(--space-lg)}}@media (width<=480px){.stats-grid{gap:var(--space-xs);grid-template-columns:1fr 1fr}.topbar-logo-img{block-size:26px}}@media (pointer:coarse){.btn-sm{min-block-size:44px}.theme-switch__btn{block-size:44px;inline-size:44px}}@media (prefers-reduced-motion:reduce){:not(.splash,.splash *),:not(.splash,.splash *):before,:not(.splash,.splash *):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.topbar,.sidebar,.sidebar-overlay,.error-toast,.modal-overlay,.btn,.tabs,.form-inline,.side-panel-toggle{display:none!important}.app-shell{block-size:auto;display:block;overflow:visible}.page-content{padding:0;overflow:visible}body{color:#000;background:#fff}.card,.stat-card{box-shadow:none;border-color:#ccc}}
