@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --bg:#fafaf9; --panel:#ffffff; --border:#e4e4e1;
  --text:#1c1e21; --dim:#5f6368; --faint:#6f7379;
  --accent:#16324f; --accent-soft:#eef2f6;
  --success:#2f6b4f; --success-soft:#eaf3ee;
  --warning:#a85a1e; --warning-soft:#faf1e8;
  --sans:'Inter', -apple-system, 'Segoe UI', sans-serif;
  --mono:'JetBrains Mono', 'Consolas', monospace;
}
*{box-sizing:border-box;}
body{background:var(--bg); color:var(--text); font-family:var(--sans); margin:0; padding:56px 20px; line-height:1.55; -webkit-font-smoothing:antialiased;}
.wrap{max-width:760px; margin:0 auto;}

.section-label{
  display:flex; justify-content:space-between; align-items:baseline;
  font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--faint); border-top:1px solid var(--border); padding-top:10px; margin-bottom:20px;
}

h1{font-size:32px; font-weight:800; letter-spacing:-0.01em; margin:0 0 10px; line-height:1.2;}
.sub{color:var(--dim); font-size:15px; margin-bottom:36px; max-width:520px;}

.panel{background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:32px; margin-bottom:32px;}
label{display:block; font-family:var(--mono); font-size:10.5px; color:var(--faint); margin-bottom:9px; margin-top:22px; text-transform:uppercase; letter-spacing:0.08em;}
.field-scope{text-transform:none; letter-spacing:0; font-weight:400; color:var(--faint); opacity:0.85;}
label:first-child{margin-top:0;}
select{width:100%; padding:11px 13px; background:#fff; border:1px solid var(--border); border-radius:6px; color:var(--text); font-size:14.5px; font-family:var(--sans);}
select:focus{outline:2px solid var(--accent); outline-offset:1px;}

.radio-row, .checkbox-row{display:flex; gap:22px; flex-wrap:wrap;}
.radio-row label, .checkbox-row label{
  display:flex; align-items:center; gap:7px; text-transform:none; font-family:var(--sans);
  font-size:14.5px; color:var(--text); margin:0; font-weight:500;
}
input[type=radio], input[type=checkbox]{accent-color:var(--accent); width:16px; height:16px;}

button[type=submit]{
  width:100%; margin-top:30px; padding:15px; background:var(--text); color:#fff;
  border:none; border-radius:7px; font-weight:700; font-size:14.5px; cursor:pointer;
  letter-spacing:0.01em; font-family:var(--sans); transition:background 0.15s;
}
button[type=submit]:hover{background:var(--accent);}

#results-section{display:none;}
#results-summary{font-family:var(--mono); font-size:12.5px; color:var(--dim); margin-bottom:20px; letter-spacing:0.02em;}
.results-controls{display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap;}
.results-controls input[type=search]{
  flex:1; min-width:160px; padding:9px 12px; border:1px solid var(--border); border-radius:6px;
  font-size:13.5px; font-family:var(--sans); background:#fff; color:var(--text);
}
.results-controls select{width:auto; padding:9px 12px; font-size:13px;}
.empty-state{color:var(--faint); font-size:13.5px; padding:20px 0; text-align:center;}
.filter-check{display:flex; align-items:center; gap:6px; font-size:13px; color:var(--dim); font-weight:500; white-space:nowrap;}

.compare-check{
  display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--faint);
  font-weight:500; margin-bottom:10px; cursor:pointer; width:fit-content;
}
.compare-bar{
  position:sticky; bottom:16px; display:flex; align-items:center; gap:12px;
  background:var(--text); color:#fff; padding:12px 18px; border-radius:8px; margin-top:16px;
  font-size:13px; box-shadow:0 4px 16px rgba(0,0,0,0.15);
}
.compare-bar button{
  padding:7px 14px; border:none; border-radius:6px; font-size:12.5px; font-weight:600;
  cursor:pointer; font-family:var(--sans);
}
#compare-show-btn{background:#fff; color:var(--text);}
#compare-show-btn:disabled{opacity:0.4; cursor:not-allowed;}
#compare-clear-btn{background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.3) !important;}
#compare-count{margin-right:auto; font-family:var(--mono);}

.compare-table-wrap{margin-top:16px; overflow-x:auto; border:1px solid var(--border); border-radius:8px;}
.compare-table{border-collapse:collapse; width:100%; font-size:13px; min-width:480px;}
.compare-table th, .compare-table td{padding:10px 14px; border-bottom:1px solid var(--border); text-align:left; white-space:nowrap;}
.compare-table thead th{background:var(--accent-soft); font-weight:700; color:var(--accent);}
.compare-table tbody th{font-family:var(--mono); font-size:11px; color:var(--faint); font-weight:600; text-transform:uppercase; letter-spacing:0.03em;}
.compare-table a{color:var(--accent); font-weight:600;}

.result-card{
  background:var(--panel); border:1px solid var(--border); border-radius:8px;
  padding:20px 22px; margin-bottom:12px; position:relative; padding-left:56px;
}
.result-card::before{
  content: attr(data-index);
  position:absolute; left:20px; top:20px; font-family:var(--mono); font-size:12px;
  color:var(--faint); font-weight:600;
}
.result-card.status-red{opacity:0.75; background:#f9f5f4;}
.firm-name{font-size:16px; font-weight:700; margin-bottom:9px; letter-spacing:-0.005em; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.status-icon{font-size:14px;}
.badge{display:inline-block; font-family:var(--mono); font-size:10px; padding:3px 9px; border-radius:4px; margin-right:6px; margin-bottom:4px; letter-spacing:0.03em; font-weight:600;}
.status-badge{margin-left:auto;}
.status-badge.status-green{background:var(--success-soft); color:var(--success); border:1px solid rgba(47,107,79,0.25);}
.status-badge.status-yellow{background:var(--warning-soft); color:var(--warning); border:1px solid rgba(168,90,30,0.25);}
.status-badge.status-red{background:#f4e6e4; color:#933b2e; border:1px solid rgba(147,59,46,0.25);}
.notes{font-size:13.5px; color:var(--dim); margin-bottom:9px;}
.meta{font-size:11.5px; color:var(--faint); font-family:var(--mono); letter-spacing:0.02em; margin-bottom:12px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}

.freshness-badge{font-family:var(--sans); text-transform:none; letter-spacing:0; margin:0;}
.freshness-fresh{background:var(--success-soft); color:var(--success); border:1px solid rgba(47,107,79,0.2);}
.freshness-stale-soon{background:var(--warning-soft); color:var(--warning); border:1px solid rgba(168,90,30,0.2);}
.freshness-stale{background:#f4e6e4; color:#933b2e; border:1px solid rgba(147,59,46,0.2);}

.deadline-badge{font-family:var(--sans); text-transform:none; letter-spacing:0; margin:0; cursor:help;}
.deadline-open-now{background:var(--success-soft); color:var(--success); border:1px solid rgba(47,107,79,0.2);}
.deadline-opening-soon{background:var(--accent-soft); color:var(--accent); border:1px solid rgba(22,50,79,0.2);}
.deadline-closed{background:#eceeef; color:var(--faint); border:1px solid var(--border);}
.deadline-not-announced{background:#eceeef; color:var(--faint); border:1px solid var(--border);}
.deadline-unverified{background:var(--warning-soft); color:var(--warning); border:1px solid rgba(168,90,30,0.2);}
.deadline-detail{font-size:12px; color:var(--faint); margin-bottom:8px;}

.why-toggle{
  display:block; background:transparent; border:none; padding:0; margin-bottom:8px;
  color:var(--accent); font-size:12.5px; font-weight:600; cursor:pointer; font-family:var(--sans);
}
.why-toggle:hover{text-decoration:underline;}
.why-list{margin:0 0 12px;}
.reasons-list{list-style:none; margin:0 0 14px; padding:0;}
.reason{font-size:12.5px; padding:5px 0; display:flex; gap:7px; align-items:flex-start; color:var(--dim);}
.reason-icon{font-weight:700; flex-shrink:0;}
.reason-ok .reason-icon{color:var(--success);}
.reason-fail .reason-icon{color:#933b2e;}
.reason-unverified .reason-icon{color:var(--warning);}

.sources-block{
  background:var(--bg); border:1px solid var(--border); border-radius:6px;
  padding:12px 14px; font-size:12px;
}
.sources-title{font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.06em; color:var(--faint); margin-bottom:8px; font-weight:600;}
.sources-list{list-style:none; margin:0; padding:0;}
.sources-list li{padding:5px 0; color:var(--dim); display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
.sources-list a{color:var(--accent); font-weight:600; text-decoration:none;}
.sources-list a:hover{text-decoration:underline;}
.source-status{font-weight:700;}
.source-status-confirmed{background:var(--success-soft); color:var(--success); border:1px solid rgba(47,107,79,0.2);}
.source-status-likely{background:var(--warning-soft); color:var(--warning); border:1px solid rgba(168,90,30,0.2);}
.sources-none{color:var(--faint); font-style:italic;}
.source-structural{color:var(--faint); font-style:italic; font-size:11.5px;}

.firms-directory-link{margin-top:20px; font-size:13px;}
.firms-directory-link a{color:var(--accent); font-weight:600; text-decoration:none;}
.firms-directory-link a:hover{text-decoration:underline;}

.disclaimer{
  font-size:12px; color:var(--faint); margin-top:32px; padding-top:16px;
  border-top:1px solid var(--border); line-height:1.6;
}

.apply-link{
  display:inline-block; font-size:13px; font-weight:600; color:var(--accent);
  text-decoration:none; font-family:var(--sans);
}
.apply-link:hover{text-decoration:underline;}
.apply-link-unknown{color:var(--faint); font-weight:500; font-size:12px;}

.show-filtered-btn{
  width:100%; padding:12px; background:transparent; border:1px dashed var(--border); border-radius:8px;
  color:var(--dim); font-size:12.5px; cursor:pointer; margin-top:10px; font-family:var(--sans); font-weight:500;
}
.show-filtered-btn:hover{border-color:var(--faint); color:var(--text);}
.filtered-wrap{margin-top:14px;}

.feedback-box{
  margin-top:44px; padding:26px 28px; background:var(--accent-soft); border:1px solid rgba(22,50,79,0.15);
  border-radius:10px;
}
.feedback-title{font-weight:700; font-size:15px; margin-bottom:8px;}
.feedback-sub{font-size:13.5px; color:var(--dim); margin-bottom:16px; max-width:520px;}
.feedback-btn{
  display:inline-block; padding:11px 18px; background:var(--accent); color:#fff; text-decoration:none;
  border-radius:6px; font-size:13.5px; font-weight:600; font-family:var(--sans);
}
.feedback-btn:hover{opacity:0.9;}

@media (max-width:600px){
  .radio-row, .checkbox-row{gap:14px;}
  h1{font-size:26px;}
}
