/* ============================================================
   Search panel: one column of divided rows, no nested cards.
   Same markup on desktop and mobile, so the sheet is identical.
============================================================ */
.search-panel{max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--g200);border-radius:20px;padding:8px 0 8px;}
#headPanelHost .search-panel{border:none;border-radius:0;padding:6px 0 0;}
.search-sheet .search-panel{border:none;padding:4px 0;max-width:none;}
.sp-quick{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:8px 18px 14px;border-bottom:1px solid var(--g100);}
.sp-quick::-webkit-scrollbar{display:none;}
.sq{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--g400);background:#fff;border-radius:999px;padding:9px 15px;font-family:inherit;font-weight:700;font-size:12.5px;color:var(--ink);cursor:pointer;transition:all .18s ease;white-space:nowrap;}
.sq:hover{border-color:var(--ink);background:var(--g100);}
.sq i{font-size:11px;color:var(--g600);}
.sp-sec{padding:14px 18px 4px;border-bottom:1px solid var(--g100);}
.sp-sec:last-of-type{border-bottom:none;}
.sp-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px;}
.sp-h h4{font-size:12.5px;font-weight:700;color:var(--g600);}
.sp-a{border:none;background:none;font-family:inherit;font-size:12px;font-weight:700;color:var(--ink);text-decoration:underline;cursor:pointer;padding:0;}
.sp-a.as-text{text-decoration:none;color:var(--g500);}
.sp-rows{display:flex;flex-direction:column;}
.sp-row{display:flex;align-items:center;gap:13px;padding:11px 10px;margin:0 -10px;border-radius:12px;cursor:pointer;transition:background .15s ease;text-align:left;}
.sp-row+.sp-row{box-shadow:0 -1px 0 var(--g100);}
.sp-row:hover{background:var(--g100);box-shadow:none;}
.sp-row:hover+.sp-row{box-shadow:none;}
.sp-im{width:52px;height:44px;border-radius:10px;object-fit:cover;flex:0 0 auto;background:var(--g100);}
.sp-ic{width:52px;height:44px;border-radius:10px;background:var(--g100);color:var(--g600);display:flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 auto;}
.sp-b{flex:1;min-width:0;}
.sp-b strong{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-b>span{display:block;font-size:11.5px;color:var(--g500);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}
.sp-meta{flex:0 0 auto;text-align:right;}
.sp-meta b{display:block;font-size:12.5px;font-weight:800;}
.sp-meta>span{display:flex;align-items:center;justify-content:flex-end;gap:3px;font-size:11px;color:var(--g500);font-weight:700;margin-top:2px;}
.sp-meta i{font-size:9px;color:var(--ink);}
.sp-go{color:var(--g400);font-size:11px;flex:0 0 auto;}
.sp-row:hover .sp-go{color:var(--ink);}
.sp-x{width:28px;height:28px;border-radius:50%;border:none;background:none;color:var(--g500);font-size:11px;cursor:pointer;flex:0 0 auto;}
.sp-x:hover{background:var(--g200);color:var(--ink);}
.sp-empty{font-size:12.5px;color:var(--g500);font-weight:600;padding:10px 0 14px;}
.sp-all{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:none;border-top:1px solid var(--g200);background:none;padding:16px 18px;font-family:inherit;font-weight:700;font-size:13.5px;color:var(--ink);cursor:pointer;transition:background .15s ease;}
.sp-all:hover{background:var(--g100);}
.sp-all i{font-size:12px;}
.near{font-style:normal;background:var(--g100);color:var(--g600);border-radius:999px;padding:2px 8px;font-size:9.5px;font-weight:800;margin-left:5px;vertical-align:1px;}
@media(max-width:640px){.sp-sec,.sp-quick,.sp-all{padding-left:14px;padding-right:14px;}}

/* report modal: a single divided list instead of a stack of cards */
.rp-step{font-size:13px;font-weight:700;color:var(--ink);margin:18px 0 10px;}
.rp-list{border:1px solid var(--g300);border-radius:14px;overflow:hidden;max-height:264px;overflow-y:auto;margin-bottom:0;padding:0;display:block;}
.rp-row{width:100%;border:none;border-radius:0;padding:11px 13px;background:#fff;box-shadow:none !important;border-bottom:1px solid var(--g100);}
.rp-row:last-child{border-bottom:none;}
.rp-row:hover{background:var(--g100);border-color:transparent;}
.rp-row.on{background:var(--g100);}
.rp-list .sp-empty{padding:16px 14px;}
.rp-count{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--g600);margin-top:10px;}
.rp-count i{color:var(--ink);font-size:12px;}

/* mobile density: tighter rails, one-line rail footers */
@media(max-width:640px){
  .rails{padding:24px 0 4px;}
  .rail{margin-bottom:30px;}
  .rail-h{margin-bottom:12px;}
  .rail-h .sol-meta span{font-size:10px;padding:4px 10px;}
  .rail-foot{gap:10px;margin-top:12px;flex-wrap:nowrap;}
  .rail-foot .btn.sm{padding:10px 14px;font-size:12px;}
  .rail-foot .rf-right{margin-left:auto;width:auto;justify-content:flex-end;}
  .rail-foot .rf-call{display:none;}
  .sec{padding:40px 0;}
  .sec.tight{padding:30px 0;}
}

/* the call button belongs on mobile too: schools phone in */
@media(max-width:640px){
  .rail-foot{gap:8px;}
  .rail-foot .rf-call{display:inline-flex;width:36px;height:36px;flex:0 0 auto;}
  .rail-foot .btn.sm{padding:0 14px;height:36px;font-size:12px;}
  .rail-foot .rf-right{gap:8px;}
}

/* ============================================================
   Search panel, desktop: two columns inside a capped body.
   Single column ran 733px tall and fell 200px past the fold,
   while an 860px shell held a 720px panel of 66px rows.
============================================================ */
.sp-body{display:block;}
.sp-foot{display:flex;align-items:center;gap:14px;border-top:1px solid var(--g200);}
.sp-all{border-top:none;flex:1;min-width:0;}
.sp-hint{display:none;}
.sp-row.active{background:var(--g100);}
.search-panel mark{background:none;color:var(--ink);font-weight:800;padding:0;}
.sp-b .open{font-style:normal;color:var(--ink);font-weight:700;}

@media(min-width:900px){
  /* the panel lines up with the field above it, edge to edge */
  #heroPanelHost .search-panel{max-width:none;}
  #headPanelHost .search-panel{max-width:1040px;}
  .sp-body{display:grid;grid-template-columns:0.92fr 1.08fr;max-height:min(50vh,392px);overflow-y:auto;overscroll-behavior:contain;}
  .sp-col{min-width:0;}
  .sp-col+.sp-col{border-left:1px solid var(--g100);}
  .sp-sec{border-bottom:none;padding:14px 18px 8px;}
  .sp-side .sp-sec+.sp-sec{border-top:1px solid var(--g100);}
  /* denser rows: 66px was chunky for a dropdown */
  .sp-row{padding:8px 10px;gap:11px;}
  .sp-im,.sp-ic{width:44px;height:38px;}
  .sp-b strong{font-size:13px;}
  .sp-b>span{font-size:11px;}
  .sp-hint{display:flex;align-items:center;gap:5px;padding-right:18px;font-size:11px;color:var(--g500);font-weight:600;white-space:nowrap;}
  .sp-hint kbd{font-family:inherit;font-size:10px;font-weight:700;background:var(--g100);border:1px solid var(--g300);border-radius:5px;padding:1px 5px;color:var(--g600);}
}
.sp-chips{display:flex;flex-wrap:wrap;gap:7px;padding:2px 0 12px;}
.sq.sm{padding:7px 12px;font-size:12px;}
