:root{--black:#0C1014;--navy:#1A2837;--ice:#A8D7F3;--steel:#2F4D64;--paper:#F2F6F8;--line:#DCE4EA;--ink:#0C1014;--muted:#5E6E7A;--ok:#1E7F4F;--red:#B3261E;--gold:#E4B84A}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#fff;font-size:15px;line-height:1.45;padding-bottom:env(safe-area-inset-bottom)}
.screen{max-width:1180px;margin:0 auto;padding:16px 16px 40px}
.hidden{display:none!important}
.eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--steel)}
.muted{color:var(--muted)}.center{text-align:center}.soft{font-weight:400;letter-spacing:0;text-transform:none}
/* sign in */
#signin{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--black)}
.signin-card{background:#fff;border-radius:14px;padding:26px 22px;width:100%;max-width:380px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.signin-logo{height:86px;display:block;margin:0 auto 14px}
.signin-card h1{font-size:22px;font-weight:800;letter-spacing:-.01em;margin:2px 0 4px}
.signin-card p{margin-bottom:14px}
/* letterhead */
.lh{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--navy);padding-bottom:12px;margin-bottom:12px;gap:12px}
.lock{display:flex;align-items:center;gap:10px}.logo{height:46px;width:auto}
.lh h1{font-size:18px;font-weight:800;letter-spacing:-.01em}
.who{text-align:right;font-size:13px;font-weight:700}.who .link{display:block;margin-left:auto}
.link{background:none;border:0;color:var(--steel);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;padding:2px 0}
.tabs{display:flex;gap:6px;margin-bottom:16px;position:sticky;top:0;background:#fff;padding:6px 0;z-index:5}
.tab{flex:1;font:inherit;font-weight:700;font-size:14px;padding:12px 8px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--steel);cursor:pointer}
.tab.on{background:var(--navy);border-color:var(--navy);color:#fff}
a.tab{display:block;box-sizing:border-box;text-align:center;text-decoration:none;line-height:normal}
.tabpane{display:none}.tabpane.on{display:block}
/* hero */
.hero{background:var(--black);color:#fff;border-radius:12px;padding:18px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:16px;align-items:end;margin-bottom:6px}
.hero .eyebrow{color:var(--ice)}.hero h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:4px 0 8px}
.stat .n{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1;margin-top:6px}.stat .l{font-size:12px;color:#B7C4CE;margin-top:4px}.stat.ice .n{color:var(--ice)}
.weeknav{display:flex;gap:6px}.weeknav button{background:transparent;border:1px solid #3B4B5A;color:#fff;border-radius:6px;padding:8px 10px;font:inherit;font-size:12px;cursor:pointer;min-height:36px}
.mgrhero{grid-template-columns:1fr auto;align-items:center}
/* sections & cards */
.sec{display:flex;align-items:center;gap:12px;margin:22px 0 10px}.sec:after{content:"";flex:1;height:1px;background:var(--line)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}.card.white{background:#fff}.card.flush{padding:0;overflow:auto}
/* forms */
.form{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.span2{grid-column:span 2}
.f{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
.f label{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.f input,.f select,.f textarea{font:inherit;font-size:16px;padding:11px 12px;min-height:46px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}
.f input:focus,.f select:focus{outline:2px solid var(--ice);border-color:var(--steel)}
.f input[readonly]{background:var(--paper)}
.pinbox{font-size:26px!important;letter-spacing:.5em;text-align:center}
.btn{font:inherit;font-weight:700;font-size:15px;padding:12px 18px;min-height:46px;border-radius:8px;border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer}
.btn:hover{background:var(--black)}.btn.ghost{background:#fff;color:var(--navy)}.btn.danger{border-color:var(--red);color:var(--red);background:#fff}.btn.sm{padding:6px 10px;min-height:36px;font-size:13px}.btn.wide{width:100%}
.btn:disabled{opacity:.5;cursor:default}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.note{font-size:12px;color:var(--muted);margin-top:8px}.err{color:var(--red);font-size:12px;font-weight:700;min-height:16px;margin:4px 0}
/* tables */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--navy);padding:10px 12px;font-weight:700}
th.r,td.r{text-align:right}td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr.total td{font-weight:800;background:var(--paper);border-top:2px solid var(--navy)}
td.addr,.addr{color:var(--muted);font-size:12px}
.tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:4px;background:#E3EEF6;color:var(--steel)}.tag.peak{background:#E9E9EC;color:#333}.tag.flat{background:#E3F4EA;color:var(--ok)}
.pay{color:var(--ok);font-weight:800}
.empty{padding:26px;text-align:center;color:var(--muted);font-size:13px}
/* podium */
.podium{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:12px;align-items:end;padding:8px 4px 2px}
.pod{border-radius:12px;padding:16px 14px 14px;text-align:center;color:#fff;position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(12,16,20,.18)}
.pod:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 50% -10%,rgba(255,255,255,.28),transparent 60%);pointer-events:none}
.pod .medal{width:44px;height:44px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;font-weight:800;font-size:17px;border:3px solid rgba(255,255,255,.55);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.pod .who2{font-weight:800;font-size:17px}.pod .meta{font-size:11px;opacity:.85;margin:2px 0 8px}.pod .big{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1}
.pod .payout{margin-top:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}.pod .payout b{display:block;font-size:16px;letter-spacing:0;text-transform:none;margin-top:2px}
.pod.p1{background:linear-gradient(160deg,#1A2837,#0C1014);min-height:230px;border:2px solid var(--gold)}.pod.p1 .medal{background:linear-gradient(145deg,#FFE58A,#C89A22);color:#3B2A00}.pod.p1 .big,.pod.p1 .payout b{color:#F5D77A}
.pod.p2{background:linear-gradient(160deg,#2F4D64,#1A2837);min-height:200px}.pod.p2 .medal{background:linear-gradient(145deg,#F2F6F8,#A8B4BD);color:#1A2837}.pod.p2 .big,.pod.p2 .payout b{color:var(--ice)}
.pod.p3{background:linear-gradient(160deg,#5A4635,#2B2119);min-height:180px}.pod.p3 .medal{background:linear-gradient(145deg,#E6B07E,#9C6531);color:#2B1A08}.pod.p3 .big,.pod.p3 .payout b{color:#F0C9A0}
.pod .crown{position:absolute;top:8px;right:10px;font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--gold)}
.pod.empty{background:var(--paper);color:var(--muted);box-shadow:none;border:1px dashed var(--line);padding:16px}.pod.empty:before{display:none}.pod.empty .medal{background:#fff;color:var(--muted);border-color:var(--line);box-shadow:none}
.rest{margin-top:14px;border-top:1px solid var(--line)}
.lead{display:grid;grid-template-columns:36px 1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.lead .rank{width:30px;height:30px;border-radius:50%;background:var(--navy);color:var(--ice);display:grid;place-items:center;font-weight:800;font-size:13px}
.lead .name{font-weight:700}.lead .sub{font-size:12px;color:var(--muted)}.lead .amt{font-weight:800;font-size:16px;text-align:right}.lead .payl{text-align:right;font-size:12px;color:var(--muted)}.lead .payl b{display:block;color:var(--ok);font-size:14px}
/* manager lists */
.reps{display:flex;flex-direction:column;gap:8px}
.rep{display:grid;grid-template-columns:1.4fr 90px 110px auto;gap:8px;align-items:center}
.rep input:not([type=checkbox]){font:inherit;font-size:16px;padding:9px 10px;min-height:44px;border:1px solid var(--line);border-radius:8px;width:100%}
.rep label.chk{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}.rep input[type=checkbox]{width:20px;height:20px;accent-color:var(--steel)}
/* modals */
.ov{position:fixed;inset:0;background:rgba(12,16,20,.7);display:none;align-items:center;justify-content:center;z-index:50;padding:16px}.ov.on{display:flex}
.modal{background:#fff;border-radius:14px;padding:20px;width:100%;max-width:360px;box-shadow:0 20px 60px rgba(0,0,0,.4)}.modal.wide{max-width:620px}
.modal h3{font-size:17px;font-weight:800;margin:4px 0 6px}.modal p{font-size:13px;color:var(--muted);margin-bottom:12px}
.modal .pinbox{width:100%;padding:12px;border:2px solid var(--line);border-radius:8px;margin-bottom:8px;font:inherit}
.modal .row{display:flex;gap:8px;margin-top:8px}.modal .row .btn{flex:1}
.extable{max-height:55vh;overflow:auto;margin-bottom:6px}.extable table{width:100%}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--black);color:var(--ice);padding:10px 16px;border-radius:8px;font-weight:700;font-size:13px;opacity:0;transition:.25s;pointer-events:none;z-index:60;white-space:nowrap}.toast.show{opacity:1}
.foot{margin-top:36px;border-top:1px solid var(--line);padding-top:12px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
#live{color:var(--ok);font-weight:700}#live.off{color:var(--red)}
/* mobile */
@media(max-width:860px){.hero{grid-template-columns:1fr 1fr}.hero>div:first-child{grid-column:span 2}.stat .n{font-size:28px}.form{grid-template-columns:1fr 1fr}}
@media(max-width:600px){
  .form{grid-template-columns:1fr}.span2{grid-column:span 1}
  .hero{padding:16px}.hero .stat:last-child{grid-column:span 2}
  .podium{grid-template-columns:1fr;gap:10px}.podium .pod{min-height:0}.podium .p1{order:0}.podium .p2{order:1}.podium .p3{order:2}
  .lead{grid-template-columns:36px 1fr auto}.lead .payl{grid-column:2/4;text-align:left}.lead .payl b{display:inline;margin-left:6px}
  .rep{grid-template-columns:1fr 1fr;grid-template-areas:"name name" "rate pin" "act act"}.rep .i-name{grid-area:name}.rep .i-rate{grid-area:rate}.rep .i-pin{grid-area:pin}.rep .act{grid-area:act;display:flex;justify-content:space-between}
  table,tbody,tr,td{display:block;width:100%}thead{display:none}
  tr{border:1px solid var(--line);border-radius:10px;margin:10px;padding:6px 0;background:#fff}
  td{border:0;padding:6px 14px;display:flex;justify-content:space-between;gap:10px;align-items:baseline}
  td:before{content:attr(data-l);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);flex:0 0 auto}
  td[data-l=""]:before{display:none}td.main{display:block}td.empty{display:block;text-align:center}
  tr.total{background:var(--paper);border-color:var(--navy)}
  .extable table,.extable tbody,.extable tr,.extable td{display:revert;width:auto}.extable thead{display:table-header-group}.extable tr{border:0;margin:0;border-radius:0;padding:0}.extable td{display:table-cell;border-bottom:1px solid var(--line);padding:9px 8px}.extable td:before{display:none}.extable .hm{display:none!important}
  .modal.wide{max-width:100%}
}

/* ServiceTitan schedule */
.syncnote{font-size:11px;color:var(--muted);margin-left:auto}
.job{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}
.job:last-child{border-bottom:0}
.job .t{font-size:12px;color:var(--muted)}.job .n{font-size:15px;font-weight:700}.job .a{font-size:12px;color:var(--muted)}.job .d{font-size:12px;color:var(--steel)}
.job .sold{font-size:11px;font-weight:700;letter-spacing:.06em;padding:5px 9px;border-radius:6px;background:#E3F4EA;color:var(--ok);white-space:nowrap}
.job.open{display:block;background:#EEF6FC;border-left:3px solid var(--steel)}
.job.open .grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.job.open .grid .f{margin:0}.job.open .row{display:flex;gap:8px;margin-top:10px}.job.open .row .btn{flex:1}.job.open .row .btn.go{flex:2}
.hit{padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-top:8px;cursor:pointer}
.hit:hover{border-color:var(--steel)}.hit .n{font-weight:700}.hit .a{font-size:12px;color:var(--muted)}.hit .j{font-size:12px;color:var(--steel);margin-top:2px}
.rep{grid-template-columns:1.2fr 80px 100px 1.2fr auto}
@media(max-width:600px){.rep{grid-template-columns:1fr 1fr;grid-template-areas:"name name" "rate pin" "st st" "act act"}.rep .i-st{grid-area:st}}
/* payout hidden unless manager unlocked */
body:not(.mgrmode) .payonly{display:none!important}

.rb{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.1em;padding:2px 6px;border-radius:4px;margin-left:6px;vertical-align:middle}
.rb.lead{background:var(--navy);color:var(--ice)}.rb.assist{background:#E3EEF6;color:var(--steel)}
.pod .rb.lead{background:rgba(255,255,255,.16);color:#fff}.pod .rb.assist{background:rgba(255,255,255,.12);color:#DDE8F0}
.team{font-size:12px;color:var(--muted)}
.rep{grid-template-columns:1.1fr 70px 90px 1fr 1fr auto}
@media(max-width:600px){.rep{grid-template-columns:1fr 1fr;grid-template-areas:"name name" "rate pin" "st st" "role role" "act act"}.rep .i-role{grid-area:role}}

.who .title{display:block;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em}
.mypayhero{grid-template-columns:1.2fr 1fr 1fr}
.mp{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.mp:last-child{border-bottom:0}.mp .d{font-size:12px;color:var(--muted)}.mp .n{font-weight:700}.mp .amt{font-weight:800;color:var(--ok);white-space:nowrap}
.mp.total{background:var(--paper);border-top:2px solid var(--navy);font-weight:800}
@media(max-width:600px){.mypayhero{grid-template-columns:1fr 1fr}.mypayhero>div:first-child{grid-column:span 2}}

/* goal bar */
.goalwrap{grid-column:span 3;order:5}
.goalrow{display:flex;justify-content:space-between;align-items:baseline}
.goaltxt{font-size:13px;font-weight:700;color:#fff}
.goalbar{height:12px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden;margin-top:6px}
.goalfill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--ice),#5FA8DD);width:0%;transition:width .8s ease}
.goalfill.hit{background:linear-gradient(90deg,#7BE3A5,#1E7F4F)}
/* contest card */
.contest{background:linear-gradient(135deg,#123,#0C1014);border:1px solid var(--gold);border-radius:12px;padding:14px 16px;color:#fff;margin-bottom:14px}
.contest .cname{font-weight:800;font-size:16px}.contest .cmeta{font-size:12px;color:#C9B77A;margin:2px 0 8px}
.contest .crow{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.contest .crow:last-child{border:0}.contest .crow b{color:var(--gold)}
/* celebration */
.celeb{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:70;pointer-events:none}
.celeb.on{display:flex}
.celebcard{background:var(--black);color:#fff;border:2px solid var(--gold);border-radius:16px;padding:22px 30px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.5);animation:pop .4s ease}
.celebcard .big{font-size:26px;font-weight:800;color:#F5D77A;margin:6px 0}
@keyframes pop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
.confetti{position:fixed;top:-10px;width:10px;height:16px;z-index:69;animation:fall linear forwards;pointer-events:none}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg)}}
/* milestones */
.badge{display:inline-flex;align-items:center;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;margin:4px 6px 0 0}
.badge.won{background:#FFF7E0;border-color:var(--gold)}
.msrow{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.msrow:last-child{border:0}.msrow b{font-size:15px}
/* TV mode */
body.tv .tabs,body.tv .lh .who,body.tv #log,body.tv #follow,body.tv #mgr,body.tv #mypay,body.tv .foot{display:none!important}
body.tv{background:var(--black)}
body.tv .wrap-tv{max-width:1400px}
body.tv .screen{padding:20px 30px}
body.tv .lh{border-color:#2A3644}body.tv .lh h1,body.tv .lh .eyebrow{color:#fff}
body.tv .sec .eyebrow{color:var(--ice)}body.tv .sec:after{background:#2A3644}
body.tv .card.white{background:#101820;border-color:#2A3644;color:#fff}
body.tv td{border-color:#22303E}body.tv td.addr,body.tv .addr{color:#8FA3B3}
body.tv .hero{border:1px solid #2A3644}
body.tv .lead .name{color:#fff}
body.tv .exitTv{position:fixed;bottom:14px;right:14px;z-index:80;opacity:.5}
.ticker{overflow:hidden;white-space:nowrap;background:var(--navy);color:var(--ice);border-radius:8px;padding:8px 0;margin-top:14px;display:none}
body.tv .ticker{display:block}
.ticker span{display:inline-block;padding-left:100%;animation:tick 25s linear infinite;font-weight:700}
@keyframes tick{to{transform:translateX(-100%)}}
@media(max-width:860px){.goalwrap{grid-column:span 2;order:0}}

/* ============ POLISH PASS ============ */
.lh{align-items:flex-start;padding-bottom:10px;margin-bottom:10px}
.who{text-align:right;line-height:1.3}
.who .wname{font-weight:800;font-size:14px}
.who .title{display:block;margin-top:1px}
.who .wlinks{display:flex;gap:6px;justify-content:flex-end;align-items:center;margin-top:3px;color:var(--line)}
.tab{white-space:nowrap;padding:11px 6px;font-size:13.5px}
.tabs{box-shadow:0 6px 12px -10px rgba(12,16,20,.25)}
.sec{margin:20px 0 10px}
.card{padding:14px}
.hero{gap:12px;padding:16px}
.hero h2{margin:2px 0 6px}
.weeknav button{padding:6px 9px;min-height:32px}
.stat .n{font-size:30px}
.goalwrap{margin-top:2px}
.goalbar{height:10px}
.contest{margin:14px 0 0}
#contestWrap:not(:empty){margin-bottom:0}
.estform{grid-template-columns:2fr 1fr auto;align-items:end}
.f{margin-bottom:6px}
.note{line-height:1.5}
.job{padding:11px 13px}
.pod{padding:14px 12px 12px}
.pod .medal{width:38px;height:38px;font-size:15px;margin-bottom:6px}
.pod .big{font-size:23px}
@media(max-width:600px){
  .screen{padding:10px 12px 32px}
  .lh{gap:8px}
  .logo{height:40px}
  .lh h1{font-size:16px}
  .lh .eyebrow{font-size:9.5px;letter-spacing:.14em}
  .tabs{gap:5px;padding:6px 0 8px}
  .tab{font-size:13px;padding:10px 4px;border-radius:7px}
  .hero{grid-template-columns:1fr 1fr;gap:10px 12px;padding:14px;border-radius:12px}
  .hero>div:first-child{grid-column:span 2}
  .hero h2{font-size:21px}
  .goalwrap{grid-column:span 2;order:0}
  .goaltxt{font-size:12.5px}
  .goalPace{font-size:11px}
  .stat .n{font-size:26px}
  .stat .l{font-size:11px}
  .hero .stat:last-child{grid-column:span 2;display:flex;align-items:baseline;gap:10px}
  .hero .stat:last-child .n{font-size:22px}
  .sec{margin:18px 0 8px}
  .sec .eyebrow{font-size:10px}
  .card{padding:13px;border-radius:11px}
  .card.flush{border-radius:11px}
  tr{margin:8px;border-radius:9px}
  td{padding:5px 12px}
  td.main{padding-top:7px}
  .btn.danger.sm{padding:7px 12px;min-height:34px;width:auto;align-self:flex-end}
  .estform{grid-template-columns:1fr 1fr}
  .estform .f:first-child{grid-column:span 2}
  .podium{gap:9px}
  .pod{border-radius:11px}
  .contest{padding:12px 14px}
  .mp{padding:10px 13px}
  .rep{gap:6px}
  .actions{gap:8px}
  .foot{flex-direction:column;gap:4px;font-size:11px;margin-top:26px}
  .ov{padding:12px}
}
.who .wlinks{white-space:nowrap;font-size:12px}
.who .wlinks .link{font-size:12px;padding:2px 1px}
@media(max-width:600px){.who .wname{font-size:13px}.who .title{font-size:10px}}

/* ===== fit guarantees (small phones) ===== */
html,body{overflow-x:hidden;max-width:100%}
.contest .cmeta{white-space:normal;line-height:1.5}
.contest .crow{gap:8px}.contest .crow span{min-width:0;overflow-wrap:anywhere}
.contest .cname{overflow-wrap:anywhere}
.goalrow{gap:8px;flex-wrap:wrap}.goaltxt{overflow-wrap:anywhere}
.hero,.card,.contest,.pod,.modal{max-width:100%;box-sizing:border-box}
td,.job,.mp,.hit{min-width:0}
.job .n,.job .a,.job .d,td.main b,.addr{overflow-wrap:anywhere}
.pod .who2,.lead .name{overflow-wrap:anywhere}
@media(max-width:380px){
  .tab{font-size:12px;padding:9px 2px}
  .hero h2{font-size:19px}
  .weeknav button{padding:5px 7px;font-size:11px}
  .stat .n{font-size:23px}
  .goaltxt{font-size:11.5px}
  .contest .cname{font-size:15px}
  .pod .big{font-size:21px}
}
/* milestone overlay */
.milecard{background:linear-gradient(160deg,#2A2410,#0C0A04);border:2px solid var(--gold)}
.milecard .big{color:#FFE58A}

.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ms{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:10px 12px;text-align:center}
.ms .k{font-size:19px;font-weight:800}
.ms .l{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:2px}
@media(max-width:380px){.statgrid{gap:7px}.ms .k{font-size:17px}}

.celebcard.goal{border-color:#2FBF71;background:linear-gradient(160deg,#0B2A1A,#06130C)}
.celebcard.goal .big{color:#7BE3A5}
.celebcard.crown{border-color:#B892FF;background:linear-gradient(160deg,#221338,#0C0714)}
.celebcard.crown .big{color:#D9C4FF}

/* goal bar v2 — bright green, high visibility */
.goalbar{height:13px;background:rgba(255,255,255,.20);border:1px solid rgba(255,255,255,.12)}
.goalfill{background:linear-gradient(90deg,#16C15B,#4ADE80)}
.goalfill.hit{background:linear-gradient(90deg,#22C55E,#86EFAC);box-shadow:0 0 14px rgba(74,222,128,.55)}
.goalrow{align-items:baseline}
@media(max-width:600px){
  .goalwrap{padding:2px 0 4px}
  .goalbar{height:14px;margin-top:7px;border-radius:999px}
  .goaltxt{font-size:13px;font-weight:800}
  #goalPace{font-size:12px;margin-top:5px}
}
/* goal bar v3 — pinned geometry, bright green, ends all cascade fights */
.goalbar{position:relative;height:14px;border-radius:999px;background:rgba(255,255,255,.22);border:0;overflow:hidden;margin-top:7px}
.goalfill{position:absolute;top:0;bottom:0;left:0;height:auto;border-radius:999px;background:linear-gradient(90deg,#16C15B,#4ADE80);transition:width .8s ease}
.goalfill.hit{background:linear-gradient(90deg,#22C55E,#86EFAC);box-shadow:0 0 12px rgba(74,222,128,.6)}
@media(max-width:600px){.goalbar{height:15px}}

/* ---------- Follow-ups ---------- */
.tab{min-width:0;overflow:hidden;text-overflow:ellipsis}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:inherit;font-weight:700;font-size:13px;padding:8px 14px;min-height:38px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--steel);cursor:pointer}
.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.fusearch{margin:10px 0}
.fu{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px}
.fu .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.fu .cl{font-weight:800;font-size:16px;overflow-wrap:anywhere}
.fu .amt{font-weight:800;white-space:nowrap;text-align:right}
.st{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.08em;padding:2px 7px;border-radius:4px;margin-left:6px;vertical-align:2px}
.st.open{background:#E3EEF6;color:var(--steel)}.st.sold{background:#E3F4EA;color:var(--ok)}.st.lost{background:#FBE4E2;color:var(--red)}
.fu .meta{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.5}
.fu .src{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;padding:1px 6px;border-radius:4px;background:#EEF6FC;color:var(--steel)}
.fu .dem{margin-top:8px;font-size:13px;line-height:1.45;background:#FFF7E6;border-left:3px solid var(--gold);border-radius:6px;padding:7px 10px;color:#5C4400}
.fu .dem b{color:#3D2E00}
.fu .obj{display:inline-block;margin-top:6px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#FBE4E2;color:var(--red)}
.fu .links{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.fu .links a{display:inline-flex;align-items:center;gap:4px;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;color:var(--navy);font-weight:700;font-size:13px;text-decoration:none;background:var(--paper)}
.fu .hist{font-size:12px;color:var(--muted);margin-top:8px}
.fu .notes{white-space:pre-wrap;font-size:12.5px;color:var(--ink);background:var(--paper);border-radius:8px;padding:8px 10px;margin-top:6px;max-height:9em;overflow:auto}
.fu .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.fu .pnl{margin-top:10px;background:var(--paper);border-radius:8px;padding:10px;display:grid;gap:8px}
.fu .pnl .row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:600px){.fu .pnl .row2{grid-template-columns:1fr}}
@media(max-width:600px){nav.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}nav.tabs .tab{padding:9px 4px;font-size:13px}}
