
:root { --bg:#f4f6f8; --ink:#18222d; --muted:#65707c; --line:#d9e0e6; --panel:#fff; --accent:#183a59; --accent2:#255f8b; }
*{box-sizing:border-box} body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--ink)}
header{background:#101b26;color:white;padding:22px 4vw;display:flex;align-items:center;justify-content:space-between}
header h1{margin:0;letter-spacing:2px;font-size:24px} header p{margin:4px 0 0;color:#b9c7d5;font-size:13px}
nav a{color:white;text-decoration:none;margin-left:20px} main{max-width:1450px;margin:25px auto;padding:0 24px} footer{text-align:center;color:var(--muted);padding:30px}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.button,button{background:var(--accent);color:white;border:0;border-radius:6px;padding:10px 15px;text-decoration:none;cursor:pointer}.secondary{background:#556270}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.case-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;box-shadow:0 2px 8px rgba(20,40,60,.04)}.case-card{text-decoration:none;color:inherit}.case-card:hover{border-color:#9fb1c1}
.badge{display:inline-block;padding:5px 8px;border-radius:12px;background:#e6eef5;font-size:12px}.stats{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;margin-top:14px;font-size:12px;color:var(--muted)}
.muted{color:var(--muted)}.empty{background:white;padding:40px;border:1px dashed var(--line);border-radius:8px}.flash,.notice{background:#fff5cf;border:1px solid #ead37c;padding:12px;border-radius:6px;margin-bottom:15px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}input,select,textarea{width:100%;padding:10px;border:1px solid #cdd5dc;border-radius:5px;background:white}textarea{min-height:80px}.check{flex-direction:row;align-items:center}.check input{width:auto}
.statusbar{background:#e9eef3;border-radius:8px;padding:12px;display:flex;align-items:center;gap:12px;margin-bottom:16px}.statusbar select{width:auto}
.subject-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}.score{font-size:28px;font-weight:700;text-align:right}.score small{display:block;font-size:11px;color:var(--muted);font-weight:400}
.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.item{border:1px solid var(--line);border-radius:7px;padding:10px;margin:9px 0}.item strong,.item span,.item small{display:block}.item small{color:var(--muted);margin-top:4px}.item p{font-size:13px}
details{margin-top:10px}details summary{cursor:pointer;font-weight:700;color:var(--accent2)}details form{display:grid;gap:8px;margin-top:10px}
.meter{height:6px;background:#edf1f4;border-radius:4px;margin:7px 0;overflow:hidden}.meter i{height:100%;display:block;background:var(--accent2)}
.report{background:white;padding:30px;border:1px solid var(--line)}.report-head{display:flex;justify-content:space-between;align-items:flex-start}.report table{width:100%;border-collapse:collapse;margin:10px 0 24px}.report th,.report td{border:1px solid #cfd6dc;padding:8px;text-align:left;vertical-align:top}.report th{background:#edf1f4}.disclaimer{border-top:2px solid #444;padding-top:15px;font-size:12px;color:#555;margin-top:30px}
@media(max-width:900px){.three-col,.two-col,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}
@media print{header,footer,.report-head button{display:none}body,main{background:white;margin:0;padding:0}.report{border:0;padding:0}}
.search-button{display:inline-block;margin-top:8px;font-size:12px;padding:7px 10px}.relationships-block{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.relationship-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.profile-grid>div{padding:12px;background:#f7f9fb;border:1px solid var(--line);border-radius:7px}.profile-grid strong,.profile-grid span{display:block}.profile-grid span{margin-top:5px}.candidate{display:flex;gap:18px;border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:16px}.candidate-score{min-width:105px;text-align:center;padding:12px;background:#eef3f7;border-radius:8px;height:max-content}.candidate-score b{display:block;font-size:30px}.candidate-score small{color:var(--muted)}.candidate-body{flex:1}.candidate-body h4{margin-top:0}.reason-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reason-grid>div{padding:10px;background:#fafbfc;border-radius:6px}.reason-grid span{display:block;margin-top:5px;font-size:13px}.positive{color:#1d6847}.negative{color:#9b3434}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:9px;text-align:left;font-size:13px}@media(max-width:900px){.profile-grid,.reason-grid{grid-template-columns:1fr}.candidate{display:block}.candidate-score{margin-bottom:12px}}
.login-wrap{min-height:60vh;display:grid;place-items:center}.login-card{width:min(430px,100%);display:grid;gap:14px}.small{font-size:12px}
.result-card{display:flex;gap:16px;align-items:flex-start;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:9px;padding:14px;margin:10px 0}.result-card:hover{border-color:#9fb1c1}.result-card strong,.result-card span,.result-card small{display:block}.result-card span{margin:4px 0}.result-card small{color:var(--muted)}.result-score{font-size:24px;font-weight:700;min-width:72px;padding:10px;background:#eef3f7;border-radius:8px;text-align:center}
.attachments-panel{margin:18px 0}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.attachment-card{border:1px solid var(--line);border-radius:8px;padding:12px;color:inherit;text-decoration:none}.attachment-card:hover{border-color:#9fb1c1}.attachment-card strong,.attachment-card span,.attachment-card small{display:block}.attachment-card small{color:var(--muted);margin-top:6px}
.graph{min-height:560px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.graph-center{width:190px;min-height:110px;border:3px solid var(--accent);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:15px;background:white;z-index:2;box-shadow:0 5px 18px rgba(20,40,60,.12)}.graph-center small,.graph-node small{color:var(--muted)}.graph-ring{position:absolute;inset:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-content:space-between}.graph-node{background:white;border:1px solid var(--line);border-left:5px solid var(--accent2);border-radius:9px;padding:12px;box-shadow:0 2px 8px rgba(20,40,60,.06);max-width:260px}.graph-node strong,.graph-node span,.graph-node small{display:block}.graph-node span{font-size:13px;margin:4px 0}.identifier-node{border-left-color:#617383}.address-node{border-left-color:#7a6744}
@media(max-width:900px){.graph{display:block}.graph-center{margin:20px auto}.graph-ring{position:static;grid-template-columns:1fr 1fr}.graph-node{max-width:none}}

.provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:12px 0 18px}
.provider-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:white}
.provider-card.disabled{opacity:.5}.provider-card>div{display:flex;gap:8px;align-items:center}.provider-card input{width:auto}
.provider-card small{color:var(--muted)}.provider-card p{font-weight:400;font-size:12px}
.query-summary{display:flex;gap:16px;flex-wrap:wrap}.query-summary span{background:#edf2f6;border-radius:6px;padding:8px 10px}
.result-card{display:grid;grid-template-columns:80px 1fr;gap:15px;border:1px solid var(--line);border-radius:9px;padding:14px;margin:10px 0}
.result-score{font-size:26px;font-weight:800;color:var(--accent);display:flex;align-items:center;justify-content:center;background:#edf2f6;border-radius:8px}
.provider-admin{margin-bottom:14px}.provider-admin-head{display:flex;justify-content:space-between;align-items:center}.toggle{flex-direction:row;align-items:center}.toggle input{width:auto}
.subject-actions{text-align:right;margin-bottom:10px}.wide-table{width:100%;border-collapse:collapse}.wide-table th,.wide-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left}

.timeline-row{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.timeline-date{font-weight:700;color:var(--accent)}
.graph-box{min-height:180px;background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:14px}
.graph-line{padding:7px 9px;background:white;border:1px solid var(--line);border-radius:6px;margin:7px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.auto-route{display:flex;flex-direction:row;gap:8px;align-items:center}.auto-route input{width:auto}

.network-canvas{min-height:300px}
.network-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.network-node{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff}
.network-node strong,.network-node small{display:block}.network-node small{color:var(--muted);margin-top:5px}
.node-person{border-width:2px}.node-address{background:#f7f9fb}.node-phone,.node-email{background:#fbfcfd}
.edge-list{margin-top:20px;border-top:1px solid var(--line);padding-top:12px}
.edge-list div{padding:7px 0;border-bottom:1px solid #edf0f2;font-size:13px}.edge-list span{color:var(--muted)}
.search-row{display:grid;grid-template-columns:1fr auto;gap:10px}
.hypothesis-card{border:1px solid var(--line);border-radius:10px;padding:16px;margin:12px 0;background:#fff}
.hypothesis-head{display:flex;justify-content:space-between;gap:12px;align-items:center}

.field-visit-card{border:1px solid var(--line);border-radius:10px;padding:15px;margin:12px 0;background:#fff}
.field-head{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:8px}
.field-visit-card form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:10px}

.auth-card{max-width:460px;margin:70px auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px}
.secret-box{padding:12px;background:#f3f5f7;border:1px solid var(--line);border-radius:6px;overflow-wrap:anywhere;white-space:pre-wrap}

.org-chip{display:inline-block;padding:5px 8px;margin-right:8px;border:1px solid rgba(255,255,255,.25);border-radius:12px;color:#cbd7e2;font-size:11px}
