:root{color-scheme:dark;--bg: #0f1420;--panel: #171e2e;--border: #263047;--text: #e8ecf2;--muted: #9aa4b2;--accent: #4f8df9;--error: #ff6b6b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,Segoe UI,sans-serif}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:20px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border)}.brand{font-weight:700}.topbar nav{display:flex;gap:14px}.topbar a{color:var(--muted);text-decoration:none}.topbar a.active{color:var(--text);font-weight:600}.topbar .user{margin-left:auto;display:flex;gap:10px;align-items:center}main{flex:1;min-height:0;display:flex}.login-splash{margin:auto;text-align:center;padding-top:20vh}.page-split{display:flex;flex:1;min-height:0;width:100%}.graph-wrap{flex:1;display:flex;flex-direction:column;min-width:0}.graph-area{flex:1;min-height:0;position:relative;display:flex}.graph-canvas{flex:1;min-height:0}.graph-legend{position:absolute;bottom:10px;left:10px;display:flex;gap:16px;align-items:center;background:#171e2ed9;border:1px solid var(--border);border-radius:8px;padding:5px 12px;font-size:11px;color:var(--muted);pointer-events:none}.graph-legend>span{display:inline-flex;align-items:center;gap:6px}.legend-line{display:inline-block;width:26px;border-top:2px solid var(--muted)}.legend-line.dashed{border-top-style:dashed}.legend-node.manual{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--panel);border:2px solid #ffd166}.toolbar{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:12px}.node-panel{width:340px;border-left:1px solid var(--border);background:var(--panel);padding:14px;overflow-y:auto}.node-panel h2{margin:0 0 4px;font-size:16px}.node-panel h3{margin:16px 0 6px;font-size:13px;color:var(--muted);text-transform:uppercase}.type-badge{font-size:10px;text-transform:uppercase;border-radius:4px;padding:2px 6px;margin-right:4px;background:#333}.type-person{background:#1d3d78}.type-team{background:#3b2d78}.type-application{background:#0e5c48}.type-capability{background:#7a5218}.type-signal{background:#3c434e}.attrs{width:100%;border-collapse:collapse;font-size:12px}.attrs td{border-bottom:1px solid var(--border);padding:3px 6px 3px 0;vertical-align:top}.attrs td:first-child{color:var(--muted);white-space:nowrap}.edge-list,.annot-list{list-style:none;margin:0;padding:0;font-size:12px}.edge-list li,.annot-list li{padding:2px 0;overflow-wrap:anywhere}.note-form{display:flex;flex-direction:column;gap:6px;margin-top:8px}.note-form textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px;resize:vertical}.page-pad{padding:20px;overflow-y:auto;width:100%}.summary-chips{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.coverage-table{border-collapse:collapse;width:100%;font-size:13px}.coverage-table th,.coverage-table td{border-bottom:1px solid var(--border);padding:6px 10px;text-align:left;vertical-align:top}.coverage-table th{color:var(--muted);font-weight:600}.status-gap{color:#ff6b6b}.status-unowned{color:#f2a33c}.status-planned{color:#4f8df9}.status-overlap{color:#d76bd1}.status-covered{color:#00b88a}tr.status-gap .chip,tr.status-unowned .chip{font-weight:700}.admin-grid{display:flex;flex-direction:column;gap:28px;max-width:900px}.form-row{display:flex;gap:8px;flex-wrap:wrap}.form-row input,.form-row select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;min-width:160px}button{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}button:disabled{opacity:.4;cursor:default}button.secondary{background:transparent;border:1px solid var(--border);color:var(--muted)}.row-actions{display:flex;gap:6px}.muted{color:var(--muted);font-size:12px}.error{color:var(--error);font-size:12px}.version{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:11px}.tz-picker{background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:3px 6px;font-size:11px;max-width:190px}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:10px 0 24px}.health-card{background:var(--panel);border:1px solid var(--border);border-left-width:4px;border-radius:8px;padding:10px 12px}.health-title{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:4px}.health-card.clickable{cursor:pointer}.health-card.clickable:hover{border-color:var(--accent)}.card-sync{margin-left:auto;padding:2px 10px;font-size:11px}.logtail .chip button.secondary{padding:0 6px;margin-left:4px;font-size:11px}.health-icon{font-size:14px}.health-ok{border-left-color:#00b88a}.health-ok .health-icon,.chip.health-ok{color:#00b88a}.health-running,.health-never,.health-unconfigured{border-left-color:var(--muted)}.health-stale,.health-degraded{border-left-color:#f2a33c}.health-stale .health-icon,.chip.health-stale,.chip.health-degraded{color:#f2a33c}.health-failing,.health-error,.health-down{border-left-color:var(--error)}.health-failing .health-icon,.health-error .health-icon,.chip.health-failing,.chip.health-error,.chip.health-down{color:var(--error)}.logs-page{display:flex;flex-direction:column;min-height:0}.log-view{flex:1;overflow:auto;background:#0a0e17;border:1px solid var(--border);border-radius:8px;padding:10px;font:11px/1.5 ui-monospace,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:10px;max-height:calc(100vh - 190px)}.log-err{color:#ff9191}.log-audit{color:#ffd166}.toolbar-sep{width:1px;align-self:stretch;background:var(--border)}.toolbar select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;max-width:260px}.source-tag{font-size:10px}.cstatus-gap{color:#ff6b6b;font-weight:700}.cstatus-tooling-only{color:#4f8df9}.cstatus-partial{color:#f2a33c}.cstatus-covered{color:#00b88a}tr.status-tooling-only .chip{font-weight:600}.coverage-table input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 6px;width:100%;min-width:140px}.coverage-table select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 6px}.import-framework{margin-top:28px;max-width:720px}.import-framework textarea{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px;font:11px/1.5 ui-monospace,Consolas,monospace;margin-bottom:8px}
