:root{
  --bg:#103430; --panel:#15433d; --card:#184b45; --line:#235a52;
  --ink:#f3e8ca; --muted:#b9c7ae; --gold:#cda23a; --gold-bright:#e7c869;
  --teal:#37a890; --rust:#c06a34; --olive:#8a9a55;
  --font:Inter,system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.45}
strong{font-weight:600}
a{color:var(--gold-bright);text-decoration:none}
a:hover{text-decoration:underline}
em{font-style:normal;color:var(--gold-bright)}

.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.7rem 1.1rem;background:var(--panel);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.7rem}
.brand img{width:40px;height:40px;border-radius:8px;object-fit:cover}
.brand strong{font-family:MedievalSharp,serif;font-size:1.3rem;display:block;color:var(--gold-bright)}
.brand span{color:var(--muted);font-size:.78rem}
.hint{color:var(--muted);font-size:.78rem;text-align:right}

.controls{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;padding:.9rem 1.1rem}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{padding:.4rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--card);
  color:var(--ink);cursor:pointer;font-size:.85rem;font-family:var(--font)}
.chip:hover{border-color:var(--gold)}
.chip.active{background:var(--gold);color:#241a06;border-color:var(--gold);font-weight:600}
.search{display:flex;gap:.4rem;flex:1;min-width:220px}
.search input{flex:1;padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;
  background:#0e2c28;color:var(--ink);font-family:var(--font)}
.btn{padding:.5rem .9rem;border:1px solid var(--gold);border-radius:8px;background:var(--gold);
  color:#241a06;font-weight:600;cursor:pointer;font-family:var(--font)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.sort{color:var(--muted);font-size:.82rem;display:flex;align-items:center;gap:.4rem}
.sort select{padding:.4rem .5rem;border:1px solid var(--line);border-radius:8px;background:#0e2c28;color:var(--ink)}

.tiles{display:flex;flex-wrap:wrap;gap:.7rem;padding:.2rem 1.1rem 0}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;min-width:92px}
.tile .n{display:block;font-size:1.5rem;font-weight:700}
.tile .l{color:var(--muted);font-size:.72rem}
.tile.high .n{color:var(--rust)} .tile.low .n{color:var(--gold-bright)}
.tile.ok .n{color:var(--teal)} .tile.uplift{min-width:200px} .tile.uplift .n{color:var(--gold-bright)}

.status{padding:.6rem 1.1rem;color:var(--muted)}
.bulkbar{display:flex;align-items:center;gap:.8rem;padding:.4rem 1.1rem;color:var(--muted);font-size:.82rem}
.bulkbar .phase2{color:var(--olive);font-style:italic}

.tablewrap{overflow-x:auto;padding:0 .6rem 2rem}
table{width:100%;border-collapse:collapse;min-width:900px}
thead th{position:sticky;top:0;background:var(--panel);text-align:left;font-weight:600;z-index:2;
  font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);
  padding:.55rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}
tbody td{padding:.5rem .6rem;border-bottom:1px solid rgba(35,90,82,.5);vertical-align:middle}
tbody tr:hover{background:rgba(24,75,69,.5)}
.c-num,.c-market{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.c-img img{width:42px;height:42px;object-fit:cover;border-radius:6px;background:#0e2c28}
.c-img .noimg{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;
  color:var(--gold);background:#0e2c28;border-radius:6px}
.c-title{max-width:360px}
.c-title a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}
.cond{color:var(--muted);font-size:.8rem}
.yourprice{font-weight:600}
.market .mm{color:var(--gold-bright);font-weight:600}
.market .range{color:var(--muted);font-size:.8rem}
.delta.pos{color:var(--rust)} .delta.neg{color:var(--gold-bright)} .delta.zero{color:var(--muted)}

.badge{display:inline-block;padding:.22rem .7rem;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap;line-height:1.3}
.c-verdict,th.c-verdict{text-align:center}
.c-verdict .badge{min-width:90px}
.c-push,th.c-push{text-align:center;width:80px}
.badge.high{background:rgba(192,106,52,.2);color:#e2925f;border:1px solid var(--rust)}
.badge.low{background:rgba(231,200,105,.18);color:var(--gold-bright);border:1px solid var(--gold)}
.badge.ok{background:rgba(55,168,144,.18);color:#6fd0ba;border:1px solid var(--teal)}
.badge.insufficient,.badge.error{background:rgba(185,199,174,.12);color:var(--muted);border:1px solid var(--line)}
.spin{color:var(--muted);font-size:.8rem;font-style:italic}
.pushbtn{padding:.3rem .6rem;font-size:.78rem}
.foot{padding:1rem 1.1rem 2rem;color:var(--muted);font-size:.78rem;border-top:1px solid var(--line);max-width:70ch}

/* comparables sense-check link + drawer */
.viewcomps{background:none;border:none;color:var(--gold-bright);cursor:pointer;font:inherit;padding:0;text-decoration:underline dotted}
.viewcomps:hover{color:#fff}
.drawer{position:fixed;inset:0;z-index:20}
.drawer-back{position:absolute;inset:0;background:rgba(6,20,18,.6)}
.drawer-panel{position:absolute;top:0;right:0;height:100%;width:min(460px,92vw);background:var(--panel);
  border-left:1px solid var(--line);box-shadow:-8px 0 24px rgba(0,0,0,.4);display:flex;flex-direction:column}
.drawer-head{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--line)}
.drawer-head h2{margin:0 0 .25rem;font-family:MedievalSharp,serif;color:var(--gold-bright);font-size:1.1rem}
.drawer-meta{margin:0;color:var(--muted);font-size:.8rem}
.comps{list-style:none;margin:0;padding:.3rem 0;overflow:auto;flex:1}
.comps li{display:flex;gap:.6rem;align-items:baseline;padding:.45rem 1rem;border-bottom:1px solid rgba(35,90,82,.5)}
.comps .cp{font-weight:600;font-variant-numeric:tabular-nums;min-width:4.5rem;text-align:right;color:var(--ink)}
.comps .ct{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.comps .cc{color:var(--muted);font-size:.72rem;white-space:nowrap}
.comps li.out{opacity:.5}
.comps li.out .cp,.comps li.out .ct{text-decoration:line-through}
.comps li.out::after{content:"outlier";color:var(--rust);font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}
.comps li.mine{display:none}
.drawer-foot{margin:0;padding:.7rem 1rem;color:var(--muted);font-size:.72rem;border-top:1px solid var(--line)}

/* confirm modal */
.modal{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center}
.modal-back{position:absolute;inset:0;background:rgba(6,20,18,.65)}
.modal-box{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:12px;
  width:min(520px,92vw);max-height:84vh;overflow:auto;padding:1.2rem;box-shadow:0 12px 40px rgba(0,0,0,.5)}
.modal-box h2{margin:0 0 .6rem;font-family:MedievalSharp,serif;color:var(--gold-bright);font-size:1.2rem}
.cf-body{font-size:.9rem}
.cf-body ul{list-style:none;margin:.5rem 0;padding:0;max-height:38vh;overflow:auto}
.cf-body li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid rgba(35,90,82,.5)}
.cf-body .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-body .mv{white-space:nowrap;font-variant-numeric:tabular-nums}
.cf-body .mv .old{color:var(--muted);text-decoration:line-through;margin-right:.4rem}
.cf-body .mv .new{color:var(--gold-bright);font-weight:600}
.cf-warn{margin:.6rem 0 0;padding:.6rem .8rem;border-radius:8px;background:rgba(192,106,52,.15);
  border:1px solid var(--rust);color:#e2925f;font-size:.82rem}
.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}
.row-updated{color:var(--teal);font-size:.72rem;margin-left:.3rem}
@media (max-width:640px){.hint{display:none}}
