:root{color:#172033;background:#f6f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}body.graph-fullscreen-open{overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:24px}.app-header{align-items:end;display:grid;gap:20px;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);margin:0 auto 18px;max-width:1500px}.app-header h1{font-size:clamp(28px,4vw,48px);line-height:1.08;margin:4px 0 0}.eyebrow{color:#4667a8;font-size:12px;font-weight:800;letter-spacing:0;margin:0;text-transform:uppercase}.search-bar{align-items:end;background:#fff;border:1px solid #dbe3ef;border-radius:8px;box-shadow:0 16px 42px #27345914;display:grid;gap:12px;grid-template-columns:1fr 1fr auto;padding:14px}.header-actions{display:grid;gap:12px}.view-switcher{background:#fff;border:1px solid #dbe3ef;border-radius:8px;display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px}.view-switcher button{background:transparent;border:0;border-radius:6px;color:#475569;font-weight:800;min-height:36px}.view-switcher button.is-active{background:#172033;color:#fff}.data-status{background:#eef7fb;border:1px solid #bde4ef;border-radius:8px;color:#245e72;font-size:13px;font-weight:800;margin:-6px auto 18px;max-width:1500px;padding:10px 12px}.data-status-warn{background:#fff3cf;border-color:#f0c15b;color:#7c4a03}.search-bar label,.control-group{display:grid;gap:7px}.search-field{position:relative}.search-bar span,.control-label{color:#5f6c82;font-size:12px;font-weight:700}.search-bar input,.select-grid select{border:1px solid #cbd5e1;border-radius:8px;min-height:40px;outline:none;padding:0 12px;width:100%}.search-bar input:focus,.select-grid select:focus{border-color:#36a3b6;box-shadow:0 0 0 3px #36a3b629}.search-bar button,.graph-toolbar button,.segmented-control button{background:#172033;border:0;border-radius:8px;color:#fff;font-weight:800;min-height:40px;padding:0 16px}.search-suggestions{background:#fff;border:1px solid #dbe3ef;border-radius:8px;box-shadow:0 18px 38px #2734592e;display:grid;left:0;max-height:320px;overflow:auto;position:absolute;right:0;top:calc(100% + 8px);z-index:30}.search-suggestions button{align-items:center;background:#fff;border:0;border-bottom:1px solid #e6ecf3;color:#273449;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;min-height:48px;padding:8px 10px;text-align:left}.search-suggestions button:last-child{border-bottom:0}.search-suggestions button:hover{background:#f6f8fb}.search-suggestions button>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.search-suggestions small{color:#64748b;font-size:11px;font-weight:800}.unit-dot{background:#dbe3ef;border:2px solid #94a3b8;border-radius:6px;height:24px;width:24px}.unit-dot.has-detail{background:#8fb3ff;border-color:#2f5fa7}button,.plain-chip,.status-pill{min-width:0}.workspace{display:grid;gap:18px;grid-template-columns:300px minmax(420px,1fr) 360px;margin:0 auto;max-width:1500px}.left-rail,.detail-panel{display:grid;gap:14px;min-width:0}.left-rail{align-content:start}.panel,.graph-panel{background:#fff;border:1px solid #dbe3ef;border-radius:8px;box-shadow:0 16px 42px #27345914}.panel{padding:18px}.panel h2,.graph-toolbar h2{font-size:18px;line-height:1.25;margin:0;overflow-wrap:anywhere}.panel h3{font-size:14px;margin:22px 0 10px;overflow-wrap:anywhere}.profile-heading{align-items:center;display:flex;gap:12px;margin-top:8px;min-width:0}.profile-heading h2{min-width:0}.avatar{background:#fff;border:2px solid #ffffff;border-radius:999px;box-shadow:0 8px 18px #27345929;display:inline-block;flex:0 0 auto;object-fit:cover}.avatar-md{height:58px;width:58px}.avatar-sm{height:30px;width:30px}.segmented-control{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}.segmented-control button{background:#eef3f7;color:#273449;min-height:36px;padding:0 8px}.segmented-control button.is-active{background:#36a3b6;color:#fff}.checkbox-stack{display:grid;gap:8px}.checkbox-stack label{align-items:center;display:flex;gap:8px}.filter-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.filter-row button{background:#eef3f7;border:0;border-radius:8px;color:#273449;font-size:12px;font-weight:800;min-height:30px;padding:0 10px}.filter-toggle-row{align-items:center;background:#f8fbff;border:1px solid #dbe3ef;border-radius:8px;display:flex;gap:14px;justify-content:space-between;margin-top:12px;padding:12px}.filter-toggle-row p{color:#64748b;font-size:12px;line-height:1.55;margin:4px 0 0}.switch-control{cursor:pointer;flex:0 0 auto;height:30px;position:relative;width:52px}.switch-control input{opacity:0;pointer-events:none;position:absolute}.switch-control span{background:#cbd5e1;border-radius:999px;inset:0;position:absolute;transition:background .16s ease}.switch-control span:after{background:#fff;border-radius:999px;box-shadow:0 2px 8px #27344933;content:"";height:24px;left:3px;position:absolute;top:3px;transition:transform .16s ease;width:24px}.switch-control input:checked+span{background:#36a3b6}.switch-control input:checked+span:after{transform:translate(22px)}.group-filter-list{max-height:230px;overflow:auto;padding-right:4px}.filter-tree,.filter-block{border:1px solid #dbe3ef;border-radius:8px;margin-top:12px;overflow:hidden}.filter-heading{align-items:center;background:#fff;display:flex;font-weight:800;justify-content:space-between;min-height:46px;padding:12px 14px}.filter-tree summary{align-items:center;background:#fff;cursor:pointer;display:flex;font-weight:800;justify-content:space-between;min-height:46px;padding:12px 14px;position:relative}.filter-tree summary::marker{content:""}.filter-tree summary::-webkit-details-marker{display:none}.filter-tree summary:before{color:#4667a8;content:"▶";font-size:11px;margin-right:9px;transform:translateY(1px)}.filter-tree[open] summary:before{content:"▼"}.tree-label{align-items:center;display:inline-flex;flex:1;gap:8px}.filter-tree summary small{background:#eef3f7;border-radius:999px;color:#64748b;font-size:12px;padding:3px 8px}.filter-heading small{background:#eef3f7;border-radius:999px;color:#64748b;font-size:12px;padding:3px 8px}.filter-tree>.checkbox-stack,.filter-tree>.filter-row{padding:12px}.filter-tree>.checkbox-stack{padding-top:0}.filter-tree .group-filter-list,.filter-block .group-filter-list{margin:0 12px 12px}.filter-tree+.rights-note,.filter-block+.filter-tree{margin-top:18px}.filter-mode-control{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.filter-mode-control button{background:#eef3f7;border:0;border-radius:8px;color:#273449;font-weight:800;min-height:36px;padding:0 10px}.filter-mode-control button.is-active{background:#36a3b6;color:#fff}.filter-help-text{color:#64748b;font-size:13px;margin:0;padding:0 12px 12px}.graph-panel{min-height:720px;overflow:hidden}.graph-panel.is-fullscreen{border-radius:0;box-shadow:none;display:flex;flex-direction:column;inset:0;min-height:100vh;position:fixed;z-index:50}.graph-toolbar{align-items:center;border-bottom:1px solid #e6ecf3;display:flex;gap:14px;justify-content:space-between;padding:16px 18px}.graph-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.graph-panel.is-fullscreen .graph-toolbar{background:#fffffff5;flex:0 0 auto;position:relative;z-index:2}.fullscreen-button{background:#36a3b6}.layout-switcher{background:#eef3f7;border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(2,minmax(52px,1fr));padding:4px}.preset-switcher{grid-template-columns:repeat(2,minmax(72px,1fr))}.layout-switcher button{background:transparent;border:0;border-radius:6px;color:#475569;font-weight:800;min-height:32px;padding:0 10px}.layout-switcher button.is-active{background:#fff;color:#172033;box-shadow:0 4px 12px #2734591f}.graph-toolbar p,.empty-text,.objective-copy,.rights-note{color:#64748b;margin:4px 0 0;overflow-wrap:anywhere}.graph-body{min-height:0}.graph-panel.is-fullscreen .graph-body{display:grid;flex:1 1 auto;grid-template-columns:minmax(260px,320px) minmax(0,1fr);min-height:0}.graph-fullscreen-aside{background:#f6f8fb;border-right:1px solid #dbe3ef;min-height:0;overflow:auto;padding:14px}.graph-fullscreen-aside .panel{box-shadow:none}.graph-canvas-wrap{height:650px;min-width:0;position:relative;width:100%}.rights-note{border-top:1px solid #e6ecf3;font-size:12px;margin-top:14px;padding-top:12px}.graph-canvas{height:100%;width:100%}.graph-hover-label{background:#172033f0;border:1px solid rgba(255,255,255,.28);border-radius:8px;box-shadow:0 14px 34px #17203342;color:#fff;font-size:16px;font-weight:800;line-height:1.35;max-width:min(320px,calc(100vw - 48px));overflow-wrap:anywhere;padding:9px 12px;pointer-events:none;position:absolute;transform:translate(14px,-50%);white-space:pre-line;z-index:5}.graph-hover-label strong,.graph-hover-label span{display:block}.graph-hover-label span{color:#dbeafe;font-size:12px;font-weight:700;margin-top:3px}.graph-panel.is-fullscreen .graph-canvas-wrap{flex:1 1 auto;height:auto;min-height:0}.graph-panel.is-fullscreen .graph-canvas{height:100%}.meta-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0 0}.meta-grid div{background:#f6f8fb;border:1px solid #e6ecf3;border-radius:8px;padding:10px}.meta-grid dt{color:#64748b;font-size:12px;font-weight:800}.meta-grid dd{margin:2px 0 0;overflow-wrap:anywhere}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip-list button,.plain-chip{align-items:center;background:#fff3cf;border:1px solid #f0c85a;border-radius:8px;color:#263244;display:inline-flex;font-weight:700;min-height:34px;max-width:100%;overflow-wrap:anywhere;padding:6px 10px;text-align:left;white-space:normal}.chip-list .selectable-chip{cursor:pointer}.chip-list .selectable-chip:hover{background:#8fb3ff;border-color:#2f5fa7}.name-line{display:block;line-height:1.25}.chip-list button.avatar-chip{align-items:center;background:#f6f8fb;border-color:#dbe3ef;gap:7px;padding:5px 9px 5px 5px}.summary-list,.ranking-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}.summary-list li{background:#f6f8fb;border-radius:8px;display:grid;gap:6px;padding:10px}.summary-list button,.ranking-list button{background:transparent;border:0;color:#245e9f;font-weight:800;padding:0;text-align:left;overflow-wrap:anywhere}.summary-list button.person-button{align-items:center;display:inline-flex;gap:7px}.summary-list span{color:#475569;font-size:13px;overflow-wrap:anywhere}.source-link{color:#245e9f;display:block;overflow-wrap:anywhere}.note-list{background:#f6f8fb;border:1px solid #e6ecf3;border-radius:8px;color:#475569;display:grid;gap:8px;list-style:none;margin:0;padding:10px}.note-list li{overflow-wrap:anywhere}.legal-notice p{color:#64748b;font-size:13px;margin:10px 0 0}.legal-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.legal-links a{background:#eef3f7;border-radius:8px;color:#245e9f;font-size:12px;font-weight:800;padding:7px 9px;text-decoration:none}.select-grid{display:grid;gap:8px;grid-template-columns:1fr;margin-top:10px}.combobox-grid{display:grid;gap:12px;margin-top:10px}.combobox{display:grid;gap:7px}.combobox>label{color:#5f6c82;font-size:12px;font-weight:800}.combobox-control{display:grid;gap:7px;position:relative}.combobox input{border:1px solid #cbd5e1;border-radius:8px;min-height:38px;outline:none;padding:0 10px;width:100%}.combobox input:focus{border-color:#36a3b6;box-shadow:0 0 0 3px #36a3b629}.selected-person{align-items:center;background:#f6f8fb;border:1px solid #e6ecf3;border-radius:8px;display:flex;gap:8px;min-height:38px;padding:5px 8px}.selected-person span{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-list{background:#fff;border:1px solid #e6ecf3;border-radius:8px;box-shadow:0 18px 38px #2734592e;display:grid;max-height:300px;overflow:auto;position:absolute;top:calc(100% + 6px);width:100%;z-index:20}.combobox-list button{align-items:center;background:#fff;border:0;border-bottom:1px solid #e6ecf3;color:#273449;display:grid;gap:7px;grid-template-columns:auto minmax(0,1fr);min-height:62px;padding:9px 10px;text-align:left}.combobox-list button:last-child{border-bottom:0}.combobox-list button.is-selected{background:#245e9f;color:#fff}.combobox-list button>span{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-list small{color:#64748b;font-size:11px;grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-list button.is-selected small{color:#dbeafe}.combobox-list button.is-selected .avatar{border-color:#fff;box-shadow:0 0 0 3px #ffffff59}.comparison-avatars{display:flex;gap:10px;margin:12px 0 4px}.ranking-list button{align-items:center;background:#f6f8fb;border:1px solid #e6ecf3;border-radius:8px;color:#273449;display:flex;justify-content:space-between;min-height:40px;padding:8px 10px;width:100%}.ranking-person{align-items:center;display:inline-flex;gap:8px;min-width:0}.ranking-person span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-list strong{color:#d95c3f}.text-action{background:#eef3f7;border:1px solid #dbe3ef;border-radius:8px;color:#273449;font-weight:800;margin-top:12px;min-height:38px;padding:0 12px;width:100%}.review-workspace{margin:0 auto;max-width:1500px}.loading-panel{color:#64748b;font-weight:800}.review-page{overflow:hidden}.review-heading{align-items:start;display:flex;gap:18px;justify-content:space-between}.review-heading p{color:#64748b;margin:8px 0 0}.review-stats{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;min-width:280px}.review-stats span{background:#eef3f7;border-radius:8px;color:#273449;font-size:12px;font-weight:800;max-width:100%;overflow-wrap:anywhere;padding:7px 9px}.review-table-wrap{border:1px solid #e6ecf3;border-radius:8px;margin-top:18px;overflow-x:auto}.unit-review-summary{align-items:start;background:#f6f8fb;border:1px solid #e6ecf3;border-radius:8px;display:flex;gap:18px;justify-content:space-between;margin-top:18px;padding:14px}.unit-review-summary h3{margin:0}.unit-review-summary p{color:#64748b;margin:6px 0 0}.unit-review-details{border:1px solid #e6ecf3;border-radius:8px;margin-top:12px;padding:12px 14px}.unit-review-details summary{cursor:pointer;font-weight:800}.unit-review-tools{display:grid;gap:10px;grid-template-columns:minmax(180px,.5fr) minmax(220px,1fr);margin-top:14px}.unit-review-tools label{color:#5f6c82;display:grid;font-size:12px;font-weight:800;gap:6px}.unit-review-tools input,.unit-review-tools select{border:1px solid #cbd5e1;border-radius:8px;color:#172033;min-height:40px;padding:0 10px;width:100%}.unit-review-tools input:focus,.unit-review-tools select:focus{border-color:#36a3b6;box-shadow:0 0 0 3px #36a3b629;outline:none}.unresolved-ranking{background:#fff;border:1px solid #e6ecf3;border-radius:8px;display:grid;gap:8px;margin-top:12px;padding:12px}.unresolved-ranking>div{display:flex;flex-wrap:wrap;gap:8px}.unresolved-ranking span{background:#fff3cf;border-radius:999px;color:#7c4a03;font-size:12px;font-weight:800;padding:5px 8px}.review-note{color:#64748b;font-size:13px;margin:12px 0 0}.unit-review-details ul{display:grid;gap:8px;list-style:none;margin:12px 0 0;padding:0}.unit-review-details li{display:grid;gap:2px;min-width:0}.unit-review-details span{color:#64748b;font-size:13px;overflow-wrap:anywhere}.review-table{border-collapse:collapse;min-width:1120px;width:100%}.review-table th,.review-table td{border-bottom:1px solid #e6ecf3;padding:12px;text-align:left;vertical-align:middle;overflow-wrap:anywhere}.review-table th{background:#f6f8fb;color:#64748b;font-size:12px;font-weight:800;position:sticky;top:0;z-index:1}.review-table tr:last-child td{border-bottom:0}.review-table a{color:#245e9f;font-weight:800}.review-table code{background:#f6f8fb;border:1px solid #e6ecf3;border-radius:6px;color:#273449;display:inline-block;font-size:12px;max-width:230px;overflow-wrap:anywhere;padding:4px 6px}.review-person{align-items:center;display:flex;gap:10px;min-width:180px}.review-person div{display:grid;gap:2px;min-width:0}.review-person span{color:#64748b;font-size:12px;overflow-wrap:anywhere}.status-pill{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;padding:5px 8px}.status-ok{background:#dff7ed;color:#126145}.status-warn{background:#fff3cf;color:#8a5a00}.missing-text{color:#b45309;font-weight:800}.admin-shell{display:grid;gap:12px}.admin-toolbar{align-items:center;background:#172033;border-radius:8px;color:#fff;display:flex;font-weight:800;justify-content:space-between;padding:10px 12px}.admin-toolbar span{min-width:0;overflow-wrap:anywhere}.admin-toolbar button,.admin-login-form button{background:#fff;border:0;border-radius:8px;color:#172033;font-weight:800;min-height:36px;padding:0 14px}.admin-login{margin:0 auto;max-width:720px}.admin-login p,.admin-setup p{color:#64748b}.admin-login-form{display:grid;gap:10px;margin-top:16px}.admin-login-form label{display:grid;gap:7px}.admin-login-form label span{color:#5f6c82;font-size:12px;font-weight:700}.admin-login-form input{border:1px solid #cbd5e1;border-radius:8px;min-height:42px;padding:0 12px}.admin-login-form button{background:#172033;color:#fff;justify-self:start}.admin-setup{background:#f6f8fb;border:1px solid #e6ecf3;border-radius:8px;margin-top:18px;padding:14px}.admin-setup h3{margin-top:0}.hash-output{background:#fff;border:1px solid #dbe3ef;border-radius:8px;color:#273449;display:block;overflow-wrap:anywhere;padding:10px}.form-error{color:#b42318;font-weight:800}@media(max-width:1180px){.app-header,.workspace{grid-template-columns:1fr}.workspace{grid-template-areas:"graph" "left" "detail"}.left-rail{grid-area:left;grid-template-columns:repeat(2,minmax(0,1fr))}.graph-panel{grid-area:graph}.detail-panel{grid-area:detail}.review-heading{display:grid}.review-stats{justify-content:flex-start;min-width:0}.unit-review-summary{display:grid}.unit-review-tools{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{padding:14px}.search-bar,.left-rail{grid-template-columns:1fr}.graph-panel{min-height:560px}.graph-toolbar{align-items:stretch;flex-direction:column;gap:10px}.graph-actions{justify-content:stretch}.graph-actions>button,.layout-switcher{width:100%}.graph-panel.is-fullscreen .graph-body{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.graph-fullscreen-aside{border-bottom:1px solid #dbe3ef;border-right:0;max-height:42vh}.graph-canvas-wrap{height:500px}}
