/* Rose and Thorn Project HQ. iPhone-crisp dark UI with one warm orange glow. */
:root{--bg:#0b0b0c;--card:rgba(28,28,30,.84);--card2:#2c2c2e;--card3:#3a3a3c;--line:rgba(255,255,255,.09);--ink:#f5f5f7;--muted:#a1a1a6;--orange:#ff8a3d;--amber:#ffb347;--green:#34c759;--red:#ff453a;--blue:#0a84ff;--glow:rgba(255,122,40,.38);
--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html,body{background:var(--bg);margin:0}
body{color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.42;-webkit-font-smoothing:antialiased;letter-spacing:-.011em;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body::after{content:"";position:fixed;left:50%;top:-240px;width:min(1000px,180vw);height:640px;transform:translateX(-50%);background:radial-gradient(closest-side,var(--glow),transparent 70%);pointer-events:none;z-index:0}
button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
a{color:var(--orange)}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
[hidden]{display:none!important}
.app{position:relative;z-index:1;max-width:760px;margin:0 auto;padding:14px max(16px,env(safe-area-inset-right,0px)) 124px max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:16px}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.03em;text-wrap:balance}
h1{font-size:clamp(2.1rem,8vw,3.1rem);line-height:1.02}
h2{font-size:1.45rem;line-height:1.1}
h3{font-size:1.05rem;font-weight:700;letter-spacing:-.015em}
p{margin:0}
.muted{color:var(--muted)}.small{font-size:.84rem;color:var(--muted)}
.cap{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--orange)}
.card{background:var(--card);backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border:1px solid var(--line);border-radius:24px;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:560px){.grid2{grid-template-columns:1fr}}
.btn{border:0;border-radius:999px;min-height:46px;padding:11px 20px;font-weight:700;background:var(--card2);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:transform .12s,opacity .12s}
.btn:active{transform:scale(.96)}
.btn.primary{background:linear-gradient(180deg,#ff9a52,#ff7a26);color:#1a0a00;box-shadow:0 8px 24px rgba(255,122,38,.35)}
.btn.green{background:var(--green);color:#03250f}.btn.red{background:rgba(255,69,58,.16);color:var(--red)}.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn.sm{min-height:36px;padding:7px 14px;font-size:.88rem}
.btn[disabled]{opacity:.4;pointer-events:none}
.icon-btn{border:0;background:var(--card2);border-radius:50%;width:36px;height:36px;display:grid;place-items:center}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 11px;font-size:.76rem;font-weight:700;background:var(--card2);color:var(--muted);white-space:nowrap}
.pill.o{background:rgba(255,138,61,.16);color:var(--orange)}.pill.g{background:rgba(52,199,89,.16);color:var(--green)}.pill.r{background:rgba(255,69,58,.16);color:var(--red)}.pill.b{background:rgba(10,132,255,.18);color:#64b0ff}
.seg{display:flex;background:rgba(118,118,128,.24);border-radius:12px;padding:3px;gap:2px;overflow-x:auto;scrollbar-width:none}
.seg button{flex:1;border:0;background:transparent;border-radius:9px;min-height:36px;font-size:.86rem;font-weight:700;color:var(--muted);padding:6px 12px;white-space:nowrap}
.seg button[aria-pressed="true"]{background:#636366;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.f{width:100%;border:1px solid var(--line);background:rgba(118,118,128,.16);border-radius:14px;padding:12px 14px;min-height:46px}
textarea.f{resize:vertical}
.f.mini{width:92px;min-height:38px;padding:6px 10px;text-align:right}
label.lbl{display:flex;flex-direction:column;gap:6px;font-size:.84rem;color:var(--muted)}
/* hero */
.hero{border-radius:30px;overflow:hidden;position:relative;min-height:330px;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;background:linear-gradient(160deg,#3a2414,#111) center/cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 25%,rgba(0,0,0,.9))}
.hero>*{position:relative;z-index:1}
.stages{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:14px}
.stages div{height:6px;border-radius:3px;background:rgba(255,255,255,.18)}
.stages div.on{background:linear-gradient(90deg,var(--amber),var(--orange));box-shadow:0 0 12px var(--glow)}
.stagelbl{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;font-size:.68rem;font-weight:700;color:var(--muted);margin-top:6px}
.stagelbl span.on{color:#fff}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px;min-width:0}
.tile b{display:block;font-size:1.45rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile span{font-size:.76rem;color:var(--muted)}
@media (max-width:420px){.tile b{font-size:1.15rem}}
/* tab bar */
nav.tabs{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:20;background:rgba(30,30,32,.8);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);border:1px solid var(--line);border-radius:26px;padding:6px;display:flex;gap:2px;box-shadow:0 14px 40px rgba(0,0,0,.55);width:max-content;max-width:calc(100vw - 20px);overflow-x:auto;scrollbar-width:none}
nav.tabs button{border:0;background:transparent;border-radius:20px;min-width:60px;min-height:50px;padding:6px 9px;color:var(--muted);font-size:.68rem;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:3px}
nav.tabs svg{width:22px;height:22px}
nav.tabs button[aria-current="page"]{color:var(--orange);background:rgba(255,138,61,.12)}
/* lists */
.line{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}
.line:last-child{border-bottom:0}
.q{font-size:.82rem;color:var(--muted)}
.amt{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.day{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid var(--line)}
.day .d{text-align:center;border-radius:14px;background:var(--card2);padding:8px 0;font-weight:800}
.day .d small{display:block;font-size:.66rem;color:var(--orange);font-weight:800;letter-spacing:.06em}
.upd{border-radius:22px;overflow:hidden;background:var(--card);border:1px solid var(--line)}
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2px}
.media-grid img,.media-grid video{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#000}
.upd .in{padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border-radius:18px;overflow:hidden}
.gallery button{border:0;padding:0;background:#000;position:relative}
.gallery img,.gallery video{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.gallery .tag{position:absolute;left:6px;top:6px}
.check{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.check:last-child{border-bottom:0}
.check input{width:24px;height:24px;accent-color:var(--orange);flex:none}
.stamp{border:2px solid var(--green);color:var(--green);border-radius:14px;padding:10px 14px;font-weight:800;text-align:center}
.banner{border-radius:18px;padding:14px 16px;background:linear-gradient(135deg,rgba(255,138,61,.22),rgba(255,138,61,.06));border:1px solid rgba(255,138,61,.35);display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ach{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ach div{text-align:center;border-radius:18px;padding:12px 6px;background:var(--card2);font-size:.72rem;font-weight:700;color:var(--muted)}
.ach div i{display:grid;place-items:center;width:40px;height:40px;margin:0 auto 6px;border-radius:50%;background:var(--card3);font-style:normal;font-size:1.1rem}
.ach div.on{color:#fff}.ach div.on i{background:linear-gradient(145deg,var(--amber),var(--orange));color:#1a0a00;box-shadow:0 0 16px var(--glow)}
.optcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.opt{border-radius:22px;overflow:hidden;background:var(--card);border:2px solid var(--line);text-align:left;padding:0;display:flex;flex-direction:column}
.opt[aria-pressed="true"]{border-color:var(--orange);box-shadow:0 0 0 4px rgba(255,138,61,.18)}
.opt img,.opt .ph{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:linear-gradient(135deg,#3a2414,#1c1c1e)}
.opt .in{padding:14px;display:flex;flex-direction:column;gap:4px}
.ba{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/3;background:#000;user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .after{clip-path:inset(0 0 0 50%)}
.ba .handle{position:absolute;top:0;bottom:0;left:50%;width:3px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.6)}
.ba .handle::after{content:"⇆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#fff;color:#000;display:grid;place-items:center;font-weight:800}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}
.ba .lab{position:absolute;bottom:10px;padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.6);font-size:.74rem;font-weight:700}
.proj{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:10px;text-align:left;width:100%;color:inherit;text-decoration:none}
.proj .th{width:72px;height:72px;border-radius:14px;background:linear-gradient(135deg,#3a2414,#1c1c1e) center/cover}
.toast{position:fixed;left:50%;transform:translate(-50%,16px);bottom:calc(92px + env(safe-area-inset-bottom,0px));background:rgba(44,44,46,.97);backdrop-filter:blur(20px);padding:12px 18px;border-radius:16px;font-weight:700;z-index:60;opacity:0;transition:all .25s;pointer-events:none;border:1px solid var(--line);max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.sheetwrap{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center}
.sheet{width:min(640px,100%);max-height:92vh;overflow:auto;background:#1c1c1e;border-radius:26px 26px 0 0;padding:12px max(18px,env(safe-area-inset-left,0px)) calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px;border:1px solid var(--line)}
.grab{width:40px;height:5px;border-radius:3px;background:var(--card3);align-self:center}
.qr{background:#fff;border-radius:18px;padding:14px;align-self:center}
canvas#fx{position:fixed;inset:0;pointer-events:none;z-index:70}
.fade{animation:f .28s ease}@keyframes f{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cert{background:#f7f3ea;color:#24231f;border-radius:6px;padding:48px 40px;text-align:center;display:flex;flex-direction:column;gap:14px;font-family:Georgia,serif;border:10px double #c9b48a}
.cert h1{font-family:Georgia,serif;font-weight:400;letter-spacing:0;color:#24231f}
.cert p{font-family:Georgia,serif}
@media print{body::after,nav.tabs,.noprint{display:none!important}body{background:#fff}.app{padding:0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:520px){nav.tabs{width:calc(100vw - 20px);justify-content:space-between}nav.tabs button{min-width:0;flex:1 1 0;padding:6px 2px;font-size:.62rem;white-space:nowrap}}
/* Books, calendar, portfolio */
.tbl{width:100%;border-collapse:collapse;font-size:.86rem}.tbl th{text-align:left;color:var(--muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding:6px 4px;border-bottom:1px solid var(--line)}
.tbl td{padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:top}.tbl .n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.tblwrap{overflow-x:auto;margin:0 -4px}
.navrow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.navrow .btn{padding:8px 2px;font-size:.7rem;flex-direction:column;gap:2px;min-height:54px;line-height:1.1;white-space:normal;text-align:center}.navrow .btn{justify-content:center}
.receipt{width:100%;max-height:60vh;object-fit:contain;border-radius:12px;background:#000}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pair img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
/* Estimate / invoice: styled like the business card */
.doc.paper{position:relative;overflow:hidden;background:#ece2d1 url(/paper.jpg) 0 0/400px 200px repeat;color:#2e2a24;border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.45);font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-size:1.06rem;line-height:1.45;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.doc .art{position:absolute;left:0;top:0;width:100%;height:430px;pointer-events:none;z-index:0}
.doc .art2{position:absolute;right:12px;bottom:8px;width:72px;height:72px;pointer-events:none;z-index:0}
.doc .in{position:relative;z-index:1;padding:44px 52px 36px 70px;display:flex;flex-direction:column;gap:22px}
.doc .vphone{position:absolute;left:18px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left center;margin-left:14px;font-style:italic;font-size:1.5rem;letter-spacing:.04em;color:#2e2a24;z-index:1;white-space:nowrap}
.doc .mast{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}
.doc .mast img{width:150px;height:auto;mix-blend-mode:multiply;margin-bottom:4px;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 80%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 80%,transparent 100%)}
.doc .nm{font-style:italic;font-weight:500;font-size:1.9rem;letter-spacing:.09em;line-height:1.1}
.doc .fl{font-size:.92rem;letter-spacing:.85em;margin-right:-.85em;margin-top:2px}
.doc .est{font-style:italic;font-size:.95rem;color:#5a5246;margin-top:4px}
.doc .meta{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:start;border-top:1px solid rgba(46,42,36,.35);border-bottom:1px solid rgba(46,42,36,.35);padding:16px 0}
.doc .meta .k{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#6b6255;margin-bottom:2px;font-family:Georgia,serif}
.doc .meta b{font-weight:600;font-size:1.12rem}
.doc .meta .rt{text-align:right}
.doc .ttl{text-align:center;display:flex;flex-direction:column}
.doc .ttl h1{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500;font-size:2.4rem;letter-spacing:.02em;color:#2e2a24;margin:0;line-height:1}
.doc .ttl span{font-size:.85rem;color:#5a5246;letter-spacing:.06em}
.doc table{width:100%;border-collapse:collapse}
.doc th{text-align:left;font-family:Georgia,serif;font-weight:400;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#6b6255;border-bottom:1px solid #2e2a24;padding:6px 4px}
.doc td{border-bottom:1px dashed rgba(46,42,36,.28);padding:9px 4px;vertical-align:top}
.doc .n{text-align:right;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.doc .tot{margin-left:auto;min-width:280px;display:flex;flex-direction:column;gap:5px;font-variant-numeric:lining-nums tabular-nums}
.doc .tot div{display:flex;justify-content:space-between;gap:18px}
.doc .tot .g{font-weight:600;font-size:1.25rem;border-top:1px solid #2e2a24;padding-top:6px;margin-top:2px}
.doc .sched{border:1px solid rgba(46,42,36,.35);border-radius:3px;padding:14px 18px;background:rgba(255,250,240,.35);display:flex;flex-direction:column;gap:8px}
.doc .sched h3{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500;font-size:1.3rem;color:#2e2a24;margin:0}
.doc .sched div{display:flex;justify-content:space-between;gap:16px;font-variant-numeric:lining-nums tabular-nums}.doc .sched em{display:block;font-size:.88rem;color:#6b6255}
.doc .sign{display:grid;grid-template-columns:2fr 1fr;gap:28px;margin-top:10px;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#6b6255;font-family:Georgia,serif}.doc .sign span{display:block;border-bottom:1px solid #2e2a24;height:34px;margin-bottom:4px}
.doc .seal{text-align:center;font-style:italic;font-size:1.1rem;color:#7a3a1f}
.doc .pay{text-align:center;font-style:italic}
.doc footer{text-align:center;font-size:.88rem;color:#4a4339;border-top:1px solid rgba(46,42,36,.35);padding-top:14px}
@media (max-width:600px){.doc .in{padding:30px 18px 26px}.doc .vphone,.doc .art2{display:none}.doc .meta{grid-template-columns:1fr 1fr}.doc .ttl{grid-column:1/-1;order:-1}.doc .nm{font-size:1.5rem}.doc .tot{min-width:0;width:100%}.doc{font-size:1rem}}
@media print{.doc.paper{box-shadow:none;border-radius:0}.toast,.sheetwrap,canvas#fx{display:none!important}@page{margin:8mm}}
/* Signature pad */
.sigpad{position:relative;border:1px dashed var(--line);border-radius:14px;background:rgba(255,255,255,.03);height:150px;touch-action:none}
.sigpad canvas{width:100%;height:100%;display:block;touch-action:none}
.sigpad span{position:absolute;left:14px;bottom:10px;color:var(--muted);font-size:.8rem;pointer-events:none}
.sigpad.signed span{display:none}
.sigpad .btn{position:absolute;right:8px;top:8px}
.doc .sigimg{display:block;max-height:70px;margin:0 auto -8px;mix-blend-mode:multiply}
.crewrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 10px 64px}
.chipc{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:4px 11px;font-size:.78rem;min-height:30px}
.chipc[aria-pressed="true"]{background:#0a84ff;border-color:#0a84ff;color:#fff}
/* live tracker */
.card.live{border-color:rgba(255,138,61,.45);background:linear-gradient(160deg,rgba(255,138,61,.14),var(--card))}
.pulse{width:12px;height:12px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 0 rgba(255,138,61,.6);animation:pl 1.6s infinite}
@keyframes pl{70%{box-shadow:0 0 0 12px rgba(255,138,61,0)}100%{box-shadow:0 0 0 0 rgba(255,138,61,0)}}
.track{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.track div{display:flex;flex-direction:column;gap:6px;font-size:.74rem;color:var(--muted);font-weight:700}
.track i{height:5px;border-radius:9px;background:var(--card2)}
.track .on i{background:var(--orange)}.track .on{color:var(--ink)}
.track .now i{animation:tb 1.4s ease-in-out infinite}@keyframes tb{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.pulse,.track .now i{animation:none}}
/* money card */
.big-num{font-size:2.1rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.bars{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;height:110px;align-items:end}
.bars>div{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.bars .b2{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%;justify-content:center}
.bars i{display:block;width:40%;max-width:14px;border-radius:5px 5px 2px 2px;min-height:2px;transition:height .6s cubic-bezier(.2,.8,.2,1)}
.bars i.in{background:linear-gradient(180deg,#ffb077,var(--orange))}.bars i.out{background:var(--card2);border:1px solid var(--line)}
.bars small{font-size:.68rem;color:var(--muted);font-weight:700}
.mgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mgrid div{background:var(--card2);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.mgrid b{font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.mgrid span{font-size:.7rem;color:var(--muted);line-height:1.2}
/* Monday Coach */
.coach{background:linear-gradient(160deg,rgba(10,132,255,.14),var(--card));border-color:rgba(10,132,255,.3)}
.coach-h{font-size:1.35rem;letter-spacing:-.02em}
.coach-i{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.9rem;line-height:1.35}
.coach details summary{cursor:pointer;padding:6px 0}
/* Trophy case */
.lvl{background:linear-gradient(160deg,rgba(255,179,71,.16),var(--card))}
.xpbar{height:8px;border-radius:9px;background:var(--card2);overflow:hidden}.xpbar.sm{height:5px;margin:-4px 0 6px}
.xpbar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#ffb347,var(--orange));transition:width .8s cubic-bezier(.2,.8,.2,1)}
.medals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.medal{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border-radius:20px;background:var(--card);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;text-align:center;min-width:0}
.medal b{font-size:.76rem;line-height:1.2}.medal .small{font-size:.68rem}
.medal .disc{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:1.6rem;background:var(--card2);filter:grayscale(1);opacity:.45}
.medal.got .disc{filter:none;opacity:1}
.medal.got.t0 .disc{background:radial-gradient(circle at 30% 30%,#f3c59b,#a0522d);box-shadow:0 6px 18px rgba(160,82,45,.4)}
.medal.got.t1 .disc{background:radial-gradient(circle at 30% 30%,#f5f5f7,#8e8e93);box-shadow:0 6px 18px rgba(142,142,147,.4)}
.medal.got.t2 .disc{background:radial-gradient(circle at 30% 30%,#ffe08a,#d4a017);box-shadow:0 6px 18px rgba(212,160,23,.45)}
.medal.got.t3 .disc{background:radial-gradient(circle at 30% 30%,#e0f7ff,#7dd3fc 45%,#a78bfa);box-shadow:0 6px 20px rgba(167,139,250,.5)}
.medal:active{transform:scale(.96)}
/* Wrapped */
.wrapped{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;padding:max(14px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));color:#fff;cursor:pointer;user-select:none;-webkit-user-select:none;animation:wrin .5s ease}
@keyframes wrin{from{opacity:0;transform:scale(1.03)}}
.wa{background:radial-gradient(120% 80% at 20% 0%,#7c2d12,#1c0a04 70%)}.wb{background:linear-gradient(160deg,#ff8a3d,#9a3412)}.wc{background:linear-gradient(160deg,#065f46,#022c22)}.wd{background:linear-gradient(160deg,#1d4ed8,#0c1a4a)}
.we{background:linear-gradient(160deg,#a16207,#3f2a05)}.wf{background:linear-gradient(160deg,#0891b2,#083344)}.wg{background:linear-gradient(160deg,#be185d,#3b0820)}.wh{background:linear-gradient(160deg,#6d28d9,#1e0b45)}
.wr-bars{display:flex;gap:4px}.wr-bars i{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.3);overflow:hidden;position:relative}
.wr-bars i.full{background:#fff}.wr-bars i.now::after{content:"";position:absolute;inset:0;background:#fff;transform-origin:left;animation:wrbar 6s linear forwards}
@keyframes wrbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.wr-x{position:absolute;top:max(26px,calc(env(safe-area-inset-top) + 12px));right:14px;color:#fff;background:rgba(0,0,0,.25)}
.wr-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;text-align:center;max-width:520px;margin:0 auto;width:100%}
.wr-k{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;font-weight:800;opacity:.85}
.wr-big{font-size:clamp(3rem,16vw,6.5rem);font-weight:850;letter-spacing:-.05em;line-height:.95;animation:wrpop .7s cubic-bezier(.2,1.4,.4,1);overflow-wrap:anywhere}
@keyframes wrpop{from{opacity:0;transform:translateY(24px) scale(.9)}}
.wr-sub{font-size:1.1rem;line-height:1.45;opacity:.92;animation:wrin .9s ease}
.wr-tap{font-size:.75rem;opacity:.6;margin-top:20px}
@media (prefers-reduced-motion:reduce){.wrapped,.wr-big,.wr-sub,.wr-bars i.now::after{animation:none}}
.medal .tgt{font-size:.72rem;font-weight:800;color:var(--orange)}
.row.nowrap{flex-wrap:nowrap}
@media (max-width:600px){.hide-sm{display:none}}
/* Command bar */
.cmd{display:flex;flex-direction:column;gap:10px;min-height:60vh}
.cmd-in{display:flex;align-items:center;gap:10px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:4px 14px;position:sticky;top:0;z-index:1}
.cmd-in input{flex:1;min-width:0;background:none;border:0;color:var(--ink);font:inherit;font-size:1.05rem;padding:12px 0;outline:none}
.cmd-in kbd{font:600 .7rem/1 ui-monospace,monospace;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:4px 6px}
.cmd-r{display:flex;flex-direction:column;gap:2px}
.cmd-k{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--muted);padding:10px 8px 4px}
.cmd-i{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;width:100%}
.cmd-i b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-i .small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmd-i.sel,.cmd-i:hover{background:rgba(255,138,61,.14)}
.cmd-ic{width:38px;height:38px;border-radius:12px;background:var(--card2);display:grid;place-items:center;font-size:1.1rem;flex:none}
.cmd-go{color:var(--muted);opacity:0;font-size:.85rem}.cmd-i.sel .cmd-go{opacity:1}
/* Premium polish: springy sheets, tactile presses, growing bars, staggered lists */
.sheetwrap{animation:shw .25s ease}@keyframes shw{from{background:rgba(0,0,0,0)}}
.sheet{animation:shs .42s cubic-bezier(.2,1.15,.3,1)}@keyframes shs{from{transform:translateY(60%);opacity:.4}}
.proj,.tile,.medal,.coach-i,.cmd-i{transition:transform .18s cubic-bezier(.2,.8,.2,1),background .2s}
.proj:active,.tile:active{transform:scale(.98)}
.bars i{transform-origin:bottom;animation:barup .8s cubic-bezier(.2,.9,.2,1) both}
.bars>div:nth-child(2) i{animation-delay:.05s}.bars>div:nth-child(3) i{animation-delay:.1s}.bars>div:nth-child(4) i{animation-delay:.15s}.bars>div:nth-child(5) i{animation-delay:.2s}.bars>div:nth-child(6) i{animation-delay:.25s}
@keyframes barup{from{transform:scaleY(0)}}
.fade>.proj,.fade>div>.proj{animation:f .4s ease both}
.fade>div>.proj:nth-child(2){animation-delay:.04s}.fade>div>.proj:nth-child(3){animation-delay:.08s}.fade>div>.proj:nth-child(4){animation-delay:.12s}.fade>div>.proj:nth-child(5){animation-delay:.16s}.fade>div>.proj:nth-child(n+6){animation-delay:.2s}
.medals .medal{animation:f .4s ease both}.medal.got .disc{animation:shine 3.2s ease-in-out infinite}
@keyframes shine{0%,85%,100%{filter:none}92%{filter:brightness(1.35)}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}
@media (prefers-reduced-motion:reduce){.sheet,.sheetwrap,.bars i,.fade>div>.proj,.medals .medal,.medal.got .disc{animation:none}}
/* Photo estimate */
.pe-th{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}.pe-th:empty{display:none}
.pe-th img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;cursor:pointer;border:2px solid transparent}.pe-th img.on{border-color:var(--orange)}
.shimmer{height:14px;border-radius:8px;margin:8px 0;background:linear-gradient(90deg,var(--card2),rgba(255,255,255,.12),var(--card2));background-size:200% 100%;animation:shm 1.2s linear infinite}
@keyframes shm{to{background-position:-200% 0}}
/* Visualizer */
.vis{position:relative;border-radius:18px;overflow:hidden;background:#111;touch-action:none;user-select:none;-webkit-user-select:none}
.vis img{display:block;width:100%;height:auto}
.vis-plane{position:absolute;left:0;top:0;transform-origin:0 0;mix-blend-mode:multiply;filter:brightness(1.18) saturate(1.05);opacity:.95;pointer-events:none;background-repeat:repeat;transition:opacity .25s}
.vis.orig .vis-plane{opacity:0}
.vis-hold{position:absolute;right:10px;bottom:10px;border:0;border-radius:999px;padding:8px 12px;font:700 .75rem/1 inherit;font-family:inherit;background:rgba(0,0,0,.55);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);touch-action:none}
.vis-dot{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:var(--orange);border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.5);touch-action:none;cursor:grab;z-index:2}
.vis.edit .vis-plane{opacity:.75}
/* Photo pulse */
.strip{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -4px;padding:0 4px 4px}
.strip-i{flex:none;width:112px;height:112px;border-radius:14px;overflow:hidden;border:0;padding:0;background:var(--card2);scroll-snap-align:start;cursor:pointer}
.strip-i img{width:100%;height:100%;object-fit:cover;display:block}.strip-i .vid{display:grid;place-items:center;height:100%;font-size:1.4rem}
@media (prefers-reduced-motion:reduce){.shimmer{animation:none}}
/* Job scorecard */
.score{display:grid;grid-template-columns:1fr 1fr;gap:8px}.score>div{background:var(--card2);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:2px}
.score b{font-size:1.5rem;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.score b.pos{color:var(--green)}.score b.neg{color:var(--red)}
/* Self-booking */
.card.book{border-color:rgba(52,199,89,.4);background:linear-gradient(160deg,rgba(52,199,89,.12),var(--card))}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.slot{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:16px;border:1px solid var(--line);background:var(--card2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.slot:active{transform:scale(.97)}
/* Home Floor Passport (paper style, prints clean) */
.passport{background:#f6efe3 url(/paper.jpg) center/600px;color:#2a1d14;border-radius:22px;padding:26px 22px;max-width:760px;margin:0 auto;font-size:.95rem;line-height:1.55}
.passport h1,.passport h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;color:#2a1d14}.passport h1{font-size:2.2rem;margin:2px 0}.passport h2{font-size:1.35rem;margin:22px 0 6px;border-bottom:1px solid rgba(42,29,20,.18);padding-bottom:4px}
.passport .cap{color:#9b2c2c}.passport .small{color:#6f5b4b}.passport a{color:#9b2c2c}
.pp-head{display:flex;gap:14px;align-items:center}.pp-head img{width:64px;height:64px;border-radius:50%;object-fit:cover}
.pp-hero{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:16px;margin:16px 0 4px}
.pp-t{width:100%;border-collapse:collapse}.pp-t th{text-align:left;font-weight:600;color:#6f5b4b;padding:6px 10px 6px 0;width:42%;vertical-align:top}.pp-t td{padding:6px 0;border-bottom:1px dashed rgba(42,29,20,.14)}
.passport ol{padding-left:20px}.passport li{margin:4px 0}.pp-foot{margin-top:22px;font-size:.88rem;color:#6f5b4b}
@media print{body{background:#fff!important}.noprint,#tabs{display:none!important}.passport{background:#fff;border-radius:0;padding:0;max-width:none}}
/* Warranty claims */
.claim{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}.card.claimc{border-color:rgba(255,138,61,.5)}
/* Weather */
.wx{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wx>div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:12px;background:var(--card2);font-size:.68rem;color:var(--muted);text-align:center;min-width:0}
.wx b{font-size:.95rem;color:var(--ink)}.wx>.job{outline:2px solid var(--orange);outline-offset:-2px}.wx>.del{background:rgba(10,132,255,.18)}.wx>.job.del{background:rgba(10,132,255,.18)}
.bp{animation:f .3s ease}
.btn.mic{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}
/* HQ cockpit */
.hqhero{border-radius:26px;padding:18px;background:radial-gradient(120% 120% at 100% 0%,rgba(255,138,61,.32),transparent 55%),linear-gradient(150deg,#2a1608,#120b06 70%);border:1px solid rgba(255,138,61,.25);display:flex;flex-direction:column;gap:14px}
.hqhero h2{font-size:1.55rem;letter-spacing:-.03em;margin:4px 0}.hq-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hq-kpis>*{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:2px;min-width:0;color:var(--ink);font:inherit;text-align:left}
.hq-kpis b{font-size:1.12rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hq-kpis span{font-size:.7rem;color:var(--muted)}.hq-kpis button{cursor:pointer}
.card.today{gap:6px}.tline{display:flex;align-items:center;gap:12px;padding:10px 4px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;width:100%}
.tline b{display:block}.tline .small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tline .dot{width:10px;height:10px;border-radius:50%;background:var(--card3,#444);flex:none}.tline .dot.onsite{background:var(--green);box-shadow:0 0 0 4px rgba(52,199,89,.2)}.tline .dot.onway{background:var(--orange);box-shadow:0 0 0 4px rgba(255,138,61,.2)}.tline .dot.done{background:#8e8e93}
.navrow .btn{border-radius:18px}.navrow .btn i{font-style:normal;font-size:1.15rem;display:block;line-height:1}
.tpls{display:flex;flex-direction:column;gap:8px}.tpl{display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--card2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.tpl:active{transform:scale(.98)}.tpl .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Welcome */
.card.welcome{border-color:rgba(255,138,61,.35);background:linear-gradient(160deg,rgba(255,138,61,.1),var(--card))}
.wstep{display:flex;gap:12px;align-items:flex-start;padding:6px 0}.wstep .wi{width:32px;height:32px;border-radius:50%;background:var(--card2);display:grid;place-items:center;flex:none;font-size:.95rem}
.wstep.done .wi{background:var(--green);color:#03250f;font-weight:800}.wstep b{display:block;font-size:.95rem}.wstep .small{display:block}

.btn.icon-only{padding:6px 10px;min-width:0}.btn.icon-only.on{border-color:var(--orange);background:rgba(255,138,61,.16)}

/* Round 2 */
.askl{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto}.askq{align-self:flex-end;background:var(--orange);color:#1a0a00;border-radius:16px 16px 4px 16px;padding:8px 12px;max-width:85%;font-weight:600}.aska{align-self:flex-start;background:var(--card2);border-radius:16px 16px 16px 4px;padding:10px 12px;max-width:92%;line-height:1.5}
.card.brief{gap:4px}.bline{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.92rem;line-height:1.35}
.card.nudge{border-color:rgba(255,138,61,.45)}.big-mic{min-height:52px}
.lay{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--line)}.lay svg{width:100%;max-width:320px;height:auto}.lay .room{fill:rgba(255,138,61,.12);stroke:var(--orange);stroke-width:2}.lay line{stroke:rgba(255,255,255,.35);stroke-width:.8}.lay line.j{stroke:rgba(255,255,255,.22)}.lay .arr{stroke:var(--green);stroke-width:3;marker-end:none}
.nsheet{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ncard{background:#f6efe3;color:#2a1d14;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;font-family:Inter,system-ui,sans-serif;break-inside:avoid}
.nimg{aspect-ratio:16/10;background:#ddd center/cover;position:relative}.nimg span{position:absolute;left:8px;top:8px;background:rgba(0,0,0,.55);color:#fff;font:800 10px/1 Inter,sans-serif;letter-spacing:.12em;padding:4px 7px;border-radius:99px}
.ntxt{padding:10px 12px 12px;display:flex;flex-direction:column;gap:5px}.nk{font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:#9b2c2c}.ntxt h2{font-family:Georgia,serif;font-size:1.05rem;line-height:1.15;margin:0;color:#2a1d14}.ntxt p{font-size:.72rem;line-height:1.4;margin:0;color:#4a3a2c}
.nrow{display:flex;gap:8px;align-items:center;font-size:.68rem;line-height:1.35;margin-top:4px}.nqr svg{width:64px;height:64px;display:block;background:#fff;padding:3px;border-radius:6px}
@media print{.nsheet{gap:0.25in}.ncard{border:1px dashed #999;border-radius:0;height:4.9in}@page{size:letter;margin:.4in}}

/* Walkthrough camera */
.walk{position:relative;border-radius:20px;overflow:hidden;background:#000;aspect-ratio:4/3;display:none}.walk.live{display:block}.walk.nocam video{display:none}
.walk video{width:100%;height:100%;object-fit:cover;display:block}
.wk-bar{position:absolute;left:10px;right:10px;top:10px;display:flex;justify-content:space-between;gap:8px;font:700 .78rem/1 Inter,system-ui,sans-serif;color:#fff}
.wk-bar span{background:rgba(0,0,0,.55);padding:7px 10px;border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.wk-shot{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:68px;height:68px;border-radius:50%;border:4px solid #fff;background:rgba(255,255,255,.35);box-shadow:0 4px 18px rgba(0,0,0,.4);cursor:pointer;touch-action:manipulation}
.wk-shot:active{transform:translateX(-50%) scale(.92);background:#fff}
.wk-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}.walk.snap .wk-flash{animation:wkf .35s ease}@keyframes wkf{0%{opacity:.85}100%{opacity:0}}
#wk-go.on{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff}
.up-ph{display:grid;place-items:center;aspect-ratio:1;border-radius:10px;background:var(--card2)}

/* Measurement notepad + lens switch */
.mnote{display:flex;flex-direction:column;gap:6px;background:var(--card2);border-radius:16px;padding:12px}
.f.mono,.mnpre{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:.95rem;line-height:1.55}.mnpre{white-space:pre-wrap;background:var(--card2);border-radius:12px;padding:10px;margin:0}
#mn-tot{font-variant-numeric:tabular-nums;color:var(--orange);font-weight:700}
.wk-lens{position:absolute;right:12px;bottom:26px;display:flex;gap:4px;background:rgba(0,0,0,.45);border-radius:999px;padding:4px}
.wk-lens button{border:0;background:transparent;color:#fff;font:700 .8rem/1 Inter,system-ui,sans-serif;width:40px;height:40px;border-radius:50%;cursor:pointer}.wk-lens button.on{background:rgba(255,255,255,.9);color:#000}

/* Win Jar */
.wellcard{background:linear-gradient(160deg,rgba(52,199,89,.1),var(--card))}.winq{font-family:Georgia,serif;font-size:1.15rem;font-style:italic;line-height:1.4;margin:0}.winq span{display:block;font:600 .72rem Inter,system-ui,sans-serif;font-style:normal;color:var(--muted);margin-top:4px}
.wellrow{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.wellrow::-webkit-scrollbar{display:none}
.wchip{flex:none;border:1px solid var(--line);background:var(--card2);color:var(--ink);font:600 .84rem/1 inherit;font-family:inherit;padding:10px 13px;border-radius:999px;text-decoration:none;white-space:nowrap}.wchip.blue{border-color:rgba(10,132,255,.45);background:rgba(10,132,255,.14)}

/* Flooring pro tools */
.jobfile{background:#fff;color:#1a1a1a;border-radius:16px;padding:22px;font:14px/1.5 Inter,system-ui,sans-serif;max-width:860px;margin:0 auto}
.jobfile header{display:flex;gap:14px;align-items:center;border-bottom:2px solid #9b2c2c;padding-bottom:12px;margin-bottom:12px}.jobfile header img{width:56px;height:56px;border-radius:50%;object-fit:cover}
.jobfile h2{font:700 1rem/1.2 Inter,sans-serif;color:#9b2c2c;margin:18px 0 6px;text-transform:uppercase;letter-spacing:.06em}.jobfile table{width:100%;border-collapse:collapse;font-size:.85rem}.jobfile th,.jobfile td{border-bottom:1px solid #e5e5e5;padding:6px 8px;text-align:left;vertical-align:top}.jobfile th{color:#666;font-weight:600}
.jobfile p{margin:6px 0}.sigimg{max-width:240px;background:#fff;border:1px solid #ddd;border-radius:8px}.sigimg.sm{max-width:140px}
.jfph{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.jfph figure{margin:0}.jfph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}.jfph figcaption{font-size:.7rem;color:#666}
.jobfile footer{margin-top:18px;border-top:1px solid #eee;padding-top:8px;font-size:.75rem;color:#777}.jobfile.letter{font-size:15px;line-height:1.6}.jobfile.letter table{margin:12px 0}
@media print{.jobfile{border-radius:0;padding:0;max-width:none}.jfph{grid-template-columns:repeat(4,1fr)}section{break-inside:avoid}}

/* Estimate requests card */
.rqcard{border-radius:24px;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--line)}
.rqcard.hot{background:radial-gradient(120% 120% at 100% 0%,rgba(255,138,61,.35),transparent 60%),linear-gradient(160deg,rgba(255,138,61,.16),var(--card));border:1.5px solid rgba(255,138,61,.65);box-shadow:0 10px 30px rgba(255,122,38,.18)}
.rq-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.rq-head h2{font-size:1.35rem;letter-spacing:-.02em;margin:2px 0 0}.rq-cap{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ffb077}
.rq-pulse{width:14px;height:14px;border-radius:50%;background:#ff8a3d;margin-top:6px;box-shadow:0 0 0 0 rgba(255,138,61,.7);animation:rqp 1.4s infinite;flex:none}@keyframes rqp{70%{box-shadow:0 0 0 14px rgba(255,138,61,0)}100%{box-shadow:0 0 0 0 rgba(255,138,61,0)}}
.rq{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:8px}.rq.done{opacity:.72}
.rq-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.rq b{font-size:1.02rem}.rq-meta{font-size:.8rem;opacity:.75;line-height:1.35}
.rq-msg{font-size:.84rem;font-style:italic;opacity:.85;line-height:1.4}
.rq-score{flex:none;font-size:.72rem;font-weight:800;padding:5px 9px;border-radius:999px;white-space:nowrap}.rq-score.s3{background:rgba(52,199,89,.2);color:#6ee7a0}.rq-score.s2{background:rgba(96,165,250,.2);color:#9cc8ff}.rq-score.s1{background:rgba(255,255,255,.1);opacity:.8}
.rq-act{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.rqb{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:inherit;text-decoration:none;font:700 .85rem/1 inherit;font-family:inherit;padding:10px 13px;border-radius:999px;cursor:pointer}
.rqb.call{background:linear-gradient(180deg,#34c759,#22a447);border-color:transparent;color:#03250f}.rqb.ghost{background:transparent}.rq-ok{font-size:.78rem;color:#6ee7a0;font-weight:700}.rq-more{font-size:.8rem;opacity:.7;margin:0;text-align:center}
@media (prefers-reduced-motion:reduce){.rq-pulse{animation:none}}

/* Folding cards */
.card.fold > .fold-h{cursor:pointer;-webkit-user-select:none;user-select:none}.card.fold > .fold-h h3::after,.card.fold > h3.fold-h::after{content:"▾";margin-left:8px;font-size:.8em;color:var(--muted);display:inline-block;transition:transform .2s}
.card.fold.closed{gap:0;padding-top:14px;padding-bottom:14px}.card.fold.closed > *:not(.fold-h){display:none!important}.card.fold.closed > .fold-h h3::after,.card.fold.closed > h3.fold-h::after{transform:rotate(-90deg)}
details.guide > summary{list-style:none;cursor:pointer}details.guide > summary::-webkit-details-marker{display:none}

.hey{width:100%;text-align:left;border:1px solid rgba(255,138,61,.5);background:rgba(255,138,61,.14);color:var(--ink);font:700 .92rem/1.3 inherit;font-family:inherit;padding:12px 14px;border-radius:14px;cursor:pointer}
.heyc{display:flex;flex-direction:column;gap:8px;background:rgba(255,138,61,.12);border:1px solid rgba(255,138,61,.45);border-radius:14px;padding:12px 14px}.cmd-in .btn.mic{flex:none}

/* Year goal */
.card.goal{gap:10px}.goalbar{position:relative;height:12px;border-radius:9px;background:var(--card2);overflow:visible}.goalbar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#ffb347,var(--orange))}.goalbar em{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);opacity:.6;border-radius:2px}
.card.goalset{text-align:left;cursor:pointer;font:inherit;color:inherit;border-style:dashed}

/* Thank-you card */
.thanks{background:#f6efe3 url(/paper.jpg) center/600px;color:#2a1d14;border-radius:18px;padding:22px;max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:14px;font-family:Inter,system-ui,sans-serif}
.tk-top{display:flex;gap:14px;align-items:center}.tk-top img{width:70px;height:70px;border-radius:50%;object-fit:cover}.tk-k{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:#9b2c2c}.thanks h1{font-family:Georgia,serif;font-size:2rem;margin:2px 0;color:#2a1d14}.thanks p{margin:0;color:#4a3a2c}
.tk-ba{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tk-ba figure{margin:0}.tk-ba img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}.tk-ba figcaption{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#6f5b4b;margin-top:4px}
.tk-care ol{margin:6px 0 0;padding-left:20px;font-size:.88rem;line-height:1.5}
.tk-qrs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.tk-qrs>div{background:rgba(255,255,255,.6);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.tk-qrs svg{width:96px;height:96px;background:#fff;padding:4px;border-radius:6px}.tk-qrs b{font-size:.85rem}.tk-qrs span{font-size:.72rem;color:#6f5b4b}
.tk-sign{font-family:Georgia,serif;font-size:1.05rem}
@media print{.thanks{border-radius:0;max-width:none}}

/* ===== Icons (Lucide) ===== */
.ici{display:inline-flex;vertical-align:-.16em;margin-right:.38em}.ici .ic{width:1.12em;height:1.12em}
.ict{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;margin-right:10px;vertical-align:middle;color:#fff;flex:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 4px 12px rgba(0,0,0,.25);position:relative;top:-1px}
.ict .ic{width:18px;height:18px;stroke-width:2.2}
h1 .ict{width:40px;height:40px;border-radius:12px}h1 .ict .ic{width:22px;height:22px}
.t-orange{background:linear-gradient(145deg,#ffb067,#ff6a2b)}.t-amber{background:linear-gradient(145deg,#ffd36a,#f59e0b)}.t-rose{background:linear-gradient(145deg,#ff8aa5,#e11d48)}
.t-violet{background:linear-gradient(145deg,#c4b5fd,#7c3aed)}.t-blue{background:linear-gradient(145deg,#7cc0ff,#2563eb)}.t-sky{background:linear-gradient(145deg,#7dd3fc,#0284c7)}
.t-green{background:linear-gradient(145deg,#6ee7a8,#16a34a)}.t-slate{background:linear-gradient(145deg,#a3aec2,#475569)}

/* ===== Premium + vibrant pass: HQ & customer pages (sunset palette) ===== */
:root{--g1:#ffb347;--g2:#ff7a3d;--g3:#f43f5e;--sun:linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3))}
body{background:radial-gradient(900px 520px at 85% -10%,rgba(244,63,94,.16),transparent 60%),radial-gradient(900px 600px at 10% -5%,rgba(255,138,61,.22),transparent 60%),var(--bg);background-attachment:fixed}
.btn{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.11);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 10px rgba(0,0,0,.18);transition:transform .15s cubic-bezier(.2,.8,.2,1),filter .15s,box-shadow .2s}
.btn:active{transform:scale(.95);filter:brightness(1.08)}
.btn.ghost{background:rgba(255,255,255,.04);box-shadow:none}
.btn.primary{background:var(--sun);color:#fff;border-color:rgba(255,255,255,.25);text-shadow:0 1px 1px rgba(120,30,0,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 10px 26px rgba(244,90,60,.38)}
.btn.primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:shine 5.5s ease-in-out infinite}
@keyframes shine{0%,70%{left:-60%}100%{left:130%}}
.btn.green{background:linear-gradient(180deg,#4ade80,#16a34a);color:#03250f;border-color:rgba(255,255,255,.2)}
.card{border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 32px rgba(0,0,0,.28)}
.fade h1{background:linear-gradient(120deg,#fff 30%,#ffd0b0 70%,#ffb4c0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.passport h1,.thanks h1,.jobfile h1,.cert h1,.wrapped h1{background:none;-webkit-text-fill-color:currentColor}
.cap{background:var(--sun);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--orange)}
.pill.o{background:rgba(255,138,61,.2);color:#ffb077}.pill.g{background:rgba(52,199,89,.2);color:#6ee7a0}.pill.b{background:rgba(10,132,255,.22);color:#8cc4ff}.pill.r{background:rgba(255,69,58,.2);color:#ff8d85}
nav.tabs{box-shadow:0 14px 40px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08)}
nav.tabs button[aria-current="page"]{color:#fff;background:var(--sun);box-shadow:0 6px 18px rgba(244,90,60,.4)}
.navrow .btn{background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.03))}.navrow .btn i{font-size:1.3rem}
.tile b,.big-num{background:linear-gradient(120deg,#fff,#ffd9c2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hqhero{background:radial-gradient(120% 140% at 100% 0%,rgba(244,63,94,.38),transparent 55%),radial-gradient(120% 120% at 0% 100%,rgba(255,179,71,.25),transparent 60%),linear-gradient(150deg,#2a1408,#140a08 70%)}
.proj{transition:transform .15s,box-shadow .2s}.proj:active{transform:scale(.985)}
input.f:focus,textarea.f:focus,select.f:focus{outline:none;border-color:rgba(255,138,61,.65);box-shadow:0 0 0 4px rgba(255,138,61,.18)}
@media (prefers-reduced-motion:reduce){.btn.primary::after{animation:none;display:none}}
.icts{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;color:#fff;flex:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}.icts .ic{width:14px;height:14px;stroke-width:2.3}
.cmd-ic .icts{width:38px;height:38px;border-radius:12px}.cmd-ic .icts .ic{width:20px;height:20px}
.navrow .btn i .icts{width:30px;height:30px;border-radius:9px}.navrow .btn i .icts .ic{width:17px;height:17px}.navrow .btn i{font-size:1rem}
.btn.sm.ghost[aria-label]{min-width:40px;padding:7px 11px}

.renders{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.strip-i.rd{width:auto;height:auto;aspect-ratio:4/3;position:relative}.strip-i.rd span{position:absolute;left:6px;bottom:6px;background:rgba(0,0,0,.6);color:#fff;font-size:.68rem;font-weight:700;padding:3px 7px;border-radius:99px}

/* plus.js */
.loyal .lyg{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.lyd{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:2px dashed rgba(255,255,255,.18);font-weight:800;color:var(--muted,#8e8e93);font-size:.9rem}
.lyd.on{border:2px solid transparent;background:linear-gradient(145deg,#ff8aa5,#e11d48);color:#fff;font-size:1.2rem;box-shadow:0 6px 16px rgba(225,29,72,.35)}
.lt{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,rgba(255,255,255,.08))}.lt>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.shot{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,rgba(255,255,255,.08))}.shot .grow{display:flex;flex-direction:column;gap:2px;min-width:0}
.sh-i{width:46px;height:46px;border-radius:12px;flex:none;display:grid;place-items:center;background:rgba(255,255,255,.07);font-size:1.3rem;overflow:hidden}.shot.done .sh-i{background:linear-gradient(145deg,#6ee7a8,#16a34a);color:#fff}.sh-i img{width:100%;height:100%;object-fit:cover}
.gcam{position:relative;border-radius:18px;overflow:hidden;background:#000;aspect-ratio:3/4}.gcam video,.gcam img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.gcam img{opacity:.4;pointer-events:none}
.gc-grid{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 33.2%,rgba(255,255,255,.25) 33.3%,transparent 33.5%,transparent 66.5%,rgba(255,255,255,.25) 66.6%,transparent 66.8%),linear-gradient(transparent 33.2%,rgba(255,255,255,.25) 33.3%,transparent 33.5%,transparent 66.5%,rgba(255,255,255,.25) 66.6%,transparent 66.8%)}
.rstep{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.lm{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line,rgba(255,255,255,.08))}.lm .grow{display:flex;flex-direction:column;min-width:0}.lm .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm-i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.07);flex:none}
.claimcover{border:2px solid #1f1b16;padding:14px;border-radius:8px}.claimcover .editme{outline:1px dashed #b45309;padding:4px}
.fprint{background:#fff;color:#1f1b16;padding:24px;border-radius:12px;display:flex;flex-direction:column;gap:16px;max-width:640px;margin:0 auto}.fp-ph{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fp-ph figure{margin:0}.fp-ph img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:4px}
.fp-ph figcaption{text-align:center;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;margin-top:6px;color:#6b5f55}.fp-cap{text-align:center;display:flex;flex-direction:column;gap:4px;font-family:Georgia,serif}.fp-cap b{font-size:1.5rem;font-weight:400;font-style:italic}.fp-cap small{letter-spacing:.25em;text-transform:uppercase;font-size:.65rem;color:#8a7d72;font-family:-apple-system,sans-serif}
@media print{@page{size:8in 10in;margin:.4in}.fprint{max-width:none;padding:0;border-radius:0}}

/* Home v2: Do next, week strip, project groups */
.nextc{gap:4px}.nextc.hot{border-color:rgba(255,69,58,.55);background:linear-gradient(160deg,rgba(255,69,58,.16),rgba(28,28,30,.9) 55%);box-shadow:0 10px 30px rgba(255,69,58,.15)}.nextc .cap{color:#ff8a80}.nextc.calm .small{margin:0}
.nx{display:flex;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none;background:none;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left;font:inherit}
.nx .grow{display:flex;flex-direction:column;min-width:0;color:inherit;text-decoration:none}.nx .grow b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx-i{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.07);flex:none;font-size:1.05rem}.nx.hot .nx-i{background:linear-gradient(145deg,#ff6b6b,#e11d48);box-shadow:0 4px 12px rgba(225,29,72,.4)}
.nx-tag{font-size:.66rem;font-weight:800;padding:2px 6px;border-radius:6px;background:rgba(255,179,71,.18);color:#ffb347;vertical-align:2px}
.nx-b{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:0;color:inherit;text-decoration:none;font-size:1rem;cursor:pointer}.nx-b.call{background:linear-gradient(145deg,#4ade80,#16a34a);box-shadow:0 4px 12px rgba(22,163,74,.35)}
.wk-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.wk-d{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:14px;padding:8px 0 6px;display:flex;flex-direction:column;align-items:center;gap:2px;color:inherit;font:inherit;cursor:pointer;min-width:0}
.wk-d small{font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.wk-d b{font-size:1.1rem}.wk-d.today small{color:var(--orange)}.wk-d.on{background:linear-gradient(160deg,#ff8a3d,#e8590c);border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(255,122,40,.35)}.wk-d.on small{color:rgba(255,255,255,.85)}
.wk-d.off{opacity:.55}.wk-dots{display:flex;gap:3px;height:6px}.wk-dots i{width:6px;height:6px;border-radius:50%;background:var(--orange)}.wk-d.on .wk-dots i{background:#fff}.wk-dots i.x{background:var(--muted);width:10px;border-radius:3px}
.wk-sel{font-size:.8rem;color:var(--muted);font-weight:700;margin-top:2px}.wk-job{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.05);border:0;color:inherit;font:inherit;text-align:left;width:100%;cursor:pointer}
.wk-job .grow{display:flex;flex-direction:column;min-width:0}.wk-bar{width:4px;align-self:stretch;border-radius:4px;background:linear-gradient(#ffb067,#ff6a2b);flex:none}.wk-empty{text-align:center;color:var(--muted);font-size:.9rem;padding:10px 6px}
.learnc{flex-direction:row;align-items:center;gap:12px;text-decoration:none;color:inherit;background:linear-gradient(140deg,rgba(22,163,74,.22),rgba(28,28,30,.9) 60%);border-color:rgba(74,222,128,.3)}.learnc .grow{display:flex;flex-direction:column;min-width:0}
.lc-i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.4rem;background:linear-gradient(145deg,#4ade80,#16a34a);flex:none;box-shadow:0 6px 16px rgba(22,163,74,.35)}
.pgroup{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:4px 16px}.pgroup>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:12px 0;cursor:pointer}.pgroup>summary::-webkit-details-marker{display:none}
.pgroup[open]>summary .chev{transform:rotate(90deg)}.pg-list{display:flex;flex-direction:column;gap:10px;padding-bottom:14px}.pgroup.ins .pg-list>.card,.pgroup.ins .pg-list>div>.card{background:rgba(255,255,255,.03)}
.nx .small .nx-tag{vertical-align:0;margin-right:2px}
.rdy-bar{height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}.rdy-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffb067,#34c759)}.wk-dots i.w{background:#ff453a!important}
.wk-near{display:block;padding:8px 12px;border-radius:12px;background:rgba(10,132,255,.1);border:1px solid rgba(10,132,255,.25);color:inherit;text-decoration:none;font-size:.85rem}.bec{display:flex;flex-direction:column;gap:6px;text-align:left;color:inherit;font:inherit;cursor:pointer;width:100%}
