:root{color-scheme:dark;--ink: #f2ece0;--ink-soft: #a3b0a8;--ink-dim: #71827a;--line: #2a4038;--bg: #0c1512;--bg-raised: #16261f;--bg-raised-alt: #12201a;--brand-gold: #f5a633;--brand-gold-ink: #17332b;--brand-cream: #ffe7a3;--brand-teal: #244e40;--accent: var(--brand-gold);--accent-ink: var(--brand-gold-ink);--band-bg: linear-gradient(135deg, rgba(245, 166, 51, .1), rgba(255, 231, 163, .04) 60%, transparent);--band-line: rgba(245, 166, 51, .22);--sidebar-bg: #12241e;--sidebar-ink: #c3d0c8;--sidebar-ink-dim: #728579;--pill-yes-bg: rgba(111, 215, 171, .15);--pill-yes-ink: #7fe0b6;--pill-no-bg: rgba(255, 255, 255, .06);--pill-no-ink: #a3b0a8;--pill-neg-bg: rgba(232, 92, 71, .16);--pill-neg-ink: #ff9a85;--pill-neutral-bg: rgba(245, 166, 51, .16);--pill-neutral-ink: #f5c073;--shadow: 0 1px 2px rgba(0, 0, 0, .32), 0 12px 28px -18px rgba(0, 0, 0, .75);--radius: 14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit}[hidden]{display:none!important}.shell{display:flex;min-height:100vh;align-items:stretch;background:var(--bg)}.sidebar{width:250px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-ink);border-right:1px solid var(--line);padding:20px 14px 18px;display:flex;flex-direction:column;gap:4px}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 22px}.sidebar-brand .logo-dot{width:36px;height:36px;flex-shrink:0;border-radius:10px;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;letter-spacing:.02em}.sidebar-brand-text{font-size:13.5px;font-weight:700;line-height:1.35;color:#fff}.sidebar-brand-text span{font-size:11px;font-weight:500;color:var(--sidebar-ink-dim)}.sidebar nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar nav>button{text-align:left;padding:10px 14px;border:none;background:transparent;color:var(--sidebar-ink);font-size:14px;border-radius:9px;cursor:pointer;transition:background .12s ease,color .12s ease}.sidebar nav>button:hover{background:#ffffff0d;color:#fff}.sidebar nav>button.active{background:var(--accent);color:var(--accent-ink);font-weight:600}.nav-group-header{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:10px 14px;border:none;background:transparent;color:var(--sidebar-ink);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:9px;cursor:pointer}.nav-group-header:hover{color:#fff}.nav-group-header .chevron{display:inline-block;transition:transform .15s ease;color:var(--sidebar-ink-dim);font-weight:400}.nav-group-header .chevron.open{transform:rotate(90deg)}.nav-children{display:flex;flex-direction:column;gap:1px;padding:2px 0 8px}.nav-children button{text-align:left;padding:8px 14px 8px 22px;border:none;background:transparent;color:var(--sidebar-ink-dim);font-size:13px;border-radius:8px;cursor:pointer;border-left:2px solid transparent;margin-left:8px}.nav-children button:hover{color:var(--sidebar-ink);background:#ffffff0a}.nav-children button.active{color:var(--accent);font-weight:600;border-left-color:var(--accent);background:#f5a63314}.sidebar-progress{margin-top:auto;padding:14px 10px 4px;border-top:1px solid var(--line)}.sidebar-progress-label{display:flex;justify-content:space-between;font-size:11.5px;color:var(--sidebar-ink-dim);margin-bottom:6px}.sidebar-progress-sub{display:block;margin-top:6px;font-size:11px;color:var(--sidebar-ink-dim)}.main{flex:1;min-width:0;background:var(--bg)}.header-band{background:var(--band-bg);background-color:var(--bg-raised-alt);border-bottom:1px solid var(--band-line);padding:30px 32px 24px}.header-band h1{margin:0;font-size:24px;letter-spacing:-.01em;color:#fff}.header-band p{margin:6px 0 0;color:var(--ink-soft);font-size:14px;max-width:66ch}.content{padding:24px 32px 48px}.progress-bar{flex:1;height:7px;border-radius:999px;background:#ffffff14;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s ease}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:24px}.stack{display:flex;flex-direction:column;gap:16px}.section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-gold);margin:0 0 8px;padding-top:4px}.section-label:first-child{padding-top:0}.sample-template-bar{margin-bottom:20px}.card,.upload-box,.node-queue,.dashboard{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.node-queue+.node-queue{margin-top:20px}.drive-sync-card{margin-bottom:20px}.drive-sync-header{margin-bottom:14px}.drive-sync-title{font-weight:700;font-size:16px;color:#fff;margin-bottom:4px}.drive-sync-row{display:flex;align-items:center;gap:10px;margin-top:10px}.drive-sync-row-all{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.drive-sync-row-all .upload-box-hint{margin-bottom:0}.upload-box.status-done{border-color:var(--accent)}.upload-box.status-background{border-color:var(--pill-neutral-ink)}.upload-box-title{font-weight:600;margin-bottom:4px;color:var(--ink)}.upload-box-hint{font-size:12.5px;color:var(--ink-soft);margin-bottom:10px}.upload-box-drop{display:block;width:100%;text-align:center;padding:10px;border:1px dashed var(--line);border-radius:8px;cursor:pointer;font-size:13px;background:var(--bg-raised-alt);color:var(--ink)}.upload-box-drop input{display:none}.upload-box-drop:disabled{cursor:default;opacity:.6}.upload-box-message{margin-top:8px;font-size:12px;word-break:break-word;color:var(--ink-soft)}.status-error .upload-box-message{color:#ff9a85}.status-done .upload-box-message{color:var(--pill-yes-ink)}.status-background .upload-box-message{color:var(--pill-neutral-ink)}.drive-sync-last-run{font-style:italic;margin-top:-4px}.drive-sync-last-run.error{color:var(--pill-neg-ink)}.sample-link{display:inline-block;margin-bottom:8px;padding:0;border:none;background:none;color:var(--brand-gold);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.sample-link:hover{color:var(--brand-cream)}.sample-link:disabled{color:var(--ink-dim);cursor:default;text-decoration:none}.mini-progress{margin-top:8px}.mini-progress-bar{height:5px;border-radius:999px;background:var(--line);overflow:hidden}.mini-progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .15s linear}.mini-progress-label{display:block;margin-top:4px;font-size:11px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.node-queue-header,.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.node-queue-header h3,.dashboard-header h2{margin:0;font-size:15px;color:var(--ink)}.dashboard-header-actions{display:flex;gap:8px}.table-meta{font-size:12px;color:var(--ink-soft);margin-bottom:8px}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;padding:8px 10px;white-space:nowrap;text-transform:uppercase;font-size:10.5px;letter-spacing:.05em;color:var(--ink-soft);background:var(--bg-raised-alt);border-bottom:1px solid var(--line)}tbody td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;color:var(--ink)}tbody tr:hover{background:#ffffff08}.table-scroll{overflow-x:auto}.table-pager{display:flex;justify-content:space-between;align-items:center;margin-top:10px;flex-wrap:wrap;gap:8px}.table-pager-controls{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft)}.empty{color:var(--ink-soft);font-size:13px}.error{color:#ff9a85;font-size:13px}.success{color:#7fd99b;font-size:13px}.node-queue-reverse{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:12.5px;color:var(--ink-soft)}.node-queue-reverse input{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--bg-raised);color:var(--ink);font-size:12.5px;width:200px}.node-queue-actions{display:flex;gap:6px;white-space:nowrap}.dashboard .table-scroll{overflow:auto;max-height:68vh}.dashboard table{border-collapse:separate;border-spacing:0}.dashboard thead th{position:sticky;z-index:2;background:var(--bg-raised-alt)}.dashboard thead tr:first-child th{top:0}.dashboard thead tr.filter-row th{top:33px;padding:5px 8px}.dashboard thead tr.filter-row input{width:100%;box-sizing:border-box;padding:5px 7px;font-size:11.5px;text-transform:none;letter-spacing:normal;font-weight:400;border:1px solid var(--line);border-radius:6px;background:var(--bg-raised);color:var(--ink)}.dashboard thead tr.filter-row input::placeholder{color:var(--ink-dim)}.dashboard tbody td:first-child{position:sticky;left:0;z-index:1;background:var(--bg-raised);box-shadow:1px 0 0 var(--line)}.dashboard thead th:first-child{position:sticky;left:0;z-index:5;box-shadow:1px 0 0 var(--line)}.dashboard tbody tr:hover td:first-child{background:#1c2d26}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.6;white-space:nowrap}.pill-yes{background:var(--pill-yes-bg);color:var(--pill-yes-ink)}.pill-no{background:var(--pill-no-bg);color:var(--pill-no-ink)}.pill-negative{background:var(--pill-neg-bg);color:var(--pill-neg-ink)}.pill-neutral{background:var(--pill-neutral-bg);color:var(--pill-neutral-ink)}button.ghost,.dashboard-header button,.node-queue-header button{padding:7px 13px;border:1px solid var(--line);background:var(--bg-raised-alt);color:var(--ink);border-radius:8px;cursor:pointer;font-size:13px}button.ghost:hover,.dashboard-header button:hover,.node-queue-header button:hover{border-color:#3f5c50}button.ghost.small{padding:5px 11px;font-size:12px}button.ghost:disabled{opacity:.5;cursor:default}button.primary,.upload-box-drop.primary{padding:8px 16px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:8px;cursor:pointer;font-size:13px;font-weight:600}button.primary:hover{filter:brightness(1.08)}button.primary:disabled{opacity:.5;cursor:default}button.primary.small{padding:5px 11px;font-size:12px}.tabs{display:flex;gap:6px;margin-bottom:18px}.tabs.subtabs{margin-bottom:14px;background:var(--bg-raised-alt);padding:4px;border-radius:10px;width:fit-content}.tab-btn{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink-soft);background:transparent;border:1px solid transparent}.tabs:not(.subtabs) .tab-btn{background:var(--bg-raised-alt);border:1px solid var(--line)}.tab-btn:hover{color:var(--ink)}.tab-btn.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tabs.subtabs .tab-btn.active{background:var(--bg-raised);color:var(--accent);border-color:var(--line)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat-card .stat-label{color:var(--ink-soft);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.stat-card .stat-value{font-size:24px;font-weight:800;margin-top:6px;color:var(--accent)}.stat-card.warn .stat-value{color:#ff9a85}.stat-card.good .stat-value{color:var(--pill-yes-ink)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin-bottom:20px}@media (max-width: 1100px){.two-col{grid-template-columns:1fr}}.matrix-zero{color:var(--ink-dim)}.field{margin-bottom:12px}.field label{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:5px}.field input[type=text],.field textarea,.field select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;background:var(--bg-raised-alt);color:var(--ink);box-sizing:border-box}.field textarea{resize:vertical;min-height:90px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.field .hint{color:var(--ink-soft);font-size:11px;margin-top:4px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 700px){.field-row{grid-template-columns:1fr}}.link-btn{background:none;border:none;color:var(--accent);font-weight:700;font-size:12px;cursor:pointer;padding:0}.link-btn:hover{text-decoration:underline}.toast{position:fixed;bottom:22px;right:22px;background:var(--bg-raised);color:var(--ink);border:1px solid var(--line);padding:11px 18px;border-radius:8px;font-size:13px;box-shadow:var(--shadow);z-index:300}.toast.error{border-color:#e85c47;color:#ff9a85}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:250;display:flex;align-items:center;justify-content:center;padding:20px}.modal-panel{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);width:560px;max-width:100%;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow)}.modal-header{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:15px;color:var(--ink)}.modal-close{background:none;border:none;color:var(--ink-soft);font-size:20px;cursor:pointer;line-height:1;padding:0}.modal-close:hover{color:var(--ink)}.modal-body{padding:18px 20px}.modal-body hr{border:none;border-top:1px solid var(--line);margin:14px 0}.hist-item{padding:8px 0;border-bottom:1px dashed var(--line);font-size:12.5px}.hist-item:last-child{border-bottom:none}.filter-bar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.filter-field{display:flex;flex-direction:column;gap:5px}.filter-field label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.filter-field input[type=date],.filter-field input[type=text]{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;background:var(--bg-raised-alt);color:var(--ink)}.filter-field input[type=date]{color-scheme:dark}.filter-field input[type=text]{min-width:200px}.filter-field input::placeholder{color:var(--ink-dim)}.filter-actions{display:flex;gap:8px}.filter-error{font-size:12px;color:#ff9a85;align-self:center}
