:root{
  --ink:#1E2E2B; --paper:#EFEDE1; --accent:#2F6E63; --accent-light:#DCEAE6;
  --stamp:#A9702C; --stamp-light:#F3E4D3; --amber:#B8863B; --amber-light:#F6ECD9;
  --red:#A9432F; --red-light:#F5E3DE; --line:#D8D3C2; --white:#FBFAF6;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'IBM Plex Sans',sans-serif;font-size:15px;line-height:1.5;}
h1,h2,h3{font-family:'Fraunces',serif;margin:0 0 6px;}
.mono{font-family:'IBM Plex Mono',monospace;}
.wrap{max-width:1180px;margin:0 auto;padding:24px 20px 80px;}
header.top{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:6px;position:relative;}
header.top h1{font-size:28px;font-weight:700;}
.meta{font-size:12.5px;color:#555;margin-top:4px;font-family:'IBM Plex Mono',monospace;}
.homebtn{position:fixed;top:16px;right:20px;z-index:200;background:var(--ink);color:var(--paper);border:none;border-radius:50%;width:42px;height:42px;font-size:19px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.homebtn:hover{background:var(--accent);}

/* Tab nav */
.tabnav{display:flex;gap:4px;margin:18px 0 20px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.tabnav button{background:none;border:none;font-family:'IBM Plex Sans',sans-serif;font-size:14.5px;font-weight:500;padding:10px 16px;cursor:pointer;color:#666;border-bottom:3px solid transparent;margin-bottom:-1px;}
.tabnav button.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600;}
.tabnav button:hover{color:var(--ink);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* controls */
.controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.controls input[type=text], .controls select{font-family:'IBM Plex Sans',sans-serif;font-size:14px;padding:9px 12px;border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);}
.controls input[type=text]{flex:1;min-width:220px;}
.count-line{font-size:12.5px;color:#666;margin-bottom:14px;}

/* grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;}
.card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:12px 13px;cursor:pointer;transition:.12s;}
.card:hover{border-color:var(--accent);box-shadow:0 2px 6px rgba(0,0,0,.08);}
.card .name{font-weight:600;font-size:14.5px;margin-bottom:4px;}
.card .tabtag{display:inline-block;font-size:10.5px;font-family:'IBM Plex Mono',monospace;padding:1px 6px;border-radius:3px;background:var(--accent-light);color:var(--accent);margin-bottom:6px;}
.card .tabtag.nonasset{background:var(--amber-light);color:var(--amber);}
.card .desc{font-size:12.5px;color:#555;max-height:54px;overflow:hidden;}

/* drawer */
.overlay{display:none;position:fixed;inset:0;background:rgba(30,46,43,.45);z-index:150;}
.overlay.open{display:block;}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(480px,92vw);background:var(--paper);z-index:151;box-shadow:-4px 0 20px rgba(0,0,0,.25);transform:translateX(100%);transition:.22s;overflow-y:auto;padding:26px 24px 60px;}
.drawer.open{transform:translateX(0);}
.drawer h2{font-size:22px;margin-bottom:2px;}
.drawer .close{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px;background:var(--white);border:1px solid var(--line);border-radius:5px;padding:5px 12px;font-family:'IBM Plex Sans',sans-serif;font-size:13px;cursor:pointer;color:var(--ink);}
.drawer .close:hover{background:var(--ink);color:var(--paper);}
.drawer .close span{font-size:18px;line-height:1;}
.field{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);}
.field .label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#777;margin-bottom:4px;}
.field .value{font-size:14px;white-space:pre-wrap;}
.field .value a{color:var(--accent);}
.stamp{cursor:pointer;border:none;font:inherit;}
button.stamp{font-family:'IBM Plex Mono',monospace;font-size:10px;line-height:1.6;vertical-align:baseline;}
button.stamp:hover,button.stamp.active{background:var(--stamp);color:var(--paper);}
.provbox{margin-top:8px;padding:10px 12px;background:var(--stamp-light);border-left:3px solid var(--stamp);border-radius:4px;font-size:13px;white-space:normal;}
.provbox .pcode{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--stamp);font-weight:600;}
.provbox .psrc{margin-top:4px;word-break:break-word;}
.provbox .psrc a{color:var(--accent);}
.provbox .pnote{margin-top:6px;font-size:11px;color:#777;}
.stamp{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:10px;background:var(--stamp-light);color:var(--stamp);padding:1px 6px;border-radius:3px;margin-left:6px;transform:rotate(-2deg);}

/* ask panel */
.askpanel{margin-top:14px;margin-bottom:22px;}
.panel{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:18px 20px;margin-top:26px;}
.panel h3{font-size:17px;color:var(--accent);}
.panel textarea{width:100%;min-height:56px;font-family:'IBM Plex Sans',sans-serif;font-size:14px;padding:10px;border:1px solid var(--line);border-radius:5px;resize:vertical;}
.panel .chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;}
.chip{background:var(--accent-light);color:var(--accent);border:none;border-radius:14px;padding:5px 12px;font-size:12.5px;cursor:pointer;}
.chip:hover{background:var(--accent);color:#fff;}
.askbtn{background:var(--accent);color:#fff;border:none;border-radius:5px;padding:9px 18px;font-size:14px;cursor:pointer;margin-top:8px;}
.askbtn:hover{background:var(--ink);}
.answer{margin-top:14px;font-size:14.5px;line-height:1.6;}
.answer p{margin:0 0 10px;}
.answer ul{margin:4px 0 10px 20px;padding:0;}
.answer .ans-groups{display:grid;grid-template-columns:minmax(150px,max-content) 1fr;gap:8px 16px;margin:8px 0 12px;align-items:baseline;}
.answer .ans-cat{font-weight:600;color:var(--ink);}
.answer .ans-items .cite{margin:0 4px 4px 0;display:inline-block;}
@media (max-width:600px){.answer .ans-groups{grid-template-columns:1fr;gap:2px;}.answer .ans-items{margin-bottom:8px;}}
.answer .cite{background:var(--accent-light);color:var(--accent);border:none;border-radius:4px;padding:1px 6px;font-size:12px;cursor:pointer;font-family:'IBM Plex Mono',monospace;}
.grounding{margin-top:10px;font-size:12px;color:#777;cursor:pointer;}
.groundlist{display:none;margin-top:6px;font-size:12px;}
.groundlist.open{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 10px;align-items:start;}
.groundlist .cite{text-align:left;justify-self:start;}

/* gap finder - amber */
.gap-panel{background:var(--amber-light);border:1px dashed var(--amber);border-radius:8px;padding:18px 20px;margin-top:20px;}
.gap-panel h3{color:var(--amber);font-size:17px;}
.gap-banner{background:#fff;border:1px solid var(--amber);border-radius:5px;padding:8px 12px;font-size:12.5px;margin-bottom:14px;color:#7a5a20;}
.gap-list{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.gap-item{background:#fff;border:1px solid var(--line);border-radius:5px;padding:8px 12px;font-size:13.5px;}
.gap-tagged-in{display:inline-block;background:var(--accent-light);color:var(--accent);font-size:10.5px;padding:1px 6px;border-radius:3px;margin-left:5px;}
.gap-other-domains-tag{display:inline-block;background:none;border:1px dashed var(--amber);color:var(--amber);font-size:10.5px;padding:1px 6px;border-radius:3px;margin-left:5px;}
.gap-unverified{font-size:10.5px;color:var(--amber);font-style:italic;margin-left:6px;}
select.gapdomain{margin-bottom:12px;}
.gap-clickable{cursor:pointer;}
.gap-clickable:hover{text-decoration:underline;}

/* overlap - teal solid, provisional-ish banner still amber-dashed */
.overlap-banner{background:#fff;border:1px dashed var(--amber);border-radius:5px;padding:8px 12px;font-size:12.5px;margin-bottom:16px;color:#7a5a20;}
.cluster{background:var(--white);border:1px solid var(--accent);border-radius:6px;padding:12px 14px;margin-bottom:10px;}
.cluster h4{margin:0 0 8px;font-size:14.5px;color:var(--accent);font-family:'IBM Plex Sans',sans-serif;font-weight:600;}
.cluster .members{display:flex;gap:6px;flex-wrap:wrap;}
.member-chip{background:var(--accent-light);color:var(--accent);border:none;border-radius:14px;padding:4px 11px;font-size:12.5px;cursor:pointer;}
.member-chip:hover{background:var(--accent);color:#fff;}

/* candidate register */
.reg-item{background:#fff;border-left:4px solid var(--amber);border-radius:4px;padding:8px 12px;margin-bottom:6px;font-size:13px;}
.reg-item.accepted{border-left-color:#3d7a4a;}
.reg-item.rejected{border-left-color:var(--red);}
.reg-item .btns{margin-top:6px;}
.reg-item button{font-size:11px;padding:3px 9px;margin-right:5px;border-radius:4px;border:1px solid var(--line);background:#fff;cursor:pointer;}
.badge{font-size:10px;padding:1px 6px;border-radius:3px;background:var(--amber-light);color:var(--amber);}
.badge.accepted{background:#e2efe4;color:#3d7a4a;}
.badge.rejected{background:var(--red-light);color:var(--red);}

.func-banner{background:var(--accent-light);border-radius:6px;padding:10px 14px;font-size:12.5px;color:var(--accent);margin-bottom:16px;}

[hidden]{display:none !important}
