/* Vistaza Customer Portal — the look of the LIVE /j and /t customer pages (white ground · orange rule · Montserrat), cut from previews/portal-prestige.html 10/28. Only the master band, empty/error boxes and the Google button are new. */
  :root{--slate:#2C3947;--ink:#1C252F;--body:#566270;--muted:#6B7886;--line:#D9DEE4;--orange:#F2753F;--soft:#FFF4EE;--peach:#FDE6DA;--ok:#2E8B57;--okbg:#F1F8F3;--hold:#8A94A0;--bg2:#F6F8FA;--red:#B23B2E;--cur:#CFE3FA;--curline:#4C8EDA}
  *{box-sizing:border-box} html{-webkit-text-size-adjust:100%}
  body{margin:0;background:#fff;color:var(--slate);font-family:Montserrat,-apple-system,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}
  a{color:var(--slate)} button{font:inherit}
  /* the master band (AJ 10/28 ~5:20 AM): staff see exactly the customer's pages, with this thin band so it is never mistaken for the customer's own screen */
  .master{position:sticky;top:0;z-index:60;background:#1C252F;color:#fff;font-size:12px;font-weight:700;letter-spacing:.06em;display:flex;align-items:center;gap:10px;padding:5px 12px;flex-wrap:wrap}
  .master .lab{text-transform:uppercase;letter-spacing:.14em;font-size:10.5px;color:#F2C9B3}
  .master select{font:inherit;font-weight:700;background:#2C3947;color:#fff;border:1px solid #4B5563;border-radius:7px;padding:3px 8px;max-width:min(60vw,420px)}
  .master .sp{flex:1}.master button{background:none;border:1px solid #4B5563;color:#fff;border-radius:7px;padding:3px 10px;font:inherit;font-size:12px;cursor:pointer}
  .master.demo{background:#7A2E12}.master.demo .lab{color:#FDE6DA}
  .master.hidden{display:none}
  body.has-master .tabs{top:32px}
  .empty{margin:28px 0;border:1.5px dashed var(--line);border-radius:12px;padding:22px;text-align:center;color:var(--body)}
  .empty b{display:block;color:var(--slate);font-size:17px;margin-bottom:4px}
  .err{margin:20px 0;border:2px solid var(--red);border-radius:12px;padding:14px 16px;color:var(--red);font-weight:600}
  .card .hero.nohero{display:flex;align-items:center;justify-content:center;background:var(--bg2);color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;text-align:center;padding:6px;line-height:1.3}
  .gbtn{display:inline-flex;align-items:center;gap:10px;width:100%;justify-content:center}
  .gbtn img{width:18px;height:18px}
  .or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:18px 0}.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--line)}
  .page{max-width:760px;margin:0 auto;padding:16px 16px 60px}
  /* the top, as /j and /t */
  .top{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid var(--orange);padding-bottom:12px;gap:12px}
  .top .logo{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:none;border:0;padding:0;cursor:pointer;text-align:left}
  .top .logo img{display:block;width:132px;height:auto}.top .logo span{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--body)}
  .top .no{font-size:13px;color:var(--body);text-align:right;line-height:1.35}.top .no b{display:block;color:var(--slate);font-size:15px}
  .top .no button{background:none;border:0;padding:0;color:var(--body);font-size:12px;text-decoration:underline;cursor:pointer}
  /* names rows (Success .page-tabs, light): the pages row, and the job's tabs */
  .tabs{position:sticky;top:0;z-index:50;background:#fff;display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:4px 8px 0}
  .tabs::-webkit-scrollbar,.jtabs::-webkit-scrollbar{display:none}
  .tab,.jt{flex:0 0 auto;background:none;border:0;border-bottom:3px solid transparent;color:var(--muted);font-size:15.5px;font-weight:600;padding:9px 10px 8px;cursor:pointer;white-space:nowrap;border-radius:0}
  .tab:hover,.jt:hover{color:var(--ink)} .tab.on,.jt.on{color:var(--ink);font-weight:800;border-bottom-color:var(--orange)}
  .tab .n,.jt .n{margin-left:5px;font-size:12.5px;font-weight:800;color:#C4521F}
  .jtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin:26px -16px 0;padding:0 8px;scroll-margin-top:52px}
  .pane{display:none}.pane.on{display:block}
  h1{font-size:22px;margin:20px 0 4px;line-height:1.3}.sub{color:var(--body);font-size:15px}.sub b{color:var(--slate)}
  .k{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:24px 0 10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .k .cnt{color:var(--muted)} .k .btn,.k .unfold,.k .pill{margin-left:auto;letter-spacing:0;text-transform:none}
  .back{background:none;border:0;padding:0;margin:16px 0 0;color:var(--body);font-size:14px;font-weight:600;cursor:pointer}
  /* buttons, as /t ("every link is a button") */
  .btns{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:16px;font-weight:700;line-height:20px;padding:12px 20px;border-radius:10px;text-decoration:none;border:2px solid var(--slate);color:var(--slate);background:#fff;cursor:pointer;white-space:nowrap}
  .btn.go{background:var(--orange);border-color:var(--orange);color:var(--ink)}
  .btn.small{font-size:14px;padding:7px 13px;border-radius:9px}
  .btn.tiny{font-size:13px;padding:4px 11px;border-radius:8px;border-width:1.5px}
  .btn:disabled{opacity:.45;cursor:default}
  .unfold{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;color:var(--slate);cursor:pointer;white-space:nowrap}
  /* the WAITING box, as /j */
  .now{margin:20px 0 10px;border:2px solid var(--orange);border-radius:12px;padding:16px 18px;background:var(--soft)}
  .now .lab{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#C4521F}
  .now h2{font-size:19px;margin:4px 0 6px;line-height:1.3}.now p{margin:0;color:var(--body);font-size:15px}
  .now.us{border-color:var(--slate);background:var(--bg2)}.now.us .lab{color:var(--slate)}
  .now.done{border-color:var(--ok);background:var(--okbg)}.now.done .lab{color:var(--ok)}
  .now .more{border-top:1px solid #F3C9B3;margin-top:14px;padding-top:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
  .now .more .tx{flex:1 1 220px}.now .more b{display:block;font-size:16px}.now .more span{color:var(--body);font-size:14px}
  .now.us .row{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.now.us .lab+.row{border-top:0;margin-top:0;padding-top:0}
  .waits{display:grid;gap:0}
  /* covers (the Handbook Desk's shelf: portrait page-one thumbs, a label, a status line) */
  .shelf{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 6px;margin:0 -2px}
  .shelf::-webkit-scrollbar{display:none}
  .cv{flex:0 0 auto;width:112px;background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit}
  .cv img,.cvbig img{display:block;width:100%;aspect-ratio:3/4;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 1px 4px rgba(28,37,47,.10)}
  .cv:hover img,.cvbig:hover img{border-color:var(--slate)}
  .shelf{align-items:flex-start}.bigs{align-items:start}.cv,.cvbig{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}
  .cv .l,.cvbig .l{display:block;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--body);margin-top:6px;line-height:1.3}
  .cv .t,.cvbig .t{display:block;font-size:13px;font-weight:700;line-height:1.3;margin-top:1px}
  .cv .s,.cvbig .s{display:block;font-size:12px;color:var(--body);line-height:1.3;margin-top:2px}
  .s.need{color:#C4521F;font-weight:700}.s.ok{color:var(--ok);font-weight:700}
  /* the snake, as /j (13 stops; every circle is an anchor into the Timeline) */
  .snake svg{width:100%;height:auto;display:block}
  .snake .track{fill:none;stroke:var(--line);stroke-width:10;stroke-linecap:round;stroke-linejoin:round}
  .snake .prog{fill:none;stroke:var(--ok);stroke-width:10;stroke-linecap:round;stroke-linejoin:round}
  .snake g[data-stop]{cursor:pointer}.snake g[data-stop]:hover .c{stroke:var(--curline)}
  .snake .c{fill:#fff;stroke:var(--line);stroke-width:5}.snake .n{font:800 26px Montserrat,-apple-system,sans-serif;text-anchor:middle;fill:var(--muted)}
  .snake g.done .c{fill:var(--ok);stroke:var(--ok)}.snake g.done .n{fill:#fff}
  .snake g.now .c{fill:var(--orange);stroke:var(--ink)}.snake g.now .n{fill:var(--ink)}.snake g.now .halo{fill:var(--peach)}
  .snake .halo{fill:none}.snake g.todo .c{stroke-dasharray:7 7}
  .snake .t{font:800 20px Montserrat,-apple-system,sans-serif;fill:var(--ink)}.snake g.now .t{fill:#C4521F}
  .snake .w{font:700 15px Montserrat,-apple-system,sans-serif;fill:var(--muted)}.snake g.done .w{fill:var(--ok)}
  .snake .d{font:400 15px Montserrat,-apple-system,sans-serif;fill:var(--body)}
  .snake .hb{fill:var(--ink)}.snake .ht{font:800 13px Montserrat,-apple-system,sans-serif;fill:#fff;letter-spacing:.1em;text-anchor:middle}
  .snake g:not(.now) .hb,.snake g:not(.now) .ht{display:none}
  .snake--tall{display:none}.snake--tall .t{font-size:25px}.snake--tall .w{font-size:18px}
  .fold{display:none;width:100%;text-align:left;background:var(--okbg);border:1.5px solid #CFE6D7;color:var(--ok);font-weight:700;font-size:14px;border-radius:10px;padding:9px 12px;margin:0 0 6px;cursor:pointer}
  .snhint{font-size:12.5px;color:var(--body);margin:2px 0 0}
  /* item rows */
  .grp{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 12px}
  .grp>.gh{display:flex;align-items:center;gap:8px;background:var(--bg2);border-bottom:1px solid var(--line);padding:7px 12px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--body)}
  .grp>.gh .gg{font-size:15px;letter-spacing:0}.grp>.gh .gc{margin-left:auto;letter-spacing:0;text-transform:none;font-weight:600}
  .it{display:grid;grid-template-columns:44px 1fr auto;gap:2px 12px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}
  .grp>.gh+.it,.grp>.gh+details+.it{border-top:0}
  .it .th{grid-row:1 / span 4;grid-column:1;background:none;border:0;padding:0;cursor:pointer}.it .th img{display:block;width:44px;aspect-ratio:3/4;border:1px solid var(--line);border-radius:4px}
  .it .ti{grid-column:2;font-weight:700;font-size:15.5px;line-height:1.35}
  .it .me{grid-column:2;color:var(--body);font-size:13px;line-height:1.45}
  .it .act{grid-row:1 / span 4;grid-column:3;display:flex;flex-direction:column;gap:6px;align-items:stretch}
  .it .need{grid-column:2;font-size:13.5px;font-weight:700;color:#C4521F}
  .it .okk{grid-column:2;font-size:13.5px;font-weight:700;color:var(--ok)}
  .it .sup{grid-column:2;font-size:13.5px;font-weight:700;color:var(--muted)}
  .it.old{background:#FBFCFD}.it.old .ti{color:var(--body)}
  .it.future{grid-template-columns:44px 1fr}.it.future .ti{color:var(--muted);font-weight:600}
  .it.future .ph{grid-row:1 / span 2;width:44px;aspect-ratio:3/4;border:1.5px dashed var(--line);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--hold);font-weight:800}
  .seen{white-space:nowrap}
  .new{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#C4521F;border:1.5px solid var(--orange);border-radius:999px;padding:0 7px;line-height:17px;vertical-align:1px;margin-right:4px;background:#fff}
  details.older>summary{list-style:none;cursor:pointer;padding:7px 12px;border-top:1px dashed var(--line);font-size:13px;font-weight:600;color:var(--body)}
  details.older>summary::-webkit-details-marker{display:none}
  details.older>summary::before{content:"▸ ";}details.older[open]>summary::before{content:"▾ "}
  /* JOBSITE: the first and biggest group from Production on */
  .site{border:2px solid var(--slate);border-radius:12px;padding:12px 14px 14px;margin:0 0 16px}
  .site>.gh{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
  .site>.gh span{margin-left:auto;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--body)}
  .site .sl{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--body);margin:14px 0 8px}
  .bigs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .cvbig{background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;min-width:0}
  .cvbig.fut{cursor:default}.cvbig.fut .ph{aspect-ratio:3/4;border:2px dashed var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;color:var(--hold);font-weight:800;font-size:13px;text-align:center;padding:8px}
  .deliv{border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg2)}
  .deliv .dr{display:grid;grid-template-columns:104px 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:14.5px}.deliv .dr:first-child{border-top:0}
  .deliv .dr b{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--body);padding-top:2px}
  /* money, as /j's Payments box */
  .pay{border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .pay .r{display:flex;gap:10px;align-items:center;padding:10px 12px;border-top:1px solid var(--line);font-size:15px;flex-wrap:wrap}.pay .r:first-child{border-top:0}
  .pay .r .g{width:20px;text-align:center;font-weight:800;flex:0 0 auto}
  .pay .r .nm{flex:1 1 140px}.pay .r .nm small{display:block;color:var(--body);font-size:13px}
  .pay .r .am{font-weight:700;white-space:nowrap;text-align:right}.pay .r .am small{display:block;font-weight:600;color:var(--body);font-size:12.5px}
  .pay .r.now{background:var(--soft)}
  .pay .r .dr{flex:1 0 100%;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
  .sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}
  .sum div{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--body)}
  .sum b{display:block;font-size:16px;letter-spacing:0;color:var(--slate);text-transform:none}
  .note{font-size:13.5px;color:var(--body);margin:8px 2px 0}
  /* tickets */
  .tk{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 10px}
  .tk .hd{display:flex;gap:10px;align-items:flex-start}.tk .ti{font-weight:700;font-size:15px;flex:1}
  .tk .st{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--slate);border-radius:999px;padding:2px 9px;white-space:nowrap}
  .tk.closed{background:var(--bg2)}.tk.closed .st{border-color:var(--ok);color:var(--ok)}
  .tk .mv{font-size:13px;color:var(--body);padding:3px 0 0 0;display:grid;grid-template-columns:62px 1fr;gap:8px}
  /* messages = the ticket page's History card, two-way */
  .m{border-top:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:15px;scroll-margin-top:60px}.m .w{color:var(--body);font-size:13px;padding-top:2px;line-height:1.4}.m .w b{display:block;color:var(--slate);font-size:13.5px}
  .m.in{background:var(--bg2);border-radius:8px;padding:12px;border-top:0;margin:6px 0}
  .m .b>b{display:block}.m .b>span{display:block;color:var(--slate);font-size:15px}.m .sn{display:block;font-size:12.5px;color:var(--body);margin-top:4px}
  .m.sys .b>span{color:var(--body);font-style:italic}
  .chip{display:inline-flex;align-items:center;gap:6px;margin:6px 6px 0 0;border:1.5px solid var(--line);background:#fff;border-radius:8px;padding:3px 9px 3px 4px;font-size:13px;font-weight:700;cursor:pointer;color:var(--slate)}
  .chip img{width:18px;aspect-ratio:3/4;border:1px solid var(--line);border-radius:2px}
  .compose{border:1.5px solid var(--slate);border-radius:12px;padding:12px;margin-top:14px}
  .compose .subj{display:block;width:100%;font:inherit;font-size:16px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;color:var(--slate);margin-top:6px}
  .compose textarea{display:block;width:100%;min-height:84px;font:inherit;font-weight:400;margin-top:6px;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;resize:vertical;color:var(--slate)}
  .compose .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.compose .row .sp{flex:1}
  .compose .fn{font-size:12.5px;color:var(--body);margin-top:8px}
  /* timeline */
  .tl{border-left:3px solid var(--line);margin-left:9px;padding-left:16px}
  .tlh{position:relative;margin:20px 0 6px;scroll-margin-top:60px;border-radius:8px;padding:4px 6px 4px 0}
  .tlh::before{content:"";position:absolute;left:-27px;top:7px;width:17px;height:17px;border-radius:50%;background:#fff;border:3px solid var(--line)}
  .tlh.t-done::before{background:var(--ok);border-color:var(--ok)}.tlh.t-now::before{background:var(--orange);border-color:var(--ink)}.tlh.t-todo::before{border-style:dashed}
  .tlh b{font-size:16px}.tlh span{font-size:13px;color:var(--body);margin-left:6px}
  .tlh .tag{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-left:6px;color:var(--ok)}.tlh.t-now .tag{color:#C4521F}.tlh.t-todo .tag{color:var(--muted)}
  .tle{display:grid;grid-template-columns:58px 26px 1fr;gap:8px;align-items:center;width:100%;text-align:left;background:none;border:0;border-top:1px solid #EEF1F4;padding:7px 4px;cursor:pointer;color:inherit;font-size:14.5px;line-height:1.35;scroll-margin-top:60px;border-radius:6px}
  .tle:hover{background:var(--bg2)} .tle .dd{font-size:12.5px;color:var(--body);font-weight:600}
  .tle .gl{text-align:center;font-size:15px}.tle .gl img{width:22px;aspect-ratio:3/4;border:1px solid var(--line);border-radius:2px;display:block;margin:0 auto}
  .tle small{display:block;color:var(--body);font-size:12.5px}
  .tlnone{font-size:13px;color:var(--muted);padding:4px 4px 2px}
  .flash{background:var(--cur)!important;box-shadow:0 0 0 2px var(--curline)}
  /* my jobs */
  .cards{display:grid;gap:12px;margin-top:16px}
  .card{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff;cursor:pointer;text-align:left;width:100%}
  .card:hover{border-color:var(--slate)}
  .card .ct{display:flex;align-items:flex-start;gap:10px}.card .ad{font-size:18px;font-weight:800;line-height:1.3;flex:1}
  .card .ur{font-size:13px;font-weight:800;color:#C4521F;white-space:nowrap;padding-top:3px}
  .card .cs{color:var(--body);font-size:14px}
  .card .sg{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:15px;font-weight:700;flex-wrap:wrap}
  .dots{display:inline-flex;gap:4px;align-items:center}
  .dots i{display:inline-block;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--hold)}
  .dots i.d{background:var(--ok);border-color:var(--ok)}
  .dots i.c{width:14px;height:14px;background:var(--orange);border:2.5px solid var(--ink)}
  .card .cw{margin-top:10px;border-radius:9px;padding:8px 11px;font-size:14.5px;background:var(--soft);border:1.5px solid var(--orange)}
  .card .cw.us{background:var(--bg2);border-color:var(--slate)}.card .cw.done{background:var(--okbg);border-color:var(--ok)}
  .card .cw b{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#C4521F}
  .card .cw.us b{color:var(--slate)}.card .cw.done b{color:var(--ok)}
  details.past{margin-top:22px}
  details.past>summary{list-style:none;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--body);padding:6px 0}
  details.past>summary::-webkit-details-marker{display:none}
  details.past>summary::before{content:"▸ "}details.past[open]>summary::before{content:"▾ "}
  /* notifications */
  .pills{display:flex;gap:8px;align-items:center;margin:16px 0 4px;flex-wrap:wrap}
  .pill{background:#fff;border:1.5px solid var(--line);color:var(--body);font-size:14px;font-weight:700;border-radius:999px;padding:5px 13px;cursor:pointer}
  .pill.on{border-color:var(--slate);color:var(--ink);background:var(--bg2)}.pill .n{color:#C4521F;margin-left:4px}
  .linkb{background:none;border:0;padding:0;color:var(--body);font-size:13.5px;font-weight:600;text-decoration:underline;cursor:pointer;margin-left:auto}
  .day{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--body);margin:22px 0 6px}
  .nt{display:grid;grid-template-columns:30px 1fr auto;gap:2px 10px;align-items:start;border-top:1px solid var(--line);padding:11px 4px;cursor:pointer;background:none;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left;color:inherit}
  .nt:hover{background:var(--bg2)}
  .nt .gl{font-size:18px;line-height:22px;text-align:center}
  .nt .tx{font-size:15px;line-height:1.4}.nt.unread .tx{font-weight:700}
  .nt .jb{grid-column:2;font-size:13px;color:var(--body)}
  .nt .tm{grid-row:1;grid-column:3;font-size:12.5px;color:var(--body);white-space:nowrap;padding-top:2px}
  /* how to reach me */
  .sec{border:1px solid var(--line);border-radius:12px;padding:4px 14px 12px;margin:0 0 14px}
  .sec>h3{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:12px 0 4px;color:var(--slate)}
  .ch{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.sec>h3+.ch{border-top:0}
  .ch .tx{flex:1}.ch .tx b{display:block;font-size:15.5px}.ch .tx span{font-size:13px;color:var(--body)}
  .sw{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-width:78px;justify-content:center;border:2px solid var(--line);background:#fff;color:var(--body);border-radius:999px;padding:5px 12px;font-size:14px;font-weight:800;cursor:pointer}
  .sw.on{border-color:var(--ok);background:var(--okbg);color:var(--ok)}
  .opt{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0 0;cursor:pointer;background:#fff;width:100%;text-align:left;color:inherit}
  .opt .rd{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:2px solid var(--hold);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;margin-top:1px;color:#fff}
  .opt.on{border-color:var(--orange);background:var(--soft)}.opt.on .rd{background:var(--orange);border-color:var(--ink);color:var(--ink)}
  .opt b{display:block;font-size:15.5px}.opt span{font-size:13.5px;color:var(--body)}
  .qh{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:6px 0 2px;font-size:15px}
  select{font:inherit;font-size:15px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--slate)}
  .tbl{overflow-x:auto;margin:6px -4px 0}
  table.who{border-collapse:collapse;width:100%;table-layout:fixed;font-size:14px}
  table.who th{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--body);padding:6px 2px;text-align:center;line-height:1.25;vertical-align:bottom}
  table.who tr.pn td{text-align:left;padding:10px 4px 2px;border-top:1px solid var(--line)}table.who tr.pc td{border-top:0;padding:4px 2px 10px}
  table.who td{border-top:1px solid var(--line);padding:8px 2px;text-align:center;vertical-align:middle}
  table.who tr.pn b{font-size:14.5px;margin-right:6px}table.who tr.pn td>span{font-size:12.5px;color:var(--body);line-height:1.5}
  table.who tr.lock b::after{content:" 🔒";font-size:12px}
  .acc{display:inline-block;white-space:nowrap;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--slate);border-radius:999px;padding:0 7px;line-height:16px;margin:3px 0 0;color:var(--slate)}
  .acc.site{border-color:#C4521F;color:#C4521F}
  .cell{width:38px;height:34px;border:2px solid var(--line);background:#fff;border-radius:8px;font-size:16px;font-weight:900;color:var(--hold);cursor:pointer}
  .cell.on{border-color:var(--ok);background:var(--okbg);color:var(--ok)}
  .cell:disabled{cursor:not-allowed;opacity:.55}.cell.na{border-style:dashed;font-size:11px;font-weight:800}
  .viewas{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--body);border:1.5px dashed var(--hold);border-radius:9px;padding:6px 10px;margin:4px 0 8px}
  .viewas b{color:var(--slate)}
  .savebar{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);margin:18px -16px 0;padding:10px 16px;display:flex;gap:12px;align-items:center;z-index:40}
  .savebar .stt{flex:1;font-size:14px;color:var(--body)}.savebar .stt b{color:var(--slate)}
  /* sign-in */
  .signin{max-width:440px;margin:48px auto 0;text-align:left}
  .signin h1{font-size:26px;margin:24px 0 6px}
  .fld{display:block;font-size:13px;font-weight:700;color:var(--slate);margin:18px 0 8px}
  .fld input,.sheet input[type=text],.sheet input[type=email],.sheet textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;color:var(--slate);background:#fff}
  .sheet textarea{min-height:110px;resize:vertical}
  .fld input,.sheet input,.sheet textarea{font-weight:400}
  .full{width:100%}
  .spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}
  .foot{margin-top:34px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:#6B7785}
  /* the sheet (sm-card: centred, Esc · backdrop · Close) */
  .bd{position:fixed;inset:0;background:rgba(28,37,47,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:900}
  .bd.hidden{display:none}
  .sheet{background:#fff;border-radius:12px;padding:16px 18px 18px;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 18px 50px rgba(0,0,0,.25)}
  .sheet.wide{max-width:760px}
  .sh{display:flex;align-items:center;gap:10px;margin-bottom:12px}
  .sh .tt{font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
  .sh .rule{flex:1;height:3px;background:var(--orange);border-radius:2px}
  .sh .x{background:none;border:1.5px solid var(--line);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:700;color:var(--slate);cursor:pointer}
  .sheet h2{font-size:19px;margin:2px 0 6px;line-height:1.3}.sheet p{color:var(--body);font-size:15px;margin:6px 0}
  .sheet .lead{font-size:17px;color:var(--ink);font-weight:700}
  .sheet .inv{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:12px 0 0;font-size:15px;display:flex;justify-content:space-between;gap:12px}.sheet .inv b{white-space:nowrap}
  .sheet .acts{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}
  .guard{display:none;background:#FFF0EE;border:1.5px solid var(--red);border-radius:9px;padding:9px 12px;margin:0 0 12px;font-size:14px;color:var(--ink);align-items:center;gap:8px;flex-wrap:wrap}
  .guard.on{display:flex}.guard b{flex:1 1 100%}
  .drop{border:2px dashed var(--line);border-radius:10px;padding:10px;text-align:center;font-size:14px;color:var(--body);margin-top:6px}
  .drop .btn{margin:4px}
  .paper{background:#EEF1F4;border-radius:10px;padding:14px;display:flex;justify-content:center}
  .paper img{width:100%;max-width:420px;height:auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.14);border-radius:2px}
  .vmeta{display:flex;gap:4px 14px;flex-wrap:wrap;font-size:13.5px;color:var(--body);margin:0 0 10px}
  .vnote{font-size:14px;color:#C4521F;font-weight:700;margin:10px 0 0}
  .radios label{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;margin:6px 0 0;font-size:14.5px;cursor:pointer}
  .radios label span{color:var(--body);font-size:13px;display:block}
  .radios input{margin-top:4px;accent-color:var(--orange)}
  /* toast */
  .toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:15px;font-weight:600;padding:11px 18px;border-radius:12px;z-index:1000;max-width:calc(100vw - 32px);box-shadow:0 8px 24px rgba(0,0,0,.25);display:none}
  .toast.on{display:block}
  @media (max-width:700px){
    .snake--wide{display:none}.snake--tall{display:block;max-width:26rem;margin:0 auto}.fold{display:block}
    .m{grid-template-columns:1fr;gap:4px}.btns .btn{flex:1 1 auto}
    h1{font-size:21px}
    .it .act .btn{padding:6px 11px;font-size:13.5px}
    .tab{font-size:15px;padding:9px 8px 8px}.jt{font-size:13.5px;padding:9px 4px 8px}.jt .n{font-size:11.5px;margin-left:3px}.jtabs{padding:0 4px;gap:0;justify-content:space-between}
    .cvbig.fut .ph{aspect-ratio:auto;min-height:84px}
    .sheet .acts .btn{flex:1 1 auto}.sheet{padding:14px 14px 16px}
    .sum{gap:6px}.sum div{padding:7px 7px;font-size:11px}.sum b{font-size:14px}
    table.who th{font-size:10px;letter-spacing:.02em}
    .cv{width:100px}
  }
  @media (min-width:1000px){
    .page{max-width:1120px;padding:20px 28px 60px}
    .tabs,.jtabs{margin-left:-28px;margin-right:-28px;padding-left:20px;padding-right:20px}
    .savebar{margin:18px -28px 0;padding:12px 28px}
    .waits{grid-template-columns:3fr 2fr;gap:16px;align-items:start}
    .waits .now{margin:20px 0 6px}
    .cv{width:132px}
    .bigs{grid-template-columns:repeat(4,minmax(0,1fr))}
    .panewrap{max-width:860px}
    .cards{grid-template-columns:1fr 1fr}
    .narrow{max-width:760px}
    .reach{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  }
  /* preview additions */
  .mock{position:sticky;top:0;z-index:60}
  .tabs{top:22px}
  .jtabs{scroll-margin-top:80px}.tlh,.tle,.m,.pay .r{scroll-margin-top:90px}
  .pvread{display:block;margin-top:6px;font-size:12px;color:#8a5a00}
  .pvi{display:block;margin-top:4px;font-size:12.5px;font-weight:700;color:#8a5a00}
  .pvf{grid-column:2;display:inline-block;font-size:12.5px;font-weight:700;color:#7a4e00;background:#FFF8E1;border:1.5px dashed #D9A300;border-radius:8px;padding:3px 8px;margin-top:4px;line-height:1.4}
  .sheet .pvf{display:block;margin-top:10px}
  .srcl{font-size:12.5px!important;color:var(--body);margin:12px 0 0!important;word-break:break-word}
  .btn.src{text-decoration:none}
  .sn2{font-weight:600;color:var(--body)}
  .gaps{margin:30px 0 0;border:2px dashed #D9A300;border-radius:12px;padding:12px 16px 6px;background:#FFFCF2}
  .gaps .lab{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7a4e00}
  .gaps ul{margin:8px 0 6px;padding-left:18px}.gaps li{font-size:14px;color:var(--slate);margin:0 0 6px;line-height:1.45}
  .dstrip{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
  .dchip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;font-size:13.5px;font-weight:700;cursor:pointer;color:var(--slate);text-align:left}
  .dchip.on{border-color:var(--slate);background:var(--bg2);color:var(--ink)}.dchip small{display:block;font-weight:600;color:var(--body);font-size:12px}
  .card .cdl{display:grid;gap:3px;margin-top:8px;font-size:13.5px;color:var(--body)}.card .cdl span{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.card .cdl b{color:var(--slate)}
  .card .dlx{font-style:normal;white-space:nowrap}
  .card .cdl .dots i{width:7px;height:7px}.card .cdl .dots i.c{width:10px;height:10px;border-width:2px}
  .it .act .src{font-size:12.5px}
  .cards{align-items:start}
  /* heroes: Mac = 96×96 thumbnail left of the text; phone = a 16:9 strip across the card top */
  .card.hh{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start}
  .card .hero{display:block;width:96px;height:96px;border-radius:10px;border:1px solid var(--line);object-fit:cover;background:#fff}
  .card .hero.contain,.jhero.contain{object-fit:contain;background:#fff}
  .jhero{display:block;width:100%;max-width:720px;aspect-ratio:16/9;object-fit:cover;border-radius:12px;border:1px solid var(--line);margin:14px 0 4px;background:#fff}
  /* real page-one thumbnails: sharp, from the top, 1px border */
  .pg{image-rendering:auto;object-fit:cover;object-position:top;background:#fff}
  .cv img.pg,.cvbig img.pg{aspect-ratio:3/4;object-fit:cover;object-position:top}
  .it{grid-template-columns:56px 1fr auto}
  .it .th img{width:56px;height:72px;aspect-ratio:auto;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:4px}
  .tle{grid-template-columns:58px 42px 1fr}.tle .gl img{width:40px;height:52px;aspect-ratio:auto;object-fit:cover;object-position:top}
  .btn .mth{width:22px;height:28px;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:2px;margin:-2px 0}
  .nopv{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--hold);border-radius:999px;padding:0 6px;line-height:15px;margin-left:4px}
  /* the viewer = the Handbook's #viewer header (index.html ~202–217, phone ~236–246), light tokens */
  #viewer{position:fixed;inset:0;z-index:880;background:rgba(28,37,47,.62);display:flex;align-items:center;justify-content:center;padding:14px}
  #viewer.hidden{display:none}
  #viewer .vw{background:#fff;border:1px solid var(--line);border-radius:12px;width:min(1180px,100%);height:min(92vh,100%);display:flex;flex-direction:column;overflow:hidden}
  #viewer .vbar{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
  #viewer .vbar .vt{font-weight:800;font-size:14px;color:var(--ink)}#viewer .vbar .vm{color:var(--muted);font-size:12px}
  #viewer .vbar .sp{flex:1}
  #viewer .vact{display:flex;align-items:center;gap:10px}
  #viewer .vbtn{font:inherit;font-size:12.5px;font-weight:700;background:#fff;color:var(--slate);border:1px solid var(--slate);border-radius:8px;padding:7px 12px;cursor:pointer;text-decoration:none}
  #viewer .vbtn.p{background:var(--orange);border-color:var(--orange);color:var(--ink)}
  #viewer .vbtn:hover{border-color:var(--ink)}
  #viewer .vbody{flex:1;min-height:0;background:#EEF1F4;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px}
  #viewer .vpage{display:block;margin:0 auto;max-width:760px;width:100%;height:auto;background:#fff;border:1px solid var(--line);box-shadow:0 2px 10px rgba(0,0,0,.14)}
  #viewer .vnotes{max-width:560px;margin:12px auto 0}
  @media (max-width:760px){#viewer{padding:0}#viewer .vw{border-radius:0;height:100%}}
  @media (max-width:700px){
    .card.hh{grid-template-columns:1fr;gap:10px}.card .hero{width:100%;height:auto;aspect-ratio:16/9}
    /* fixed slots (AJ 10-25): row 1 title + Close · row 2 the details · row 3 Send · Download, two equal slots */
    #viewer .vbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center}
    #viewer .vbar .vt{grid-column:1;grid-row:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #viewer .vbar .vm{grid-column:1/-1;grid-row:2;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #viewer .vbar .sp{display:none}
    #v-close{grid-column:2;grid-row:1}
    #viewer .vact{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
    #viewer .vact .vbtn{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:7px 8px}
    #v-send{grid-column:1;grid-row:1}#v-dl{grid-column:2;grid-row:1}
  }
  @media (max-width:700px){ .mock{position:static;font-size:10px;letter-spacing:.08em} .tabs{top:0} .jtabs{scroll-margin-top:56px} }

  @media (max-width:520px){.master > span:not(.lab){display:none}}
  /* 10/28 ~5:50 AM, AJ on My jobs: "a bit too cramped together, the jobs" — more air between and inside the cards; the hero grows with it */
  .cards{gap:22px;margin-top:22px}
  .card{padding:20px 22px}
  .card .cs{margin-top:3px}
  .card .sg{margin-top:14px}
  .card .cdl{gap:7px;margin-top:12px}
  .card .cw{margin-top:16px;padding:11px 14px}
  .card.hh{gap:20px;grid-template-columns:120px minmax(0,1fr)}
  .card .hero{width:120px;height:120px}
  .past summary{margin-top:28px}
  @media (min-width:1000px){.cards{column-gap:28px;row-gap:28px}}
  @media (max-width:520px){.card{padding:16px 16px}.card.hh{gap:12px}}
  /* 10/28 ~6:00 AM — the Shipping stop = a card per container (AJ "B: container cards") */
  .ctrs{display:grid;gap:12px;margin-top:10px}
  @media (min-width:1000px){.ctrs{grid-template-columns:1fr 1fr;gap:14px}}
  .ctr{border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff}
  .ctr.now{border-color:var(--orange);background:var(--soft)}.ctr.done{background:var(--okbg);border-color:#CFE3D6}
  .ctr .ch{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.ctr .ch b{font-size:16px}.ctr .ch .cn{font-family:ui-monospace,Menlo,monospace;font-size:13.5px;color:var(--body)}
  .ctr .ch .st{margin-left:auto;font-weight:800;font-size:13.5px;white-space:nowrap}.ctr.done .ch .st{color:var(--ok)}.ctr.now .ch .st{color:#C4521F}
  .ctr .in{color:var(--body);font-size:14px;margin:4px 0 10px}.ctr .in b{color:var(--slate)}
  .ctr .steps{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin:6px 0 10px}
  .ctr .stp{text-align:center;font-size:11.5px;color:var(--muted);line-height:1.25;position:relative;padding-top:18px}
  .ctr .stp::before{content:"";position:absolute;left:0;right:0;top:7px;border-top:2px solid var(--line)}
  .ctr .stp::after{content:"";position:absolute;left:50%;top:2px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#fff;border:2px solid var(--line)}
  .ctr .stp.d::before{border-color:var(--ok)}.ctr .stp.d::after{background:var(--ok);border-color:var(--ok)}
  .ctr .stp.c::after{background:var(--orange);border-color:var(--ink);width:14px;height:14px;margin-left:-7px;top:1px}
  .ctr .stp.d,.ctr .stp.c{color:var(--slate)}.ctr .stp b{display:block;font-weight:800;font-size:11.5px}.ctr .stp span{display:block}
  .ctr .stp:first-child::before{left:50%}.ctr .stp:last-child::before{right:50%}
  .ctr .ft{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;color:var(--body)}.ctr .ft .btn{margin-left:auto}
  .ctr .hold{color:var(--red);font-weight:700}
  @media (max-width:520px){.ctr .steps{grid-template-columns:repeat(3,1fr);row-gap:10px}.ctr .stp:nth-child(3)::before{right:0}.ctr .stp:nth-child(4)::before{left:0}}

  /* the real PDF inside the ONE viewer (fleet pdf.js) */
  .vpdf{display:block;width:100%;height:calc(100vh - 64px);border:0;background:#525659}
  @media (max-width:520px){.vpdf{height:calc(100vh - 104px)}}
  /* 10/28 ~8:05 AM — AJ "there should be a tile view and this card view. it's very big" — compact tiles, a tap opens one as a card */
  .pill{border:1.5px solid var(--line);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;background:#fff;cursor:pointer;color:var(--slate);white-space:nowrap}
  .k .ctrpill,.sl .ctrpill{margin-left:auto;letter-spacing:0;text-transform:none}.sl{display:flex;align-items:center;gap:10px}
  .ctiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
  @media (min-width:700px){.ctiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
  @media (min-width:1000px){.ctiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}
  .ctile{display:grid;gap:2px;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;cursor:pointer;color:inherit;font:inherit;min-width:0}
  .ctile.now{border-color:var(--orange);background:var(--soft)}.ctile.done{background:var(--okbg);border-color:#CFE3D6}
  .ctile b{font-size:14.5px}.ctile .cn{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--body);overflow:hidden;text-overflow:ellipsis}
  .ctile .st{font-weight:800;font-size:13px;margin-top:4px}.ctile.now .st{color:#C4521F}.ctile.done .st{color:var(--ok)}
  .ctile .nx,.ctile .un{font-size:12.5px;color:var(--body)}
  .ctiles .ctr{grid-column:1 / -1}.ctr .ch[data-ctr]{cursor:pointer}.ctr .ch .x{margin-left:8px;color:var(--muted);font-size:13px}

  /* block 2 (10/28): a ticket's current step line */
  .tk .mv.now span:first-child{color:#C4521F;font-weight:800}.tk.closed .mv.now span:first-child{color:var(--ok)}
  /* 10/28 (AJ: "shops should be landscape thumbs") — a real page-one cover keeps its own shape: a landscape drawing is wide and short,
     a portrait proposal is tall; only the DRAWN fallback is 3:4 by construction */
  .cv img.pg,.cvbig img.pg{aspect-ratio:auto;height:auto;object-fit:contain}
  .it .th img.pg,.chip img.pg,.tle .gl img.pg{aspect-ratio:auto;height:auto}
  .cv img,.cvbig img{object-fit:contain}
  .vpage.pg{width:auto;max-width:100%;height:auto}
  /* 10/28 ~3:40 PM — AJ "the main page cards need to be smaller": three across on a Mac, a smaller hero, tighter rows */
  .cards{gap:14px;margin-top:16px}
  .card{padding:13px 15px}
  .card .ad{font-size:16.5px}.card .cs{font-size:13px;margin-top:1px}
  .card .sg{margin-top:9px;font-size:14px}.card .cdl{gap:4px;margin-top:8px;font-size:12.5px}
  .card .cw{margin-top:10px;padding:8px 11px;font-size:13.5px}.card .cw b{font-size:10.5px}
  .card.hh{gap:12px;grid-template-columns:84px minmax(0,1fr)}
  .card .hero{width:84px;height:84px}
  .card .hero.nohero{font-size:9.5px}
  @media (min-width:1000px){.cards{column-gap:16px;row-gap:16px;grid-template-columns:1fr 1fr}}
  @media (min-width:1180px){.cards{grid-template-columns:1fr 1fr 1fr}}
  @media (max-width:520px){.card{padding:12px 13px}.card.hh{grid-template-columns:1fr;gap:8px}.card .hero{width:100%;height:auto;aspect-ratio:21/9}}
