:root{--nav-w: 232px;--top-h: 64px;--bg: #ebeff3;--surface: #ffffff;--surface-2: #fbfcfd;--input-bg: #ffffff;--hover: #f0f5f4;--ink: #101820;--muted: #5f6b76;--line: #d5dde5;--nav-bg: #101820;--nav-ink: #d7e0e8;--nav-muted: #8a97a4;--nav-active: #1c2a36;--nav-border: #0a1016;--accent: #0f9f86;--accent-ink: #041510;--accent-soft: #d8f5ee;--ok-ink: #0b5c4c;--btn-ink: #04241d;--warn: #b7791f;--warn-soft: #fff3d6;--danger: #c53030;--danger-soft: #fde8e8;--ok: #0f9f86;--code-bg: #101820;--code-ink: #d7e0e8;--token-ink: #b8f5e4;--overlay: rgba(16, 24, 32, .45);--track: #e8eef3;--login-1: #c8ebe3;--login-2: #d8e4f0;--login-3: #e8eef3;--login-4: #dfe8e4;--shadow: 0 1px 0 rgba(16, 24, 32, .04), 0 12px 32px rgba(16, 24, 32, .06);--modal-shadow: 0 24px 60px rgba(16, 24, 32, .22);--color-scheme: light;font-family:Sora,system-ui,sans-serif;color:var(--ink);font-size:14px;color-scheme:var(--color-scheme)}html[data-theme=dark]{--bg: #101820;--surface: #1a232c;--surface-2: #222c36;--input-bg: #151d25;--hover: #24303a;--ink: #e8eef3;--muted: #8a97a4;--line: #2c3844;--nav-bg: #0c1218;--nav-ink: #d7e0e8;--nav-muted: #8a97a4;--nav-active: #1c2a36;--nav-border: #070b0f;--accent: #2ec9ad;--accent-ink: #041510;--accent-soft: #16352f;--ok-ink: #8eedd4;--btn-ink: #04241d;--warn: #e0a54b;--warn-soft: #3a2e16;--danger: #f07171;--danger-soft: #3a1c1c;--ok: #2ec9ad;--code-bg: #0c1218;--code-ink: #d7e0e8;--token-ink: #b8f5e4;--overlay: rgba(0, 0, 0, .55);--track: #2c3844;--login-1: #0f3a32;--login-2: #1a2a3a;--login-3: #121920;--login-4: #101820;--shadow: 0 1px 0 rgba(0, 0, 0, .35), 0 16px 40px rgba(0, 0, 0, .35);--modal-shadow: 0 24px 60px rgba(0, 0, 0, .5);--color-scheme: dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;width:100%;overflow:hidden;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-screen{height:100%;display:grid;place-items:center;background:radial-gradient(900px 500px at 15% 10%,var(--login-1) 0%,transparent 55%),radial-gradient(800px 480px at 90% 0%,var(--login-2) 0%,transparent 50%),linear-gradient(165deg,var(--login-3),var(--login-4))}.login-card{width:420px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow);display:grid;gap:12px}.login-card h1{margin:0;font-size:1.6rem;font-weight:600}.login-tools{display:flex;justify-content:flex-end}.brand-mark{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.app-shell{height:100%;width:100%;display:grid;grid-template-columns:var(--nav-w) 1fr;grid-template-rows:100%}.sidebar{background:var(--nav-bg);color:var(--nav-ink);display:flex;flex-direction:column;padding:20px 14px;border-right:1px solid var(--nav-border)}.sidebar .brand-block{padding:4px 10px 22px}.sidebar .brand-block .brand-mark{color:#5ee0c4}.sidebar .brand-block h1{margin:6px 0 0;font-size:1.15rem;font-weight:600;color:#fff}.nav-list{display:flex;flex-direction:column;gap:4px;flex:1}.nav-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--nav-ink);text-align:left;padding:11px 12px;border-radius:10px;font-weight:500}.nav-item:hover{background:#ffffff0d}.nav-item.active{background:var(--nav-active);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}.nav-sep{height:1px;margin:10px;background:#ffffff1f;flex:0 0 auto}.nav-list>.nav-sep:first-child{display:none}.sidebar-foot{padding:12px 10px 4px;border-top:1px solid rgba(255,255,255,.08);color:var(--nav-muted);font-size:.8rem}.main-col{min-width:0;display:grid;grid-template-rows:var(--top-h) 1fr;height:100%}.topbar{height:var(--top-h);background:var(--surface);border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:0 22px}.topbar-left{min-width:0;display:flex;align-items:center}.topbar-center{display:flex;align-items:center;justify-content:center;gap:10px}.topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}.topbar-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.topbar select.company-select,.topbar input.company-select{min-width:280px;max-width:420px;width:320px;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--input-bg);font-weight:500}.company-switcher{position:relative;z-index:40}.company-switcher.open input.company-select{border-color:var(--accent);background:var(--surface)}.company-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:320px;overflow:auto;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.company-menu button{width:100%;text-align:left;border:0;background:transparent;color:var(--ink);border-radius:8px;padding:9px 10px;font-weight:500}.company-menu button:hover,.company-menu button.active{background:var(--accent-soft)}.company-menu button.selected{color:var(--ok-ink)}.company-menu .empty{padding:10px;color:var(--muted);font-size:.85rem}.topbar-spacer{flex:1}.topbar-meta{color:var(--muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{min-height:0;overflow:auto;padding:22px 24px 40px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h2{margin:0;font-size:1.45rem;font-weight:600}.page-head p{margin:6px 0 0;color:var(--muted)}.flash{margin:0 0 14px;padding:10px 12px;border-radius:10px;font-size:.9rem}.flash.error{background:var(--danger-soft);color:var(--danger)}.flash.ok{background:var(--accent-soft);color:var(--ok-ink)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);margin-bottom:16px}.panel h3{margin:0 0 12px;font-size:1rem;font-weight:600}.muted{color:var(--muted)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.panel-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.panel-head-copy{min-width:0;flex:1 1 auto}.panel-head-actions{display:flex;gap:10px;align-items:flex-end;flex:0 0 auto}.stack{display:grid;gap:10px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px 28px;align-items:start}.settings-col{display:grid;gap:10px;min-width:0}.settings-col h4{margin:4px 0 0;font-size:.92rem;font-weight:600}.settings-col h4:first-child{margin-top:0}.settings-fieldset{border:0;margin:0;padding:0;min-width:0}.settings-fieldset:disabled{opacity:.62}.setting-legend{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:.8rem;color:var(--muted)}.setting-legend span{display:inline-flex;align-items:center;gap:8px}.setting-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid transparent}.setting-mark{display:grid;gap:10px;border-radius:10px;padding:8px 10px;border:1px solid transparent}.setting-mark-template,.setting-swatch.setting-mark-template{background:var(--accent-soft);border-color:var(--accent)}.setting-mark-company,.setting-swatch.setting-mark-company{background:var(--warn-soft);border-color:var(--warn)}.duration-row{align-items:stretch}.duration-row input[type=number]{width:110px;flex:0 0 110px}.duration-row select{width:auto;flex:0 0 140px;max-width:160px}label.field{display:grid;gap:6px;font-size:.85rem;color:var(--muted)}label.check{display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;color:var(--ink);font-size:.9rem;cursor:pointer}input,select,textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--input-bg);color:var(--ink);width:100%}input::placeholder,textarea::placeholder{color:var(--muted)}textarea.ip-allowlist{min-height:8.5rem;resize:vertical;line-height:1.45;white-space:pre;word-break:normal;overflow:auto}input[type=checkbox],input[type=radio]{width:auto;min-width:1rem;height:auto;margin:0;padding:0;border:0;border-radius:0;background:transparent;flex:0 0 auto;accent-color:var(--accent)}button.btn{border:0;border-radius:10px;padding:10px 14px;background:var(--accent);color:var(--btn-ink);font-weight:600}button.btn:disabled{opacity:.55;cursor:not-allowed}button.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink);font-weight:500}button.btn.danger{background:var(--danger);color:#fff}button.btn.danger.ghost{background:transparent;border:1px solid var(--danger);color:var(--danger)}table.data{width:100%;border-collapse:collapse}table.data th,table.data td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.data th{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover td{background:var(--hover)}table.data tr.selected td{background:var(--accent-soft)}.pill{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--surface-2);font-size:.75rem;font-weight:600}.pill.ok{background:var(--accent-soft);color:var(--ok-ink)}.pill.partial{background:var(--warn-soft);color:var(--warn)}.token{margin:10px 0 0;padding:12px;background:var(--code-bg);color:var(--token-ink);border-radius:10px;overflow-x:auto;font-family:IBM Plex Mono,monospace;font-size:.8rem}code,.mono{font-family:IBM Plex Mono,monospace;font-size:.78rem;word-break:break-all}.split-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.company-devices-top,.company-split-top{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:16px;align-items:start;margin-bottom:16px}.company-devices-top>.panel,.company-split-top>.panel{margin-bottom:0;min-width:0}.company-devices-top .token{white-space:pre-wrap;word-break:break-all}.company-split-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.company-split-top .panel-head{flex-direction:column;align-items:stretch;gap:10px}.company-split-top .panel-head-actions{justify-content:flex-start;flex-wrap:wrap}@media (max-width: 960px){.company-devices-top,.company-split-top{grid-template-columns:1fr}}.list-plain{list-style:none;margin:0;padding:0;display:grid;gap:10px}.list-plain li{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}.list-plain.compact li{padding:6px 8px}.breadcrumb{display:flex;align-items:center;gap:8px;min-width:0}.crumb{border:0;background:transparent;color:var(--muted);padding:0;font-weight:500}.crumb.current,button.crumb:hover{color:var(--ink)}.crumb-sep{color:var(--line)}.nav-back{color:var(--nav-muted)!important;font-size:.85rem}.company-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.company-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--surface-2);color:var(--ink)}.company-tile:hover{border-color:var(--accent);background:var(--accent-soft)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface-2)}.stat-label{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.stat-value{font-size:1.6rem;font-weight:600;margin:6px 0 2px}.restore-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;min-height:420px}.tree-panel{min-height:420px;max-height:calc(100vh - 220px);overflow:hidden;display:flex;flex-direction:column}.tree-search{margin-bottom:10px;flex:0 0 auto}.tree{font-family:IBM Plex Mono,monospace;font-size:.82rem;flex:1;min-height:0;overflow:auto}.tree-row{display:flex;align-items:center;gap:6px;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding:5px 8px;border-radius:6px}.tree-row-main{display:flex;align-items:center;gap:6px;flex:1;min-width:0;border:0;background:transparent;color:inherit;text-align:left;padding:0;font:inherit;cursor:pointer}.tree-check{width:auto;margin:0;flex:0 0 auto}.restore-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.restore-detail{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.tree-row:hover{background:var(--hover)}.tree-row.selected{background:var(--accent-soft)}.tree-twist{width:14px;color:var(--muted);flex:0 0 auto}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row.rev{color:var(--muted)}.tree-row.rev.chosen{color:var(--ink)}.tree-row.rev .tree-name{font-size:.8rem}.tree-row input[type=radio].tree-check{accent-color:var(--accent)}.path-line{margin:0 0 12px;color:var(--ink)}.job-details{font-size:.85rem;color:var(--ink);word-break:break-word;max-width:480px}.job-details.job-error,tr.job-failed td.job-details{color:var(--danger);font-weight:500}.job-expand td{background:var(--surface-2);padding-top:0}.job-json{margin:0 0 12px;padding:12px;background:var(--code-bg);color:var(--code-ink);border-radius:10px;overflow-x:auto;font-family:IBM Plex Mono,monospace;font-size:.78rem;max-height:280px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:grid;place-items:center;z-index:80;padding:24px}.modal-card{width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--modal-shadow)}.modal-card.browse-modal{width:min(720px,100%)}.modal-card.install-package-modal{width:min(760px,100%)}.install-steps{margin:0 0 14px;padding-left:1.2rem;color:var(--muted);line-height:1.45}.install-script{max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px}.path-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.path-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.path-chip code{flex:1;min-width:0;font-size:.8rem}.browse-panel{min-height:280px;max-height:min(420px,calc(100vh - 280px))}.browse-cwd{font-size:.8rem;word-break:break-all}.perm-modal{width:min(720px,100%)}.perm-catalog{display:grid;gap:14px;margin-top:12px}.perm-section{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--surface-2)}.perm-checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:8px}@media (max-width: 640px){.perm-checks{grid-template-columns:1fr}}.dash-kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.dash-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.dash-split>.panel{margin-bottom:16px}.dash-meter{display:grid;gap:10px}.dash-meter-bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--track)}.dash-meter-ok,.dash-dot.ok{background:var(--ok)}.dash-meter-fail,.dash-dot.fail{background:var(--danger)}.dash-meter-partial,.dash-dot.partial{background:var(--warn)}.dash-meter-empty{display:block;width:100%;background:var(--line)}.dash-meter-legend{display:flex;flex-wrap:wrap;gap:12px 16px;font-size:.85rem}.dash-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.dash-chart h3{margin-bottom:4px}.dash-bars{display:flex;align-items:flex-end;gap:6px;height:156px;margin-top:12px}.dash-bar{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%}.dash-bar-stack{width:70%;max-width:28px;display:flex;flex-direction:column-reverse;border-radius:4px 4px 0 0;overflow:hidden}.dash-bar-stack>span{display:block;width:100%}.dash-bar-label{font-size:.65rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:clip;max-width:100%}.dash-pill{display:inline-block;font-size:.75rem;font-weight:600;text-transform:capitalize;padding:2px 8px;border-radius:999px;background:var(--track);color:var(--muted)}.dash-pill.ok{background:var(--accent-soft);color:var(--ok-ink)}.dash-pill.fail{background:var(--danger-soft);color:var(--danger)}.dash-pill.warn{background:var(--warn-soft);color:var(--warn)}.dash-fail-count{color:var(--danger);font-weight:600}.report-page{color:var(--ink)}.report-controls .field{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.report-controls .field input{min-width:10rem}.report-doc{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1.5rem 1.75rem 2rem;color:var(--ink);box-shadow:var(--shadow)}.report-doc-head{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.report-brand{margin:0 0 .35rem;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.report-doc-head h2{margin:0 0 .5rem;font-size:1.45rem;color:var(--ink)}.report-meta{margin:0;line-height:1.5;color:var(--ink)}.report-section{margin:1.35rem 0;color:var(--ink)}.report-section h3{margin:0 0 .55rem;color:var(--ink)}.report-section p{margin:0 0 .55rem;line-height:1.5}.report-charts{margin:1rem 0 1.5rem}.report-charts .panel{background:var(--surface-2)}.report-table{width:100%}.report-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.85rem;line-height:1.45}@media print{html{--bg: #ffffff !important;--surface: #ffffff !important;--surface-2: #ffffff !important;--input-bg: #ffffff !important;--hover: #f0f5f4 !important;--ink: #101820 !important;--muted: #5f6b76 !important;--line: #d5dde5 !important;--accent: #0f9f86 !important;--ok: #0f9f86 !important;--ok-ink: #0b5c4c !important;--warn: #b7791f !important;--danger: #c53030 !important;--track: #e8eef3 !important;--shadow: none !important;--color-scheme: light !important;color-scheme:light!important;background:#fff!important;color:#101820!important}html,body,#root,.app-shell,.content,.report-page{overflow:visible!important;height:auto!important;background:#fff!important;color:#101820!important}.sidebar,.topbar,.flash,.no-print,.report-toolbar,.report-controls{display:none!important}.app-shell{display:block}.content{margin:0!important;padding:0!important;max-width:none!important}.report-doc,.report-doc .panel,.report-charts .panel,.panel.report-chart{border:none!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;color:#101820!important;padding-left:0!important;padding-right:0!important}.report-doc{padding:0!important}.report-doc-head,.report-footer{border-color:#d5dde5!important}.report-brand,.report-footer,.report-section .muted,.dash-meter-legend .muted,table.data th{color:#5f6b76!important}.report-doc-head h2,.report-meta,.report-section,.report-section h3,.report-section p,table.data th,table.data td,.dash-meter-legend{color:#101820!important}table.data th,table.data td{border-bottom-color:#d5dde5!important;background:#fff!important}.dash-fail-count{color:#c53030!important}.dash-meter-bar{background:#e8eef3!important}.dash-meter-ok,.dash-dot.ok{background:#0f9f86!important}.dash-meter-fail,.dash-dot.fail{background:#c53030!important}.dash-meter-partial,.dash-dot.partial{background:#b7791f!important}.dash-meter-empty{background:#d5dde5!important}.report-section,.report-charts,.panel.report-chart{break-inside:avoid}.dash-meter-bar,.dash-bar-stack,.dash-meter-ok,.dash-meter-fail,.dash-meter-partial,.dash-dot{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
