@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&display=swap";/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--login-angle:0deg}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-amber-400:oklch(82.8% .189 84.429);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-400:oklch(76.5% .177 163.223);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-violet-400:oklch(70.2% .183 293.541);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:10px;--radius-xl:12px;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--radius:8px;--sidebar-w:230px;--header-h:54px}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.info{background:var(--surface-accent);border:1px solid var(--surface-accent-border);border-radius:var(--radius-lg);color:var(--muted);margin-bottom:20px;padding:10px 16px;font-size:12px;line-height:1.6}.info strong{color:var(--text);margin-bottom:2px;font-size:13px;font-weight:600;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:20px 22px}.card+.card{margin-top:14px}.card h2{color:var(--text);margin-bottom:16px;font-size:13px;font-weight:700}.card h3{text-transform:uppercase;letter-spacing:.07em;color:var(--subtle);margin-bottom:12px;font-size:10px;font-weight:700}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden}.panel-header{border-bottom:1px solid var(--panel-border-inner);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.panel-title{color:var(--text);font-size:13px;font-weight:700}.panel-link{color:var(--accent);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none}.panel-link:hover{color:var(--accent-hover)}.panel-row{border-bottom:1px solid var(--panel-border-inner);color:var(--text-2);align-items:flex-start;gap:12px;padding:10px 18px;font-size:12px;display:flex}.panel-row:last-child{border-bottom:none}.panel-row a{color:inherit;flex:1;align-items:flex-start;gap:12px;text-decoration:none;display:flex}.panel-row a:hover{background:var(--surface-2)}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);flex-direction:column;gap:6px;padding:18px 20px;transition:border-color .15s;display:flex}.metric-card:hover{border-color:var(--accent-border)}.metric-value{color:var(--accent);letter-spacing:-.02em;font-size:30px;font-weight:800;line-height:1}.metric-value.green{color:var(--green)}.metric-value.amber{color:var(--amber)}.metric-value.red{color:var(--red)}.metric-label{text-transform:uppercase;letter-spacing:.07em;color:var(--subtle);font-size:11px;font-weight:700}.metric-delta{color:var(--subtle);font-size:11px}.metric-delta .up{color:var(--green);font-weight:600}.metric-delta .warn{color:var(--amber);font-weight:600}.metric{color:var(--accent);font-size:30px;font-weight:800}.table{border-collapse:collapse;width:100%}.table-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.table-search{max-width:320px}.table-count{color:var(--subtle);white-space:nowrap;font-size:11px}.table th{text-transform:uppercase;letter-spacing:.07em;color:var(--subtle);text-align:left;background:var(--table-header-bg);border-bottom:1px solid var(--panel-border-inner);padding:8px 18px;font-size:10px;font-weight:700}.table-sort{color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;font-size:inherit;font-weight:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.table-sort:hover{color:var(--text-2)}.table td{border-bottom:1px solid var(--table-row-alt);color:var(--text-2);vertical-align:middle;padding:10px 18px;font-size:12px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--table-row-alt)}.table small{color:var(--subtle);margin-top:2px;font-size:11px;display:block}.table-pagination{color:var(--muted);align-items:center;gap:10px;margin-top:14px;font-size:12px;display:flex}.table-pagination-nav{align-items:center;gap:8px;margin-left:auto;display:flex}.table-page-size{flex-shrink:0;width:auto!important}.badge{letter-spacing:.04em;vertical-align:middle;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:10px;font-weight:700;display:inline-flex}.badge.badge-green{color:#166534;background:#dcfce7}.badge.badge-blue{color:#1d4ed8;background:#dbeafe}.badge.badge-amber{color:#92400e;background:#fef3c7}.badge.badge-slate{background:var(--panel-border-inner);color:#475569}.badge.badge-red{color:#991b1b;background:#fee2e2}.badge.badge-violet{color:#5b21b6;background:#ede9fe}.badge.green{color:#166534;background:#dcfce7}.badge.amber{color:#92400e;background:#fef3c7}.badge.blue{color:#1d4ed8;background:#dbeafe}.badge.red{color:#991b1b;background:#fee2e2}.badge.purple{color:#5b21b6;background:#ede9fe}.input,.select,textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:#fff;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.input::-moz-placeholder,textarea::-moz-placeholder{color:var(--subtle)}.input::placeholder,textarea::placeholder{color:var(--subtle)}.input:focus,.select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-focus)}.select{cursor:pointer}textarea{resize:vertical;min-height:80px;line-height:1.5}.input:disabled,.select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted);cursor:default;border-color:var(--border)}.btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:var(--accent);color:#fff;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.btn:hover{background:var(--accent-hover)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.secondary{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.btn.secondary:hover{background:var(--panel-border-inner);border-color:var(--border-strong)}.btn.danger{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.btn.danger:hover{background:#fee2e2}.btn.sm{padding:5px 10px}.error{border-radius:var(--radius);color:#991b1b;background:#fef2f2;border:1px solid #fecaca;padding:10px 14px;font-size:12px}.error strong{margin-bottom:3px;font-weight:700;display:block}.success{border-radius:var(--radius);color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;padding:10px 14px;font-size:12px}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:20px;padding:0 2px;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-1px;padding:8px 14px;font-size:12px;font-weight:500;transition:color .12s,border-color .12s}.tab:hover{color:var(--text-2)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tab-content{min-width:0;overflow-x:hidden}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-\[calc\(100\%\+8px\)\]{top:calc(100% + 8px)}.right-0{right:calc(var(--spacing) * 0)}.z-\[200\]{z-index:200}.z-\[201\]{z-index:201}.z-\[1000\]{z-index:1000}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-\[18px\]{margin:18px}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-5{margin-inline:calc(var(--spacing) * 5)}.mx-\[18px\]{margin-inline:18px}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-\[3px\]{margin-top:3px}.mt-\[5px\]{margin-top:5px}.mt-\[7px\]{margin-top:7px}.mt-\[13px\]{margin-top:13px}.mt-px{margin-top:1px}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-px{margin-bottom:-1px}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-3\.5{margin-bottom:calc(var(--spacing) * 3.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-7{margin-bottom:calc(var(--spacing) * 7)}.mb-\[3px\]{margin-bottom:3px}.mb-\[5px\]{margin-bottom:5px}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-\[25px\]{margin-left:25px}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-\[7px\]{width:7px;height:7px}.size-\[18px\]{width:18px;height:18px}.size-\[26px\]{width:26px;height:26px}.size-\[72px\]{width:72px;height:72px}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-\[18px\]{height:18px}.h-\[30px\]{height:30px}.h-\[60vh\]{height:60vh}.h-\[180px\]{height:180px}.h-\[calc\(100vh-300px\)\]{height:calc(100vh - 300px)}.h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[26px\]{max-height:26px}.max-h-\[160px\]{max-height:160px}.max-h-\[320px\]{max-height:320px}.max-h-\[380px\]{max-height:380px}.max-h-\[400px\]{max-height:400px}.min-h-\[60px\]{min-height:60px}.min-h-\[64px\]{min-height:64px}.min-h-\[70px\]{min-height:70px}.min-h-\[72px\]{min-height:72px}.min-h-\[80px\]{min-height:80px}.min-h-\[300px\]{min-height:300px}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-\[60\%\]{width:60%}.w-\[64px\]{width:64px}.w-\[70\%\]{width:70%}.w-\[140px\]{width:140px}.w-\[160px\]{width:160px}.w-\[180px\]{width:180px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[320px\]{width:320px}.w-\[360px\]{width:360px}.w-\[480px\]{width:480px}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-\[7px\]{max-width:7px}.max-w-\[92vw\]{max-width:92vw}.max-w-\[95vw\]{max-width:95vw}.max-w-\[100px\]{max-width:100px}.max-w-\[160px\]{max-width:160px}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[380px\]{max-width:380px}.max-w-\[480px\]{max-width:480px}.max-w-\[520px\]{max-width:520px}.max-w-\[560px\]{max-width:560px}.max-w-\[580px\]{max-width:580px}.max-w-\[620px\]{max-width:620px}.max-w-\[680px\]{max-width:680px}.max-w-\[720px\]{max-width:720px}.max-w-\[760px\]{max-width:760px}.max-w-\[780px\]{max-width:780px}.max-w-\[820px\]{max-width:820px}.max-w-\[860px\]{max-width:860px}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-3{min-width:calc(var(--spacing) * 3)}.min-w-\[7px\]{min-width:7px}.min-w-\[80px\]{min-width:80px}.min-w-\[90px\]{min-width:90px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-\[0\.5\]{flex:.5}.flex-\[1_1_120px\]{flex:120px}.flex-\[1_1_200px\]{flex:200px}.flex-\[1_1_220px\]{flex:220px}.flex-\[2\]{flex:2}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-spin{animation:var(--animate-spin)}.cursor-cell{cursor:cell}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[3px\]{gap:3px}.gap-\[5px\]{gap:5px}.gap-\[7px\]{gap:7px}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:8px}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:10px}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:12px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[rgba\(34\,197\,94\,0\.25\)\]{border-color:#22c55e40}.border-\[var\(--panel-border-inner\)\]{border-color:var(--panel-border-inner)}.border-accent,.border-accent\/15{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\/15{border-color:color-mix(in oklab,var(--accent) 15%,transparent)}}.border-amber{border-color:var(--amber)}.border-border{border-color:var(--border)}.border-red{border-color:var(--red)}.border-slate-700{border-color:var(--color-slate-700)}.border-slate-800{border-color:var(--color-slate-800)}.border-transparent{border-color:#0000}.bg-\[\#0D1117\]{background-color:#0d1117}.bg-\[\#0d1a0d\]{background-color:#0d1a0d}.bg-\[\#0f1117\]{background-color:#0f1117}.bg-\[\#1e2330\]{background-color:#1e2330}.bg-\[\#451a0320\]{background-color:#451a0320}.bg-\[oklch\(97\%_0\.015_20\)\]{background-color:#fff1f1}.bg-\[oklch\(98\%_0\.015_75\)\]{background-color:#fff7ee}.bg-\[rgba\(15\,23\,42\,0\.5\)\]{background-color:#0f172a80}.bg-\[rgba\(34\,197\,94\,0\.08\)\]{background-color:#22c55e14}.bg-\[rgba\(148\,163\,184\,0\.1\)\]{background-color:#94a3b81a}.bg-\[rgba\(239\,68\,68\,0\.08\)\]{background-color:#ef444414}.bg-\[rgba\(245\,158\,11\,0\.04\)\]{background-color:#f59e0b0a}.bg-\[rgba\(245\,158\,11\,0\.06\)\]{background-color:#f59e0b0f}.bg-accent{background-color:var(--accent)}.bg-accent-dim{background-color:var(--accent-dim)}.bg-amber{background-color:var(--amber)}.bg-amber-dim{background-color:var(--amber-dim)}.bg-bg{background-color:var(--bg)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/45{background-color:#00000073}@supports (color:color-mix(in lab,red,red)){.bg-black\/45{background-color:color-mix(in oklab,var(--color-black) 45%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--border)}.bg-green{background-color:var(--green)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-dim{background-color:var(--green-dim)}.bg-indigo-500\/15{background-color:#625fff26}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/15{background-color:color-mix(in oklab,var(--color-indigo-500) 15%,transparent)}}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red{background-color:var(--red)}.bg-red-dim{background-color:var(--red-dim)}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-surface{background-color:var(--surface)}.bg-surface-2{background-color:var(--surface-2)}.bg-transparent{background-color:#0000}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.px-\[18px\]{padding-inline:18px}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[3px\]{padding-block:3px}.py-\[5px\]{padding-block:5px}.py-\[7px\]{padding-block:7px}.py-\[9px\]{padding-block:9px}.py-\[10px\]{padding-block:10px}.py-\[18px\]{padding-block:18px}.py-\[60px\]{padding-block:60px}.py-px{padding-block:1px}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pt-\[18px\]{padding-top:18px}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.align-middle{vertical-align:middle}.font-\[inherit\]{font-family:inherit}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[32px\]{font-size:32px}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-\[\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#22c55e\]{color:#22c55e}.text-\[\#ef4444\]{color:#ef4444}.text-\[\#f59e0b\]{color:#f59e0b}.text-accent{color:var(--accent)}.text-accent-text{color:var(--accent-dim-text)}.text-amber{color:var(--amber)}.text-amber-400{color:var(--color-amber-400)}.text-blue{color:var(--blue)}.text-emerald-400{color:var(--color-emerald-400)}.text-green{color:var(--green)}.text-green-500{color:var(--color-green-500)}.text-indigo-400{color:var(--color-indigo-400)}.text-muted{color:var(--muted)}.text-red{color:var(--red)}.text-red-400{color:var(--color-red-400)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-subtle{color:var(--subtle)}.text-text{color:var(--text)}.text-text-2{color:var(--text-2)}.text-violet-400{color:var(--color-violet-400)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-\[-4px_0_24px_rgba\(0\,0\,0\,0\.15\)\]{--tw-shadow:-4px 0 24px var(--tw-shadow-color,#00000026);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_32px_rgba\(0\,0\,0\,0\.12\)\]{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_40px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 8px 40px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_40px_rgba\(0\,0\,0\,0\.18\)\]{--tw-shadow:0 8px 40px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.18\)\]{--tw-shadow:0 20px 60px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition-\[background\]{transition-property:background;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover){.hover\:bg-surface-2:hover{background-color:var(--surface-2)}}}:root{--bg:#f8fafc;--sidebar-bg:#1e293b;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--text-2:#334155;--muted:#64748b;--subtle:#94a3b8;--accent:#4f46e5;--accent-hover:#4338ca;--accent-dim:#eef2ff;--accent-dim-text:#4338ca;--accent-focus:#4f46e51f;--green:#10b981;--amber:#f59e0b;--red:#ef4444;--blue:#3b82f6;--violet:#8b5cf6;--sidebar-w:230px;--sidebar-w-collapsed:52px;--header-h:54px;--radius:8px;--radius-lg:10px;--radius-xl:12px;--surface-accent:#f8faff;--surface-accent-border:#e0e7ff;--table-header-bg:#fafafa;--table-row-alt:#f8fafc;--panel-border-inner:#f1f5f9;--accent-border:#c7d2fe;--accent-deep:#3730a3;--score-bg:#f1f5f9;--blue-dim:#eff6ff;--violet-dim:#f5f3ff;--green-dim:#f0fdf4;--amber-dim:#fffbeb;--red-dim:#fef2f2}[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--surface-2:#162032;--border:#334155;--border-strong:#475569;--text:#f1f5f9;--text-2:#cbd5e1;--muted:#94a3b8;--subtle:#64748b;--accent:#818cf8;--accent-hover:#6366f1;--accent-dim:#6366f126;--accent-dim-text:#a5b4fc;--accent-focus:#818cf826;--table-header-bg:#1a2744;--table-row-alt:#172032;--panel-border-inner:#273549;--surface-accent:#1a2238;--surface-accent-border:#3730a3;--blue-dim:#3b82f61f;--violet-dim:#8b5cf61f;--green-dim:#10b9811f;--amber-dim:#f59e0b1f;--red-dim:#ef44441f}[data-theme=dark] .sidebar{background:#0b1120}[data-theme=dark] .topbar{background:var(--surface);border-bottom-color:var(--border)}[data-theme=dark] .metric-card:hover{border-color:var(--accent)}[data-theme=dark] .notice-bar{color:var(--accent-dim-text);background:#6366f11f;border-color:#818cf84d}[data-theme=dark] .notice-bar.error{color:#fca5a5;background:#ef44441f;border-color:#ef444459}[data-theme=dark] .notice-bar.warning{color:#fcd34d;background:#f59e0b1f;border-color:#f59e0b59}[data-theme=dark] .notice-bar.success{color:#6ee7b7;background:#10b9811f;border-color:#10b98159}[data-theme=dark] .notice-bar strong{color:var(--text)}[data-theme=dark] .notice-bar small{color:var(--text-2)}[data-theme=dark] .info{background:var(--surface-accent);border-color:var(--border);color:var(--muted)}[data-theme=dark] .info strong{color:var(--text)}[data-theme=dark] .score-bar{background:var(--border)}[data-theme=dark] .table th{background:var(--table-header-bg);border-bottom-color:var(--border)}[data-theme=dark] .table td{border-bottom-color:var(--border);color:var(--text-2)}[data-theme=dark] .table tbody tr:hover td{background:var(--table-row-alt)}[data-theme=dark] .panel-header{border-bottom-color:var(--panel-border-inner)}[data-theme=dark] .input,[data-theme=dark] .select,[data-theme=dark] textarea{background:var(--surface-2);border-color:var(--border);color:var(--text)}[data-theme=dark] .btn{background:var(--accent);color:#fff;border-color:var(--accent)}[data-theme=dark] .btn.secondary{background:var(--surface-2);color:var(--text-2);border-color:var(--border)}html{font-size:14px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Bricolage Grotesque,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5;transition:background-color .2s,color .2s}button,input,select,textarea{font:inherit}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);z-index:100;border-right:none;flex-direction:column;transition:width .22s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.logo{letter-spacing:-.02em;color:#fff;border-bottom:1px solid #ffffff12;flex-shrink:0;align-items:center;gap:10px;padding:18px 16px 16px;font-size:14px;font-weight:700;display:flex}.logo-sub{color:#64748b;letter-spacing:.01em;font-size:10px;font-weight:400;display:block}.logo-mark{background:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.logo-mark:after{content:"";background:#ffffffe6;border-radius:3px;width:10px;height:10px}.nav{flex:1;padding:10px 8px}.group-title{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;color:#475569;background:0 0;border:none;border-radius:4px;justify-content:space-between;align-items:center;width:100%;padding:12px 8px 4px;font-size:10px;font-weight:700;transition:color .12s;display:flex}.group-title:hover{color:#64748b}.group-chevron{flex-shrink:0;transition:transform .18s}.group-chevron.collapsed{transform:rotate(-90deg)}.nav-item{text-align:left;color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;width:100%;margin-bottom:1px;padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item svg{opacity:.7;flex-shrink:0;transition:opacity .12s}.nav-item:hover{color:#e2e8f0;background:#ffffff12}.nav-item:hover svg{opacity:1}.nav-item.active{color:#a5b4fc;background:#6366f133;font-weight:600}.nav-item.active svg{opacity:1;color:#a5b4fc}.nav-item:focus-visible{outline-offset:-2px;outline:2px solid #a5b4fc99}.sidebar-footer{border-top:1px solid #ffffff12;flex-shrink:0;align-items:center;gap:9px;padding:10px 12px;display:flex}.avatar{color:#a5b4fc;letter-spacing:.02em;background:#6366f140;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:10px;font-weight:700;display:flex}.avatar img{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-info{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;padding:0;overflow:hidden}.avatar-name{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.avatar-role{color:#475569;font-size:10px}.logout-btn{cursor:pointer;color:#475569;background:0 0;border:none;border-radius:4px;padding:4px;display:flex}.logout-btn:hover{color:#f87171}.nav-collapse-btn{cursor:pointer;color:#ffffff59;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:4px;transition:color .12s;display:flex}.nav-collapse-btn:hover{color:#ffffffbf}.sidebar.nav-collapsed{width:var(--sidebar-w-collapsed);overflow:hidden}.sidebar.nav-collapsed .logo{justify-content:center;padding:14px 6px}.sidebar.nav-collapsed .logo-full{display:none}.sidebar.nav-collapsed .nav-collapse-btn{margin:0}.sidebar.nav-collapsed .nav{padding:10px 6px}.sidebar.nav-collapsed .nav-item{justify-content:center;width:38px;margin:0 auto 1px;padding:8px}.sidebar.nav-collapsed .sidebar-footer{flex-direction:column;justify-content:center;gap:6px;padding:10px 6px}.content{margin-left:var(--sidebar-w);background:var(--bg);flex-direction:column;flex:1;min-height:100vh;transition:margin-left .22s cubic-bezier(.4,0,.2,1);display:flex}.sidebar.nav-collapsed~.content{margin-left:var(--sidebar-w-collapsed)}.topbar{z-index:50;border-bottom:1px solid var(--border);height:var(--header-h);background:#fff;flex-shrink:0;align-items:center;gap:8px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-logo{flex-shrink:0;width:auto;height:22px;margin-right:4px}.topbar-title{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:700;line-height:inherit;margin:0;padding:0}.topbar-sep{color:var(--border-strong);font-size:16px}.topbar-sub{color:var(--subtle);font-size:13px}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.topbar-date{color:var(--subtle);font-size:11px}.topbar-left h1{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:700}.topbar-left p{color:var(--subtle);margin-top:1px;font-size:12px}.env-toggle{border-radius:var(--radius);border:1px solid var(--border);margin-left:4px;display:flex;overflow:hidden}.env-toggle-btn{background:var(--surface-2);color:var(--text-2);cursor:pointer;border:none;padding:5px 14px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.env-toggle-btn+.env-toggle-btn{border-left:1px solid var(--border)}.env-toggle-btn:disabled{opacity:.4;cursor:not-allowed}.env-toggle-btn.active-stage{background:var(--accent);color:#fff}.env-toggle-btn.active-live{background:var(--green);color:#fff}.skip-link{z-index:9999;background:var(--accent);color:#fff;border-radius:4px;padding:8px 16px;font-size:13px;font-weight:600;transition:top .1s;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}.topbar-icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;padding:6px;transition:color .15s;display:flex}.topbar-icon-btn:hover{color:var(--text)}.notif-badge{background:var(--red);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:2px;right:2px}.update-banner{background:var(--accent);color:#fff;align-items:center;gap:10px;padding:8px 20px;font-size:13px;font-weight:500;display:flex}.update-banner-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:5px;margin-left:4px;padding:2px 10px;font-size:12px;font-weight:600;transition:background .15s}.update-banner-btn:hover{background:#ffffff4d}.update-banner-dismiss{color:#ffffffb3;cursor:pointer;background:0 0;border:none;align-items:center;margin-left:auto;transition:color .15s;display:flex}.update-banner-dismiss:hover{color:#fff}.update-banner.warning{color:#fff;background:#92400e}[data-theme=dark] .update-banner.warning{color:#fcd34d;background:#f59e0b40}.topbar-search-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;transition:border-color .15s,color .15s;display:flex}.topbar-search-btn:hover{border-color:var(--accent);color:var(--accent)}.topbar-search-kbd{background:var(--border);color:var(--subtle);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:10px}.topbar-new-btn{align-items:center;gap:6px;padding:6px 14px;font-size:12px;display:flex}@media (max-width:640px){.topbar-search-label,.topbar-search-kbd{display:none}.topbar-search-btn{padding:6px}.topbar-new-label{display:none}.topbar-new-btn{padding:6px 8px}.topbar-title{font-size:14px}}.page{padding:24px}.notice-bar{background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:var(--radius-lg);color:var(--accent-deep);align-items:center;gap:10px;margin-bottom:4px;padding:10px 16px;font-size:12px;display:flex}.notice-bar.error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.notice-bar.warning{color:#92400e;background:#fffbeb;border-color:#fcd34d}.notice-bar.success{color:#166534;background:#f0fdf4;border-color:#86efac}.notice-link{cursor:pointer;font-weight:600;text-decoration:underline}.notice-dot{background:var(--accent);border-radius:50%;flex-grow:0;flex-shrink:0;width:7px;min-width:7px;max-width:7px;height:7px;min-height:7px;max-height:7px;display:block}.notice-dot.error{background:var(--red)}.notice-dot.warning{background:var(--amber)}.notice-dot.success{background:var(--green)}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3-1{grid-template-columns:2fr 1fr}.score{letter-spacing:-.04em;color:var(--accent);font-size:56px;font-weight:900;line-height:1}.score.green{color:var(--green)}.score.amber{color:var(--amber)}.score.red{color:var(--red)}.score-bar{background:var(--panel-border-inner);border-radius:3px;height:6px;margin:12px 0 16px;overflow:hidden}.score-bar-fill{border-radius:3px;height:100%;transition:width .4s}.score-bar-fill.green{background:linear-gradient(90deg,#10b981,#6ee7b7)}.score-bar-fill.amber{background:linear-gradient(90deg,#f59e0b,#fcd34d)}.score-bar-fill.red{background:linear-gradient(90deg,#ef4444,#fca5a5)}.gate-check{color:var(--muted);border-bottom:1px solid var(--table-row-alt);align-items:center;gap:9px;padding:7px 0;font-size:12px;display:flex}.gate-check:last-child{border-bottom:none}.check-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.check-dot.ok{background:var(--green)}.check-dot.warn{background:var(--amber)}.check-dot.fail{background:var(--red)}.logger-toolbar{grid-template-columns:180px minmax(220px,1fr) auto;align-items:center;gap:10px;padding:16px 18px;display:grid}.template-list{flex-direction:column;gap:8px;padding:16px 18px;display:flex}.template-list button{text-align:left;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;color:var(--text-2);border-radius:9px;padding:12px;transition:border-color .15s,background .15s}.template-list button:hover,.template-list button.active{border-color:var(--accent-border);background:var(--accent-dim)}.template-list strong{color:var(--text);font-size:13px;display:block}.template-list small{color:var(--muted);margin-top:3px;display:block}.uptime-warning-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;padding:16px 18px;display:grid}.uptime-warning{border:1px solid var(--border);background:var(--surface-2);color:inherit;border-radius:9px;gap:7px;padding:12px;text-decoration:none;display:grid}.uptime-warning:hover{border-color:var(--border-strong);background:#fff}.uptime-warning strong{color:var(--text);font-size:13px}.uptime-warning small{color:var(--muted);font-size:12px;line-height:1.45}.review-session-strip{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:16px 18px;display:grid}.review-session-card{border:1px solid var(--border);background:var(--surface-2);color:inherit;border-radius:9px;gap:8px;padding:12px;text-decoration:none;display:grid}.review-session-card:hover{border-color:var(--border-strong);background:#fff}.review-session-card strong{color:var(--text);font-size:13px}.review-session-card small{color:var(--muted);font-size:12px;line-height:1.45}.page-header-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header-left{flex-direction:column;gap:2px;display:flex}.page-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:20px;font-weight:700}.page-subtitle{color:var(--muted);margin:0;font-size:13px}.page-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.kanban-board{align-items:flex-start;gap:14px;display:flex}.kanban-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);border-top:3px solid #0000;flex:1;min-width:0;overflow:hidden}.kanban-col.col-open{border-top-color:var(--amber)}.kanban-col.col-in-progress{border-top-color:var(--blue)}.kanban-col.col-done{border-top-color:var(--green)}.kanban-col-header{border-bottom:1px solid var(--border);background:var(--surface-2);align-items:center;gap:8px;padding:10px 14px 8px;display:flex}.kanban-col-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);flex:1;font-size:11px;font-weight:700}.kanban-col-count{color:var(--subtle);background:var(--border);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.kanban-col-body{padding:10px 8px 8px}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;margin-bottom:7px;padding:10px 12px;transition:border-color .12s,box-shadow .12s}.kanban-card:hover{border-color:var(--border-strong);box-shadow:0 1px 4px #0000000f}.kanban-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.kanban-card:last-child{margin-bottom:0}.kanban-card-title{color:var(--text);margin-bottom:6px;font-size:12px;font-weight:600;line-height:1.4}.kanban-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.kanban-empty{text-align:center;color:var(--subtle);padding:20px 0;font-size:12px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.client-check-override{border-top:1px solid var(--border);background:#fffbeb;gap:10px;padding:16px 18px;display:grid}.client-check-override h3{color:#92400e;align-items:center;gap:6px;margin:0 0 4px;font-size:13px;display:flex}.client-check-override p{color:var(--muted);margin:0;font-size:12px}.scope-editor{grid-template-columns:minmax(120px,1fr) 76px minmax(160px,1.4fr) auto;align-items:center;gap:6px;display:grid}.effort-pills,.effort-inputs{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.effort-pills .btn,.effort-inputs .btn{padding:5px 8px;font-size:11px}.effort-pills .input,.effort-inputs .input{width:82px;padding:6px 8px}.ceremony-backdrop{z-index:60;background:#0f172a94;place-items:center;padding:24px;display:grid;position:fixed;top:0;right:0;bottom:0;left:0}.ceremony-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:min(760px,100%);max-height:calc(100vh - 48px);box-shadow:var(--shadow-xl);gap:16px;padding:22px;display:grid;overflow:auto}.ceremony-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.ceremony-header h2{margin:0;font-size:20px}.ceremony-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ceremony-summary div{border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;padding:10px 12px}.ceremony-summary strong,.ceremony-summary span{font-size:12px;display:block}.ceremony-summary strong{color:var(--subtle);margin-bottom:3px}.ceremony-summary span{color:var(--text);overflow-wrap:anywhere}.ceremony-checks{gap:8px;display:grid}.ceremony-checks div{border-radius:var(--radius-md);align-items:center;gap:8px;padding:9px 10px;font-size:13px;font-weight:600;display:flex}.ceremony-checks .ok{color:#047857;background:#ecfdf5}.ceremony-checks .blocked{color:#b91c1c;background:#fef2f2}.ceremony-statement{background:var(--table-row-alt);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-2);margin:0;padding:14px;font-size:13px;line-height:1.55}.ceremony-confirm{color:var(--text-2);align-items:flex-start;gap:9px;font-size:13px;display:flex}.story-timeline{gap:0;padding:16px 18px 18px;display:grid}.story-event{grid-template-columns:22px 1fr;gap:10px;padding:0 0 18px;display:grid;position:relative}.story-event:before{content:"";background:var(--border);width:1px;position:absolute;top:18px;bottom:0;left:7px}.story-event:last-child{padding-bottom:0}.story-event:last-child:before{display:none}.story-dot{background:var(--accent);border-radius:50%;width:15px;height:15px;margin-top:2px;box-shadow:0 0 0 4px #eef2ff}.story-event.green .story-dot{background:var(--green);box-shadow:0 0 0 4px #dcfce7}.story-event.amber .story-dot{background:var(--amber);box-shadow:0 0 0 4px #fef3c7}.story-event.red .story-dot{background:var(--red);box-shadow:0 0 0 4px #fee2e2}.story-event.slate .story-dot{background:var(--muted);box-shadow:0 0 0 4px #e2e8f0}.story-event-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.story-event-header strong{color:var(--text);font-size:13px}.story-event-header span{color:var(--subtle);white-space:nowrap;font-size:11px}.story-event p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.45}.why-blocked-wrap{margin-top:10px}.why-blocked-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;gap:10px;margin-top:10px;padding:12px;display:grid}.why-blocked-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.why-blocked-header strong{color:var(--text);font-size:13px}.why-blocked-list{gap:10px;display:grid}.why-blocked-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--table-row-alt);gap:6px;padding:10px;display:grid}.why-blocked-item>div{align-items:center;gap:8px;display:flex}.why-blocked-item strong{color:var(--text);font-size:13px}.why-blocked-item p{color:var(--text-2);margin:0;font-size:12px;line-height:1.45}.why-blocked-item small{color:var(--muted);font-size:12px}.redirect-import-grid,.redirect-rule-grid{align-items:end;gap:8px;display:grid}.redirect-import-grid{grid-template-columns:minmax(260px,1fr) auto}.redirect-rule-grid{grid-template-columns:1fr 1fr 90px auto}.client-row-active td{background:var(--accent-dim)!important}.client-link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:700}.client-table-link{color:var(--accent);font-weight:700;text-decoration:none}.client-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px 18px;display:grid}.client-form-grid label{color:var(--text-2);gap:4px;font-size:12px;font-weight:600;display:grid}.client-form-wide{grid-column:1/-1}.client-form-actions{grid-column:1/-1;align-items:center;gap:10px;display:flex}.user-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px 18px;display:grid}.user-form-grid label{color:var(--text-2);gap:4px;font-size:12px;font-weight:600;display:grid}.user-form-actions{align-items:end;display:flex}.client-inline-error{color:var(--red);font-size:12px}.client-detail{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.client-detail-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;padding:16px 18px;display:grid}.client-detail-grid>div{gap:3px;min-width:0;display:grid}.client-detail-grid strong{color:var(--text);overflow-wrap:anywhere;font-size:13px}.client-detail-grid small{color:var(--subtle);overflow-wrap:anywhere;font-size:11px}.client-kicker{color:var(--subtle);letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:700}.version-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;padding:16px 18px;display:grid}.version-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);gap:10px;min-width:0;padding:14px;display:grid}.version-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.version-card-title{color:var(--text);letter-spacing:.07em;font-size:12px;font-weight:800}.version-card dl{gap:7px;display:grid}.version-card div{min-width:0}.version-card dt{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:700}.version-card dd{color:var(--text-2);overflow-wrap:anywhere;font-size:12px}.version-compare-row{flex-wrap:wrap;gap:10px;padding:0 18px 16px;display:flex}.version-compare-pill{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:12px}.version-action-row{flex-wrap:wrap;gap:6px;display:flex}.version-action-row .btn{padding:5px 8px;font-size:11px}.deployment-progress-list{gap:12px;padding:16px 18px;display:grid}.deployment-progress-item{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-lg);gap:9px;padding:12px;display:grid}.deployment-progress-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.deployment-progress-head strong{color:var(--text);overflow-wrap:anywhere;font-size:12px}.deployment-track{background:#e2e8f0;border-radius:999px;height:7px;overflow:hidden}.deployment-track span{border-radius:inherit;background:var(--blue);height:100%;transition:width .35s;display:block}.deployment-progress-item.success .deployment-track span{background:var(--green)}.deployment-progress-item.failed .deployment-track span,.deployment-progress-item.blocked .deployment-track span{background:var(--red)}.deployment-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.deployment-steps span{color:var(--subtle);font-size:10px;font-weight:700}.deployment-steps span.done{color:var(--green)}.deployment-steps span.failed{color:var(--red)}.deployment-reason{color:var(--muted);font-size:11px}.deployment-dry-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.deployment-dry-summary>div{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;gap:2px;min-width:0;padding:9px 10px;display:grid}.deployment-dry-summary strong{text-transform:uppercase;letter-spacing:.06em;color:var(--subtle);font-size:10px}.deployment-dry-summary span{color:var(--text);overflow-wrap:anywhere;font-size:12px;font-weight:700}.deployment-dry-reasons{grid-column:1/-1;gap:4px;display:grid}.deployment-dry-reasons small,.deployment-risk{color:var(--amber);align-items:flex-start;gap:7px;font-size:11px;display:flex}.rollback-result{gap:10px;display:grid}.deployment-emergency-panel{grid-column:1/-1}.project-flow-grid,.quality-tool-grid{gap:14px;display:grid}.project-flow-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.quality-tool-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:16px 18px}.project-flow-card,.quality-tool-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-lg);text-align:left;cursor:pointer;padding:14px;transition:border-color .15s,transform .15s,background .15s}.project-flow-card:hover,.quality-tool-card:hover{border-color:var(--border-strong);background:#fff;transform:translateY(-1px)}.project-flow-card strong,.quality-tool-card strong{color:var(--text);overflow-wrap:anywhere;margin-top:10px;font-size:14px;display:block}.project-flow-card small,.quality-tool-card p{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.45;display:block}.quality-tool-card{gap:10px;display:grid}.quality-tool-card>div{align-items:center;gap:8px;display:flex}.quality-tool-card strong{margin-top:0}.quality-tool-card p{margin:0}.project-action-grid{flex-wrap:wrap;gap:10px;padding:14px 18px;display:flex}.release-stepper{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.release-step{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--muted);align-items:center;gap:8px;min-width:0;padding:10px;display:flex}.release-step span{background:var(--surface-2);width:22px;height:22px;color:var(--subtle);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.release-step strong{text-overflow:ellipsis;font-size:12px;overflow:hidden}.release-step.done{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.release-step.done span{background:var(--green);color:#fff}.release-step.active{border-color:var(--accent-border);color:var(--accent);background:var(--accent-dim)}.release-step.active span{background:var(--accent);color:#fff}.quality-wizard-groups{flex-wrap:wrap;gap:8px;display:flex}.quality-wizard-groups button{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);cursor:pointer;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700}.quality-wizard-groups button.active{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent)}.quality-wizard-steps{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.quality-wizard-step{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2);gap:3px;padding:10px 12px;display:grid}.quality-wizard-step strong{color:var(--text);font-size:12px}.quality-wizard-step small{color:var(--muted);font-size:11px}.quality-wizard-step.running{background:#eff6ff;border-color:#93c5fd}.quality-wizard-step.passed{background:#f0fdf4;border-color:#bbf7d0}.quality-wizard-step.warning{background:#fffbeb;border-color:#fcd34d}.quality-wizard-step.blocked,.quality-wizard-step.failed{background:#fef2f2;border-color:#fca5a5}.mini-chart{gap:10px;padding:16px 18px;display:grid}.mini-chart-row{grid-template-columns:110px minmax(0,1fr) 46px;align-items:center;gap:10px;display:grid}.mini-chart-row span{color:var(--text-2);font-size:12px;font-weight:700}.mini-chart-row div{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.mini-chart-row i{background:linear-gradient(90deg,var(--accent),#14b8a6);border-radius:inherit;height:100%;display:block}.mini-chart-row strong{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-size:12px}.gate-config-toolbar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:14px 18px 0;display:grid}.gate-config-toolbar label{color:var(--text-2);gap:4px;font-size:11px;font-weight:700;display:grid}.gate-add-row{grid-template-columns:minmax(220px,1fr) auto;gap:10px;padding:12px 18px 14px;display:grid}.compact-select{min-width:92px;padding:5px 8px;font-size:12px}.compact-input{width:68px;padding:5px 8px;font-size:12px}pre{background:var(--table-row-alt);border:1px solid var(--border);border-radius:var(--radius);white-space:pre-wrap;word-break:break-all;color:var(--muted);padding:12px 16px;font-family:SF Mono,ui-monospace,Cascadia Code,monospace;font-size:12px;line-height:1.6;overflow-x:auto}code{background:var(--panel-border-inner);color:var(--text-2);border-radius:4px;padding:2px 6px;font-family:SF Mono,ui-monospace,monospace;font-size:11px}@property --login-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes login-border-spin{to{--login-angle:360deg}}@keyframes orb-1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(70px,-50px)scale(1.12)}66%{transform:translate(-40px,60px)scale(.9)}}@keyframes orb-2{0%,to{transform:translate(0)scale(1)}40%{transform:translate(-60px,40px)scale(1.2)}70%{transform:translate(50px,-70px)scale(.85)}}@keyframes orb-3{0%,to{transform:translate(0)scale(1)}50%{transform:translate(35px,45px)scale(1.15)}}@keyframes grid-pan{0%{background-position:0 0}to{background-position:60px 60px}}@keyframes bg-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes pulse-glow{0%,to{opacity:1;box-shadow:0 0 8px #14b8a6b3}50%{opacity:.35;box-shadow:0 0 16px #14b8a633}}@keyframes icon-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer-slide{0%{background-position:-200%}to{background-position:200%}}@media (prefers-reduced-motion:reduce){.login-orb,.login-grid,.login-form-card:before,.login-live-dot,.login-icon-glow:after,.login-form,.login-logo-brand,.login-slogan,.login-stats,.login-live,.login-internal-mark{animation:none!important}}.login-wrap{background:linear-gradient(135deg,#1e293b,#0f172a);min-height:100dvh;display:flex;position:relative;overflow:hidden}.login-grid{z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:60px 60px;position:absolute;top:0;right:0;bottom:0;left:0}.login-brand{z-index:1;flex:1;display:none;position:relative;overflow:hidden}.login-brand:after{content:"";background:linear-gradient(#0000 10%,#14b8a640 40%,#4f46e540 60%,#0000 90%);width:1px;height:100%;position:absolute;top:0;right:0}.login-brand-inner{z-index:1;flex-direction:column;justify-content:center;height:100%;padding:60px 56px;display:flex;position:relative}.login-logo-brand{align-items:center;gap:14px;margin-bottom:34px;animation:.7s 50ms both fade-up;display:flex}.login-internal-mark{max-width:320px;animation:.7s .15s both fade-up}.login-internal-mark span{color:var(--table-row-alt);font-size:30px;font-weight:650;line-height:1.15;display:block}.login-internal-mark small{color:#f8fafc75;margin-top:12px;font-size:13px;line-height:1.5;display:block}.login-icon-glow{justify-content:center;align-items:center;display:flex;position:relative}.login-icon-glow:after{content:"";background:radial-gradient(circle,#14b8a659,#0000 70%);border-radius:50%;animation:2.8s ease-in-out infinite icon-pulse;position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.login-brand-name{color:var(--table-row-alt);letter-spacing:-.025em;font-size:20px;font-weight:700;display:block}.login-brand-tag{color:#f8fafc4d;letter-spacing:.1em;text-transform:uppercase;margin-top:3px;font-size:10px;display:block}.login-slogan{margin-bottom:44px;animation:.7s .15s both fade-up}.login-slogan p{letter-spacing:-.03em;font-size:36px;font-weight:700;line-height:1.22}.login-slogan p:first-child{color:var(--table-row-alt)}.login-slogan p:nth-child(2){color:#f8fafc8c}.login-slogan p:nth-child(3){color:#f8fafc4d}.login-stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:28px;animation:.7s .25s both fade-up;display:grid}.login-stat{cursor:default;background:#ffffff08;border:1px solid #ffffff12;border-radius:12px;flex-direction:column;gap:5px;padding:16px 12px;transition:background .2s,border-color .2s;display:flex}.login-stat:hover{background:#14b8a60f;border-color:#14b8a640}.login-stat-value{color:var(--table-row-alt);letter-spacing:-.04em;font-size:24px;font-weight:700;line-height:1}.login-stat-label{color:#f8fafc61;letter-spacing:.07em;text-transform:uppercase;font-size:10px}.login-live{color:#f8fafc66;align-items:center;gap:9px;font-size:12px;animation:.7s .35s both fade-up;display:flex}.login-live-dot{background:#14b8a6;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2.2s ease-in-out infinite pulse-glow}.login-form-panel{z-index:1;justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:32px 24px;display:flex;position:relative}.login-form-card{width:min(420px,100%);position:relative}.login-form-card:before{content:"";z-index:-1;background:linear-gradient(135deg,#ffffff6b,#ffffff14,#14b8a638);border-radius:22px;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}.login-form-card:after{content:"";z-index:-1;background:#fff;border-radius:20px;position:absolute;top:1px;right:1px;bottom:1px;left:1px}.login-form{border:1px solid var(--border);background:#fff;border-radius:20px;flex-direction:column;gap:20px;padding:40px 36px;animation:.6s .1s both fade-up;display:flex}.login-form-header{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-bottom:4px;display:flex}.login-form-icon-wrap{background:var(--accent-dim);border:1px solid #4f46e533;border-radius:16px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:4px;display:flex;box-shadow:0 0 24px #4f46e514}.login-form-header h1{color:var(--text);letter-spacing:-.025em;font-size:22px;font-weight:700}.login-form-header p{color:var(--muted);font-size:13px;line-height:1.5}.login-error{color:var(--red);background:#ef44440f;border:1px solid #ef444433;border-radius:9px;padding:10px 14px;font-size:12px}.login-field{flex-direction:column;gap:7px;display:flex}.login-field label{color:var(--text-2);letter-spacing:.01em;font-size:12px;font-weight:600}.login-input{background:var(--surface-2);border:1px solid var(--border);width:100%;height:46px;color:var(--text);border-radius:10px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s,background .2s}.login-input::-moz-placeholder{color:var(--subtle)}.login-input::placeholder{color:var(--subtle)}.login-input:focus{background:var(--accent-dim);box-shadow:0 0 0 3px var(--accent-focus);border-color:#4f46e58c}.login-pw-wrap{position:relative}.login-pw-wrap .login-input{padding-right:48px}.login-pw-toggle{cursor:pointer;color:var(--subtle);background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;transition:color .15s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.login-pw-toggle:hover{color:var(--muted)}.login-pw-toggle:focus-visible{outline:2px solid var(--accent)}.login-btn{color:#fff;letter-spacing:.01em;cursor:pointer;background:#172033;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;height:46px;margin-top:4px;font-size:14px;font-weight:600;transition:background .2s,transform .1s,box-shadow .2s;display:flex;box-shadow:0 12px 26px #0a12202e}.login-btn:hover:not(:disabled){background:#0f172a;box-shadow:0 16px 34px #0a12203d}.login-btn:active:not(:disabled){transform:scale(.98)}.login-btn:disabled{opacity:.45;cursor:not-allowed}.login-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-link-btn{color:var(--muted);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;padding:4px 0;font-size:12.5px;transition:color .15s}.login-link-btn:hover{color:var(--fg)}.login-link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.login-footer-text{text-align:center;color:var(--subtle);margin-top:4px;font-size:11px}@media (min-width:768px){.login-brand{display:flex}.login-form-panel{width:46%;padding:48px 24px}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.review-page{height:100vh;font-family:var(--font);background:#0d1117;flex-direction:column;display:flex}.review-bar{background:#0f172a;border-bottom:1px solid #ffffff0f;flex-shrink:0;align-items:center;gap:14px;height:54px;padding:0 16px;display:flex}.review-bar strong{color:#f1f5f9;font-size:14px;font-weight:600}.review-bar span{color:#94a3b8;font-size:12px}.review-toolbar{background:#0f172a;border-bottom:1px solid #ffffff0d;flex-shrink:0;align-items:center;gap:10px;height:54px;padding:0 16px;display:flex}.review-toolbar-title{border-right:1px solid #ffffff12;flex-shrink:0;align-items:center;gap:10px;padding-right:14px;display:flex}.review-toolbar-badge{background:var(--accent);color:#fff;letter-spacing:.03em;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:9px;font-weight:800;display:flex}.review-toolbar-info{flex-direction:column;gap:1px;display:flex}.review-toolbar-info strong{color:#f1f5f9;font-size:13px;font-weight:600;line-height:1.2}.review-toolbar-info span{color:#94a3b8;white-space:nowrap;font-size:11px}.review-url-bar{background:#ffffff08;border:1px solid #ffffff12;border-radius:8px;flex:1;align-items:center;gap:6px;max-width:380px;height:34px;padding:0 10px;transition:border-color .15s;display:flex}.review-url-bar:focus-within{border-color:#6366f166}.review-url-bar .url-label{color:#64748b;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:10px;font-weight:600}.review-url-bar input{color:#cbd5e1;background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:SF Mono,Fira Code,ui-monospace,monospace;font-size:12px}.review-url-bar input::-moz-placeholder{color:#475569}.review-url-bar input::placeholder{color:#475569}.review-url-bar button{color:#94a3b8;cursor:pointer;background:#ffffff0f;border:none;border-radius:4px;padding:2px 9px;font-family:inherit;font-size:11px;transition:background .1s,color .1s}.review-url-bar button:hover{color:#e2e8f0;background:#ffffff1f}.review-toolbar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.review-tool-group{background:#ffffff05;border:1px solid #ffffff12;border-radius:8px;gap:2px;padding:3px;display:flex}.tool-btn{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:5px;min-width:28px;height:28px;font-size:12px;font-weight:600;transition:background .1s,color .1s;display:inline-flex}.tool-btn:hover{color:#cbd5e1;background:#ffffff14}.tool-btn.active{color:#fff;background:#4f46e5;box-shadow:0 0 0 1px #6366f14d}.tool-btn.text{color:#94a3b8;background:#ffffff0a;border:1px solid #ffffff14;height:30px;padding:0 10px}.tool-btn.text:hover{color:#e2e8f0;background:#ffffff17}.review-frame-wrap{background:#141924;flex:1;justify-content:center;align-items:stretch;display:flex;position:relative;overflow:hidden}.review-stage{width:100%;height:100%;margin:0 auto;position:relative}.review-frame-wrap.tablet .review-stage{max-width:820px}.review-frame-wrap.mobile .review-stage{max-width:390px}.review-frame{background:#fff;border:none;width:100%;height:100%;display:block;box-shadow:0 0 0 1px #0000004d}.review-click-layer{z-index:1;background:0 0;position:absolute;top:0;right:0;bottom:0;left:0}.review-frame-blocked{z-index:4;text-align:center;background:#0d1117;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.review-frame-blocked-icon{color:#64748b;background:#ffffff0a;border:1px solid #ffffff14;border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.review-frame-blocked h3{color:#cbd5e1;margin:0;font-size:15px;font-weight:600}.review-frame-blocked p{color:#94a3b8;max-width:340px;margin:0;font-size:13px;line-height:1.75}.review-frame-blocked a{color:#818cf8;background:#6366f11f;border:1px solid #6366f133;border-radius:8px;align-items:center;gap:6px;padding:9px 18px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.review-frame-blocked a:hover{color:#a5b4fc;background:#6366f133}.pin{color:#fff;pointer-events:none;z-index:3;background:#4f46e5;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:24px;height:24px;font-size:10px;font-weight:800;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 2px 8px #4f46e580}.box-marker{pointer-events:none;z-index:2;background:#4f46e512;border:2px solid #4f46e5;position:absolute}.review-panel{z-index:5;background:#0f172a;border-left:1px solid #ffffff0f;flex-direction:column;gap:10px;width:300px;padding:16px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.review-panel.collapsed{border-left:0;width:0;padding:0;overflow:hidden}.review-panel h3{color:#e2e8f0;font-size:13px;font-weight:700}.review-panel h4{text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;margin:8px 0 5px;font-size:10px;font-weight:700}.review-panel-divider{background:#ffffff0f;height:1px;margin:4px 0}.review-panel .input,.review-panel textarea{color:#cbd5e1!important;background:#ffffff0d!important;border-color:#ffffff1a!important}.review-panel .input::-moz-placeholder,.review-panel textarea::-moz-placeholder{color:#64748b!important}.review-panel .input::placeholder,.review-panel textarea::placeholder{color:#64748b!important}.review-panel .btn{height:32px;font-size:12px}.review-panel .btn.secondary{color:#94a3b8!important;background:#ffffff0f!important;border-color:#ffffff1a!important}.review-comment-card{background:#ffffff08;border:1px solid #ffffff0f;border-radius:7px;margin-bottom:0;padding:9px 11px}.review-comment-card.resolved{opacity:.6;background:#10b9810a;border-color:#10b9811a}.review-comment-card.needs-recheck{background:#f59e0b0d;border-color:#f59e0b26}.review-comment-num{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:9px;font-weight:800;display:flex}.review-page-nav-btn{cursor:pointer;text-align:left;color:#94a3b8;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;width:100%;margin-bottom:3px;padding:5px 8px;font-family:inherit;font-size:12px;transition:background .1s;display:flex}.review-page-nav-btn:hover{background:#ffffff0a}.review-page-nav-btn.active{color:#e2e8f0;background:#ffffff12}.review-page-nav-count{color:#94a3b8;background:#ffffff12;border-radius:8px;padding:1px 6px;font-size:10px}.review-page-nav-count.has-open{color:#a78bfa;background:#7c3aed26}.review-hint{color:#94a3b8;padding:6px 0;font-size:11px;line-height:1.6}.review-recheck-notice{color:#f59e0b;background:#f59e0b12;border:1px solid #f59e0b26;border-radius:7px;padding:9px 11px;font-size:12px}.review-more-pages{color:#94a3b8;text-align:center;padding-top:4px;font-size:11px}.review-approved-banner{color:#34d399;background:#10b98112;border:1px solid #10b98126;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.client-comment{border-radius:var(--radius);color:#94a3b8;background:#ffffff08;border:1px solid #ffffff0f;padding:10px 12px;font-size:12px}.client-comment small{color:#475569;margin-top:3px;font-size:11px;display:block}.portal-footer{border-top:1px solid var(--border);color:var(--subtle);flex-shrink:0;align-items:center;gap:8px;padding:14px 24px;font-size:11px;display:flex}.portal-footer-sep{color:var(--border-strong)}.portal-footer-version{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-size:11px;font-weight:500;transition:color .12s}.portal-footer-version:hover{color:var(--accent-hover);text-decoration:underline}.toast-stack{z-index:220;flex-direction:column;gap:10px;max-width:min(380px,100vw - 40px);display:flex;position:fixed;top:70px;right:20px}.toast{border:1px solid var(--border);color:var(--text-2);background:#fffffff5;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:12px;animation:.2s ease-out toast-in;display:flex;box-shadow:0 18px 40px #0f172a29}.toast svg{flex-shrink:0;margin-top:1px}.toast-success svg{color:var(--green)}.toast-error svg{color:var(--red)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.changelog{flex-direction:column;gap:28px;display:flex}.changelog-release{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden}.changelog-release-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 20px;display:flex}.changelog-version{color:var(--text);letter-spacing:-.02em;font-size:15px;font-weight:700}.changelog-date{color:var(--subtle);margin-left:auto;font-size:11px}.changelog-body{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.changelog-category{text-transform:uppercase;letter-spacing:.08em;color:var(--subtle);margin-bottom:6px;font-size:10px;font-weight:700}.changelog-items{flex-direction:column;gap:5px;list-style:none;display:flex}.changelog-items li{color:var(--text-2);align-items:flex-start;gap:8px;font-size:12px;display:flex}.changelog-items li:before{content:"–";color:var(--subtle);flex-shrink:0;margin-top:1px}.roadmap-page{flex-direction:column;gap:18px;display:flex}.roadmap-lanes{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.roadmap-lane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:16px}.roadmap-lane-head{border-bottom:1px solid var(--panel-border-inner);margin-bottom:14px;padding-bottom:14px}.roadmap-lane-head span{color:var(--text);font-size:18px;font-weight:800}.roadmap-lane-head p{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.5}.roadmap-items{flex-direction:column;gap:10px;display:flex}.roadmap-item{border:1px solid var(--border);background:var(--surface-2);border-radius:9px;padding:12px}.roadmap-item-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px;display:flex}.roadmap-item h2{color:var(--text);font-size:13px;line-height:1.25}.roadmap-item-top span{color:var(--accent);background:var(--accent-dim);border-radius:6px;flex-shrink:0;padding:3px 7px;font-size:10px;font-weight:700}.roadmap-item p{color:var(--muted);font-size:12px;line-height:1.5}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.sidebar-overlay{z-index:99;background:#00000080;display:none;position:fixed;top:0;right:0;bottom:0;left:0}.sidebar-overlay.open{display:block}.hamburger-btn{cursor:pointer;width:36px;height:36px;color:var(--muted);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:none}.hamburger-btn:hover{background:var(--surface-2);color:var(--text)}@media (hover:none) and (pointer:coarse){.hamburger-btn{min-width:44px;min-height:44px}.logout-btn{min-width:44px;min-height:44px;padding:12px}.nav-item,.topbar-search-btn,.topbar-new-btn{min-height:44px}button[aria-label].topbar-search-btn,button.topbar-new-btn{padding:10px}.tab{align-items:center;min-height:44px;display:flex}.kanban-card{min-height:48px}.btn{min-height:44px}}@media (max-width:640px){.review-session-inline-card{grid-template-columns:1fr!important}.page-header-row{gap:8px}.input[style*=width]{max-width:100%!important}.grid-3{grid-template-columns:1fr}}@media (max-width:768px){.hamburger-btn{display:flex}.sidebar{z-index:200;transition:transform .25s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.content{margin-left:0}.topbar{gap:6px;padding:0 12px}.topbar-date,.topbar-sub,.topbar-sep{display:none}.topbar-right{gap:6px}.topbar-date-mobile{display:none}.page{padding:12px}.grid-2,.grid-3,.grid-4,.grid-3-1,.client-form-grid,.user-form-grid,.scope-editor,.ceremony-summary,.redirect-import-grid,.redirect-rule-grid{grid-template-columns:1fr}.panel{overflow-x:auto}.table-toolbar{flex-wrap:wrap;gap:8px}.table-search{max-width:100%}.table-pagination{flex-wrap:wrap;gap:6px}.tabs{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:0;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex-shrink:0}.page-header{flex-direction:column;align-items:flex-start;gap:10px}.page-header-actions{flex-wrap:wrap}.page-header-row{flex-direction:column;gap:10px}.notice-bar{flex-wrap:wrap;gap:8px}.kanban-board{padding-bottom:8px;overflow-x:auto}.kanban-col{flex-shrink:0;min-width:240px}.review-toolbar{flex-wrap:wrap;gap:8px;height:auto;padding:8px 12px}.review-toolbar-title{border-right:none;padding-right:0}.review-url-bar{max-width:100%}.review-toolbar-right{margin-left:0}.review-panel{border-radius:var(--radius-xl);width:auto;max-height:50vh;position:fixed;inset:auto 8px 8px}.logger-toolbar{grid-template-columns:1fr}}@media (max-width:1280px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:1100px){.grid-3{grid-template-columns:repeat(2,1fr)}.grid-3-1,.roadmap-lanes,.logger-toolbar{grid-template-columns:1fr}}.pipeline-log{color:#e2e8f0;border-radius:var(--radius);white-space:pre-wrap;word-break:break-all;background:#0f172a;max-height:420px;margin:0;padding:16px;font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.6;overflow-y:auto}.quality-check-list{flex-direction:column;display:flex}.quality-check-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 18px;display:grid}.quality-check-row:last-child{border-bottom:none}.quality-check-row.blocked{background:#fff1f2}.quality-check-row.warning{background:#fffbeb}.quality-check-row.passed{background:#f0fdf4}.quality-check-row.running{background:#eff6ff}.quality-check-info{flex-direction:column;gap:2px;display:flex}.quality-check-info strong{font-size:13px;font-weight:600}.commit-list{flex-direction:column;gap:2px;display:flex}.commit-row{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;padding:7px 10px;font-size:12px;transition:background .1s;display:flex}.commit-row:hover{background:var(--bg-2,var(--panel-border-inner))}.commit-row.selected{background:var(--accent-subtle,#eef2ff);border-color:var(--accent,#4f46e5)}.quality-check-info small{color:var(--muted);font-size:11px}.project-header-info{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 18px}.project-header-info .phi-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-header-info .phi-name{color:var(--text);font-size:17px;font-weight:700}.project-header-info .phi-desc{color:var(--muted);margin-top:4px;font-size:12px}.project-header-info .phi-edit-form{flex-direction:column;gap:8px;margin-top:10px;display:flex}.env-cards-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.env-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.env-card.env-dev{border-top:3px solid var(--blue)}.env-card.env-stage{border-top:3px solid var(--amber)}.env-card.env-live{border-top:3px solid var(--green)}.env-card .env-card-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:10px;font-weight:700}.env-card .env-card-version{color:var(--text);font-size:15px;font-weight:700}.env-card .env-card-meta{color:var(--muted);font-family:monospace;font-size:11px}.env-card .env-card-row{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.projekt-train{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;overflow:hidden}.projekt-train-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.projekt-train-body{max-height:420px;padding:16px;overflow-y:auto}.train-node{align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.train-node-line{flex-direction:column;flex-shrink:0;align-items:center;width:20px;display:flex}.train-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.train-dot.live{background:#22c55e;border:2px solid #166534}.train-dot.stage{background:#f59e0b;border:2px solid #92400e}.train-dot.stage.stuck{background:#ef4444;border:2px solid #991b1b}.train-dot.deploying{background:#3b82f6;border:2px solid #1d4ed8}.train-dot.archived{background:#94a3b8;border:2px solid #64748b}.train-dot.dev{background:#cbd5e1;border:1px solid #94a3b8;width:8px;height:8px}.train-connector{background:var(--border);flex:1;width:2px;min-height:24px;margin-top:2px}.train-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;flex:1;padding:9px 12px;transition:background .15s}.train-card:hover{background:var(--surface-2)}.train-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.train-card.stuck{border-color:var(--red);background:#ef44440a}.train-card.stage-pending{border-color:var(--amber);background:#f59e0b0a}.train-card-header{justify-content:space-between;align-items:center;margin-bottom:3px;display:flex}.train-card-version{color:var(--text);font-size:13px;font-weight:700}.train-card-meta{color:var(--muted);margin-top:2px;font-size:10px}.train-card-warning{color:var(--red);margin-top:3px;font-size:10px}.train-card-expand{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.train-card-expand-row{color:var(--muted);margin-bottom:3px;font-size:11px}.deploy-wizard{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.wizard-step{border-bottom:1px solid var(--border)}.wizard-step:last-child{border-bottom:none}.wizard-step-header{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;gap:10px;padding:12px 16px;display:flex}.wizard-step-header:hover{background:var(--bg)}.wizard-step-header:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.wizard-step-number{background:var(--border);width:22px;height:22px;color:var(--muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.wizard-step-number.done{background:var(--green);color:#fff}.wizard-step-number.active{background:var(--accent);color:#fff}.wizard-step-title{color:var(--text);flex:1;font-size:13px;font-weight:600}.wizard-step-title.muted{color:var(--muted);font-weight:400}.wizard-step-summary{color:var(--muted);margin-left:auto;font-size:11px}.wizard-step-body{padding:4px 16px 16px 48px}.wizard-commit-list{flex-direction:column;gap:6px;max-height:280px;display:flex;overflow-y:auto}.wizard-commit-item{border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:flex-start;gap:10px;padding:8px 10px;transition:border-color .15s,background .15s;display:flex}.wizard-commit-item:hover{background:var(--bg)}.wizard-commit-item.selected{border-color:var(--accent);background:#eef2ff}.wizard-commit-sha{color:var(--accent);font-family:monospace;font-size:11px;font-weight:700}.wizard-commit-msg{color:var(--text);font-size:12px}.wizard-commit-meta{color:var(--muted);margin-top:1px;font-size:10px}.wizard-progress-bar{background:var(--border);border-radius:2px;height:4px;margin:8px 0;overflow:hidden}.wizard-progress-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.wizard-emergency-link{border-top:1px solid var(--border);text-align:center;padding:12px 16px}.emergency-modal-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.emergency-modal{background:var(--surface);border:2px solid var(--red);border-radius:10px;width:100%;max-width:460px;padding:24px}.emergency-modal-title{color:var(--red);align-items:center;gap:8px;margin-bottom:8px;font-size:16px;font-weight:700;display:flex}.emergency-modal-warning{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-bottom:14px;padding:10px 12px;font-size:12px}.reviews-tab-version-select{align-items:center;gap:10px;padding:12px 0 8px;display:flex}.reviews-approval-banner{border-radius:6px;align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;font-size:12px;display:flex}.reviews-approval-banner.approved{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.reviews-approval-banner.pending{color:#92400e;background:#fffbeb;border:1px solid #fcd34d}.reviews-approval-banner.none{background:var(--bg);border:1px solid var(--border);color:var(--muted)}.update-stepper{align-items:center;margin-bottom:8px;display:flex;overflow-x:auto}.update-step{flex-shrink:0;align-items:center;display:flex}.update-step-content{flex-direction:column;align-items:center;gap:2px;display:flex}.update-step-dot{background:var(--surface-2);width:20px;height:20px;color:var(--text-subtle);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;font-weight:700;transition:background .3s,color .3s;display:flex}.update-step-dot.step-done{background:var(--green);color:#fff;border-color:#0000}.update-step-dot.step-active{background:var(--amber);color:#fff;border-color:#0000;animation:1.5s ease-in-out infinite stepper-pulse}.update-step-dot.step-failed{background:var(--red);color:#fff;border-color:#0000}.update-step-label{white-space:nowrap;color:var(--text-subtle);margin-top:2px;font-size:9px}.update-step-label.step-done{color:var(--green)}.update-step-label.step-active{color:var(--amber)}.update-step-label.step-failed{color:var(--red)}.update-step-connector{background:var(--border);flex-shrink:0;width:20px;min-width:8px;height:1px;margin:0 3px 14px;transition:background .3s}.update-step-connector.step-done{background:var(--green)}.update-progress-track{background:var(--surface-2);border-radius:2px;height:4px;overflow:hidden}.update-progress-fill{background:var(--green);border-radius:2px;height:4px;transition:width .7s}.update-progress-fill.step-failed{background:var(--red)}@keyframes stepper-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(.92)}}.maintenance-overlay{z-index:9999;background:var(--bg);justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.maintenance-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:380px;padding:48px 56px;display:flex;box-shadow:0 8px 32px #00000014}.maintenance-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.maintenance-title{color:var(--text);min-width:200px;font-size:16px;font-weight:700}.maintenance-sub{color:var(--muted);font-size:12px;line-height:1.5}.updates-split{grid-template-columns:3fr 2fr;align-items:start;gap:20px;display:grid}.updates-right .panel{top:calc(var(--header-h) + 12px);position:sticky}@media (max-width:900px){.updates-split{grid-template-columns:1fr}.updates-right .panel{position:static}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}
