:root{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root{--font-display: "Orbitron", "Exo 2", system-ui, sans-serif;--font-ui: "Exo 2", "Segoe UI", system-ui, sans-serif;--c-bg: light-dark(#e8eef4, #03070c);--c-grid: light-dark(rgb(0 105 140 / .06), rgb(34 227 255 / .045));--c-surface: light-dark(rgb(255 255 255 / .84), rgb(7 18 28 / .8));--c-surface-solid: light-dark(#ffffff, #07131d);--c-surface-2: light-dark(#f2f6f9, #0b1b28);--c-line: light-dark(rgb(0 105 140 / .2), rgb(34 227 255 / .16));--c-line-strong: light-dark(rgb(0 105 140 / .45), rgb(34 227 255 / .45));--c-text: light-dark(#0b1a26, #d8f4ff);--c-text-2: light-dark(#435b6d, #86a9bb);--c-accent: light-dark(#00789a, #22e3ff);--c-accent-soft: light-dark(rgb(0 120 154 / .09), rgb(34 227 255 / .09));--c-accent-contrast: light-dark(#ffffff, #021017);--c-amber: light-dark(#9a5a00, #ffb020);--c-green: light-dark(#0d7640, #3dff8a);--c-danger: light-dark(#b8233a, #ff5470);--c-series-1: light-dark(#00789a, #119fbc);--c-series-2: light-dark(#c2541a, #dd6a2e);--c-series-3: light-dark(#7b5cc4, #8f78ee);--c-series-none: light-dark(#9aabb8, #4a6577);--glow: 0 0 .55rem light-dark(rgb(0 120 154 / .22), rgb(34 227 255 / .45));--glow-strong: 0 0 .2rem light-dark(rgb(0 120 154 / .35), rgb(34 227 255 / .7)), 0 0 1.2rem light-dark(rgb(0 120 154 / .2), rgb(34 227 255 / .35));--shadow: 0 1.25rem 3rem light-dark(rgb(10 40 60 / .18), rgb(0 0 0 / .55));--scrollbar-thumb: light-dark(rgb(0 120 154 / .45), rgb(34 227 255 / .4));--scrollbar-track: transparent;--radius: .375rem;--gap: .75rem;--ease: cubic-bezier(.2, .8, .2, 1);--topbar-h: 3.25rem}html{font-size:clamp(14px,.25vw + 11px,17px);accent-color:var(--c-accent)}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}@supports not (scrollbar-color: auto){::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}}body{margin:0;min-height:100dvh;font-family:var(--font-ui);line-height:1.45;color:var(--c-text);background:radial-gradient(ellipse 70% 50% at 15% -10%,var(--c-accent-soft),transparent 70%),radial-gradient(ellipse 50% 40% at 100% 110%,var(--c-accent-soft),transparent 70%),linear-gradient(var(--c-grid) 1px,transparent 1px) 0 0/2.5rem 2.5rem,linear-gradient(90deg,var(--c-grid) 1px,transparent 1px) 0 0/2.5rem 2.5rem,var(--c-bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:600;letter-spacing:.06em}p{margin:0}a{color:var(--c-accent)}::selection{background:var(--c-accent);color:var(--c-accent-contrast)}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.muted{color:var(--c-text-2)}.mono{font-variant-numeric:tabular-nums}.display{font-family:var(--font-display);letter-spacing:.08em}.eyebrow{font-family:var(--font-display);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-accent)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop-in{0%{opacity:0;transform:translateY(.5rem) scale(.98)}}@keyframes slide-in{0%{opacity:0;transform:translate(2rem)}}@keyframes pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{--btn-c: var(--c-accent);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:2.25rem;padding:0 1rem;font:600 .78rem/1 var(--font-ui);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--btn-c);background:linear-gradient(180deg,color-mix(in srgb,var(--btn-c) 10%,transparent),transparent);border:1px solid color-mix(in srgb,var(--btn-c) 55%,transparent);border-radius:var(--radius);box-shadow:inset 0 0 .6rem color-mix(in srgb,var(--btn-c) 12%,transparent);cursor:pointer;text-decoration:none;transition:box-shadow .2s var(--ease),border-color .2s,background-color .2s,transform .1s}.btn:hover:not(:disabled){border-color:var(--btn-c);box-shadow:inset 0 0 .8rem color-mix(in srgb,var(--btn-c) 20%,transparent),0 0 .7rem color-mix(in srgb,var(--btn-c) 45%,transparent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress;opacity:.85}.btn--primary{color:var(--c-accent-contrast);background:linear-gradient(180deg,color-mix(in srgb,var(--btn-c) 88%,white),var(--btn-c));border-color:var(--btn-c);box-shadow:0 0 .6rem color-mix(in srgb,var(--btn-c) 40%,transparent)}.btn--danger{--btn-c: var(--c-danger)}.btn--amber{--btn-c: var(--c-amber)}.btn--ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--c-text-2)}.btn--ghost:hover:not(:disabled){color:var(--btn-c)}.btn--icon{width:2.25rem;padding:0}.btn--sm{height:1.85rem;padding:0 .7rem;font-size:.72rem}.btn--sm.btn--icon{width:1.85rem;padding:0}.btn--block{width:100%}.spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex:none}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem .9rem}.form-grid .span-2{grid-column:1/-1}@media(width<34rem){.form-grid{grid-template-columns:1fr}}.field{display:grid;gap:.3rem;align-content:start}.field>label,.field .field__label{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-2)}.field .req{color:var(--c-amber)}.field__error{font-size:.74rem;color:var(--c-danger)}.field__hint{font-size:.72rem;color:var(--c-text-2)}.input{width:100%;height:2.35rem;padding:0 .75rem;font:500 .92rem var(--font-ui);color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s}.input::placeholder{color:color-mix(in srgb,var(--c-text-2) 70%,transparent)}.input:hover{border-color:var(--c-line-strong)}.input:focus{outline:none;border-color:var(--c-accent);box-shadow:var(--glow)}.input.ng-invalid.ng-touched{border-color:var(--c-danger)}.input:disabled{opacity:.6}textarea.input{height:auto;min-height:4.5rem;padding:.5rem .75rem;resize:vertical}.input-icon{position:relative}.input-icon app-icon{position:absolute;left:.7rem;top:50%;translate:0 -50%;color:var(--c-text-2);pointer-events:none}.input-icon .input{padding-left:2.2rem}.switch{appearance:none;position:relative;width:2.5rem;height:1.35rem;margin:.5rem 0 0;background:var(--c-surface-2);border:1px solid var(--c-line-strong);border-radius:1rem;cursor:pointer;transition:background-color .2s,border-color .2s,box-shadow .2s}.switch:before{content:"";position:absolute;top:50%;left:.18rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--c-text-2);translate:0 -50%;transition:left .2s var(--ease),background-color .2s}.switch:checked{background:var(--c-accent-soft);border-color:var(--c-accent);box-shadow:var(--glow)}.switch:checked:before{left:calc(100% - 1.08rem);background:var(--c-accent)}.switch-row{display:inline-flex;align-items:center;gap:.6rem;font-size:.9rem}.switch-row .switch{margin:0}.uppercase{text-transform:uppercase}.form-error{display:flex;gap:.5rem;align-items:center;margin-top:1rem;padding:.6rem .75rem;font-size:.85rem;color:var(--c-danger);border:1px solid color-mix(in srgb,var(--c-danger) 40%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--c-danger) 8%,transparent)}.form-section{grid-column:1/-1;margin-top:.4rem;padding-bottom:.3rem;border-bottom:1px solid var(--c-line)}.panel{--corner: .8rem;--corner-c: var(--c-accent);position:relative;background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel:before{content:"";position:absolute;inset:-1px;pointer-events:none;border-radius:inherit;background:linear-gradient(var(--corner-c),var(--corner-c)) top left/var(--corner) 2px,linear-gradient(var(--corner-c),var(--corner-c)) top left/2px var(--corner),linear-gradient(var(--corner-c),var(--corner-c)) top right/var(--corner) 2px,linear-gradient(var(--corner-c),var(--corner-c)) top right/2px var(--corner),linear-gradient(var(--corner-c),var(--corner-c)) bottom left/var(--corner) 2px,linear-gradient(var(--corner-c),var(--corner-c)) bottom left/2px var(--corner),linear-gradient(var(--corner-c),var(--corner-c)) bottom right/var(--corner) 2px,linear-gradient(var(--corner-c),var(--corner-c)) bottom right/2px var(--corner);background-repeat:no-repeat;opacity:.85}.panel--amber{--corner-c: var(--c-amber)}.panel__head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.65rem .85rem;border-bottom:1px solid var(--c-line)}.panel__head h2,.panel__head h3{font-size:.82rem;text-transform:uppercase}.spacer{flex:1}.tabs{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.15rem;flex:none}.tab{display:inline-flex;align-items:center;gap:.5rem;height:2.3rem;padding:0 .9rem;font-size:.85rem;font-weight:500;white-space:nowrap;text-decoration:none;color:var(--c-text-2);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);transition:color .2s,border-color .2s,box-shadow .2s}.tab:hover{color:var(--c-text);border-color:var(--c-line-strong)}.tab.is-active{color:var(--c-accent);border-color:var(--c-accent);box-shadow:var(--glow),inset 0 0 .7rem var(--c-accent-soft)}.badge{--badge-c: var(--c-text-2);display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .55rem;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--badge-c);border:1px solid color-mix(in srgb,var(--badge-c) 45%,transparent);background:color-mix(in srgb,var(--badge-c) 10%,transparent);border-radius:1rem;white-space:nowrap}.badge:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:currentColor;box-shadow:0 0 .35rem currentColor}.badge--on{--badge-c: var(--c-green)}.badge--off{--badge-c: var(--c-text-2)}.badge--warn{--badge-c: var(--c-amber)}.badge--info{--badge-c: var(--c-accent)}.grid-scroll{overflow:auto;scrollbar-gutter:stable}table.grid{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem}table.grid th{position:sticky;top:0;z-index:1;padding:.55rem .75rem;text-align:start;font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--c-text-2);background:var(--c-surface-solid);border-bottom:1px solid var(--c-line-strong);-webkit-user-select:none;user-select:none}table.grid th.sortable{cursor:pointer}table.grid th.sortable:hover,table.grid th.sorted{color:var(--c-accent)}table.grid td{padding:.45rem .75rem;border-bottom:1px solid var(--c-line);vertical-align:middle}table.grid tbody tr{transition:background-color .15s}table.grid tbody tr:hover td{background:var(--c-accent-soft)}table.grid tbody tr:hover td:first-child{box-shadow:inset 2px 0 0 var(--c-accent)}table.grid .fit{width:1%;white-space:nowrap}table.grid .end{text-align:end}table.grid .center{text-align:center}table.grid .num{font-variant-numeric:tabular-nums}table.grid .nowrap{white-space:nowrap}.empty-state{display:grid;place-items:center;gap:.5rem;padding:2.5rem 1rem;color:var(--c-text-2);text-align:center}dialog.modal{width:min(30rem,100vw - 2rem);padding:0;color:var(--c-text);background:var(--c-surface-solid);border:1px solid var(--c-line-strong);border-radius:var(--radius);box-shadow:var(--glow-strong),var(--shadow)}dialog.modal[open]{animation:pop-in .22s var(--ease)}dialog.modal::backdrop{background:#02080e8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog.modal--drawer{width:min(34rem,100vw);height:100dvh;max-height:100dvh;margin:0 0 0 auto;border-radius:0;border-width:0 0 0 1px}dialog.modal--drawer[open]{display:flex;flex-direction:column;animation:slide-in .25s var(--ease)}dialog.modal--drawer .modal__body{flex:1;overflow:auto}dialog.modal--wide{width:min(44rem,100vw)}.modal__head{display:flex;align-items:center;gap:.65rem;padding:.9rem 1rem;border-bottom:1px solid var(--c-line)}.modal__head h2{font-size:.9rem;text-transform:uppercase;flex:1}.modal__body{padding:1rem}.modal__foot{display:flex;justify-content:flex-end;gap:.6rem;padding:.75rem 1rem;border-top:1px solid var(--c-line);background:var(--c-surface-2)}.dash{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem}.dash .small{font-size:.74rem}.dash .filters .panel__head{flex-wrap:nowrap}.dash .chips{flex:1;display:flex;flex-wrap:wrap;gap:.35rem;min-width:0}.dash .hint{font-size:.76rem}.dash .chip{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;padding:.2rem .55rem;font:500 .76rem var(--font-ui);color:var(--c-accent);background:var(--c-accent-soft);border:1px solid color-mix(in srgb,var(--c-accent) 45%,transparent);border-radius:1rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash .chip b{font-weight:600}.dash .chip:hover{border-color:var(--c-accent);box-shadow:var(--glow)}.dash .filters__grid{display:grid;gap:.6rem .75rem;padding:.75rem .85rem .85rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr))}.dash .filters__grid .input{height:2.1rem;font-size:.84rem}.dash .loading{display:grid;place-items:center;gap:.75rem;min-height:16rem;color:var(--c-accent)}.dash .loading .spinner{width:2rem;height:2rem}.dash .board{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;transition:opacity .2s}.dash .board.is-loading{opacity:.55;pointer-events:none}.dash .kpis{display:grid;gap:.75rem;grid-template-columns:repeat(4,minmax(0,1fr))}@media(width<80rem){.dash .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width<36rem){.dash .kpis{grid-template-columns:1fr}}.dash .kpi{--tone: var(--c-accent);display:grid;gap:.2rem;align-content:start;padding:.85rem 1rem .9rem;overflow:hidden;container-type:inline-size}.dash .kpi[data-tone=amber]{--tone: var(--c-amber);--corner-c: var(--c-amber)}.dash .kpi[data-tone=green]{--tone: var(--c-green);--corner-c: var(--c-green)}.dash .kpi[data-tone=danger]{--tone: var(--c-danger);--corner-c: var(--c-danger)}.dash .kpi__head{display:flex;align-items:center;gap:.45rem;color:var(--tone)}.dash .kpi__head span{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-2)}.dash .kpi__value{font:600 clamp(1.05rem,9cqi,1.65rem) var(--font-display);color:var(--c-text);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.02em}.dash .kpi__note{font-size:.76rem;color:var(--c-text-2)}.dash .kpi__meter{display:block;height:.3rem;margin-top:.35rem;background:var(--c-line);border-radius:.2rem;overflow:hidden}.dash .kpi__meter i{display:block;height:100%;background:var(--tone);border-radius:.2rem;box-shadow:0 0 .4rem var(--tone);transition:width .6s var(--ease)}.dash .insights ul{list-style:none;margin:0;padding:.75rem .85rem;display:grid;gap:.6rem 1.25rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}.dash .insights li{--tone: var(--c-accent);display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start;font-size:.86rem;line-height:1.4;padding-left:.6rem;border-left:2px solid var(--tone)}.dash .insights li app-icon{color:var(--tone);margin-top:.1rem}.dash .insights li[data-tone=amber]{--tone: var(--c-amber)}.dash .insights li[data-tone=danger]{--tone: var(--c-danger)}.dash .section{display:flex;align-items:baseline;gap:.75rem;margin-top:.5rem;font-size:1rem;text-transform:uppercase}.dash .section .eyebrow{color:var(--c-accent)}.dash .section-bar{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.dash .cards{display:grid;gap:.75rem;align-items:start}.dash .cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(width<80rem){.dash .cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width<48rem){.dash .cards--4{grid-template-columns:1fr}}.dash .card{display:grid;gap:.75rem;align-content:start;padding:.9rem 1rem 1rem;min-width:0;align-self:stretch}.dash .card>header{display:grid;gap:.15rem}.dash .card>header.row{display:flex;align-items:flex-start;gap:.75rem;flex-wrap:wrap}.dash .card h3{font-size:.86rem;text-transform:uppercase;letter-spacing:.06em}.dash .card .eyebrow{font-size:.6rem}.dash .span-2{grid-column:span 2}.dash .span-all{grid-column:1/-1}@media(width<48rem){.dash .span-2{grid-column:auto}}.dash .sub{margin-top:.25rem;padding-top:.6rem;border-top:1px solid var(--c-line);font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-2)}.dash .legend{list-style:none;margin:0;padding:0;display:flex;gap:.75rem;font-size:.74rem;color:var(--c-text-2)}.dash .legend i{display:inline-block;width:.6rem;height:.6rem;margin-right:.3rem;border-radius:.15rem;vertical-align:-.05rem}.dash .seg-toggle{display:inline-flex;padding:.15rem;background:var(--c-surface-2);border:1px solid var(--c-line);border-radius:var(--radius)}.dash .seg-toggle button{height:1.8rem;padding:0 .75rem;font:600 .72rem var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-2);background:none;border:0;border-radius:.25rem;cursor:pointer}.dash .seg-toggle button:hover{color:var(--c-text)}.dash .seg-toggle button.is-active{color:var(--c-accent-contrast);background:var(--c-accent);box-shadow:var(--glow)}.dash .detail{display:flex;flex-direction:column;height:min(44rem,85dvh)}.dash .detail app-data-grid{flex:1;min-height:0}.dash .detail .search{width:min(100%,18rem)}.dash .detail .search .input{height:1.95rem;font-size:.84rem}.dash .skeleton{display:block;border-radius:.25rem;background:linear-gradient(90deg,var(--c-line) 0%,color-mix(in srgb,var(--c-accent) 22%,var(--c-line)) 50%,var(--c-line) 100%) 0 0/200% 100%;animation:shimmer 1.4s linear infinite}.dash .skeleton-card{animation:pop-in .35s var(--ease) both}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}
