/* RentReactor — stylesheet */

:root{
    /* RentReactor dark brand — see styles-classic.css for the original navy/teal theme */
    --navy:#0c0d12; --navy2:#262a3c; --teal:#f97316; --teal-d:#fb923c;
    --bg:#070709; --card:#181b26; --line:#33364a; --text:#f1f3f6; --muted:#94a0b3;
    --green:#34d399; --green-bg:rgba(52,211,153,.13); --amber:#fbbf24; --amber-bg:rgba(251,191,36,.14);
    --red:#f87171; --red-bg:rgba(248,113,113,.14); --gray:#6b7280; --gray-bg:rgba(255,255,255,.06);
    --shadow:0 1px 3px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:var(--bg);color:var(--text);font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}
  button{font-family:inherit;cursor:pointer;border:none;background:none}
  a{color:inherit}
  .hidden{display:none!important}

  /* ---- top bar ---- */
  header{background:var(--navy);color:#fff;padding:14px 20px;display:flex;align-items:center;
    gap:14px;position:sticky;top:0;z-index:50;box-shadow:0 2px 8px rgba(0,0,0,.12)}
  .logo{display:flex;align-items:center;gap:9px;font-weight:700;font-size:17px;letter-spacing:.2px}
  .logo .mark{width:26px;height:26px;border-radius:7px;display:flex;
    background:linear-gradient(140deg,#fdba74,#f97316 55%,#c026d3);
    align-items:center;justify-content:center;font-size:15px}
  .nav{display:flex;gap:4px;margin-left:auto}
  .nav button{color:#c4ccd8;padding:7px 14px;border-radius:7px;font-size:14px;font-weight:600}
  .nav button:hover{color:#fff;background:rgba(255,255,255,.08)}
  .nav button.active{color:#fff;background:var(--teal)}
  #navUser{display:flex;align-items:center;gap:6px}
  .nav-name{color:#c4ccd8;font-size:13px;padding:0 6px}
  .nav-signout{color:#c4ccd8;font-size:13px;font-weight:600;padding:7px 11px;border-radius:7px}
  .nav-signout:hover{background:rgba(255,255,255,.08)}
  #hamburger{display:none;color:#fff;font-size:23px;line-height:1;padding:4px 8px;
    margin-left:auto;cursor:pointer}
  #navbackdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:190}
  #navbackdrop.open{display:block}

  .wrap{max-width:1180px;margin:0 auto;padding:24px 20px 64px}
  .page-title{font-size:22px;font-weight:700;margin-bottom:3px}
  .page-sub{color:var(--muted);font-size:14px;margin-bottom:20px}

  /* ---- summary cards ---- */
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:14px;margin-bottom:22px}
  .card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 17px;
    box-shadow:var(--shadow)}
  .card .k{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;
    letter-spacing:.5px;display:flex;align-items:center;gap:6px}
  .card .v{font-size:27px;font-weight:750;margin-top:7px;line-height:1.1}
  .card .d{font-size:12.5px;color:var(--muted);margin-top:3px}
  .card.flag{border-left:4px solid var(--red)}
  .card.warn{border-left:4px solid var(--amber)}
  .card.good{border-left:4px solid var(--teal)}

  /* ---- toolbar ---- */
  .toolbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:14px}
  select,input[type=text],input[type=number]{font-family:inherit;font-size:14px;padding:8px 11px;
    border:1px solid var(--line);border-radius:8px;background:#15161c;color:var(--text)}
  select:focus,input:focus{outline:2px solid var(--teal);outline-offset:-1px}
  .chip{padding:7px 13px;border:1px solid var(--line);border-radius:20px;background:#232636;
    font-size:13px;font-weight:600;color:var(--muted)}
  .chip.on{background:var(--teal);color:#0a0a0a;border-color:var(--teal)}
  .spacer{flex:1}
  .btn{background:var(--teal);color:#0a0a0a;padding:9px 17px;border-radius:8px;font-weight:700;
    font-size:14px;display:inline-flex;align-items:center;gap:7px}
  .btn:hover{background:var(--teal-d)}
  .btn.ghost{background:rgba(255,255,255,.06);color:var(--text);border:1px solid var(--line)}
  .btn.ghost:hover{background:rgba(255,255,255,.11)}
  .btn.lg{padding:13px 22px;font-size:15px}

  /* ---- table ---- */
  .tbl-wrap{background:var(--card);border:1px solid var(--line);border-radius:12px;
    overflow:hidden;box-shadow:var(--shadow)}
  table{width:100%;border-collapse:collapse}
  th{text-align:left;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;
    letter-spacing:.5px;padding:11px 14px;background:#232636;border-bottom:1px solid var(--line)}
  td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
  tbody tr{cursor:pointer}
  tbody tr:hover{background:rgba(255,255,255,.04)}
  tbody tr:last-child td{border-bottom:none}
  .u-name{font-weight:650}
  .u-prop{font-size:12.5px;color:var(--muted)}
  .grouphdr td{background:var(--navy2);color:#fff;font-weight:700;font-size:12.5px;
    text-transform:uppercase;letter-spacing:.6px;padding:8px 14px;cursor:default}
  .grouphdr:hover td{background:var(--navy2)}

  /* ---- badges ---- */
  .badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:14px;
    font-size:12.5px;font-weight:700;white-space:nowrap}
  .b-green{background:var(--green-bg);color:var(--green)}
  .b-amber{background:var(--amber-bg);color:var(--amber)}
  .b-red{background:var(--red-bg);color:var(--red)}
  .b-gray{background:var(--gray-bg);color:var(--muted)}
  .score-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
  .delta-neg{color:var(--red);font-weight:650}
  .delta-pos{color:var(--green);font-weight:650}
  .delta-zero{color:var(--muted)}
  .tag{font-size:11px;font-weight:700;padding:2px 7px;border-radius:5px;background:var(--gray-bg);
    color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
  .tag.evict{background:var(--red-bg);color:var(--red)}
  .tag.vacant{background:var(--amber-bg);color:var(--amber)}
  .muted{color:var(--muted)}

  /* ---- unit detail ---- */
  .back{color:var(--text);font-weight:650;font-size:13px;margin-bottom:16px;display:inline-flex;
    align-items:center;gap:6px;cursor:pointer;border:1px solid var(--line);
    background:var(--card);padding:8px 14px;border-radius:8px}
  .back:hover{background:var(--bg)}
  #navprogress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--teal);
    z-index:120;opacity:0;border-radius:0 2px 2px 0;pointer-events:none}
  .logo{cursor:pointer}
  .card.link{cursor:pointer}
  .card.link:hover{border-color:var(--teal)}
  .detail-head{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;
    background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;
    box-shadow:var(--shadow);margin-bottom:18px}
  .detail-head .main{flex:1;min-width:220px}
  .detail-head h2{font-size:21px}
  .kv{display:flex;gap:24px;flex-wrap:wrap;margin-top:12px}
  .kv div .lbl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;
    letter-spacing:.5px}
  .kv div .val{font-size:16px;font-weight:700;margin-top:2px}
  .scorebox{text-align:center;min-width:130px;border-left:1px solid var(--line);padding-left:18px}
  .scorebox .big{font-size:42px;font-weight:800;line-height:1}
  .scorebox .small{font-size:12px;color:var(--muted);margin-top:3px}

  .section-title{font-size:15px;font-weight:700;margin:22px 0 11px;display:flex;
    align-items:center;gap:8px}
  .panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;
    box-shadow:var(--shadow)}

  /* timeline */
  .insp-row{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
  .insp-row:last-child{border-bottom:none}
  .insp-row .mark{width:42px;height:42px;border-radius:9px;display:flex;align-items:center;
    justify-content:center;font-weight:800;font-size:16px;color:#fff;flex-shrink:0}
  .insp-row .body{flex:1}
  .insp-row .body .t{font-weight:650}
  .insp-row .body .s{font-size:13px;color:var(--muted);margin-top:1px}
  .secscores{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
  .secscore{font-size:11.5px;padding:2px 8px;border-radius:6px;background:var(--bg);
    border:1px solid var(--line);font-weight:600}

  /* photo gallery */
  .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .gallery .ph{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--bg)}
  .gallery .ph img{width:100%;height:115px;object-fit:cover;display:block}
  .gallery .ph .cap{font-size:11.5px;padding:6px 8px;color:var(--muted);font-weight:600}
  .empty{text-align:center;color:var(--muted);padding:34px 16px;font-size:14px}

  .repair-row{display:flex;gap:11px;align-items:flex-start;padding:10px 0;
    border-bottom:1px solid var(--line)}
  .repair-row:last-child{border-bottom:none}
  .repair-row .sev{width:7px;height:7px;border-radius:50%;margin-top:7px;flex-shrink:0}
  .repair-row .rt{flex:1}
  .repair-row .rt .rn{font-weight:600}
  .repair-row .rt .rm{font-size:12.5px;color:var(--muted)}
  .repair-row .cost{font-weight:700;font-size:14px;white-space:nowrap}

  /* ---- inspection wizard ---- */
  .wizard{max-width:680px;margin:0 auto}
  .progress{height:7px;background:var(--line);border-radius:5px;overflow:hidden;margin-bottom:6px}
  .progress > div{height:100%;background:var(--teal);transition:width .25s}
  .step-meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);
    font-weight:600;margin-bottom:18px}
  .wz-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;
    box-shadow:var(--shadow)}
  .wz-card h2{font-size:19px;display:flex;align-items:center;gap:9px;margin-bottom:4px}
  .wz-card .h-sub{color:var(--muted);font-size:13.5px;margin-bottom:18px}
  .field{margin-bottom:15px}
  .field label{display:block;font-size:12.5px;font-weight:700;color:var(--muted);
    text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
  .field select,.field input,.field textarea{width:100%;font-size:15px;padding:11px 12px}
  .field textarea{font-family:inherit;border:1px solid var(--line);border-radius:8px;
    resize:vertical;min-height:74px;color:var(--text);background:#15161c}

  .check-item{display:flex;align-items:center;gap:11px;padding:11px 0;
    border-bottom:1px solid var(--line)}
  .check-item:last-of-type{border-bottom:none}
  .check-item .ci-name{flex:1;font-size:14.5px}
  .tog{display:flex;gap:5px}
  .tog button{padding:7px 13px;border-radius:7px;font-size:13px;font-weight:700;
    border:1.5px solid var(--line);color:var(--muted);background:#15161c;min-width:46px}
  .tog button.pass.on{background:var(--green);border-color:var(--green);color:#fff}
  .tog button.fail.on{background:var(--red);border-color:var(--red);color:#fff}
  .tog button.na.on{background:var(--gray);border-color:var(--gray);color:#fff}

  .scoreline{margin-top:18px;padding-top:16px;border-top:2px solid var(--line)}
  .scoreline .sl-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
  .scoreline .sl-label{font-weight:700;font-size:14px}
  .scoreline .sl-val{font-size:24px;font-weight:800}
  .scorebtns{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
  .scorebtns button{padding:9px 0;border-radius:7px;font-weight:700;font-size:14px;
    border:1.5px solid var(--line);background:#15161c;color:var(--muted)}
  .scorebtns button.on{color:#fff}
  .score-hint{font-size:12.5px;color:var(--muted);margin-top:7px;min-height:16px}

  /* tenant payment reliability picker */
  .pay-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
  .pay-opt{padding:12px 13px;border:1.5px solid var(--line);border-radius:9px;
    background:#15161c;color:var(--text);font-weight:650;font-size:13.5px;text-align:left}
  .pay-opt.on{border-width:2px;padding:11px 12px}

  .photo-add{margin-top:16px}
  .photo-add label.up{display:inline-flex;align-items:center;gap:7px;border:1.5px dashed var(--teal);
    color:var(--teal-d);padding:10px 16px;border-radius:9px;font-weight:650;font-size:14px;
    cursor:pointer}
  .photo-add label.up:hover{background:var(--green-bg)}
  .photo-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
  .photo-strip .pt{position:relative;width:78px;height:78px;border-radius:8px;overflow:hidden;
    border:1px solid var(--line)}
  .photo-strip .pt img{width:100%;height:100%;object-fit:cover}
  .photo-strip .pt button{position:absolute;top:2px;right:2px;width:19px;height:19px;
    border-radius:50%;background:rgba(0,0,0,.62);color:#fff;font-size:12px;line-height:19px;
    text-align:center}

  .wz-nav{display:flex;gap:10px;margin-top:20px}
  .wz-nav .btn{flex:1;justify-content:center}

  /* section hub grid */
  .sec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:4px}
  .sec-card{background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:14px 10px;
    text-align:center;cursor:pointer;transition:border-color .15s,background .15s;user-select:none}
  .sec-card:hover{border-color:var(--navy);background:var(--card)}
  .sc-icon{font-size:24px;margin-bottom:6px}
  .sc-name{font-size:12.5px;font-weight:700;color:var(--text);margin-bottom:5px;line-height:1.3}
  .sc-status{font-size:11.5px;font-weight:600;border-radius:20px;padding:2px 8px;display:inline-block}
  .sc-muted{color:var(--muted);background:none}
  .sc-green{color:var(--green);background:var(--green-bg)}
  .sc-amber{color:var(--amber);background:var(--amber-bg)}
  .sc-red{color:var(--red);background:var(--red-bg)}

  /* safety pass/fail result banner */
  .safety-result{margin:14px 0 4px;padding:11px 16px;border-radius:9px;font-size:14px;font-weight:700}
  .safety-result.ok{background:var(--green-bg);color:var(--green)}
  .safety-result.issues{background:var(--red-bg);color:var(--red)}

  /* ---- post-inspection photo upload ---- */
  .ap-zone{border:2px dashed var(--line);border-radius:12px;padding:28px 20px;
    text-align:center;cursor:pointer;transition:border-color .15s,background .15s;
    margin:6px 0 10px;user-select:none}
  .ap-zone:hover,.ap-zone.ap-over{border-color:var(--teal);background:rgba(249,115,22,.07)}
  .ap-hint{color:var(--muted);font-size:14px}
  .ap-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
  .ap-thumb{position:relative;width:72px;height:72px;border-radius:8px;overflow:hidden;
    border:1px solid var(--line)}
  .ap-thumb img{width:100%;height:100%;object-fit:cover}
  .ap-del{position:absolute;top:2px;right:3px;background:rgba(0,0,0,.65);color:#fff;
    font-size:13px;line-height:1;border-radius:50%;width:18px;height:18px;
    display:flex;align-items:center;justify-content:center;padding:0}

  .repair-input{display:grid;grid-template-columns:1fr 130px 88px auto;gap:8px;margin-bottom:8px}
  .repair-input input,.repair-input select{width:100%}
  .repair-list-item{display:flex;gap:9px;align-items:center;padding:9px 11px;background:var(--bg);
    border-radius:8px;margin-bottom:6px;font-size:13.5px}
  .repair-list-item .rli-cost{font-weight:700;margin-left:auto}
  .repair-list-item button{color:var(--red);font-weight:700;font-size:16px}

  /* review */
  .rev-score{text-align:center;padding:8px 0 16px}
  .rev-score .rs-num{font-size:54px;font-weight:850;line-height:1}
  .rev-score .rs-band{font-size:14px;font-weight:700;margin-top:5px}
  .rev-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:14px 0}
  .rev-grid .rg{background:var(--bg);border-radius:9px;padding:12px 14px}
  .rev-grid .rg .rgl{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;
    letter-spacing:.4px}
  .rev-grid .rg .rgv{font-size:19px;font-weight:750;margin-top:3px}
  .rev-sec{display:flex;justify-content:space-between;padding:7px 0;font-size:13.5px;
    border-bottom:1px dashed var(--line)}
  .rev-sec:last-child{border-bottom:none}

  .toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--navy);
    color:#fff;padding:13px 22px;border-radius:10px;font-weight:600;font-size:14px;
    box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:200;opacity:0;transition:opacity .25s,
    transform .25s;pointer-events:none}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(-4px)}

  .scorekey{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);
    margin-top:10px}
  .scorekey span{display:flex;align-items:center;gap:5px}

  @media(max-width:760px){
    header{padding:12px 12px}
    .wrap{padding:18px 18px 60px}
    .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
    .tbl-wrap table{min-width:620px}
    .cards{grid-template-columns:1fr 1fr;gap:10px}
    #hamburger{display:block}
    .nav{position:fixed;top:0;right:0;bottom:0;width:250px;max-width:80vw;
      background:var(--navy);flex-direction:column;align-items:stretch;gap:0;margin-left:0;
      padding:60px 0 24px;transform:translateX(106%);transition:transform .25s ease;
      z-index:200;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.35)}
    .nav.open{transform:translateX(0)}
    .nav button{width:100%;text-align:left;padding:14px 22px;font-size:15px;
      border-radius:0;color:#dce2ea}
    .nav button.active{background:var(--teal);color:#fff}
    #navUser{flex-direction:column;align-items:stretch;gap:0;margin-top:8px;
      padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}
    .nav-name{padding:10px 22px 4px;font-size:12px;color:#8fa0bd;
      text-transform:uppercase;letter-spacing:.5px}
    .nav-signout{width:100%;text-align:left;padding:14px 22px;font-size:15px;border-radius:0}
    .logo span.full{display:none}
    .detail-head{padding:16px}
    .scorebox{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:14px;
      width:100%;display:flex;gap:18px;align-items:center;justify-content:center}
    .scorebox .small{margin-top:0}
    th.hide-m,td.hide-m{display:none}
    .repair-input{grid-template-columns:1fr 1fr;}
    .scorebtns{grid-template-columns:repeat(5,1fr)}
    .rev-grid{grid-template-columns:1fr}
    td,th{padding:10px 9px;font-size:13px}
  }

  /* ---- modal / lightbox ---- */
  .modal-host{display:none;position:fixed;inset:0;z-index:300}
  .modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.82);
    display:flex;align-items:center;justify-content:center;padding:22px}
  .lightbox{position:relative;display:flex;align-items:center;justify-content:center}
  .lightbox img{max-width:94vw;max-height:86vh;border-radius:8px;display:block;
    box-shadow:0 10px 40px rgba(0,0,0,.5)}
  .lightbox .cap{position:absolute;left:0;right:0;bottom:-28px;text-align:center;
    color:#fff;font-size:13px;font-weight:600}
  .modal-x{position:fixed;top:14px;right:16px;width:40px;height:40px;border-radius:50%;
    background:rgba(28,28,36,.96);font-size:22px;color:#fff;font-weight:700;
    box-shadow:0 2px 10px rgba(0,0,0,.3);z-index:310}
  .modal-card{background:var(--card);border-radius:14px;padding:20px;max-width:440px;width:100%;
    box-shadow:0 14px 44px rgba(0,0,0,.32);position:relative;max-height:88vh;overflow:auto}
  .modal-card h3{font-size:17px;margin-bottom:3px}
  .gallery .ph img{cursor:zoom-in}

  /* ---- inspection detail ---- */
  .item-row{display:flex;justify-content:space-between;align-items:center;gap:10px;
    padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
  .item-row:last-child{border-bottom:none}
  .res{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:5px;white-space:nowrap}
  .sec-block{margin-bottom:6px}
  .sec-block .sec-head{display:flex;justify-content:space-between;align-items:center;
    font-weight:700;font-size:14px;padding:6px 0}
  .sec-note{font-size:12.5px;color:var(--muted);font-style:italic;padding:4px 0 8px}

  /* ---- loading ---- */
  .loading-wrap{text-align:center;padding:56px 20px}
  .spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--teal);
    border-radius:50%;animation:uw-spin .8s linear infinite;margin:0 auto}
  @keyframes uw-spin{to{transform:rotate(360deg)}}

  /* ---- grade + money-alert animations ---- */
  @keyframes grade-f-flash{
    0%,100%{background:#ff0000;box-shadow:0 0 0 0 rgba(255,0,0,.95),0 0 24px rgba(255,0,0,.8)}
    50%{background:#ff5555;box-shadow:0 0 0 10px rgba(255,0,0,0),0 0 48px rgba(255,0,0,1)}
  }
  @keyframes grade-d-pulse{
    0%,100%{background:#ff3333;box-shadow:0 0 0 0 rgba(255,50,50,.7),0 0 12px rgba(255,50,50,.5)}
    50%{background:#ff6666;box-shadow:0 0 0 6px rgba(255,50,50,0),0 0 28px rgba(255,50,50,.8)}
  }
  .gf{animation:grade-f-flash .9s ease-in-out infinite!important;color:#fff!important}
  .gd{animation:grade-d-pulse 1.7s ease-in-out infinite!important;color:#fff!important}

  /* card/panel bleed — for vacancy cost and delinquency panels */
  @keyframes panel-bleed{
    0%,100%{box-shadow:none;border-left-color:#ff0000}
    50%{box-shadow:0 0 22px rgba(255,0,0,.22);border-left-color:#ff5555}
  }
  .panel-bleed{border-left:4px solid #ff0000!important;
    animation:panel-bleed 1.4s ease-in-out infinite!important}
  /* stat tile — occupancy red when vacancies exist */
  .card.bleed{border-left:4px solid #ff0000!important;
    animation:panel-bleed 1.4s ease-in-out infinite!important}
  /* unit row background tint for bleeding rows */
  tr.row-alert{background:rgba(255,0,0,.06)!important}
  tr.row-alert:hover{background:rgba(255,0,0,.12)!important}
  /* vacant tag → pulsing red (overrides amber default) */
  .tag.vacant{background:rgba(255,0,0,.18)!important;color:#ff4444!important;
    font-weight:800!important;animation:grade-d-pulse 1.6s ease-in-out infinite!important}
  /* past-due dollar amount inline — outline glow, no fill so text stays readable */
  @keyframes past-due-glow{
    0%,100%{box-shadow:0 0 0 1px #ff0000,0 0 4px rgba(255,0,0,.6);border-color:#ff0000}
    50%{box-shadow:0 0 0 1px #ff4444,0 0 10px rgba(255,0,0,0),0 0 14px rgba(255,0,0,.7);border-color:#ff5555}
  }
  .past-due{color:#ff2222;font-weight:800;background:rgba(255,0,0,.06);border:1.5px solid #ff0000;
    border-radius:4px;padding:1px 7px;display:inline-block;
    animation:past-due-glow 1s ease-in-out infinite;font-size:12px}
  /* animated loss/total dollar amounts in panels */
  .amt-bleed{animation:grade-f-flash 1s ease-in-out infinite;display:inline-block;
    padding:2px 10px;border-radius:8px;background:rgba(255,0,0,.12)}
  /* overdue inspection text in unit rows */
  .overdue-txt{color:#ff3333!important;font-weight:800;
    animation:grade-d-pulse 1.5s ease-in-out infinite;display:inline-block}
  /* never-inspected badge */
  .b-never{background:rgba(255,0,0,.18)!important;color:#ff2222!important;
    font-weight:900!important;animation:grade-f-flash 1.1s ease-in-out infinite!important}
  .loading-wrap .lmsg{margin-top:15px;font-size:14px;font-weight:600;color:var(--muted)}

  /* ---- info tooltips & FAQ ---- */
  .infotip{display:inline-flex;align-items:center;justify-content:center;background:none;
    border:0;padding:0;margin-left:4px;color:var(--muted);cursor:pointer;font-size:13px;
    line-height:1;vertical-align:middle}
  .infotip:hover{color:var(--teal)}
  .faq details{border-bottom:1px solid var(--line);padding:11px 0}
  .faq details:last-child{border-bottom:0}
  .faq summary{cursor:pointer;font-weight:650;font-size:14px;list-style:none;display:flex;gap:7px}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary:before{content:'+';color:var(--teal);font-weight:800;width:12px;display:inline-block}
  .faq details[open] summary:before{content:'\2212'}
  .faq .faq-a{font-size:13px;line-height:1.65;color:var(--muted);margin:8px 0 2px 19px}
