/* ===== app.css =====
   Colours, radii, spacing and shadows live in tokens.css ONLY. Do not declare --bg/--sf/--tx/--ac/... here. ===== */
*{box-sizing:border-box}html,body{margin:0}
body{font:15px/1.5 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
h1,h2,h3{font-family:'Barlow Condensed',sans-serif;letter-spacing:.01em;margin:0}
button{font:inherit;color:inherit;cursor:pointer}
.top{position:sticky;top:0;z-index:10;display:flex;padding:12px 20px;background:color-mix(in srgb,var(--bg) 82%,transparent);}
.brand{display:flex;align-items:center;font:700 22px 'Barlow Condensed';cursor:pointer}
.mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--bl),#0E1A2B);display:grid;place-items:center;color:var(--ac);font:700 15px 'Barlow Condensed'}
.sp{flex:1}.bl{display:flex;}.bl img{display:block}

.btn.p{font-weight:600}
.btn.d{color:var(--bad)}
.wrap{margin:0 auto;}
.hero{padding:8px 0 28px}.hero h1{font-size:44px;line-height:1.05}.hero p{color:var(--mu);max-width:52ch;margin:8px 0 0}
.sec{font-size:22px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));}
.tile{text-align:left;display:flex;flex-direction:column;}

.tile i{width:36px;height:4px;border-radius:2px;background:var(--ac);margin-bottom:6px}
.row{display:flex;align-items:center;margin-bottom:8px;cursor:pointer}
.row small{color:var(--mu)}
.ed{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:20px;align-items:start}

.pane h3{font-size:19px;margin:20px 0 10px;padding-top:14px;border-top:1px solid var(--ln)}.pane h3:first-child{margin-top:0;padding-top:0;border:0}
.fld{margin-bottom:12px}.fld label{display:block;font-size:12.5px;font-weight:600;color:var(--mu);margin-bottom:4px}
.ctl{display:flex;gap:6px}
input,textarea,select{width:100%;font:inherit;color:var(--tx);background:var(--sf2);border:1px solid var(--ln);border-radius:9px;padding:9px 11px}
input:focus,textarea:focus,select:focus{outline:2px solid var(--bl);border-color:transparent}
.al{display:flex;border:1px solid var(--ln);border-radius:9px;overflow:hidden;flex:none}
.al button{border:0;background:var(--sf2);width:32px;color:var(--mu);font-size:13px}
.chk{display:flex;flex-wrap:wrap;gap:6px 14px}.chk label{display:flex;gap:6px;align-items:center;color:var(--tx);font-weight:400;font-size:14px;margin:0}.chk input{width:auto}
.tr{background:var(--sf2);border-radius:12px;padding:10px;margin-bottom:8px}
.tr .cs{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.tabs{display:none}
.stage{overflow:auto;display:flex;justify-content:center}
.slot-ed{display:grid;grid-template-columns:repeat(5,1fr);}
.slot-ed label{aspect-ratio:1;border:1.5px dashed var(--ln);display:grid;place-items:center;overflow:hidden;cursor:pointer;color:var(--mu);font-size:12px;text-align:center;background:var(--sf2)}
.slot-ed img{max-width:80%;max-height:80%}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--tx);color:var(--bg);padding:10px 18px;z-index:99}

/* ---------- A4 sheet (preview + PDF): mirrors the original Danholsen forms ---------- */
.sheet{width:210mm;min-height:297mm;background:#fff;color:#111;padding:0 10mm;font:11px/1.35 Lato,Arial,sans-serif;box-shadow:0 10px 40px #0004}
.wrap2{width:100%;border-collapse:collapse}.wrap2>thead td,.wrap2>tfoot td{padding:0;height:8mm}.wrap2>tbody>tr>td{padding:0;vertical-align:top}
.body{display:flex;flex-direction:column;gap:7px}
.logos{display:flex;min-height:18mm;border:1px solid #111}
.slot{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:2mm}
.slot img{max-width:100%;max-height:14mm;width:auto;height:auto;object-fit:contain;display:block}
.bar{height:4px;background:#111;margin-top:3px}
.jt{display:flex;justify-content:space-between;align-items:flex-end;margin:6px 0 4px}.jt h2{font:700 23px Lato,Arial}
.jt span{font-weight:700;font-size:11px}.jt u{display:inline-block;min-width:44mm;border-bottom:1.5px solid #111;text-decoration:none;padding:0 6px 2px}
.ob{background:var(--ac);text-align:center;padding:7px}.ob h2{font:700 17px Lato,Arial;text-transform:uppercase}
.tt{text-align:center;padding:3px}.tt h2{font:400 22px Lato,Arial;text-decoration:underline;text-transform:uppercase}
.gb{background:#D9D9D9;border:1px solid #9A9A9A;text-align:center;padding:8px}.gb h2{font:700 13px Lato,Arial;text-transform:uppercase}
.sh{font-weight:700;font-size:11px;text-transform:uppercase;padding:5px 8px}
.st-jcf .sh{padding:6px 0}.st-jcf .sh.ctr{text-align:center}
.st-trn .sh{background:#3A3A3A;color:#fff}

.st-rep .sh{background:#D9D9D9;text-align:center;border:1px solid #9A9A9A}
.g{display:grid;border-top:1px solid #9A9A9A;border-left:1px solid #9A9A9A}
.c{display:flex;border-right:1px solid #9A9A9A;border-bottom:1px solid #9A9A9A;min-height:8.5mm;break-inside:avoid}
.c .l{width:36%;max-width:38mm;flex:none;background:#F1F1F1;font-weight:700;font-size:10px;padding:3px 7px;display:flex;align-items:center;border-right:1px solid #9A9A9A}
.st-tsh .c .l{text-transform:uppercase}
.c .v{flex:1;min-width:0;padding:3px 7px;display:flex;align-items:center;white-space:pre-wrap;overflow-wrap:anywhere}.v.t{display:flex;align-items:center}
.lr{display:flex;align-items:center;border-bottom:1px solid #D0D0D0;padding:9px 0;break-inside:avoid}.lr b{width:55mm;flex:none;text-transform:uppercase;font-size:11px}.lr .v{flex:1;padding:0;text-transform:uppercase}
.rbs{border-top:1px solid #9A9A9A;border-left:1px solid #9A9A9A}
.rg{display:grid;grid-template-columns:repeat(var(--n),1fr);break-inside:avoid}
.rl,.rv{border-right:1px solid #9A9A9A;border-bottom:1px solid #9A9A9A;min-width:0}
.rl{background:#D9D9D9;font-weight:700;font-size:9.5px;text-transform:uppercase;text-align:center;padding:4px 5px;display:flex;align-items:center;justify-content:center}
.rv{display:flex;min-height:9mm}.rv .v{flex:1;min-width:0;padding:3px 6px;display:flex;align-items:center;white-space:pre-wrap;overflow-wrap:anywhere}
.tb{width:100%;border-collapse:collapse;table-layout:fixed}
.tb th{background:#3A3A3A;color:#fff;font-size:9.5px;padding:6px 4px;border:1px solid #111;text-transform:uppercase}
.st-tsh .tb th,.st-rep .tb th{background:#D9D9D9;color:#111;border-color:#9A9A9A}
.tb td{border:1px solid #9A9A9A;padding:4px 7px;vertical-align:middle;overflow-wrap:anywhere;height:8mm}.tb tr{break-inside:avoid}
.st-jcf .tb td{height:10.5mm;border-color:#111}.st-trn .tb td{height:11mm}
.o{display:inline-block;width:5mm;height:5mm;border:1.2px solid #444;border-radius:50%;vertical-align:middle;position:relative}.o.on::after{content:'';position:absolute;inset:1mm;background:#111;border-radius:50%}
.bx{display:inline-block;width:4.2mm;height:4.2mm;border:1.2px solid #444;border-radius:1px;vertical-align:middle;margin-right:5px;text-align:center;line-height:3.8mm;font-size:10px;font-weight:700}
.st-trn .bx.on{background:#1A73E8;border-color:#1A73E8;color:#fff}
.ck{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;border:1px solid #9A9A9A;padding:8px 10px}
.sg{display:grid;grid-template-columns:repeat(var(--n),1fr);border:1px solid #9A9A9A}.sg>div{padding:5px 8px;border-right:1px solid #9A9A9A}.sg>div:last-child{border:0}
.sg .l{font-weight:700;font-size:9px;text-transform:uppercase;margin-bottom:3px}.sg .ln{border-bottom:1px solid #111;min-height:6mm;display:flex;align-items:flex-end;padding-bottom:1px}
.sl{display:grid;grid-template-columns:1fr 1fr;gap:12px 14mm;margin-top:4px}.sl>div{display:flex;align-items:flex-end;gap:6px;font-weight:700;text-transform:uppercase}.sl .ln{flex:1;border-bottom:1px solid #111;min-height:8mm;font-weight:400;display:flex;align-items:flex-end;text-transform:none}
.bxs{display:grid;grid-template-columns:1fr 1fr;border:1px solid #111;break-inside:avoid}.bxs>div+div{border-left:2px solid #111}
.bxs .bh{background:var(--ac);font-weight:700;text-align:center;font-size:9.5px;padding:6px;text-transform:uppercase}

.bxs .br{padding:8px 8px;border-top:1px solid #9A9A9A;min-height:10mm;display:flex;align-items:center;gap:5px}.bxs .br b{font-weight:400}.bxs .br .v{flex:1;padding:0}
.ft{margin-top:6px;padding-top:4px;font-size:9px;color:#444;display:flex;justify-content:space-between}

@media(max-width:900px){.ed{grid-template-columns:1fr}.tabs{gap:8px;margin-bottom:12px}.tabs .btn{flex:1}.ed[data-v=form] .stage,.ed[data-v=prev] .pane{display:none}.hero h1{font-size:36px}.stage{padding:8px;justify-content:flex-start}}
@media print{
 @page{size:A4;margin:0}
 html,body{background:#fff!important;padding:0}
 .top,.pane,.tabs,.hero,.toast{display:none!important}
 .wrap,.ed,.stage{display:block!important;padding:0!important;margin:0!important;background:none!important;max-width:none!important;border:0!important}
 .sheet{box-shadow:none;min-height:0;width:210mm}
 *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.brand>span:last-child{display:inline}
.top .btn{white-space:nowrap}@media(max-width:600px){.top{padding:10px 12px;gap:8px}}
.sh{break-after:avoid}.sg,.sl,.ck,.g{break-inside:avoid}
.jt h2{text-transform:uppercase}

.sxg{display:grid;grid-template-columns:1fr 2fr 2fr 2fr 2fr;border-top:1px solid #9A9A9A;border-left:1px solid #9A9A9A}.sxg>div{border-right:1px solid #9A9A9A;border-bottom:1px solid #9A9A9A;padding:3px 6px;min-height:9mm;display:flex;align-items:center;gap:4px;min-width:0}.sxg .v{flex:1;padding:0}.sxg .sxh{background:#D9D9D9;font-weight:700;justify-content:center;text-transform:uppercase;font-size:9.5px;min-height:6mm}.sxg .sxl{grid-column:1;grid-row:2/5;justify-content:center;text-align:center}.sxg .sxh .v{justify-content:center}
.st-tsh .sh{background:#3A3A3A;color:#fff;padding:5px 8px;font-weight:700}.st-tsh .tb th{background:#3A3A3A;color:#fff;border-color:#111}.st-tsh .tb td{height:8mm}.tb .tsr td{background:#F2F2F2;font-weight:700;height:8mm}.tb .tsr .tsl{text-align:right;padding-right:10px;font-size:11px}.tb .tsr .tsv{text-align:center}.st-tsh .tt{text-align:right;border-bottom:2px solid var(--ac)}.st-tsh .tt h2{font:700 20px Lato,Arial;text-decoration:none}.st-tsh .bxs .bh{background:var(--ac);color:#fff;border-bottom:1px solid #111}
.sxg>div>b{flex:none;min-width:15mm}.sxg>div:not(.sxh):not(.sxl)>.v{justify-content:flex-start!important;text-align:left!important}

/* ===== premium.css ===== */
/* Premium layer: loads after app.css, restyles the shell only. A4 sheet is untouched. */

.top{padding:calc(10px + env(safe-area-inset-top)) 18px 10px;border-bottom:1px solid color-mix(in srgb,var(--ln) 70%,transparent);background:color-mix(in srgb,var(--bg) 78%,transparent);}


.ib{display:grid;place-items:center;color:var(--tx);}
.ib:active,.btn:active,.tile:active,.row:active{transform:scale(.97)}.ib.d{color:var(--bad);width:40px;height:40px;}
.btn{font-weight:600;transition:.15s}


.h1.s{font-size:30px;}

.search:focus{outline:2px solid var(--bl)}
.cont{display:flex;}
.pg{flex:none;width:76px;height:102px;background:#fff;border-radius:7px;padding:9px 8px;box-shadow:0 8px 18px #0006;transform:rotate(-3deg)}
.pg i{display:block;height:4px;background:#ddd;margin-top:8px;border-radius:2px}.pg i:first-child{height:5px;background:#111;margin-top:12px}.pg i:nth-child(2){width:60%;background:var(--ac)}



.grid{grid-template-columns:repeat(2,1fr);}
.tile{min-height:0;align-items:stretch}

.thm{height:66px;border-radius:9px;background:#fff;border:1px solid var(--ln);position:relative;overflow:hidden}
.thm b{position:absolute;display:block;left:9px;right:9px;height:5px;margin:0;background:#D9D9D9;border-radius:1px;font-size:0}
.thm b:nth-child(1){top:11px;height:5px;background:#111;left:0;right:0}.thm b:nth-child(2){top:23px;width:45%;right:auto;background:var(--ac)}
.thm b:nth-child(3){top:37px}.thm b:nth-child(4){top:48px;height:1px;background:#999}
.t-trn .thm b:nth-child(1),.t-jcf .thm b:nth-child(1){background:var(--ac)}.t-tsh .thm b:nth-child(3){height:12px;top:35px}.t-ut .thm b:nth-child(3){height:14px;top:37px;border:1px solid #999;background:none}
.row{margin:0 0 10px}
.ri{width:40px;height:40px;border-radius:11px;background:var(--sf2);display:grid;place-items:center;color:var(--bl);flex:none}[data-t=dark] .ri{color:var(--ac)}
.rt{flex:1;}.rt b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.empty{color:var(--mu);padding:18px;text-align:center;border:1.5px dashed var(--ln);}
.nav{position:fixed;z-index:20;bottom:0;display:flex;justify-content:space-around;padding:8px 12px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--sf) 88%,transparent);border-top:1px solid var(--ln)}
.nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.nav button.on{font-weight:600;background:color-mix(in srgb,var(--bl) 10%,transparent)}
.lead{color:var(--mu);margin:0 0 16px;}

input,textarea,select{border-radius:12px;padding:11px 13px;min-height:44px}
.slot-ed{gap:10px}.slot-ed label{border-radius:14px;line-height:1.3;transition:.15s}.slot-ed label:hover{border-color:var(--ac);background:#F2A9000F}
#ttl{max-width:none;background:transparent;border-color:transparent;padding:0 8px}#ttl:focus{background:var(--sf2)}

.tabs{padding:4px;background:var(--sf2);border-radius:14px;margin-bottom:14px}.tabs .btn{border:0;background:transparent;box-shadow:none;min-height:40px}
.toast{box-shadow:0 12px 30px #0006}
@media(min-width:600px){.grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.wrap{padding:30px 32px 60px}}
@media(min-width:900px){.nav{padding-top:96px;border-top:0;}
 body:has(.nav){padding-left:88px}body:has(.nav) .top{margin-left:-88px;}.wrap{padding-bottom:60px}.h1{font-size:54px}}
@media(max-width:900px){.tabs{display:flex}.wrap:has(.ed){padding-bottom:40px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.nav,.top{display:none!important}body{padding:0!important}}

/* ---- in-place editing ---- */
.ew{max-width:none;}.hint{text-align:center;}
.stage{flex-direction:column;}
.sheet [data-ed]{caret-color:var(--edit);cursor:text;-webkit-user-select:text;user-select:text;-webkit-tap-highlight-color:transparent}
.sheet [data-ed]:empty::after{content:'\00a0'}
.sheet .cki,.sheet .rc{cursor:pointer}
.addrow{display:block;margin:6px auto 2px;border:1.5px dashed #999;background:none;border-radius:8px;padding:6px 16px;font:600 10px Inter;color:#555;cursor:pointer}
@media screen{.sheet [data-ed]:hover{background:#F2A90022;outline:1.5px dashed var(--ac);outline-offset:1px;border-radius:2px}
.sheet [data-ed].on{outline:2px solid var(--edit)!important;outline-offset:2px;background:#1F4FD812!important;border-radius:2px}
.sheet .rc:hover,.sheet .cki:hover{background:#F2A90033}}
.etb{position:fixed;left:0;right:0;z-index:30;max-width:560px;margin:0 auto;background:var(--sf);padding:14px 16px calc(14px + env(safe-area-inset-bottom));}
.eh{display:flex;justify-content:space-between;align-items:center;min-height:26px}
.eh small{font:600 12px Inter;color:var(--mu);}.eh button{border:0;background:none;font-weight:600;padding:6px 4px}[data-t=dark] .eh button{color:var(--ac)}
.er{display:flex;gap:8px;margin-top:8px}.ab{flex:none;width:48px;height:48px;border:1px solid var(--ln);background:var(--sf2);display:grid;place-items:center}
.ab.on{border-color:transparent}
.nx{flex:1;min-width:0;height:48px;border:1px solid var(--ln);background:var(--sf2);font-weight:600}.nx.dk{border:0}
/* ---- logo drag ---- */
.sheet [data-slot],.slot-ed label[data-slot]:has(img){touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}
.lift{opacity:.35}.dt{outline:2.5px solid var(--ac)!important;outline-offset:-3px;background:#F2A9001F!important}
.ghost{position:fixed;z-index:200;pointer-events:none;width:76px;height:auto;transform:translate(-50%,-50%) rotate(-4deg);background:#fff;padding:5px;border-radius:10px;filter:drop-shadow(0 10px 16px #0007)}
@media print{.sheet [data-ed]{outline:0!important;background:none!important}.addrow,.etb,.hint{display:none!important}.sheet{zoom:1!important}.stage{padding:0!important;background:none!important}}
.top:has(#ttl) .sp{display:none}#ttl{flex:1 1 auto;min-width:0;text-overflow:ellipsis}
.top:has(#ttl) .btn.p{flex:none;padding:0 14px}.nx{white-space:nowrap}.nx.dk{flex:1.5}
/* ---- logo controls ---- */
.lp{background:#fff;border-radius:12px;padding:6px;margin:0 0 14px;box-shadow:var(--sh)}.lp .logos{background:#fff;min-height:22mm}
.lp .slot{cursor:pointer}.lp .slot.sel,.slot-ed label.sel{outline:2.5px solid var(--ac);outline-offset:-3px;background:#FFF7E0}
.lc{background:var(--sf2);border-radius:16px;padding:14px;margin-bottom:6px;display:flex;flex-direction:column;gap:12px}
.lm{display:flex;gap:10px}.lm .btn{flex:1;display:grid;place-items:center;text-align:center;cursor:pointer;height:48px}
.sz{font-weight:600;font-size:13px;display:block}.sz b{float:right;color:var(--mu);font-weight:600}
.sz input{padding:0;min-height:30px;margin-top:8px;accent-color:var(--edit);background:none;border:0}
.tip{color:var(--mu);font-size:13px;margin:0 0 6px}
.lm .btn{padding:0 8px;font-size:13.5px;white-space:nowrap}
/* ===== design pass 2: real document previews, calmer desk, trust cues ===== */

.mini{position:relative;overflow:hidden;background:#fff;flex:none}
.mini .sheet{position:absolute;left:0;top:0;width:794px!important;min-height:0;transform-origin:0 0;pointer-events:none;zoom:1!important;box-shadow:none;margin:0}
.tmn{aspect-ratio:1/.9;}


.cpg{width:92px;height:122px;}

.rmi{width:42px;height:56px;border:1px solid var(--ln);background:#fff}

[data-t=dark] .tmn,[data-t=dark] .rmi{border-color:#ffffff22}
/* editor */

.ctx{display:flex;align-items:center;}.tp{color:var(--tx);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv{border-radius:99px;position:relative}
.sv::before{content:'';position:absolute;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#2FA866;transition:.2s}.sv.w::before{background:var(--ac)}
.zm{display:flex;overflow:hidden;background:var(--sf)}.zm button{width:40px;border:0;background:none;font-size:18px;font-weight:500}.zm button+button{border-left:1px solid var(--ln)}
.hint{margin:2px 0 10px;}
.stage{background:transparent;align-items:flex-start;border-radius:0}
.stage .sheet{margin:0 auto;flex:none;}
.ew{padding:10px 10px 150px}
/* backup */
.bkc{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:16px;margin-top:12px}
.bkc b{display:block;font-weight:600}.bkc small{display:block;color:var(--mu);margin-top:2px;line-height:1.4}.bkc .btn{flex:none;display:grid;place-items:center;cursor:pointer;}
@media print{body:has(.ew){background:#fff!important}.ctx{display:none!important}}
/* ---- dynamic report header: [logos] | title | [logos], columns set per document ---- */
.rh{display:grid;border:1px solid #111;min-height:18mm}
.rh>*+*{border-left:1px solid #111}
.rh .slot{padding:2mm}
.rt{display:flex;align-items:center;justify-content:center;text-align:center;padding:2mm 3mm;min-width:0}
.rt h2{font:700 12px/1.25 Lato,Arial,sans-serif;text-transform:uppercase;overflow-wrap:break-word;hyphens:none}
.stage [data-lgo]{cursor:pointer;transition:background .15s}.stage [data-lgo]:hover{background:#F2A90022}
.lgbtn{margin-left:auto;margin-right:8px;color:var(--tx);white-space:nowrap}
.lgbtn:hover{border-color:var(--ac)}
/* ---- per-document logo panel ---- */
.lgp{position:fixed;inset:0;z-index:60}
.lgp .lgb{position:absolute;inset:0;}
.lgs{position:absolute;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;max-height:82vh;overflow:auto;background:var(--sf);color:var(--tx);padding:16px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px #0004}
.lgh{display:flex;justify-content:space-between;align-items:center}.lgh b{font:700 16px Inter,sans-serif}
.lgh button{border:0;background:none;font-weight:600;padding:6px 4px}[data-t=dark] .lgh button{color:var(--ac)}
.lgn{color:var(--mu);font-size:13px;margin:6px 0 12px;line-height:1.4}
.lgr{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.lgc{width:84px;height:58px;border:1.5px solid var(--ln);background:#fff;display:grid;place-items:center;padding:6px;cursor:pointer}

.lgc.sel{outline:2.5px solid var(--ac);outline-offset:-3px;background:#FFF7E0}
.lgc.up{background:var(--sf2);color:var(--mu);border-style:dashed;align-content:center;gap:0;text-align:center}.lgc.up span{font-size:20px;line-height:1}.lgc.up small{font-size:11px}
.lgx{background:var(--sf2);border-radius:16px;padding:14px;margin-bottom:12px;display:flex;flex-direction:column;gap:12px}
.lgx .btn[disabled]{opacity:.4}
.lgp h3{margin:6px 0 8px}
/* ---- logo library page ---- */
.libg{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin:8px 0 18px}
.libc{position:relative;background:#fff;border:1.5px solid var(--ln);aspect-ratio:1.5;display:grid;place-items:center;padding:12px;color:#555}
.libc img{max-width:100%;max-height:100%;object-fit:contain}
.libc small{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:10px;color:#777}
.libc.up{background:var(--sf2);color:var(--mu);border-style:dashed;cursor:pointer;align-content:center;text-align:center}.libc.up span{font-size:24px;line-height:1}.libc.up small{position:static;font-size:12px}
.libx{position:absolute;border-radius:50%;border:0;background:#111;color:#fff;font-size:16px;line-height:1}
.logos .slot:only-child{justify-content:flex-start;padding-left:4mm}
/* ---- editable labels / row + field tools ---- */
.nx.dl{color:var(--bad);flex:1}
.sheet [data-ed^="o:"]:empty{min-height:1.2em}
.sheet [data-ed^="o:"]:empty::after{content:"\200b"}
.sheet .addrow+.addrow{margin-left:8px}
/* ---- row delete handle (tap the red x at the end of a table row) + undo ---- */
#stage tr[data-rr]{position:relative}
#stage tr[data-rr]::after{content:"\00d7";position:absolute;left:100%;top:50%;transform:translateY(-50%);border-radius:50%;background:var(--bad-solid);color:#fff;text-align:center;cursor:pointer}
@media print{#stage tr[data-rr]::after{display:none}}
.toast{display:flex;align-items:center;gap:14px}.toast button{border:0;background:none;color:var(--ac);font-weight:700;padding:2px 4px}
.eh button[disabled],.lgbtn[disabled]{opacity:.4}
.eh span{display:flex;gap:6px}
/* transmittal: label column is the same width on every row, whatever the box spans (e.g. the full-width Location row) */
.st-trn .c .l{width:calc(72% / var(--sp,2));max-width:none}
/* name / signing rows are pinned to the bottom of the page */
.sheet .body{min-height:calc(297mm - 16mm)}
.sheet .bot{margin-top:auto;display:flex;flex-direction:column;gap:7px}

/* ===== elegant.css ===== */
/* Elegant layer: loads last. Public Sans throughout, ink-navy + amber, hairline structure, calm spacing. */

body,button,input,textarea,select{font-family:var(--font)}
body{font-size:15px;line-height:1.55;letter-spacing:-.005em;color:var(--tx)}
h1,h2,h3,.brand,.mark,.wm,.h1,.sec,.ci h2,.pane h3,#ttl,.tile b,.hero h1,.nav button,.sub,.empty{font-family:var(--font)}
:focus-visible{outline:2px solid var(--ac);outline-offset:3px;border-radius:8px}

/* ---- top bar ---- */
.top{padding:calc(10px + env(safe-area-inset-top)) 20px 10px;background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid var(--ln);backdrop-filter:saturate(1.6) blur(22px)}

.wm{display:flex;align-items:center}
.wm::before{content:'';}
.ib{border:1px solid var(--ln);background:var(--sf);box-shadow:none;transition:border-color .2s,background .2s}
.ib:hover{border-color:color-mix(in srgb,var(--tx) 28%,var(--ln))}
.ib.d{border-color:transparent;background:transparent}
.btn{padding:0 18px;border:1px solid var(--ln);background:var(--sf);font:600 14px var(--font);letter-spacing:-.005em;box-shadow:none}
.btn.p{border-color:transparent;}
.btn.p:hover{filter:brightness(1.05)}

/* ---- home ---- */
.wrap{max-width:1180px;padding:36px 28px 140px}
.h1{margin:4px 0 8px}
.h1.s{font:700 19px/1 var(--font);letter-spacing:-.02em;margin:0}
.sub{margin:0 0 24px;color:var(--mu);}
input,textarea,select{font-family:var(--font);min-height:44px;border-radius:11px;background:var(--sf2);border:1px solid var(--ln);color:var(--tx)}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--ac);box-shadow:0 0 0 4px color-mix(in srgb,var(--ac) 22%,transparent)}
.search{max-width:none;padding:0 18px;background:var(--sf);box-shadow:none;font-size:14.5px}
.cont{max-width:none;margin-top:22px;padding:22px 28px;border-radius:20px;position:relative;overflow:hidden;color:#fff;
 background:linear-gradient(135deg,#102A52 0%,#0A1A36 62%,#081327 100%);border:1px solid #ffffff14;box-shadow:0 28px 50px -30px rgba(8,18,40,.8)}
.cont::before{content:'';position:absolute;left:0;top:24px;bottom:24px;width:3px;border-radius:0 3px 3px 0;background:var(--ac)}
.cpg{border-radius:6px;transform:rotate(-2deg);box-shadow:0 16px 30px -10px #0009;border:0}
.ci small{font:600 12.5px var(--font);letter-spacing:0;text-transform:none;color:#F4BC3F}
.ci h2{font:700 26px/1.15 var(--font);letter-spacing:-.03em;margin:6px 0 4px;color:#fff}
.ci p{color:#A8B6CD;font-size:13.5px;margin:0 0 16px}

.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tile{gap:2px;background:var(--sf);border:1px solid var(--ln);box-shadow:none;transition:border-color .2s,box-shadow .2s}
.tile:hover{transform:none;border-color:color-mix(in srgb,var(--ac) 65%,var(--ln));box-shadow:var(--sh)}
.tile:active{transform:scale(.985)}
.tmn{border:1px solid var(--ln);box-shadow:none}
.tile b{margin-top:12px;padding:0 6px;font:600 14.5px/1.3 var(--font);letter-spacing:-.015em}
.tile span{padding:0 6px;font-size:12.5px;line-height:1.45;color:var(--mu)}
.row{padding:10px;gap:14px;background:var(--sf);border:1px solid var(--ln);box-shadow:none;transition:border-color .2s}
.row:hover{border-color:color-mix(in srgb,var(--tx) 24%,var(--ln))}
.rmi{border-radius:5px}
.rt b{font:600 14.5px var(--font);letter-spacing:-.012em}.rt small{font-size:12.5px;color:var(--mu)}
.empty{font-size:14px}
@media(min-width:640px){.grid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:16px}.h1{font-size:46px}}

/* ---- navigation: floating bar on phones, slim rail on desktop ---- */
.nav{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:440px;margin:0 auto;padding:6px;gap:2px;
 border:1px solid var(--ln);background:color-mix(in srgb,var(--sf) 95%,transparent);backdrop-filter:blur(22px) saturate(1.6);box-shadow:0 20px 44px -20px rgba(11,20,36,.4)}
.nav button{position:relative;flex:1;width:auto;height:50px;font:600 11px var(--font);letter-spacing:0;color:var(--mu);transition:background .2s,color .2s}
.nav button.on{background:var(--sf2)}

@media(min-width:900px){
 .nav{top:0;bottom:0;left:0;right:auto;width:88px;max-width:none;margin:0;padding:92px 12px 0;gap:6px;border:0;border-right:1px solid var(--ln);border-radius:0;background:color-mix(in srgb,var(--bg) 72%,transparent);box-shadow:none;flex-direction:column;align-items:center;justify-content:flex-start}
 .nav button{flex:none;width:64px;height:60px}
 .nav button.on::before{content:'';position:absolute;left:-12px;top:16px;bottom:16px;width:3px;border-radius:0 3px 3px 0;background:var(--ac)}
}

/* ---- editor ---- */

#ttl{font:700 17px var(--font);letter-spacing:-.02em}

.tp{font:600 13px var(--font);letter-spacing:-.01em}
.lgbtn{margin:0;padding:7px 13px;background:var(--sf);border:1px solid var(--ln);font:600 12.5px var(--font)}
.lgbtn:hover{border-color:color-mix(in srgb,var(--ac) 70%,var(--ln))}
.sv{padding:5px 4px 5px 18px;font:600 12.5px var(--font)}.sv::before{left:4px}
.zm{border:1px solid var(--ln)}.zm button{color:var(--tx)}
.hint{color:var(--mu);font-size:12.5px}
.stage .sheet{box-shadow:0 1px 2px #0003,0 34px 64px -30px rgba(8,16,36,.6)}
.etb{border-bottom:0;}
.ab,.nx{border-radius:12px;font-family:var(--font);border-color:var(--ln)}
.eh small{font-family:var(--font);letter-spacing:0}


/* ---- logo panel, library, backup ---- */
.pane{background:var(--sf);border:1px solid var(--ln);box-shadow:none}
.pane h3{font:700 16px var(--font);letter-spacing:-.02em}
.lead{font-size:14px;line-height:1.6;max-width:62ch}
.bkc{background:var(--sf2);border:1px solid var(--ln)}
.libc,.lgc{border-radius:12px}

.toast{border-radius:12px;font:500 14px var(--font)}

/* ---- report sheets: same family on screen as the app ---- */
.sheet,.sheet *{font-family:var(--font)!important;letter-spacing:0}
.sheet{line-height:1.35}
@media print{.sheet,.sheet *{font-family:var(--font)!important}}
.sheet .bx{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:12px;padding:0}
.sheet .o{vertical-align:middle}

/* ================= v15: true-black dark mode ================= */


[data-t=dark] .cont{background:linear-gradient(135deg,#1C1C1F 0%,#0E0E10 62%,#070708 100%);border-color:#ffffff14;box-shadow:0 28px 50px -30px #000}
[data-t=dark] .top{background:color-mix(in srgb,#000 82%,transparent)}
[data-t=dark] .nav{background:color-mix(in srgb,#0B0B0C 94%,transparent)}
[data-t=dark] .etb,[data-t=dark] .lgs{background:#0B0B0C}
[data-t=dark] .lgc.up{background:var(--sf2)}

/* ================= v15: Recent = slideable tiles ================= */

/* ================= v15: bold / size controls + signatures ================= */
.ab.fb b{font:800 18px/1 var(--font)}
.fsv{flex:1.2}
.nx[disabled]{opacity:.35}
.fhn{display:block;margin:6px 2px 0;color:var(--mu);font-size:12px}
.nx.sgb{flex:1}
.sheet .sgi{position:relative;align-self:stretch}
.sheet .sgi::before{content:'';position:absolute;left:2px;right:2px;top:50%;height:calc(var(--sgh,100) * 1%);transform:translateY(-50%);background:var(--sg) var(--sgp,left) center/contain no-repeat;pointer-events:none}
.sheet .sl .ln.sgi{min-height:14mm}
.sheet .bxs .br:has(.sgi){min-height:18mm}
.sgp0{margin:0 0 12px;place-items:center;}

.sgc{position:relative;padding:0;width:96px}
.sgc>button:first-child{border:0;background:none;width:100%;height:100%;place-items:center;cursor:pointer}
.sgc img{max-width:100%;max-height:100%;object-fit:contain}

/* ===== workspace.css ===== */
/* ===== v16: visible signature rows, Files folders, PDF preview, send sheet ===== */
.sheet .sgr{min-height:20mm!important}
.sheet .sgr .v,.sheet .sgr .ln{min-height:16mm}
.sheet .bxs .br.sgr{background:linear-gradient(#c9c9c9,#c9c9c9) 8px calc(100% - 8px)/calc(100% - 16px) 1px no-repeat}
.sheet .sxg>div.sgr{background:linear-gradient(#d4d4d4,#d4d4d4) 6px calc(100% - 7px)/calc(100% - 12px) 1px no-repeat}
.sheet .sl>div.sgr .ln{min-height:16mm}

.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ftile{justify-content:flex-start;}
.ftile .fi{color:var(--ac);display:block;margin-bottom:8px}
.ftile .fi svg{display:block}
.ftile b{overflow-wrap:anywhere}
.ftile span:last-child{font-size:13px;color:var(--mu)}
.ftile.fnew{border-style:dashed;}
.ftile .fi.plus{font:300 30px/30px var(--font);width:30px;height:30px;text-align:center}
.frow{align-items:center}
.frow .fic{flex:none;width:40px;height:40px;background:var(--sf2);display:grid;place-items:center;color:var(--ac)}
.frow .fmeta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.frow .fmeta b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.pvw{padding-bottom:110px}
.pvs{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:820px;margin:0 auto}
.pvp{display:block;background:#fff;border-radius:6px;border:1px solid var(--ln);box-shadow:var(--sh);max-width:100%}
.pvn{font-size:12px;color:var(--mu);margin:0 0 14px}
.pvbar{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto;display:flex;gap:8px;padding:8px;background:var(--sf);border:1px solid var(--ln);border-radius:18px;box-shadow:var(--sh);z-index:20}
.pvbar .btn{flex:1}.pvbar .btn.p{flex:1.4}

.snd{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center}
.snb{background:var(--sf);color:var(--tx);width:100%;max-width:520px;max-height:92vh;overflow:auto;padding:10px 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;}
.sgrip{width:38px;height:4px;border-radius:2px;background:var(--ln);margin:0 auto 2px}
.sfile{display:flex;gap:12px;align-items:center}.sfile small{display:block;color:var(--mu);font-size:12px}
.sfi{font:700 12px var(--font);display:grid;place-items:center}
.sgo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sbt{font:600 15px var(--font);display:flex;align-items:center;justify-content:center}
.sbt.wa{border-color:#A8DDBC}.sbt.em{border-color:#B2CCF3}
[data-t=dark] .sbt.wa{border-color:#1F5A35}[data-t=dark] .sbt.em{border-color:#244A7A}
.sfl{display:flex;flex-direction:column;gap:5px;}.sfl small{font-weight:400;color:var(--mu)}
.sfl input,.sfl textarea{font:400 15px var(--font);color:var(--tx);background:var(--bg);border:1px solid var(--ln);border-radius:12px;padding:10px 12px;width:100%;resize:vertical}
.snote{margin:0;font-size:12px;color:var(--mu);line-height:1.5}

.fact{display:flex;gap:8px;margin:-10px 0 14px}.lgbtn.dn{color:var(--bad)}

/* ===== v17: larger, brighter logo; Workspace label closer ===== */

.brand .bl,.bl{background:#fff!important;border:1px solid #fff!important;border-radius:12px;padding:7px 14px!important;box-shadow:0 1px 10px rgba(255,255,255,.18),0 2px 8px rgba(0,0,0,.25)!important}
.brand .bl img,.bl img{height:34px!important;width:auto;filter:contrast(1.12) saturate(1.1)}

@media(max-width:600px){.brand .bl img,.bl img{height:30px!important}}

/* ===== v25: send dialog tabs, taller auto-sizing message, message settings ===== */
.stabs{display:flex;gap:4px;background:var(--bg);border:1px solid var(--ln);}
.stabs button{flex:1;border:0;background:transparent;color:var(--mu);font:600 14px var(--font);padding:10px 8px;cursor:pointer}

.spn{display:flex;flex-direction:column;gap:12px}.spn[hidden]{display:none}
.spn .sbt{width:100%;min-height:48px}
.sfl textarea{line-height:1.5;min-height:150px;resize:vertical;overflow:auto}
.mrs{align-self:flex-start;background:none;border:0;color:var(--ac);font:600 13px var(--font);padding:2px 0;cursor:pointer}
.mph{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}
.mchip{font:600 13px ui-monospace,Menlo,Consolas,monospace;color:var(--tx);background:var(--sf2);border:1px solid var(--ln);border-radius:999px;padding:8px 12px;cursor:pointer}
.pane .sfl{margin:12px 0}.pane .sfl textarea{min-height:170px}

/* v26: instant theme switch - no colour fades while the theme changes */
.nt,.nt *,.nt *::before,.nt *::after{transition:none!important;animation:none!important}
.bl img{image-rendering:auto;transform:translateZ(0)}

/* ===== mix.css ===== */
/* ===== v28 "Field Mix": rounded, roomy controls + warm paper and amber. Loads before mobile.css. ===== */
html,body{background:var(--bg)}
body:has(.ew){background:var(--desk)}[data-t=dark] body:has(.ew){background:#000}
[data-t=dark] .top{background:color-mix(in srgb,#000 82%,transparent)}
[data-t=dark] .nav{background:color-mix(in srgb,#111113 94%,transparent)}
[data-t=dark] .etb,[data-t=dark] .lgs{background:#111113}

/* controls */
.btn,.nx,.ab{border-radius:var(--rb)}.btn{min-height:48px}
.btn.p,.nx.dk{background:var(--ac);color:var(--ac-ink)}
.ib{width:44px;height:44px;border-radius:var(--rb)}
.ib.av{font:800 13px var(--font);letter-spacing:.02em;color:var(--tx);background:var(--sf2);border-color:transparent}
.ib.av svg{display:block}
input,textarea,select{min-height:48px;border-radius:14px}
.ab.on,.al button.on{background:var(--ac);color:var(--ac-ink)}
.eh button,.lgh button{color:var(--tx)}
.etb,.lgs,.snb{border-radius:26px 26px 0 0}

/* home */
.h1{font:800 36px/1.05 var(--font);letter-spacing:-.04em}
.sub{font-size:14px}
.search{height:54px;border-radius:var(--rc)}
.sec{font:700 12px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--mu);margin:34px 0 12px}
.tile,.row,.pane,.bkc,.empty{border-radius:var(--rc)}
.tile{padding:10px 10px 16px}.tmn{border-radius:14px}
.pane{padding:20px}
.tile b{font-weight:700}

/* the whole Continue bar is one big button */
html[data-t] .cont{cursor:pointer;transition:transform .15s}

.cont:active{transform:scale(.99)}
.cont:focus-visible{outline:3px solid var(--tx);outline-offset:3px}
html[data-t] .ci small{color:var(--ac-ink);font-weight:800;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
html[data-t] .ci h2{color:var(--ac-ink)}
html[data-t] .ci p{color:rgba(22,19,14,.8)}
html[data-t] .cont .btn.p{background:var(--ac-ink);color:var(--ac);box-shadow:none;border:0;pointer-events:none}

/* bottom bar */
.nav{border-radius:28px}
.nav button{border-radius:22px}
.nav button.on{color:var(--tx);background:color-mix(in srgb,var(--ac) 24%,transparent)}
[data-t=dark] .nav button.on{color:var(--ac);background:#FFB81C1F}

/* settings */
.stk{display:flex;flex-direction:column;gap:14px;max-width:640px;margin:0 auto;width:100%}
.stk .pane{margin:0}
.stk .pane .sfl{margin:0 0 12px}
.stk .pane h3{margin-bottom:8px}
.seg{display:flex;gap:4px;padding:4px;background:var(--sf2);border:1px solid var(--ln);border-radius:var(--rb);margin-top:10px}
.seg button{flex:1;min-height:46px;border:0;background:transparent;border-radius:12px;font:600 14px var(--font);color:var(--mu)}
.seg button.on{background:var(--sf);color:var(--tx);box-shadow:var(--sh)}
.stk .bkc{margin-top:10px}

/* ===== v30: premium logo pill ===== */
.brand{gap:12px!important}
.brand .bl,.bl{background:linear-gradient(180deg,#FFFFFF 0%,#F6F2E8 100%)!important;border:0!important;border-radius:999px!important;padding:8px 20px!important;
 box-shadow:0 0 0 1px rgba(242,169,0,.55),0 0 0 5px rgba(242,169,0,.10),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(22,19,14,.07),0 12px 26px -12px rgba(22,19,14,.5)!important;
 transition:box-shadow .25s,transform .2s}
.brand:hover .bl{box-shadow:0 0 0 1px rgba(242,169,0,.8),0 0 0 6px rgba(242,169,0,.16),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(22,19,14,.07),0 14px 30px -12px rgba(22,19,14,.55)!important}
.brand:active .bl{transform:scale(.98)}
.brand .bl img,.bl img{height:30px!important;filter:contrast(1.08) saturate(1.05)}
.wm{font:700 10.5px/1 var(--font)!important;letter-spacing:.22em;text-transform:uppercase!important;color:var(--mu)}
.wm::before{width:5px!important;height:5px!important;border-radius:50%;background:var(--ac)!important;margin:0 10px 0 0!important}
@media(max-width:600px){.brand .bl,.bl{padding:7px 16px!important}.brand .bl img,.bl img{height:26px!important}}
@media(max-width:380px){.wm{display:none}}

/* ===== v31: Files, Send sheet and editor header, as in the mockups ===== */
/* Files: amber folder tab cards, dashed "New project" card */

.ftile{min-height:124px;padding:16px;border-radius:var(--rc);gap:4px}
.ftile .fi:not(.plus){width:30px;height:22px;border-radius:5px 6px 6px 6px;background:var(--ac);position:relative;margin:6px 0 10px}
.ftile .fi:not(.plus)::before{content:'';position:absolute;left:0;top:-5px;width:14px;height:7px;border-radius:5px 5px 0 0;background:var(--ac)}
.ftile .fi:not(.plus) svg{display:none}
.ftile b{font-size:15px;line-height:1.25}
.ftile.fnew{align-items:center;justify-content:center;text-align:center;gap:2px;background:transparent}
.ftile .fi.plus{margin:0;color:var(--mu)}
.frow{border-radius:var(--rc);padding:12px}
.frow .fic{border-radius:14px;background:color-mix(in srgb,var(--ac) 22%,transparent)}
.fact .lgbtn{min-height:40px;padding:0 16px}

/* Send sheet: file chip, segmented tabs, solid send buttons */
.snb{border-radius:26px 26px 0 0;gap:14px;padding:12px 18px calc(22px + env(safe-area-inset-bottom))}
.sfi{width:46px;height:46px;border-radius:var(--rb);background:var(--ac);color:var(--ac-ink);font-weight:800}
.sfile b{font-size:15px}
.stabs{border-radius:var(--rb);padding:4px}
.stabs button{border-radius:12px;min-height:44px}
.stabs button.on{background:var(--sf);color:var(--tx);box-shadow:var(--sh)}
.sfl{font-size:12.5px;font-weight:700;color:var(--tx)}
.sfl input,.sfl textarea{border-radius:14px;background:var(--bg)}
.sbt{min-height:54px;border-radius:var(--rb);font-size:15px;font-weight:700;border:0}
.sbt.wa,[data-t=dark] .sbt.wa{background:#1FA855;color:#fff;border:0}
.sbt.em,[data-t=dark] .sbt.em{background:var(--tx);color:var(--bg);border:0}
.snb>.btn{min-height:48px}

/* Editor header: status on the left, tools on the right */
.ctx{margin:4px 2px 8px;gap:8px;flex-wrap:wrap;justify-content:space-between}
.cx1{display:flex;align-items:center;gap:8px;flex:1 1 220px;min-width:0}
.cx2{display:flex;align-items:center;gap:8px;flex:none}
.cx1 .tp{font-weight:500;color:var(--mu);font-size:12.5px}
.sv{flex:none;background:transparent;border:0;color:var(--tx)}
.lgbtn{min-height:40px;border-radius:var(--rb)}
.zm{border-radius:var(--rb)}.zm button{height:40px}

/* ===== v32: automatic backup ===== */
.tgl{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;margin:0;border-bottom:1px solid var(--ln)}
.tgl b{font-weight:700;font-size:14.5px}.tgl small{display:block;color:var(--mu);font-size:12.5px;font-weight:400;margin-top:2px}
.tgl input{flex:none;width:26px;height:26px;min-height:0;accent-color:var(--ac)}
.stk .pane .sfl small{display:block;font-weight:400;color:var(--mu)}
.stk .pane>.btn{margin:0 0 12px}
.bkbn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin:0 0 14px;padding:14px 16px;border-radius:var(--rc);border:1px solid color-mix(in srgb,var(--ac) 55%,var(--ln));background:color-mix(in srgb,var(--ac) 14%,var(--sf));color:var(--tx)}
.bkbn span{flex:1;min-width:0}.bkbn b{display:block;font-size:14.5px}.bkbn small{display:block;color:var(--mu);font-size:12.5px;margin-top:2px}
.bkbn i{font-style:normal;flex:none;background:var(--ac);color:var(--ac-ink);font-weight:700;font-size:13px;padding:10px 14px;border-radius:var(--rb)}

/* ===== mobile.css ===== */
/* ===== v27: phone pass. Loads last. ===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* the top bar already adds the safe-area gap; body no longer adds it a second time */
body{padding-top:0}

/* ---- editor sheet: true A4 layout, scaled with transform (matches the PDF exactly) ---- */
.wrap.ew{padding:8px 8px 170px}

.stage{padding:6px 12px 10px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}
.shw{position:relative;flex:none;margin:0 auto}
.shw .sheet{position:absolute;left:0;top:0;margin:0!important;zoom:1!important;transform-origin:0 0}
/* red row-delete handle keeps a finger-sized target whatever the scale is */
#stage tr[data-rr]::after{width:calc(24px/var(--k,1));height:calc(24px/var(--k,1));margin-left:calc(3px/var(--k,1));font:700 calc(18px/var(--k,1))/calc(23px/var(--k,1)) Arial,sans-serif}
/* table headings never run into the next column */
.sheet .tb th,.sheet .rl{overflow-wrap:anywhere;word-break:normal;hyphens:manual}

/* ---- phones ---- */
@media(max-width:600px){
 .wrap{padding:22px 16px 130px}
 
 .ctx{flex-wrap:wrap;row-gap:8px}.cx1{flex:1 1 100%}.cx2{margin-left:0;width:100%;justify-content:space-between}
 .h1{font-size:34px}
}
.ci{min-width:0}.ci h2{overflow-wrap:anywhere}

/* iOS zooms the whole page when a field under 16px gets focus */
@media(max-width:900px){input,textarea,select,.search,.sfl input,.sfl textarea{font-size:16px}}

/* touch screens have no hover: stop highlights sticking after a tap */
@media(hover:none){
 .tile:hover{transform:none;box-shadow:none;border-color:var(--ln)}
 .row:hover,.ib:hover,.lgbtn:hover{border-color:var(--ln)}
 .sheet [data-ed]:hover{background:none;outline:0}
 .sheet .rc:hover,.sheet .cki:hover,.stage [data-lgo]:hover{background:none}
 .slot-ed label:hover{border-color:var(--ln);background:var(--sf2)}
}

/* messages sit above the bottom bar; sheets respect the real phone viewport */
.toast{bottom:calc(92px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}
@supports(height:100dvh){.snb{max-height:92dvh}.lgs{max-height:82dvh}}

@media print{
 .shw{width:auto!important;height:auto!important;margin:0}
 .shw .sheet{position:static!important;transform:none!important}
}

/* v37: flat plate logo */
.brand.bp{display:flex!important;align-items:center;gap:12px!important;background:#fff;border:1px solid rgba(22,19,14,.14);border-radius:8px;padding:6px 12px;cursor:pointer;transition:border-color .2s,transform .15s}
.brand.bp:hover{border-color:rgba(242,169,0,.85)}.brand.bp:active{transform:scale(.98)}
.brand.bp .bpi{height:30px;width:auto;display:block}
.brand.bp .bpv{width:1px;height:22px;background:rgba(22,19,14,.18);flex:none}
.brand.bp .bpw{font:600 12px/1 var(--font);color:var(--ac-ink)}
@media(max-width:600px){.brand.bp{padding:5px 9px;gap:9px!important}.brand.bp .bpi{height:24px}.brand.bp .bpv{height:18px}}
@media(max-width:380px){.brand.bp .bpv,.brand.bp .bpw{display:none}}

/* v38: edit bar stays put when the page is pinch-zoomed */




/* v40: bottom menu docked to the very bottom edge on phones and tablets */
@media(max-width:899px){
 .nav{left:0!important;right:0!important;bottom:0!important;max-width:none!important;width:100%;margin:0!important;border-radius:0!important;border:0!important;border-top:1px solid var(--ln)!important;
  padding:6px 10px calc(6px + env(safe-area-inset-bottom))!important;background:var(--sf)!important;backdrop-filter:none!important;box-shadow:0 -6px 20px -14px rgba(0,0,0,.25)!important;justify-content:space-around}
 .nav button{border-radius:16px!important}
 .wrap:not(.ew){padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
}

/* v44: global header rows, avatar picture, profile editor */
.top{flex-direction:column!important;align-items:stretch!important;gap:8px!important}
.top .tr1,.top .tr2{display:flex;align-items:center;gap:10px;min-width:0}
.top .tr1 .sp{display:block!important;flex:1 1 auto}
.top .tr2 #ttl{flex:1 1 auto;min-width:0}
.ib.av{overflow:hidden;padding:0;flex:none}
.ib.av img{width:100%;height:100%;object-fit:cover;display:block}
#thm{flex:none}
.mev{display:flex;align-items:center;gap:14px;margin:4px 0 14px}
.mea{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--sf2);border:1px solid var(--ln);display:grid;place-items:center;font:800 24px var(--font);color:var(--tx);flex:none}
.mea img{width:100%;height:100%;object-fit:cover;display:block}
.mea svg{width:30px;height:30px}
.mei{display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-width:0}
.mei b{font-size:17px}.mei span{color:var(--mu);font-size:14px;overflow-wrap:anywhere}
.mea2{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.mea2 .btn,.mei .btn{display:inline-flex;align-items:center;gap:8px}
@media(max-width:600px){.top{padding-top:calc(8px + env(safe-area-inset-top))!important}}

/* Zoom lock: only documents/reports (html.zk) may be pinch-zoomed; all other pages stay at 1x */
html:not(.zk),html:not(.zk) body{touch-action:pan-x pan-y}

/* v48: home quick actions, attention strip, filter chips, pinned documents */
.qa{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 14px}
.qb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:76px;border-radius:var(--rc,14px);border:1px solid var(--ln);background:var(--sf);color:var(--tx);font:600 12px/1.15 var(--font);text-align:center;min-width:0}
.qb svg{flex:none;display:block}.qb:active{transform:scale(.97)}
.bkbn.att{margin-top:0}
.chips{display:flex;gap:8px;overflow-x:auto;margin:12px 0 0;padding:2px 0 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;height:36px;padding:0 15px;border-radius:999px;border:1px solid var(--ln);background:var(--sf);color:var(--tx);font:600 13px/1 var(--font);white-space:nowrap}
.chip small{margin-left:7px;opacity:.65;font-weight:700}
.chip.on{background:var(--tx);color:var(--bg);border-color:var(--tx)}
@media(max-width:380px){.qb{font-size:11px;min-height:70px}}

/* v51: compact, grouped template tiles (Forms / Reports / Timesheets) */

/* v52: edit bar is collapsed on phones and tablets until "More" is tapped */
.mbx{display:none}
@media(max-width:899px){
 .mbx{display:inline-block!important}
 .etb.cl{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
 .etb.cl .er:not(.er0),.etb.cl .fhn,.etb.cl .er0 .ab{display:none!important}
 .etb.cl .er0{margin-top:4px}
 .etb.cl .er0 .nx{height:40px}
 .etb.cl .eh{min-height:24px}
 body:has(.etb.show.cl) .wrap.ew{padding-bottom:120px}
}

/* v53: signature library with a default signature */
.sgl{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
.sgcard{display:flex;flex-direction:column;gap:10px;padding:10px;border:1px solid var(--ln);border-radius:14px;background:var(--sf);min-width:0}
.sgcard.isdef{border-color:var(--ac);box-shadow:0 0 0 1px var(--ac) inset}
.sgpv{place-items:center;}

.sgmeta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.sgmeta b{font:600 13.5px/1.2 var(--font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.dfb2{flex:none;padding:3px 9px;border-radius:999px;background:var(--ac);color:var(--ac-ink);font:700 10.5px/1.2 var(--font);letter-spacing:.03em;text-transform:uppercase}
.sgact{display:flex;flex-wrap:wrap;gap:6px}.sgact .lgbtn{flex:1 1 auto;margin:0;white-space:nowrap}
.sgcard.up{align-items:center;justify-content:center;text-align:center;gap:4px;border-style:dashed;cursor:pointer}
.sgcard.up span{line-height:1;}.sgcard.up b{font:600 13.5px var(--font)}.sgcard.up small{color:var(--mu);font-size:12px}
.sgauto{display:flex;gap:12px;align-items:flex-start;margin-top:16px;padding:14px;border:1px solid var(--ln);border-radius:14px;cursor:pointer}
.sgauto input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--ac)}
.sgauto b{display:block;font:600 14px/1.3 var(--font)}.sgauto small{display:block;margin-top:3px;color:var(--mu);font-size:12.5px;line-height:1.45}
/* inside the signature panel */
.lgr:has(.sgc){row-gap:24px}
.sgc{overflow:visible!important}.sgc.isdef{border-color:var(--ac)!important;box-shadow:0 0 0 1px var(--ac)}
.sgdf{position:absolute;left:4px;top:4px;width:28px;height:28px;padding:0;border-radius:50%;border:1px solid var(--ln);background:#fff;color:#b4b4b4;font-size:15px;line-height:1;display:grid;place-items:center;z-index:2}
.sgdf.on{color:var(--ac);border-color:var(--ac)}
.sgc .dfl{position:absolute;left:0;right:0;bottom:-18px;text-align:center;font:700 10px/1 var(--font);font-style:normal;letter-spacing:.04em;text-transform:uppercase;color:var(--mu)}
.nx.dfb{background:var(--ac);color:var(--ac-ink);border-color:transparent}

/* v53: header icon buttons never shrink or squash; WORKSPACE label in capitals */
.brand.bp .bpw{text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;font-weight:700}
.brand.bp{flex:none;min-width:0}
.top .ib{flex:0 0 auto!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0;box-sizing:border-box}
.top .ib.d{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important}
.top .ib svg{flex:none;display:block}
.top .tr2 .h1.s{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .tr2 .btn{flex:none;white-space:nowrap}
@media(max-width:600px){.brand.bp .bpw{font-size:10px;letter-spacing:.1em}}
.lgr:has(.sgc){padding-bottom:22px}

/* =====================================================================
   HOME: New document + Pinned + Recent
   One shared row design (.drow) so every list on Home looks and behaves
   the same: page thumbnail, title, small meta, one clear action.
   ===================================================================== */
.shd{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:36px 0 14px}
.shd .sec{margin:0;font:700 20px/1.15 var(--font);letter-spacing:-.025em;text-transform:none;color:var(--tx)}
.shs{margin:4px 0 0;color:var(--mu);font-size:13px;line-height:1.35}
.shr{flex:none;padding-bottom:3px;color:var(--mu);font:600 12.5px/1 var(--font);white-space:nowrap}

/* group label above each list of templates */
.dgl{display:flex;align-items:center;gap:8px;margin:18px 2px 8px;color:var(--mu);font:700 11.5px/1 var(--font);letter-spacing:.09em;text-transform:uppercase}
#ngrid>.dgl:first-child{margin-top:0}
.dgl em{font:700 11px/1 var(--font);font-style:normal;letter-spacing:0;padding:3px 7px;border-radius:999px;background:var(--sf2);border:1px solid var(--ln)}

/* the list container: one rounded panel on phones, separate cards on wide screens */
.dlist{background:var(--sf);border:1px solid var(--ln);border-radius:var(--rc);box-shadow:var(--sh);overflow:hidden}
.dlist>.empty{margin:0;border:0;border-radius:0;background:transparent}

/* the row */
.drow{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-height:96px;margin:0;padding:12px 14px;border:0;border-bottom:1px solid var(--ln);border-radius:0;background:transparent;color:var(--tx);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,opacity .2s}
.drow.lv,.dlist>.drow:last-child{border-bottom:0}
.drow:active{background:var(--sf2);transform:none}
.drow:focus-visible{outline:2px solid var(--ac);outline-offset:-2px}
@media(hover:hover){.drow:hover{background:var(--sf2)}}

/* page thumbnail */
.drow .dth{flex:none;width:56px;aspect-ratio:1/1.3;border-radius:8px;border:1px solid var(--ln);box-shadow:none;background:#fff}
[data-t=dark] .drow .dth{border-color:#ffffff26}

/* text */
.dtx{flex:1;min-width:0;display:block}
.dtx b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:600 15px/1.3 var(--font);letter-spacing:-.01em;color:var(--tx);overflow-wrap:anywhere}
.dmeta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin-top:6px;color:var(--mu);font-size:12.5px;line-height:1.3}
.dsub{display:block;margin-top:4px;color:var(--mu);font-size:12px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kd{font:600 11px/1.2 var(--font);font-style:normal;letter-spacing:.02em;padding:3px 8px;border-radius:999px;border:1px solid var(--ln);background:var(--sf2);color:var(--mu);white-space:nowrap}
.kd.warn{border-color:color-mix(in srgb,var(--ac) 60%,transparent);background:color-mix(in srgb,var(--ac) 22%,transparent);color:var(--tx)}

/* actions: template rows get a plus, document rows get pin and delete */
.dadd{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--ac);color:var(--ac-ink);font-style:normal;}
.dadd svg{display:block}
.dact{flex:none;display:flex;align-items:center;gap:2px;margin-right:-6px}
.drow .ib.dpin,.drow .ib.ddel{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mu);display:grid;place-items:center}
.drow .ib.dpin.on{color:var(--ac)}.drow .ib.dpin.on svg{fill:currentColor}
.drow .ib.ddel:active{color:var(--bad);background:color-mix(in srgb,var(--bad-solid) 12%,transparent)}
@media(hover:hover){.drow .ib.dpin:hover{color:var(--tx);background:var(--sf2)}.drow .ib.ddel:hover{color:var(--bad);background:color-mix(in srgb,var(--bad-solid) 12%,transparent)}}

/* filter chips sit directly under the Recent heading */
.shd+.chips{margin:0 0 12px}

/* "Show all" */
.dmore{border-radius:var(--rb);border:1px solid var(--ln);background:var(--sf);color:var(--tx);font:600 14px var(--font)}
.dmore:active{background:var(--sf2)}

#rail:not([data-all])>.drow.rcard:nth-child(n+7){display:none}

/* quick-action highlight (New report / New form buttons) */
#ngrid[data-hl=rep] .drow[data-kind=form],#ngrid[data-hl=form] .drow[data-kind=rep]{opacity:.38}
#ngrid[data-hl=rep] .drow[data-kind=rep],#ngrid[data-hl=form] .drow[data-kind=form]{background:color-mix(in srgb,var(--ac) 14%,var(--sf))}

/* wide screens: rows become separate cards in a responsive grid */
@media(min-width:760px){
 .dlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;background:transparent;border:0;box-shadow:none;overflow:visible}
 .drow,.drow.lv,.dlist>.drow:last-child{border:1px solid var(--ln);border-radius:var(--rc);background:var(--sf);box-shadow:var(--sh)}
 .dlist>.empty{grid-column:1/-1;border:1.5px dashed var(--ln);border-radius:var(--rc)}
 @media(hover:hover){.drow:hover{border-color:color-mix(in srgb,var(--ac) 65%,var(--ln))}}
}
@media(max-width:380px){.drow{gap:12px;padding:10px 12px}.drow .dth{width:50px}.dtx b{font-size:14px}}

/* ===== Continue editing: Open sits beside the write-up, bold ===== */
.cont{align-items:center;gap:16px}
.cont .ci{flex:1 1 auto;min-width:0}
.cont .ci p{margin:0}
.cont .ci h2{margin:4px 0 6px;font-size:22px;line-height:1.18;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
html[data-t] .cont .btn.p.cop{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:0 20px;border-radius:var(--rb);font:800 16px/1 var(--font);letter-spacing:.01em;}
.cont .cop svg{display:block;flex:none}
@media(max-width:600px){
 .cont{gap:12px;padding:16px 14px 16px 16px}
 .cont .cpg{width:64px;height:84px}
 .cont .ci h2{font-size:18px}
 html[data-t] .cont .btn.p.cop{flex-direction:column;gap:6px;min-height:68px;width:60px;padding:0;font-size:13px}
}
@media(max-width:360px){
 .cont .cpg{width:46px;height:60px}
 html[data-t] .cont .ci small{white-space:nowrap;font-size:10px;letter-spacing:.05em}
 .cont .ci h2{font-size:16px}
 html[data-t] .cont .btn.p.cop{width:54px}
}

/* ===== signature size control: fine steps, minus/plus, presets ===== */
.sz.szh{margin-bottom:2px}
.szr{display:flex;align-items:center;gap:10px;margin:6px 0 4px}
.szr input[type=range]{flex:1 1 auto;min-width:0;min-height:44px;margin:0;padding:0;accent-color:var(--ac);touch-action:pan-y}
.szb{flex:none;width:46px;height:46px;min-width:46px;padding:0;border-radius:50%;font:700 22px/1 var(--font);display:grid;place-items:center;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.szq{display:flex;margin:6px 0 12px}
.szq .chip{height:34px;}
.szr input[type=range]{border:0!important;outline:0;box-shadow:none;border-radius:0;background:transparent}
.szr input[type=range]:focus-visible{outline:0}
.szq{flex-wrap:nowrap;gap:6px}
.szq .chip{flex:1 1 0;min-width:0;padding:0;text-align:center;justify-content:center}

/* ===== v57: bottom menu locked to the screen edge + redesigned Settings ===== */
@media(max-width:899px){
 /* The page itself no longer scrolls on screens with the menu. Header, scrolling content and menu are
    three stacked parts of one screen-high column, so the menu can never drift away from the bottom. */
 html:has(.nav){height:100%;overflow:hidden;overscroll-behavior:none}
 body:has(.nav){height:100vh;height:100dvh;box-sizing:border-box;overflow:hidden;overscroll-behavior:none;padding:env(safe-area-inset-top) 0 0!important}
 body:has(.nav) #app{display:flex;flex-direction:column;height:100%;min-height:0}
 body:has(.nav) .top{position:relative;flex:none}
 body:has(.nav) main.wrap{flex:1 1 auto;min-height:0;width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:32px!important}
 body:has(.nav) .nav{position:relative!important;flex:none;width:100%;order:3}
}

/* settings */
.cfgp{padding-bottom:8px}
.cfgp .pane{border-radius:20px}
.cfgp .ch{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cfgp .ch h3{margin:0;padding:0;border:0;font:700 17px/1.2 var(--font);letter-spacing:-.02em}
.cfgp .ch small{display:block;color:var(--mu);font-size:13px;margin-top:2px;line-height:1.3}
.cfgp .ci2{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--ac) 16%,transparent);color:var(--ac)}
.cfgp .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:14px;cursor:pointer;white-space:nowrap}
.cfgp .btn svg{flex:none}
.cfgp .btn.wide{width:100%;margin-top:12px;background:var(--sf2)}
.cfgp .btn.wide:disabled{opacity:.6}
.cfgp .btnrow{display:flex;gap:10px;margin-top:14px}
.cfgp .btnrow .btn{flex:1;min-width:0}
.cfgp .btnrow .btn:not(.p){background:var(--sf2)}
.cfgp .hint{margin:12px 0 0;font-size:12.5px;line-height:1.45;color:var(--mu)}
.cfgp .hint b{color:var(--tx);font-weight:600;word-break:break-all}

/* theme picker */
.cfgp .seg{margin-top:0}
.cfgp .seg button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:62px;font-size:13px}
.cfgp .seg button.on{color:var(--tx)}
.cfgp .seg button.on svg{color:var(--ac)}

/* backup summary */
.cfgp .stat{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cfgp .stat>div{background:var(--sf2);border-radius:14px;padding:12px 8px;text-align:center}
.cfgp .stat b{display:block;font:700 24px/1 var(--font);letter-spacing:-.03em}
.cfgp .stat span{display:block;margin-top:5px;font-size:12px;color:var(--mu)}
.cfgp .bkst{display:flex;align-items:center;gap:8px;margin:14px 0 0;font-size:13.5px;font-weight:600}
.cfgp .bkst i,.cfgp .vst i{width:9px;height:9px;border-radius:50%;background:var(--ok-solid);flex:none}
.cfgp .bkst.old i{background:var(--ac)}
.cfgp .bkst.old{color:var(--mu)}

/* switches */
.cfgp .tgl{padding:14px 0;border-bottom:0;border-top:1px solid var(--ln);margin-top:0}
.cfgp .ch+.tgl{border-top:0;padding-top:2px}
.cfgp .tgl input{-webkit-appearance:none;appearance:none;flex:none;width:51px;height:31px;min-height:0;border-radius:99px;background:color-mix(in srgb,var(--mu) 35%,transparent);position:relative;transition:background .2s;cursor:pointer;margin:0;border:0}
.cfgp .tgl input::after{content:'';position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.3);transition:transform .2s}
.cfgp .tgl input:checked{background:var(--ac)}
.cfgp .tgl input:checked::after{transform:translateX(20px)}
.cfgp .bkc{margin-top:12px}

/* about / version */
.cfgp .verc{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;background:var(--sf2);flex-wrap:wrap}
.cfgp .verc img{flex:none;width:52px;height:52px;border-radius:13px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.cfgp .vm{flex:1;min-width:0}
.cfgp .vn{display:flex;align-items:baseline;gap:8px}
.cfgp .vn small{color:var(--mu);font-size:13px;font-weight:600}
.cfgp .vn b{font:700 30px/1 var(--font);letter-spacing:-.04em}
.cfgp .vm code{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:7px;background:color-mix(in srgb,var(--mu) 16%,transparent);color:var(--mu);font:500 12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.cfgp .vst{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:99px;font-size:12.5px;font-weight:600;background:color-mix(in srgb,var(--ok-solid) 14%,transparent);color:#188A5B;margin-left:auto}
.cfgp .vst em{font-style:normal}
.cfgp .vst.rdy,.cfgp .vst.chk{background:color-mix(in srgb,var(--ac) 18%,transparent);color:#9A6A00}
.cfgp .vst.rdy i,.cfgp .vst.chk i{background:var(--ac)}
.cfgp .vst.off{background:color-mix(in srgb,var(--bad-solid) 14%,transparent);color:var(--bad)}
.cfgp .vst.off i{background:var(--bad-solid)}
[data-t=dark] .cfgp .vst.ok{color:#4AD59B}
[data-t=dark] .cfgp .vst.rdy,[data-t=dark] .cfgp .vst.chk{color:#FFC94D}
[data-t=dark] .cfgp .vst.off{color:var(--bad)}

/* ===== v58 additions ===== */
.offc{display:none;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;font:600 12px var(--font);background:color-mix(in srgb,var(--bad-solid) 14%,transparent);color:var(--bad)}
.offc::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--bad-solid)}
html.offl .offc{display:inline-flex}
[data-t=dark] .offc{color:var(--bad)}
.ndot{position:absolute;top:7px;left:calc(50% + 8px);width:10px;height:10px;border-radius:50%;background:var(--bad-solid);border:2px solid var(--sf)}
.bkbn.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad-solid) 12%,var(--sf))}
.bkbn.bad b{color:var(--bad)}
[data-t=dark] .bkbn.bad b{color:var(--bad)}
.cfgp .subh{margin:20px 0 8px;padding-top:16px;border-top:1px solid var(--ln);font:700 14px var(--font);letter-spacing:-.01em}
.cfgp .hint.warn{color:var(--bad)}
[data-t=dark] .cfgp .hint.warn{color:var(--bad)}
.cfgp .bkst.bad{color:var(--bad)}.cfgp .bkst.bad i{background:var(--bad-solid)}
.cfgp .sbar{height:8px;border-radius:99px;background:var(--sf2);overflow:hidden}
.cfgp .sbar i{display:block;height:100%;border-radius:99px;background:var(--ok-solid)}
.cfgp .sbar i.mid{background:var(--ac)}.cfgp .sbar i.bad{background:var(--bad-solid)}
.cfgp .snap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--ln)}
.cfgp .snap:first-of-type{border-top:0}
.cfgp .snap b{display:block;font-size:14px}.cfgp .snap small{display:block;color:var(--mu);font-size:12.5px;margin-top:1px}
.cfgp .snap .btn{min-height:38px;padding:0 14px;background:var(--sf2)}
.cfgp .navrow{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 0;border:0;border-top:1px solid var(--ln);background:none;color:var(--tx);font:inherit;cursor:pointer;min-height:56px}
.cfgp .navrow b{display:block;font-weight:700;font-size:14.5px}
.cfgp .navrow small{display:block;color:var(--mu);font-size:12.5px;margin-top:2px;font-weight:400}
.cfgp .navrow>svg{flex:none;color:var(--mu)}
.cfgp .chg{margin-top:12px;border-top:1px solid var(--ln);padding-top:12px}
.cfgp .chg summary{cursor:pointer;font-weight:600;font-size:14px;min-height:32px;display:flex;align-items:center}
.cfgp .chg ul{margin:8px 0 0;padding-left:20px;color:var(--mu);font-size:13.5px;line-height:1.5}
.cfgp .chg li{margin:4px 0}
.cfgp .danger .ci2.r{background:color-mix(in srgb,var(--bad-solid) 14%,transparent);color:var(--bad)}
.cfgp .btn.dng{background:color-mix(in srgb,var(--bad-solid) 10%,var(--sf));border-color:color-mix(in srgb,var(--bad-solid) 40%,var(--ln));color:var(--bad)}
[data-t=dark] .cfgp .btn.dng{color:var(--bad)}
.cfgp .stk .tgl,.cfgp .tgl{min-height:56px}
@media(max-width:899px){
 /* notches in landscape */
 body:has(.nav) .nav{padding-left:calc(10px + env(safe-area-inset-left))!important;padding-right:calc(10px + env(safe-area-inset-right))!important}
 body:has(.nav) .top{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 body:has(.nav) main.wrap{padding-left:max(16px,env(safe-area-inset-left))!important;padding-right:max(16px,env(safe-area-inset-right))!important}
}
@media(max-height:480px) and (max-width:899px){
 body:has(.nav) .nav button{height:42px;flex-direction:row;gap:8px}
}
.cfgp .hint,.cfgp .snap,.cfgp .navrow,.cfgp .chg{text-align:left}

/* ===== v59: PDF editor ===== */
.qa{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important}
.qb{font-size:11px!important;padding:10px 2px!important}
.pe{max-width:900px}
.pe-pick{display:flex;flex-direction:column;gap:12px;max-width:640px;margin:0 auto}
.pe-pick .ch{display:flex;align-items:center;gap:12px}.pe-pick .ch h3{margin:0;padding:0;border:0;font:700 17px var(--font)}.pe-pick .ch small{display:block;color:var(--mu);font-size:13px}
.pe-pick .ci2{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--ac) 16%,transparent);color:var(--ac)}
.pe-pick .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:14px;cursor:pointer}
.pe-pick .btn.wide{width:100%}
.pe-tips{margin:4px 0 0;padding-left:20px;color:var(--mu);font-size:13.5px;line-height:1.5;text-align:left}.pe-tips li{margin:6px 0}.pe-tips b{color:var(--tx)}
.pe-tb{position:sticky;z-index:9;display:flex;align-items:center;gap:6px;padding:8px;margin:0 -4px 8px;background:color-mix(in srgb,var(--sf) 94%,transparent);backdrop-filter:blur(14px);border:1px solid var(--ln);border-radius:16px;overflow-x:auto}
.pe-tb i{flex:1}
.pe-t{flex:none;min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid var(--ln);border-radius:12px;background:var(--sf);color:var(--tx);font:600 14px var(--font)}
.pe-t:disabled{opacity:.35}.pe-t.on{background:color-mix(in srgb,var(--ac) 22%,var(--sf));border-color:var(--ac)}
.pe-t.p{background:var(--ac);border-color:transparent;color:var(--ac-ink)}
.pe-name{display:flex;align-items:center;justify-content:space-between;color:var(--mu);font-size:13px}.pe-name span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pe-pages{display:flex;flex-direction:column;align-items:center;}
.pe-pg{position:relative;background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.18);border-radius:3px;max-width:100%;overflow:hidden}
.pe-cv{position:absolute;inset:0;width:100%;height:100%}
.pe-ov{position:absolute;inset:0}
.pe-n{position:absolute;right:8px;bottom:6px;font:600 11px var(--font);color:#fff;background:rgba(0,0,0,.45);padding:2px 7px;border-radius:99px;pointer-events:none}
.pe-b{position:absolute;white-space:pre;font-family:'Public Sans',Inter,sans-serif;box-sizing:content-box;padding:0 1.5px;margin:0;outline:0;cursor:text;-webkit-user-select:text;user-select:text;-webkit-tap-highlight-color:transparent;color:transparent;overflow:visible}
.pe-pages.hl .pe-b:not(.ed){box-shadow:0 0 0 1px rgba(242,169,0,.65);background:rgba(242,169,0,.12)}
.pe-b.act{box-shadow:0 0 0 2px var(--ac)!important;z-index:2}
.pe-b.add{background:rgba(255,255,255,.0);box-shadow:0 0 0 1px dashed var(--ac)}
body:has(#pe) .wrap{padding-bottom:40px}
.pe-tb{flex-wrap:wrap;overflow:visible}
.pe-tb i{flex-basis:100%;height:0;order:0}
.pe-t.w,.pe-t.p{flex:1}

/* v60: light mode - app background slightly dimmer than the white cards and panels */
:root[data-t=light] .nav{background:color-mix(in srgb,var(--sf) 94%,transparent)}

/* v60: Edit PDF extras */
.pe-note{position:absolute;border-radius:12px;background:color-mix(in srgb,#000 72%,transparent);color:#fff;font:500 12.5px/1.4 var(--font);text-align:center;pointer-events:none;z-index:3}
.pe-opt{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--ln);border-radius:14px;background:var(--sf);cursor:pointer;text-align:left}
.pe-opt input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--ac)}
.pe-opt b{display:block;font-size:13.5px}.pe-opt small{display:block;color:var(--mu);font-size:12px;margin-top:2px;line-height:1.4}

/* v60: transparent previews and logo delete buttons */
.sgpv{background-color:#fff;background-image:linear-gradient(45deg,#e9ebee 25%,transparent 25%,transparent 75%,#e9ebee 75%),linear-gradient(45deg,#e9ebee 25%,transparent 25%,transparent 75%,#e9ebee 75%);background-size:14px 14px;background-position:0 0,7px 7px}
.lgw{position:relative;width:84px;height:58px}.lgw .lgc{width:100%;height:100%}
.lgw .libx,.libx{width:26px;height:26px;display:grid;place-items:center;top:-6px;right:-6px;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.libc .libx{top:4px;right:4px}

/* v61: Edit PDF and editor chrome - lighter, tucks away, nothing blurred over the pages */
.top{transition:transform .24s cubic-bezier(.2,.8,.2,1);will-change:transform}

body:has(#pe) .top,body:has(.etb) .top{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--bg)!important}
/* Edit PDF: one slim header row (Back + title); the brand row is dropped on this screen */
body:has(#pe) .top{padding-top:calc(6px + env(safe-area-inset-top))!important;padding-bottom:6px!important;gap:0!important}
body:has(#pe) .top .tr1{display:none}
body:has(#pe) .wrap{padding-top:12px;padding-bottom:calc(104px + env(safe-area-inset-bottom))}
.pe-name{margin:0 0 8px;gap:8px}.pe-name .lgbtn{flex:none;min-height:34px}.pe-name .lgbtn.on{color:var(--ac);border-color:var(--ac)}
.pe-opt{margin-bottom:10px;}
.pe-pages{gap:12px;padding-bottom:24px}
/* pages: drawn into place, faded in, isolated so scrolling never re-lays out the page */
.pe-pg{contain:layout paint style;transform:translateZ(0)}

/* floating tool dock */
.pe-dock{position:fixed;z-index:25;left:8px;right:8px;margin:0 auto;width:max-content;max-width:calc(100% - 16px);bottom:calc(10px + env(safe-area-inset-bottom));transform:translateY(calc(var(--kb,0px) * -1));display:flex;align-items:center;gap:2px;padding:5px;border-radius:999px;background:var(--sf);border:1px solid var(--ln);box-shadow:0 10px 30px -10px rgba(0,0,0,.5);overflow-x:auto;scrollbar-width:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.pe-dock::-webkit-scrollbar{display:none}
.pe-dock .pd-g{display:contents}
.pe-dock .pd-fmt{display:none}.pe-dock.fmt .pd-fmt{display:contents}.pe-dock.fmt .pd-idle{display:none}
.pe-dock .pe-t{flex:none!important;min-width:42px;height:42px;padding:0 11px;border:0;border-radius:999px;background:transparent;font-size:14px}
.pe-dock .pe-t.on{background:color-mix(in srgb,var(--ac) 26%,transparent)}
.pe-dock .pe-t.p{background:var(--ac);color:var(--ac-ink);padding:0 16px}
.pe-dock .pe-t:disabled{opacity:.35}
.pe-dock .sep{flex:none;width:1px;height:22px;margin:0 3px;background:var(--ln)}
@media(max-width:360px){.pe-dock .pe-t[data-pe=add] span{display:none}}
/* bottom edit sheet: a compact floating card instead of a full-width sheet */
.etb{bottom:calc(8px + env(safe-area-inset-bottom))!important;border:1px solid var(--ln)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

@media(max-width:899px){.etb.cl{padding:8px 10px!important}}
@media(prefers-reduced-motion:reduce){.top,.pe-cv{transition:none}}

/* v62: Bento Charcoal - Danholsen logo colours (charcoal var(--charcoal), amber var(--ac)), dark theme; Bento Pro as the light theme */
html[data-t] .top{background:var(--bg);border-bottom:0}
html[data-t] .h1{font:700 42px/1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.02em}
html[data-t] .shd .sec,html[data-t] .sec{font:700 24px/1.1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.03em;color:var(--tx)}
html[data-t] .search{border:1px solid var(--ln);}
html[data-t] .search:focus{outline:2px solid var(--ac);border-color:var(--ac)}
/* Home quick actions as bento tiles: one wide amber tile, then a two-column grid */

html[data-t] .qb{font-weight:700;}
html[data-t][data-t=dark] .qb svg{color:var(--ac)}
html[data-t] .qb:first-child{border-color:var(--ac);}
html[data-t] .qb:first-child span{line-height:1}

html[data-t] .cont{border-radius:var(--rc)}
html[data-t] .dlist{border-radius:var(--rc)}
html[data-t] .btn.p{background:var(--ac);color:var(--charcoal)}
html[data-t] .etb{background:var(--sf)}
/* bottom bar: a floating charcoal pill with an amber active tab */
html[data-t] .nav button{color:#A8A59C}
html[data-t] .nav button.on{background:var(--ac);color:var(--charcoal);font-weight:700}
@media(max-width:899px){
 html[data-t] .nav{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;width:auto!important;max-width:none!important;margin:2px 16px calc(12px + env(safe-area-inset-bottom))!important;border:1px solid transparent!important;border-radius:99px!important;padding:6px!important;gap:4px;background:var(--charcoal)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
 html[data-t=dark] .nav{background:#222221!important;border-color:var(--ln)!important}
 html[data-t] .nav button{flex:1;width:auto;height:52px;border-radius:99px!important}
}

/* ===== v63 redesign: "Site Office" - blueprint paper, charcoal hero with hazard stripe, amber accents ===== */
html[data-t] body{background-color:var(--bg);background-size:32px 32px;background-attachment:fixed}
html[data-t] .top{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
html[data-t] .wrap{padding-top:14px}

/* hero */
.hero2{position:relative;overflow:hidden;border-radius:28px;padding:30px 20px 20px;color:#fff;background:radial-gradient(80% 90% at 100% 0,rgba(242,169,0,.38),transparent 62%),radial-gradient(60% 80% at 0 100%,rgba(242,169,0,.10),transparent 70%),linear-gradient(165deg,#2A2A27 0%,#161615 70%);border:1px solid rgba(255,255,255,.07);box-shadow:0 30px 50px -34px rgba(0,0,0,.85)}
.hero2::before{content:'';position:absolute;left:0;right:0;top:0;height:9px;background:repeating-linear-gradient(135deg,var(--ac) 0 14px,var(--charcoal) 14px 28px)}
.hero2::after{content:'';position:absolute;right:-46px;top:34px;width:150px;height:150px;border-radius:50%;border:26px solid rgba(242,169,0,.13);pointer-events:none}
.h2k{position:relative;display:inline-flex;align-items:center;gap:8px;font:700 11.5px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ac)}
.h2k::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 4px rgba(242,169,0,.22)}
html[data-t] .hero2 .h1{position:relative;margin:12px 0 6px;font:700 clamp(34px,10.5vw,50px)/.98 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.015em;color:#fff}
.h2p{position:relative;margin:0 0 18px;max-width:34ch;color:#B9B6AB;font-size:14px;line-height:1.45}
.h2s{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 16px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08)}
.h2s>*{padding:12px 6px 11px;text-align:center;background:none;border:0;color:#fff;font-family:inherit;position:relative}
.h2s>*+*::before{content:'';position:absolute;left:0;top:22%;bottom:22%;width:1px;background:rgba(255,255,255,.12)}
.h2s b{display:block;font:700 30px/1 'Barlow Condensed',sans-serif;letter-spacing:.01em}
.h2s span{display:block;margin-top:5px;font:600 10.5px/1 Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#A9A699}
.h2s .us b{color:var(--ac)}.h2s .us{cursor:pointer}.h2s .us span{color:var(--ac)}
.h2c{position:relative;display:grid;gap:10px}
.h2b{display:flex;align-items:center;justify-content:center;gap:9px;height:58px;border-radius:17px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.05);color:#fff;font:700 21px/1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.04em;transition:transform .12s}
.h2b:active{transform:scale(.97)}
.h2b.p{background:var(--ac);border-color:var(--ac);color:var(--charcoal);}
.h2b svg{width:22px;height:22px}

/* quick tiles */
html[data-t] .qa{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important;margin:14px 0 0}
html[data-t] .qb,html[data-t] .qb:first-child{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:14px;min-height:104px;padding:14px;border-radius:var(--rc);text-align:left;grid-column:auto;background:var(--sf);border:1px solid var(--ln);color:var(--tx);font:inherit;text-transform:none;letter-spacing:0;box-shadow:var(--sh)}
html[data-t] .qb:first-child span{font-size:inherit}
.qic{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:color-mix(in srgb,var(--ac) 20%,transparent);color:#B57F00}
html[data-t=dark] .qic{color:var(--ac)}
html[data-t] .qb svg,html[data-t] .qb:first-child svg{width:21px;height:21px;color:inherit}
.qt{display:block}.qt b{display:block;font:700 14.5px/1.15 Inter,system-ui,sans-serif;letter-spacing:-.01em}.qt small{display:block;margin-top:3px;color:var(--mu);font:500 11.5px/1.2 Inter,system-ui,sans-serif}

/* search */
html[data-t] .search{margin-top:14px;height:54px;padding:0 18px 0 48px;border-radius:999px;background:var(--sf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%238A877D' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 18px center;box-shadow:var(--sh)}

/* continue card */
html[data-t] .cont{margin-top:14px;background:linear-gradient(135deg,var(--ac),#E39A00);color:var(--charcoal);border:0;}
html[data-t] .cont::before{display:none}
html[data-t] .cont .ci small{color:var(--charcoal);opacity:.7;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:11px}
html[data-t] .cont .ci h2{color:var(--charcoal)}html[data-t] .cont .ci p{color:rgba(27,27,27,.72)}
html[data-t] .cont .cpg{transform:rotate(-4deg);box-shadow:0 12px 20px -10px rgba(0,0,0,.5);border-radius:6px}
html[data-t] .cont .btn.p.cop{background:var(--charcoal);color:var(--ac)}

/* section headings */
html[data-t] .shd{margin:34px 0 14px;align-items:flex-end}
html[data-t] .shd .sec{position:relative;padding-left:16px;font:700 26px/1.05 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.025em}
html[data-t] .shd .sec::before{content:'';position:absolute;left:0;top:2px;bottom:2px;width:7px;border-radius:2px;background:var(--ac);transform:skewX(-14deg)}
html[data-t] .shs{padding-left:16px}
html[data-t] .shr{padding:5px 10px;border-radius:999px;background:var(--sf);border:1px solid var(--ln);font-size:11.5px}
html[data-t] .dgl{margin:18px 0 10px}
html[data-t] .dgl span{font:800 11px/1 Inter,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--mu)}

/* template rails: big page cards you swipe through */
html[data-t] #ngrid .dlist{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:4px 20px 16px;background:transparent;border:0;box-shadow:none;border-radius:0;scrollbar-width:none}
html[data-t] #ngrid .dlist::-webkit-scrollbar{display:none}
html[data-t] #ngrid .drow.tpc{flex:0 0 164px;flex-direction:column;align-items:stretch;gap:12px;min-height:0;padding:10px 10px 14px;border:1px solid var(--ln);border-radius:24px;background:var(--sf);box-shadow:var(--sh);scroll-snap-align:start}
html[data-t] #ngrid .drow.tpc .dth{width:100%;aspect-ratio:1/1.18;overflow:hidden;border:0;background:#EDEAE0;box-shadow:inset 0 0 0 1px rgba(27,27,27,.08)}
html[data-t] #ngrid .drow.tpc .dtx{padding:0 4px}
html[data-t] #ngrid .drow.tpc .dtx b{font:700 15px/1.2 Inter,system-ui,sans-serif;-webkit-line-clamp:2;}
html[data-t] #ngrid .drow.tpc .dmeta span{display:none}
html[data-t] #ngrid .drow.tpc .dadd{position:absolute;}
@media(min-width:760px){html[data-t] #ngrid .dlist{margin:0;padding:4px 4px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));overflow:visible}html[data-t] #ngrid .drow.tpc{flex:initial}html[data-t] #ngrid .drow.tpc .dadd{top:calc(10px + (100% - 20px) * 0)}}

/* document cards: separate cards with a coloured spine */
@media(max-width:759px){
 html[data-t] .dlist:not(.rail){background:transparent;border:0;box-shadow:none;overflow:visible;display:grid;gap:10px}
 html[data-t] #prail .drow,html[data-t] #rail .drow{border:1px solid var(--ln);border-radius:var(--rc);background:var(--sf);box-shadow:var(--sh)}
}
html[data-t] .rcard{padding-left:20px}
html[data-t] .rcard::before{content:'';position:absolute;left:0;top:16px;bottom:16px;width:5px;border-radius:0 5px 5px 0;background:color-mix(in srgb,var(--tx) 22%,transparent)}
html[data-t] .rcard[data-k=rep]::before{background:var(--ac)}
html[data-t] .rcard .dth{border-radius:9px;box-shadow:0 8px 14px -9px rgba(0,0,0,.5);transform:rotate(-2.5deg)}
html[data-t] .rcard .dtx b{font:700 15.5px/1.25 Inter,system-ui,sans-serif}
html[data-t] .kd{border:0;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:10px;padding:4px 8px;border-radius:7px}
html[data-t] .rcard[data-k=rep] .kd:first-child{background:color-mix(in srgb,var(--ac) 28%,transparent);color:var(--tx)}
html[data-t] .kd.warn{background:var(--bad-solid);color:#fff}

/* filter chips */
html[data-t] .chip{height:38px;border-radius:12px;font-weight:700}
html[data-t] .chip.on{background:var(--ac);border-color:var(--ac);color:var(--charcoal)}

/* bottom bar */
@media(max-width:899px){html[data-t] .nav{box-shadow:0 18px 34px -12px rgba(0,0,0,.6)!important}}


/* other screens share the same cards */
html[data-t] .pane{border-radius:var(--rc);box-shadow:var(--sh)}
html[data-t] .h1.s{font:700 24px/1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.03em}


html[data-t] .qb,html[data-t] .qb:first-child{padding:14px!important;font-size:inherit!important}
html[data-t] .h2b{white-space:nowrap;font-size:19px;gap:8px;padding:0 10px}
html[data-t] .h2b svg{width:20px;height:20px}
.h2c{grid-template-columns:1.25fr 1fr}
html[data-t] #ngrid .drow.tpc .dth{border-radius:14px}
html[data-t] #ngrid .drow.tpc .dadd,html[data-t] #ngrid .drow.tpc .dadd{top:auto!important;bottom:14px;right:14px}

html[data-t] #ngrid .drow.tpc .dtx b{min-height:0}
html[data-t] #ngrid .drow.tpc .dadd{top:18px!important;bottom:auto!important;right:18px;width:36px;height:36px;box-shadow:0 0 0 3px rgba(255,255,255,.92),0 10px 18px -8px rgba(0,0,0,.6)}
html[data-t] #ngrid .drow.tpc .dtx{padding-right:4px;min-height:0}
html[data-t] .hero2+.bkbn{margin-top:12px}
html[data-t] .bkbn{border-radius:var(--rc)}

/* v64: logo cropper, Saved badge and download button */
.lgcrop{position:fixed;inset:0;z-index:80}
.lgcrop .lcb{position:absolute;inset:0;background:#0008}
.lcs{position:absolute;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;max-height:94vh;overflow:auto;background:var(--sf);color:var(--tx);border-radius:22px 22px 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px #0004}
.lcwb{display:grid;place-items:center;background:repeating-conic-gradient(#d9dde5 0 25%,#f4f6f9 0 50%) 0 0/16px 16px;border-radius:12px;padding:10px;margin-bottom:10px}
.lcw{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;line-height:0}
.lcw img{display:block;max-width:none;pointer-events:none;-webkit-user-drag:none}
.lcf{position:absolute;box-sizing:border-box;border:2px solid var(--ac);box-shadow:0 0 0 9999px rgba(0,0,0,.48);cursor:move;touch-action:none}
.lcf i{position:absolute;width:26px;height:26px;background:var(--ac);border:3px solid #fff;border-radius:50%;box-sizing:border-box;touch-action:none}
.lcf i[data-h=nw]{left:-13px;top:-13px;cursor:nwse-resize}.lcf i[data-h=ne]{right:-13px;top:-13px;cursor:nesw-resize}
.lcf i[data-h=sw]{left:-13px;bottom:-13px;cursor:nesw-resize}.lcf i[data-h=se]{right:-13px;bottom:-13px;cursor:nwse-resize}
.lcc{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.lcc .lgbtn{margin:0}.lgbtn.on{background:var(--ac);border-color:var(--ac);color:#1a1300}
.lcp{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.lcph{background:#fff;color:#111;border:1px solid #cfd5df;border-radius:6px;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);align-items:center;gap:10px;min-height:56px}
.lcpl{display:grid;place-items:center;height:40px}.lcpl img{max-width:100%;max-height:40px;object-fit:contain}
.lcpt{text-align:center}.lcpt b{display:block;font:700 14px Inter,sans-serif}.lcpt small{font-size:11px;color:#667}
.lcpo{display:flex;align-items:center;gap:10px;color:var(--mu);font-size:12px}
.lcpo img{height:64px;max-width:60%;object-fit:contain;background:#fff;border:1px solid var(--ln);border-radius:8px;padding:4px}
.lcx{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:0}
.lcx .btn{min-width:110px}
.kd.ok{background:color-mix(in srgb,var(--ok-solid) 22%,transparent);border-color:color-mix(in srgb,var(--ok-solid) 55%,transparent);color:var(--tx)}
.kd.old{border-color:color-mix(in srgb,var(--ac) 60%,transparent);background:color-mix(in srgb,var(--ac) 22%,transparent);color:var(--tx)}
html[data-t] .kd.ok{background:var(--ok-solid);color:#fff}
html[data-t] .kd.old{background:color-mix(in srgb,var(--ac) 35%,transparent);color:var(--tx)}
.drow .ib.ddl{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ok);display:grid;place-items:center}
.drow .ib.ddl svg,.frow .ib.ddl svg{width:20px;height:20px}
.frow .ib.ddl{width:40px;height:40px;padding:0;border:0;background:transparent;color:var(--ok);display:grid;place-items:center}
.frow .kd{margin-left:6px}
@media(hover:hover){.drow .ib.ddl:hover,.frow .ib.ddl:hover{background:color-mix(in srgb,var(--ok-solid) 14%,transparent)}}
.frow .fmeta .kd{display:inline-block;margin:4px 0 0;align-self:flex-start;width:fit-content}

/* v64: Settings redesign - tabs, profile card, grouped rows */
.cfgp{gap:14px}
.ctabs{display:flex;gap:4px;padding:4px;background:var(--sf2);border:1px solid var(--ln);border-radius:16px;position:sticky;top:8px;z-index:5;backdrop-filter:blur(10px)}
.ctabs button{position:relative;flex:1;min-height:44px;border:0;background:transparent;border-radius:12px;font:700 13.5px var(--font);color:var(--mu);cursor:pointer;white-space:nowrap}
.ctabs button.on{background:var(--sf);color:var(--tx);box-shadow:var(--sh)}
.ctabs .ndot{top:8px;left:auto;right:8px;width:9px;height:9px}
.ctabs .ndot.warn{background:var(--ac)}
.cfgp .pane.prof{background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 18%,var(--sf)),var(--sf) 62%);position:relative;overflow:hidden}
.cfgp .pane.prof::after{content:'';position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;border:18px solid color-mix(in srgb,var(--ac) 14%,transparent);pointer-events:none}
.cfgp .prof .mev{margin:0 0 16px;gap:16px}
.cfgp .prof .mea{width:78px;height:78px;border:3px solid var(--sf);box-shadow:0 0 0 2px var(--ac),0 8px 18px -8px rgba(0,0,0,.4)}
.cfgp .prof .mei{gap:3px}.cfgp .prof .mei b{font:800 20px/1.2 var(--font);letter-spacing:-.02em}
.cfgp .prof .mei span{font-size:13.5px}
.cfgp .prof .mea2{margin:0}.cfgp .prof .mea2 .btn{flex:1;background:var(--sf);min-height:42px}
.cfgp .pane{padding:0;overflow:hidden}
.cfgp .pane>.ch{padding:16px 18px 12px;margin:0}
.cfgp .pane>*:not(.ch):not(.tgl):not(.navrow){margin-left:18px;margin-right:18px}
.cfgp .pane>.tgl,.cfgp .pane>.navrow{padding-left:18px;padding-right:18px;width:100%;box-sizing:border-box}
.cfgp .pane>*:last-child{margin-bottom:18px}
.cfgp .pane>.tgl:last-child,.cfgp .pane>.navrow:last-child{margin-bottom:0}
.cfgp .pane.prof{padding:20px}.cfgp .pane.prof>*{margin-left:0;margin-right:0}
.cfgp .pane:not(.prof):has(.sfl)>*:not(.ch){}
.cfgp .pane>.ch{border-bottom:1px solid var(--ln)}
.cfgp .pane>.ch+*{margin-top:14px}
.cfgp .pane>.ch+.tgl,.cfgp .pane>.ch+.navrow{margin-top:0;border-top:0}
.cfgp .pane>.seg{margin-top:14px}
.cfgp .pane.danger{border-color:color-mix(in srgb,var(--bad-solid) 40%,var(--ln))}
.cfgp .pane.danger>.ch{border-bottom-color:color-mix(in srgb,var(--bad-solid) 25%,var(--ln))}
.cfgp .navrow{transition:background .15s}.cfgp .navrow:active{background:var(--sf2)}
.cfgp .pane>.navrow:last-child{border-radius:0 0 20px 20px}
.cfgp .stat>div b{font:800 22px var(--font)}
.cfgp .pane.about .verc{margin-top:14px}
.cfgp .pane.prof>*:not(.ch):not(.tgl):not(.navrow){margin-left:0;margin-right:0}
.cfgp .pane>.btn.wide{width:calc(100% - 36px);box-sizing:border-box}
.cfgp .pane>.btnrow,.cfgp .pane>.bkc,.cfgp .pane>.verc,.cfgp .pane>.stat,.cfgp .pane>.sbar{box-sizing:border-box;width:auto}
.cfgp .pane>.chg{margin-bottom:0;padding-bottom:12px}
.ctabs .ndot{position:static;display:inline-block;margin:0 0 3px 7px;vertical-align:middle}
.cfgp .meedit{padding:0}.cfgp .meedit>h3{margin-top:18px;margin-bottom:0}

/* v64: desktop alignment - header, content, Settings and dialogs share one column */
@media(min-width:900px){
 body:has(.nav) .top{padding-left:88px;padding-right:0}
 body:has(.nav) .top .tr1,body:has(.nav) .top .tr2{width:100%;max-width:1180px;margin:0 auto;padding:0 28px;box-sizing:border-box}
 .stk.cfgp{max-width:none;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
 .cfgp>.ctabs{grid-column:1/-1;justify-self:start;width:100%;max-width:520px}
 .cfgp>.pane.prof,.cfgp>.pane.about,.cfgp>.pane.meedit{grid-column:1/-1}
 .cfgp .pane.prof{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 28px}
 .cfgp .prof .mev{margin:0}.cfgp .prof .mea2{flex:none;width:320px}
 .cfgp .meedit{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;padding:0 28px 24px}
 .cfgp .meedit>*{margin-left:0;margin-right:0}
 .cfgp .meedit>h3,.cfgp .meedit>.lead,.cfgp .meedit>.mev,.cfgp .meedit>.mea2{grid-column:1/-1}
 .cfgp .pane>.btn.wide{display:inline-flex;width:auto;min-width:240px}
 .cfgp .pane.about .verc{max-width:560px}
 .lcs,.lgs{top:50%;bottom:auto;transform:translateY(-50%);border-radius:22px;max-height:88vh;max-width:640px;box-shadow:0 30px 80px #0007}
}
.cfgp .pane>.ch+.tgl{padding-top:14px}

/* v64: Home on desktop - the three template groups sit side by side instead of leaving the right of the page empty */
@media(min-width:900px){
 html[data-t] #ngrid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(0,1fr);grid-template-rows:auto auto;grid-auto-flow:column;column-gap:20px;align-items:start}
 html[data-t] #ngrid>.dgl{margin:0 0 10px}
 html[data-t] #ngrid .dlist{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));padding:4px 0 16px;gap:14px}
}

/* v65: desktop side bar (Home, Files...) is a flat, square-edged strip - no curves */
@media(min-width:900px){
 html[data-t] .nav,html[data-t=dark] .nav{border-radius:0!important}
}

/* v65: Home has one "Choose a template" entry; the templates open on their own page, ungrouped */
.ntb{display:flex;align-items:center;gap:14px;width:100%;box-sizing:border-box;min-height:72px;padding:12px 16px;margin:0 0 18px;border:1px solid var(--ln);border-radius:var(--rc);background:var(--sf);box-shadow:var(--sh);color:var(--tx);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,transform .15s}
.ntb:hover{border-color:color-mix(in srgb,var(--ac) 70%,var(--ln))}
.ntb:active{transform:scale(.985)}
.ntb .nti{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--ac);color:var(--charcoal)}
.ntb .nti svg{width:22px;height:22px}
.ntb .ntt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ntb .ntt b{font:700 15.5px/1.2 var(--font);letter-spacing:-.012em}
.ntb .ntt small{font-size:12.5px;color:var(--mu)}
.ntb>svg{flex:none;color:var(--mu)}
@media(min-width:900px){
 html[data-t] #ngrid.flat{display:block}
 html[data-t] #ngrid.flat .dlist{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));padding:4px 0 24px;gap:16px}
}

/* v67: edit bar sits at the TOP, just under the header, so the keyboard never covers it */
.etb{top:var(--eth,112px)!important;bottom:auto!important;transform-origin:50% 0!important;
 transform:translate(var(--vx,0px),calc(var(--vy,0px) - 150%)) scale(var(--vs,1))!important;
 visibility:hidden;pointer-events:none;
 box-shadow:0 14px 34px -14px rgba(0,0,0,.55)!important}
.etb.show{transform:translate(var(--vx,0px),var(--vy,0px)) scale(var(--vs,1))!important;
 visibility:visible;pointer-events:auto;}



/* v68: edit bar is docked to the very top of the screen while scrolling (under the header only while the header is on screen), and is compact */
.etb{top:max(var(--eth,0px),calc(env(safe-area-inset-top,0px) + 6px))!important;padding:8px 10px!important;border-radius:18px!important}
.etb .eh{min-height:22px}
.etb .er{margin-top:6px}
.etb .ab{width:40px;height:40px;border-radius:10px}
.etb .nx{height:40px;border-radius:10px}
.etb .eh button{padding:3px 4px}
body:has(.etb.show) .wrap.ew{padding-bottom:55vh}
@media(min-width:900px){
 .etb{display:flex;flex-wrap:wrap;column-gap:10px;align-items:center}
 .etb>.eh{flex:0 0 100%}
 .etb>.er{flex:1 1 auto}
 .etb>.fhn{flex:0 0 100%}
}

/* v68: logo crop - edge handles so the shape can also be changed from the sides */
.lcf b{position:absolute;touch-action:none;background:transparent}
.lcf b[data-h=n]{left:14px;right:14px;top:-9px;height:18px;cursor:ns-resize}
.lcf b[data-h=s]{left:14px;right:14px;bottom:-9px;height:18px;cursor:ns-resize}
.lcf b[data-h=e]{top:14px;bottom:14px;right:-9px;width:18px;cursor:ew-resize}
.lcf b[data-h=w]{top:14px;bottom:14px;left:-9px;width:18px;cursor:ew-resize}
.lcf i{z-index:1}

/* v69: live header preview inside the logo panel, lighter backdrop, tidy thumbnails */
.lgpv{position:relative;overflow:hidden;border:1px solid var(--ln);border-radius:12px;background:#fff;margin:0 0 12px;min-height:0;pointer-events:none}
.lgpvo{transform-origin:0 0}
.lgpvs.sheet{position:static!important;transform:none!important;zoom:1!important;width:794px!important;min-height:0!important;box-shadow:none!important;margin:0!important;pointer-events:none}
.lgpvs .body{padding:0!important;min-height:0!important;height:auto!important;display:block!important}
.lgp .lgb{background:#0003}
.lgc{overflow:hidden}
.lgc img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;min-width:0;min-height:0}
.lgha{display:flex;gap:14px;align-items:center}
.lgha button{font:inherit;background:none;border:0;color:inherit;cursor:pointer}
.lgha button[data-lg=goadd]{color:var(--ac);font-weight:600}
@media(max-width:700px){}
@media(min-width:701px){.lgs{max-height:92vh}}

/* v69: top bar never hides; "PDF saved - Done" bar in Edit PDF */
.top.hide{transform:none!important}
.pe-done{position:fixed;z-index:40;left:8px;right:8px;margin:0 auto;max-width:560px;top:calc(66px + env(safe-area-inset-top));display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:18px;background:var(--sf);color:var(--tx);border:1px solid var(--ln);box-shadow:0 14px 36px -12px rgba(0,0,0,.55)}
.pe-done .pdt{flex:1 1 auto;min-width:0}
.pe-done .pdt b{display:block;font-size:14px}
.pe-done .pdt small{display:block;color:var(--mu);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pe-done .btn{flex:none;white-space:nowrap}

/* v70: floating bars stay put while the page scrolls (own layer, no transition on scroll) */
.etb,.pe-dock,.pe-done{will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.pe-dock{transition:none}

/* v72: generic documents (invoice, letter, torquing procedure, visual practice report) */
.st-gen .gh{display:flex;align-items:center;justify-content:space-between;margin:0 0 3mm}
.st-gen .gh .logos{border:0;min-height:14mm;flex:0 1 auto;background:transparent}
.st-gen .gh .logos .slot{flex:0 0 auto;padding:0 3mm 0 0}
.st-gen .rcn{font-size:9px;font-weight:700;align-self:flex-start;margin-top:4mm}
.st-gen .tagl{text-align:center;font-weight:700;font-size:10px;line-height:1.3;margin:2mm 8mm 3mm}
.st-gen .gt{text-align:center;margin:2mm 0 4mm}
.st-gen .gt h2{display:inline-block;margin:0;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.st-gen .ps{font-size:12px;line-height:1.35}
.st-gen .ps.b .v{font-weight:700}
.st-gen .ps.u .v{text-decoration:underline}
.st-gen .ps .v{display:block;min-height:1.35em;white-space:pre-wrap;border:0;background:transparent;padding:0}
.st-gen .ps .pl{font-weight:700}
.st-gen .ps .pk{font-weight:700;margin-right:6px}
.st-gen .of{margin-top:6px;text-align:center;font-size:8px;color:#222;line-height:1.35}
.st-gen .skb{position:relative;height:25mm;border:1px solid #111;margin:2mm 2mm 3mm;font-size:10px}
.st-gen .skb span{position:absolute}
.st-gen .skb .sa{left:2mm;top:1.5mm}.st-gen .skb .sw{right:2mm;top:1.5mm}.st-gen .skb .sb{left:2mm;bottom:1.5mm}
.st-gen .skb .ar{position:absolute;left:2mm;width:15mm;border-top:1px solid #111}
.st-gen .skb .a1{top:7.5mm}.st-gen .skb .a2{bottom:7.5mm}
.st-gen .skb .wl{position:absolute;left:0;right:0;border-top:1px solid #111}
.st-gen .skb .w1{top:11mm}.st-gen .skb .w2{top:14mm}
.st-gen .fdg{display:flex;flex-direction:column;gap:3mm;margin-top:4mm;break-before:page}
.st-gen .fdr{display:flex;align-items:center;gap:8mm}
.st-gen .fdr.rt{flex-direction:row-reverse}
.st-gen .fdr b{font-size:14px}
.st-gen .fdr svg{flex:none}
.st-gen .gt h2{text-transform:uppercase}

/* v73: templates are grouped into categories; each category opens on its own page */
.cats{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
@media(min-width:620px){.cats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.cats{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cat{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-height:176px;padding:18px;text-align:left;border:1px solid var(--ln);border-radius:var(--rc,20px);background:var(--sf);box-shadow:var(--sh);color:var(--tx);font:inherit;cursor:pointer;transition:border-color .2s,transform .15s}
.cat:hover{border-color:color-mix(in srgb,var(--ac) 70%,var(--ln))}
.cat:active{transform:scale(.985)}
.cat .ch{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cat .cic{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--ac);color:var(--charcoal)}
.cat .cic svg{width:24px;height:24px}
.cat .cn{padding:5px 11px;border-radius:999px;border:1px solid var(--ln);font:600 12px/1 var(--font);color:var(--mu);white-space:nowrap}
.cat b{margin-top:4px;font:700 18px/1.2 var(--font);letter-spacing:-.02em}
.cat p{margin:0;font-size:13px;line-height:1.4;color:var(--mu)}
.cat .cl{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}
.cat .cl i{font:500 11.5px/1.25 var(--font);font-style:normal;padding:4px 9px;border-radius:8px;background:var(--sf2);color:var(--mu)}
/* v73: a category page lists its templates in a plain grid (no sideways carousel) on phones and tablets */
@media(max-width:899px){
 html[data-t] #ngrid.flat .dlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0;padding:4px 0 24px;overflow:visible;scroll-snap-type:none}
 html[data-t] #ngrid.flat .drow.tpc{flex:initial;min-width:0}
}

/* v74: Edit PDF - the Highlight button label was amber on amber (invisible); page pictures show at once with no fade */
html[data-t] .pe-name .lgbtn.on{background:var(--ac)!important;color:var(--charcoal)!important;border-color:var(--ac)!important}
.pe-cv,.pe-cv.rd{opacity:1!important;transition:none!important}

/* v75: Files - "New project / Create a folder" card readable in light AND dark (was a near-invisible dashed outline on transparent) */
html[data-t] .ftile.fnew{
  background:color-mix(in srgb,var(--ac) 9%,var(--sf));
  border:2px dashed color-mix(in srgb,var(--ac) 55%,var(--tx) 45%);
  box-shadow:none;
  color:var(--tx);
}
html[data-t] .ftile.fnew:hover{background:color-mix(in srgb,var(--ac) 16%,var(--sf));}
html[data-t] .ftile.fnew .fi.plus{
  width:36px;height:36px;margin:0 0 6px;border-radius:50%;
  background:var(--ac);color:var(--charcoal);
  font:600 26px/34px var(--font);text-align:center;
}
html[data-t] .ftile.fnew b{color:var(--tx);margin-top:0}
html[data-t] .ftile.fnew span:last-child{color:var(--mu);font-weight:500}
html[data-t=dark] .ftile.fnew span:last-child{color:#C9C6BC}

/* v76: New project card - stronger dashed outline in light mode (3:1 against the page), amber in dark, clear focus ring in both */
html[data-t=dark] .ftile.fnew{border-color:var(--ac)}
html[data-t] .ftile.fnew:hover{border-color:var(--ac)}
html[data-t] .ftile.fnew:active{background:color-mix(in srgb,var(--ac) 24%,var(--sf))}
html[data-t] .ftile.fnew:focus-visible{outline:3px solid var(--ac);outline-offset:3px}


/* v78: phones - edit bar never slides or lags (position is set instantly, no transition on the move); category tiles sit side by side */
.etb,.etb.show,.etb.vz{transition:none!important}
.etb.show{animation:etbin .14s ease-out}
@keyframes etbin{from{opacity:0}to{opacity:1}}
@media(max-width:619px){
 .cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .cat{min-height:0;padding:14px;gap:8px;border-radius:20px}
 .cat .ch{flex-direction:column;align-items:flex-start;gap:10px}
 .cat .cic{width:40px;height:40px;border-radius:12px}
 .cat .cic svg{width:21px;height:21px}
 .cat .cn{padding:4px 9px;font-size:11px}
 .cat b{margin-top:0;font-size:15.5px;line-height:1.2}
 .cat p{font-size:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 .cat .cl{display:none}
}

/* v79: Home rearranged - greeting, resume, start something new, tools, then pinned and recent with search beside the list it filters */
.hm .hgr{display:flex;flex-direction:column;gap:5px;margin:0 0 16px;padding:2px 2px 0}
.hm .hgd{font:600 12.5px/1.2 Inter,system-ui,sans-serif;color:var(--mu)}
.hm .hgh{margin:0;font:700 clamp(34px,10vw,42px)/.98 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.02em;color:var(--tx)}
.hm .hgs{margin:2px 0 0;font:500 13.5px/1.35 Inter,system-ui,sans-serif;color:var(--mu)}
html[data-t] .hm>.cont{margin-top:0}
html[data-t] .hm .bkbn{margin:10px 0 0;padding:12px 14px;gap:10px}
html[data-t] .hm .bkbn small{font-size:12px;line-height:1.3}
.hm .hsec{margin-top:30px}


/* start something new */
.hnew{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
.hn{display:flex;align-items:center;gap:12px;min-width:0;min-height:76px;padding:12px;border-radius:var(--rc);border:1px solid var(--ln);background:var(--sf);color:var(--tx);font:inherit;text-align:left;box-shadow:var(--sh);cursor:pointer;transition:transform .12s,border-color .2s}
.hn:active{transform:scale(.98)}
.hn:focus-visible{outline:3px solid var(--ac);outline-offset:2px}
.hn svg{flex:none;box-sizing:content-box;width:22px;height:22px;padding:9px;border-radius:13px;background:var(--ac);color:var(--charcoal)}
.hn span{min-width:0}
.hn b{display:block;font:700 15px/1.15 Inter,system-ui,sans-serif;letter-spacing:-.012em}
.hn small{display:block;margin-top:3px;font:500 11.5px/1.25 Inter,system-ui,sans-serif;color:var(--mu)}
@media(hover:hover){.hn:hover{border-color:color-mix(in srgb,var(--ac) 70%,var(--ln))}}

html[data-t] .hm .ntb .nti{background:color-mix(in srgb,var(--ac) 20%,transparent);}
html[data-t=dark] .hm .ntb .nti{color:var(--ac)}

/* tools: three tiles (icon above label), or two wider tiles when the backup reminder already offers Back up */
html[data-t] .hm .qa{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
html[data-t] .hm .qa.two{grid-template-columns:repeat(2,minmax(0,1fr))!important}
html[data-t] .hm .qb,html[data-t] .hm .qb:first-child{flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:82px;padding:12px 6px!important;border-radius:18px;text-align:center}
html[data-t] .hm .qa.two .qb{flex-direction:row;justify-content:flex-start;gap:12px;min-height:60px;padding:8px 14px!important;text-align:left}
html[data-t] .hm .qic{width:36px;height:36px;flex:none}
html[data-t] .hm .qb svg,html[data-t] .hm .qb:first-child svg{width:20px;height:20px}
html[data-t] .hm .qt b{font-size:13.5px;white-space:nowrap}
html[data-t] .hm .qt small{display:none}
html[data-t] .hm .qa.two .qt small{display:block}

/* recent: search and filters sit directly above the list they control */
html[data-t] .hm .search{margin:0 0 12px;}


@media(min-width:900px){
 .hm .hgr{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:20px}
 .hm .hgs{margin:0 0 4px}
 .hnew{gap:14px}
}
@media(max-width:359px){.hn small{display:none}.hn{min-height:68px}}

/* v79: logo panel - header, note and live preview stay pinned while the rest scrolls; each logo has its own remove button */
.lgs .lgst{position:sticky;top:-16px;z-index:3;margin:-16px -16px 12px;padding:16px 16px 2px;background:inherit;border-radius:22px 22px 0 0}
.lgs .lgst .lgpv{margin-bottom:10px;box-shadow:0 6px 14px -10px rgba(0,0,0,.5)}
.lgs .lgst .lgn{margin:6px 0 10px}
.libx.rmx{background:var(--bad-solid);color:#fff}
.lgs h3{margin:16px 0 8px}
@media(max-width:700px){.lgs{max-height:74vh}}
@supports(height:100dvh){@media(max-width:700px){.lgs{max-height:74dvh}}}

/* v79: select several documents */
.srow{display:flex;gap:10px;align-items:center;margin:0 0 12px}
html[data-t] .hm .srow .search{flex:1;min-width:0;margin:0}
.selb{flex:none;height:50px;padding:0 18px;border-radius:999px;border:1px solid var(--ln);background:var(--sf);color:var(--tx);font:700 14px var(--font);cursor:pointer}
.selb:active{background:var(--sf2)}
.selbox{display:none;flex:none;width:26px;height:26px;border-radius:8px;border:2px solid color-mix(in srgb,var(--tx) 40%,transparent);background:var(--sf);place-items:center;color:transparent;font:800 16px/1 var(--font);margin-right:4px}
body.selm .selbox{display:grid}
body.selm .selbox::after{content:'\2713'}
body.selm .sel .selbox{background:var(--ac);border-color:var(--ac);color:var(--charcoal)}
body.selm .frow,body.selm .rcard{cursor:pointer}
body.selm .frow.sel,html[data-t] body.selm .rcard.sel{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--sf));box-shadow:0 0 0 2px var(--ac)}
body.selm .dact,body.selm .frow .ib,body.selm .frow .lgbtn{opacity:.35;pointer-events:none}
body.selm .nav{visibility:hidden}
body.selm .wrap{padding-bottom:120px}
.selbar{position:fixed;z-index:50;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:520px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:10px;border-radius:20px;background:var(--sf);border:1px solid var(--ln);box-shadow:0 18px 40px -12px rgba(0,0,0,.6)}
.selbar .sbn{min-width:0;text-align:center;font:700 14px var(--font);color:var(--tx);white-space:nowrap}
.selbar .sb{min-height:44px;border-radius:13px;border:1px solid var(--ln);background:var(--sf2);color:var(--tx);font:700 14px var(--font);cursor:pointer}
.selbar .sb.d{background:var(--bad-solid);border-color:var(--bad);color:#fff}
.selbar .sb[disabled]{opacity:.4}
@media(min-width:900px){.selbar{left:100px}body.selm .nav{visibility:visible}}
.fact{flex-wrap:wrap}

/* ===== v80: Recent as tiles (2 on phones, 4 on larger screens, then See all) ===== */
.rgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.rgrid>.empty{grid-column:1/-1;margin:0;border:1.5px dashed var(--ln);border-radius:var(--rc);background:transparent}

@media(min-width:760px){
 .rgrid{grid-template-columns:repeat(4,minmax(0,1fr));}
 .rgrid:not([data-all])>.rtile:nth-child(n+3){display:flex}
 .rgrid:not([data-all])>.rtile:nth-child(n+5){display:none}
}
.rtile{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0;padding:8px 8px 6px!important;border:1px solid var(--ln);border-radius:var(--rc);background:var(--sf);box-shadow:var(--sh);color:var(--tx);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s,border-color .15s,transform .12s}
html[data-t] .rtile::before{display:none}
.rtile:active{background:var(--sf2);transform:scale(.985)}
.rtile:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
@media(hover:hover){.rtile:hover{border-color:color-mix(in srgb,var(--ac) 65%,var(--ln))}}
.rtile .rth{display:block;width:100%;aspect-ratio:1/1.05;border-radius:14px;border:1px solid var(--ln);background:#fff;box-shadow:inset 0 -28px 22px -24px rgba(14,26,43,.16)}
[data-t=dark] .rtile .rth{border-color:#ffffff26}
.rtile[data-k=rep] .rth{box-shadow:inset 0 3px 0 var(--ac),inset 0 -28px 22px -24px rgba(14,26,43,.16)}
.rtx{display:block;min-width:0;padding:0 4px;flex:1}
.rtx b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:700 14px/1.25 Inter,system-ui,sans-serif;letter-spacing:-.01em;overflow-wrap:anywhere;min-height:35px}
.rtx .dmeta{margin-top:6px;gap:4px 6px}
.rwhen{display:block;margin-top:6px;color:var(--mu);font:500 12px/1.3 var(--font)}
.ract{display:flex;align-items:center;justify-content:flex-end;gap:0;margin:0 -2px;padding:0 2px 2px;border-top:1px solid var(--ln)}
.rtile .ract .ib{width:38px;height:38px;min-width:38px;min-height:38px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mu);display:grid;place-items:center}
.rtile .ract .ib.dpin.on{color:var(--ac)}.rtile .ract .ib.dpin.on svg{fill:currentColor}
.rtile .ract .ib.ddl{color:var(--ok)}.rtile .ract .ib.ddl svg{width:20px;height:20px}
.rtile .ract .ib.ddel:active{color:var(--bad);background:color-mix(in srgb,var(--bad-solid) 12%,transparent)}
@media(hover:hover){.rtile .ract .ib.dpin:hover{color:var(--tx);background:var(--sf2)}.rtile .ract .ib.ddel:hover{color:var(--bad);background:color-mix(in srgb,var(--bad-solid) 12%,transparent)}}
.rtile .selbox{position:absolute;top:14px;left:14px;z-index:2;margin:0;box-shadow:0 2px 8px rgba(0,0,0,.25)}
body.selm .ract{opacity:.35;pointer-events:none}
body.selm .rtile.sel{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--sf));box-shadow:0 0 0 2px var(--ac)}
@media(max-width:380px){.rtx b{font-size:13px}.rtile{padding:6px 6px 4px!important}}
/* See all / Show fewer */
.dmore{display:flex;align-items:center;justify-content:center;width:100%;height:48px;margin:12px 0 0}
#rail[data-all]+.dmore{display:flex}
#rail[data-force]+.dmore{display:none}
@media(min-width:760px){.dmore.ph:not(.open){display:none}}
.fsec{margin:6px 0 4px}
.fsec .shd{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 12px}
.fsh{margin:26px 0 12px}
.hm .hsec>.shd .sec,.fsec .sec,.fsh .sec{margin:0}

/* v80: calmer yellow glow (Continue editing, buttons, Choose a PDF) */
html[data-t] .cont{box-shadow:0 8px 18px -16px rgba(14,12,6,.45)}
html[data-t] .btn.p,.btn.p,.pe-pick .btn.p{box-shadow:0 1px 0 #ffffff55 inset,0 3px 8px -6px rgba(242,169,0,.4)}
html[data-t] .nav button.on{box-shadow:none}
.dadd,.h2b.p{box-shadow:0 3px 8px -6px rgba(242,169,0,.45)}
html[data-t] .cont .btn.p.cop{box-shadow:none}

/* v80: Edit PDF screen */
.bkc>div{min-width:0;flex:1 1 auto}
.bkc b{overflow-wrap:anywhere;word-break:break-word}
.bkc .btn{min-width:88px}
.pe-pick .bkc{box-sizing:border-box;width:100%;max-width:100%}
.pe-opt{padding:8px 12px;margin:0 0 10px}
.pe-opt small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.pe-name span{flex:1}
/* the page notice sits at the bottom of the page so it never covers the document header or logo */
.pe-note{top:auto;bottom:34px;left:10px;right:10px;padding:8px 10px;font-size:12px;background:color-mix(in srgb,#000 78%,transparent)}

/* ===== v81: See all Close, three-option preview bar, spreadsheet import ===== */
.rclose{position:sticky;top:calc(env(safe-area-inset-top,0px) + 70px);z-index:6;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:6px 6px 6px 14px;border:1px solid var(--ln);border-radius:16px;background:color-mix(in srgb,var(--sf) 90%,transparent);backdrop-filter:blur(14px);box-shadow:var(--sh);color:var(--mu);font:600 13px var(--font)}
.rclose[hidden]{display:none}
.rclose button{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 16px;border:0;border-radius:12px;background:var(--ac);color:var(--ac-ink);font:700 14px var(--font);cursor:pointer}
.rclose button:active{filter:brightness(.94)}
.pvbar.pv3{max-width:620px;gap:6px;padding:6px}
.pvbar.pv3 .pva{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;padding:8px 4px;border:1px solid var(--ln);border-radius:13px;background:var(--sf2);color:var(--tx);font:600 11.5px/1.2 var(--font);text-align:center;cursor:pointer}
.pvbar.pv3 .pva svg{flex:none}
.pvbar.pv3 .pva.ed{flex:.65}
.pvbar.pv3 .pva#pvfiles{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}
.pvbar.pv3 .pva#pvfiles.done{background:var(--ok-solid);border-color:var(--ok);color:#fff}
.pvbar.pv3 .pva[disabled]{opacity:.6}
.pvbar.imact{max-width:560px}
.imgo{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 14px;padding:12px 14px;border:1.5px solid var(--ac);border-radius:var(--rc);background:color-mix(in srgb,var(--ac) 12%,var(--sf));color:var(--tx);text-align:left;cursor:pointer}
.imgi{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px;background:var(--ac);color:var(--ac-ink)}
.imgt{flex:1;min-width:0}.imgt b{display:block;font:700 15px var(--font)}.imgt small{display:block;color:var(--mu);font:500 12.5px/1.3 var(--font)}
.impw{padding-bottom:110px}
.imfound{margin:0 0 8px;color:var(--mu);font:600 13px var(--font)}
.imtabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:0 0 12px}
@media(min-width:700px){.imtabs{grid-template-columns:repeat(4,1fr)}}
.imtabs button{padding:10px 12px;border:1px solid var(--ln);border-radius:12px;background:var(--sf);color:var(--tx);font:600 13px var(--font);text-align:left;cursor:pointer}
.imtabs button small{display:block;color:var(--mu);font-weight:500}
.imtabs button[aria-selected=true]{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}
.imtabs button[aria-selected=true] small{color:#3b2c00}
.imbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 12px}
.imsw{display:flex;align-items:center;gap:8px;font:600 14px var(--font);cursor:pointer}.imsw input{accent-color:var(--ac)}
.imkey{display:flex;flex-wrap:wrap;gap:8px;font:600 12px var(--font)}
.imkey span{padding:3px 10px;border-radius:999px}
.imkey .k1{background:rgba(242,169,0,.38);color:var(--tx)}
.imkey .k2{background:rgba(59,110,230,.16);color:var(--tx);outline:1.5px dashed #3B6EE6;outline-offset:-1.5px}
.imv{position:relative;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 1px 2px #0003,0 16px 34px -20px #000a;margin:0 0 14px}
.imv .sheet{width:794px!important;min-height:0;transform-origin:0 0;pointer-events:none;box-shadow:none;margin:0}
.imv .addrow,.imv .sheet [data-restf]{display:none!important}
.imchk{margin:0 0 14px;padding:12px 14px;border:1px solid var(--ln);border-radius:14px;background:color-mix(in srgb,var(--ac) 10%,var(--sf))}
.imchk summary{font:700 14px var(--font);cursor:pointer}
.imchk ol{margin:10px 0 0;padding-left:20px;color:var(--mu)}.imchk li{margin:6px 0}.imchk li b{color:var(--tx)}
.imv.hl [data-ed="f:client"],
.imv.hl [data-ed="f:proj"],
.imv.hl [data-ed="f:loc"],
.imv.hl [data-ed="f:cs"],
.imv.hl [data-ed="f:acc"],
.imv.hl [data-ed="f:item"],
.imv.hl [data-ed="f:comp"],
.imv.hl [data-ed="f:wd"],
.imv.hl [data-ed="f:thk"],
.imv.hl td[data-key="res"][data-ci="0"],
.imv.hl td[data-key="res"][data-ci="1"],
.imv.hl td[data-key="res"][data-ci="2"],
.imv.hl td[data-key="def"][data-ci="0"],
.imv.hl td[data-key="def"][data-ci="1"],
.imv.hl td[data-key="def"][data-ci="2"],
#stage.imhl [data-ed="f:client"],
#stage.imhl [data-ed="f:proj"],
#stage.imhl [data-ed="f:loc"],
#stage.imhl [data-ed="f:cs"],
#stage.imhl [data-ed="f:acc"],
#stage.imhl [data-ed="f:item"],
#stage.imhl [data-ed="f:comp"],
#stage.imhl [data-ed="f:wd"],
#stage.imhl [data-ed="f:thk"],
#stage.imhl td[data-key="res"][data-ci="0"],
#stage.imhl td[data-key="res"][data-ci="1"],
#stage.imhl td[data-key="res"][data-ci="2"],
#stage.imhl td[data-key="def"][data-ci="0"],
#stage.imhl td[data-key="def"][data-ci="1"],
#stage.imhl td[data-key="def"][data-ci="2"]{background:rgba(242,169,0,.38)!important}
.imv.hl [data-ed="f:date"],
.imv.hl [data-ed="f:no"],
.imv.hl [data-ed="f:dwg"],
.imv.hl [data-ed="f:wps"],
.imv.hl [data-ed="f:jt"],
.imv.hl [data-ed="f:job"],
.imv.hl [data-ed="f:it"],
.imv.hl [data-ed="f:ev"],
.imv.hl [data-ed="f:td"],
.imv.hl [data-ed="f:tn"],
.imv.hl [data-ed="f:tl"],
.imv.hl [data-ed="f:ts"],
.imv.hl td[data-key="res"][data-ci="3"],
.imv.hl td[data-key="res"][data-ci="4"],
.imv.hl td[data-key="res"][data-ci="5"],
.imv.hl td[data-key="res"][data-ci="6"],
.imv.hl td[data-key="def"][data-ci="3"],
.imv.hl td[data-key="def"][data-ci="4"],
.imv.hl td[data-key="def"][data-ci="5"],
.imv.hl td[data-key="def"][data-ci="6"],
.imv.hl td[data-key="def"][data-ci="7"],
.imv.hl td[data-key="def"][data-ci="8"],
#stage.imhl [data-ed="f:date"],
#stage.imhl [data-ed="f:no"],
#stage.imhl [data-ed="f:dwg"],
#stage.imhl [data-ed="f:wps"],
#stage.imhl [data-ed="f:jt"],
#stage.imhl [data-ed="f:job"],
#stage.imhl [data-ed="f:it"],
#stage.imhl [data-ed="f:ev"],
#stage.imhl [data-ed="f:td"],
#stage.imhl [data-ed="f:tn"],
#stage.imhl [data-ed="f:tl"],
#stage.imhl [data-ed="f:ts"],
#stage.imhl td[data-key="res"][data-ci="3"],
#stage.imhl td[data-key="res"][data-ci="4"],
#stage.imhl td[data-key="res"][data-ci="5"],
#stage.imhl td[data-key="res"][data-ci="6"],
#stage.imhl td[data-key="def"][data-ci="3"],
#stage.imhl td[data-key="def"][data-ci="4"],
#stage.imhl td[data-key="def"][data-ci="5"],
#stage.imhl td[data-key="def"][data-ci="6"],
#stage.imhl td[data-key="def"][data-ci="7"],
#stage.imhl td[data-key="def"][data-ci="8"]{background:rgba(59,110,230,.16)!important;outline:1.5px dashed #3B6EE6;outline-offset:-2px}

.imsrc{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border:1px solid var(--ln);border-radius:var(--rc);background:var(--sf)}
.imsi{flex:1 1 200px;min-width:0}.imsi b{display:block;word-break:break-word}.imsi small{display:block;color:var(--mu);font-weight:500;margin-top:2px}
.imsi .imer{color:var(--bad);font-weight:600}
.imfb{flex:0 0 auto;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box}

/* ===== v83: sign-in, account, staff access ===== */
html.dwa-lock body{overflow:hidden}
.dwa-ov{position:fixed;inset:0;z-index:2000;background:var(--bg);color:var(--tx);display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));overflow:auto}
.dwa-mo{z-index:1500;background:rgba(9,18,31,.55);backdrop-filter:blur(3px);place-items:center}
.dwa-box{width:100%;max-width:400px;background:var(--sf);border:1px solid var(--ln);border-radius:20px;padding:28px 24px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:12px}
.dwa-box.dwa-c{align-items:center;text-align:center}
.dwa-logo{box-sizing:content-box;display:block;flex:none;height:44px;width:auto;aspect-ratio:1600/364;max-width:calc(100% - 22px);object-fit:contain;align-self:flex-start;background:#fff;border-radius:10px;padding:6px 10px;border:1px solid var(--ln);opacity:1;transition:none}
.dwa-logo:not(.rdy){visibility:hidden}
.dwa-c .dwa-logo{align-self:center}
.dwa-box h1{font-size:34px;line-height:1.05;margin-top:6px}
.dwa-sub{color:var(--mu);font-size:14px;margin:0}
.dwa-l{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--mu)}
.dwa-l input,.dwa-l select{font-size:16px;color:var(--tx);font-weight:400;min-height:46px}
.dwa-pw{position:relative;display:block}.dwa-pw input{padding-right:64px}
.dwa-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--bl);font-weight:600;font-size:13px;padding:8px}
[data-t=dark] .dwa-eye{color:var(--ac)}
.dwa-go{width:100%;min-height:48px;margin-top:4px}
.dwa-go:disabled,.dwa-row .btn:disabled{opacity:.6}
.dwa-msg{margin:0;min-height:0;font-size:13.5px;color:var(--bad);font-weight:500}.dwa-msg:empty{display:none}
.dwa-foot{margin:4px 0 0;font-size:12.5px;color:var(--mu);text-align:center}
.dwa-spin{display:inline-block;width:14px;height:14px;border:2px solid var(--ln);border-top-color:var(--ac);border-radius:50%;margin-right:10px;vertical-align:-2px;animation:dwaS .8s linear infinite}
@keyframes dwaS{to{transform:rotate(360deg)}}
.dwa-card{width:100%;max-width:440px;max-height:min(88vh,860px);display:flex;flex-direction:column;background:var(--sf);border:1px solid var(--ln);border-radius:20px;box-shadow:var(--sh);overflow:hidden}
.dwa-card.dwa-w{max-width:620px}
.dwa-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid var(--ln)}
.dwa-hd h2{font-size:26px}
.dwa-bd{padding:16px 18px 20px;overflow:auto;display:flex;flex-direction:column;gap:12px}
.dwa-row{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.dwa-row .btn{flex:0 1 auto}
.dwa-who{margin:0 0 10px;display:flex;flex-direction:column;font-size:14px}.dwa-who span{color:var(--mu);font-size:13px;word-break:break-all}
.dwa-acct .btn.wide{width:100%;margin-top:8px}
.dwa-add{display:flex;flex-direction:column;gap:10px;background:var(--sf2);border:1px solid var(--ln);border-radius:14px;padding:14px}
.dwa-add h3,.dwa-h3{font-size:20px}.dwa-h3{margin-top:6px}
.dwa-new{border:2px solid var(--ac);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--sf2)}
.dwa-new p{margin:0;font-size:13.5px}.dwa-new .hint{text-align:left}
.dwa-new code{display:block;font:600 22px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em;padding:12px;background:var(--bg);border:1px dashed var(--ln);border-radius:10px;text-align:center;user-select:all;word-break:break-all}
.dwa-p{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--ln);border-radius:14px;background:var(--sf)}
.dwa-p.off{opacity:.78}
.dwa-pi{display:flex;flex-direction:column;gap:2px;min-width:0}.dwa-pi span{color:var(--mu);font-size:13px;word-break:break-all}.dwa-pi em{font-style:normal;color:var(--mu);font-weight:400}
.dwa-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.dwa-tags i{font-style:normal;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--sf2);border:1px solid var(--ln);color:var(--mu)}
.dwa-tags i.ad{color:var(--bl);border-color:currentColor}[data-t=dark] .dwa-tags i.ad{color:var(--ac)}
.dwa-tags i.ok{color:#1E8A4C;border-color:currentColor}.dwa-tags i.bad{color:var(--bad);border-color:currentColor}
.dwa-pa{display:flex;gap:8px;flex-wrap:wrap}.dwa-pa .btn{flex:0 1 auto;min-height:40px;font-size:13.5px;padding:0 12px;border:1px solid var(--ln)}
@media(max-width:520px){.dwa-box{padding:22px 18px}.dwa-mo{place-items:end center;padding:0}.dwa-card,.dwa-card.dwa-w{max-width:none;border-radius:20px 20px 0 0;max-height:92vh}}
@media print{.dwa-ov{display:none!important}}
.dwa-uh{position:absolute;opacity:0;width:1px;height:1px;border:0;padding:0;margin:0;pointer-events:none}

/* ---------- team chat ---------- */
.chbg{font-style:normal;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--ac);color:var(--ac-ink);font:700 12px/20px var(--font);text-align:center;display:inline-block}
.chbg[hidden]{display:none}
.nav button .nbg{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;font-size:11px;line-height:18px;box-shadow:0 0 0 2px var(--sf)}
.nav button.on .nbg{background:var(--ac-ink);color:var(--ac);box-shadow:none}
.ib.chpl{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}
.chw .chsr,.chw .chnewp{margin:0 0 12px}
.chsr input,.chnf input,#chdq{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--ln);border-radius:14px;background:var(--sf);color:var(--tx);font:500 16px var(--font)}
.chnf{display:flex;gap:8px}.chnf input{flex:1;min-width:0;width:auto}
.chsg{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chsg small{color:var(--mu);width:100%}
.chflt{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 4px}
.chflt .chip{height:38px}
.chflt .chip small{margin-left:7px;opacity:.75;font-weight:700}
.chlab{padding:16px 4px 8px;font:700 12px var(--font);letter-spacing:1px;color:var(--mu)}
.chrl{display:flex;flex-direction:column;gap:8px}
.chr{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--ln);border-radius:18px;background:var(--sf);color:var(--tx);text-align:left;cursor:pointer;width:100%}
.chr:active{background:var(--sf2)}
.chi{flex:none;width:48px;height:48px;border-radius:15px;background:var(--sf2);display:grid;place-items:center;color:#1B1712;font:700 19px 'Barlow Condensed',var(--font);letter-spacing:.2px}
.chi.tm{background:var(--ac);color:var(--ac-ink)}
.chi.sm{width:40px;height:40px;border-radius:12px;font-size:16px}
.chi.sm svg{width:21px;height:21px}
.chx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.chx b{font:700 16px var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chx small{color:var(--mu);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chr.un .chx small{color:var(--tx);font-weight:600}
.chy{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:5px;align-self:stretch;justify-content:space-between;padding:1px 0}
.chy em{font-style:normal;color:var(--mu);font-size:12px}
.chnote{padding:14px;border:1px solid var(--ln);border-radius:14px;background:color-mix(in srgb,var(--ac) 12%,var(--sf))}
.chnote p{margin:6px 0 0;color:var(--mu)}
.chempty{color:var(--mu);text-align:center;padding:22px 8px}
.top .tr2:has(.chhd) .sp{display:none!important}
.chhd{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.chhd .t{display:flex;flex-direction:column;min-width:0}
.chhd b{font:700 16px var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chhd small{color:var(--mu);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chm{position:fixed;left:0;right:0;z-index:5;display:flex;flex-direction:column;background:var(--bg);max-width:820px;margin:0 auto}
.chm [hidden]{display:none!important}
.chtabs{flex:none;display:flex;gap:6px;padding:0 14px;background:var(--sf);border-bottom:1px solid var(--ln)}
.chtabs button{flex:1;padding:12px 8px 10px;border:0;border-bottom:3px solid transparent;background:none;color:var(--mu);font:600 14px var(--font);cursor:pointer}
.chtabs button.on{color:var(--tx);font-weight:700;border-bottom-color:var(--ac)}
.chtabs em{font-style:normal;opacity:.7}
.chs,.chf{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.chs{padding:12px 12px 8px}
.chf{padding:6px 14px 20px}
.chst{display:none;padding:6px 14px;font-size:13px;color:var(--mu);background:var(--sf2)}
.chst.on{display:block}.chst.bad{color:#B42318}
.chd{text-align:center;}
.cmsg{display:flex;margin:10px 0 0;}
.cmsg.sm{margin-top:3px}

.chn{font:700 12px var(--font);}
.chb{max-width:100%;overflow-wrap:anywhere}

.cmsg.ot .chb{border-bottom-left-radius:6px}
.chb p{margin:0 0 2px;font:500 15px/1.4 var(--font)}.chb a{color:inherit;text-decoration:underline}
.cht{margin-top:2px}
.chdel{border:0;background:none;color:var(--mu);font-size:11px;padding:2px 6px;cursor:pointer}
.cfile{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:0 0 4px;border:0;border-radius:12px;background:rgba(0,0,0,.08);color:inherit;text-align:left;cursor:pointer;width:100%}
.cfi{flex:none;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.55);display:grid;place-items:center;color:var(--ac-ink)}
.cft{display:flex;flex-direction:column;min-width:0;flex:1}.cft b{font:700 14px var(--font);overflow-wrap:anywhere}.cft small{opacity:.7;font-size:12px}
.crep{min-width:236px;margin:0 0 4px;border-radius:14px;color:var(--ac-ink)}
[data-t=dark] .cmsg.ot .crep{color:var(--tx)}
.crep .crt{display:flex;align-items:center;gap:10px}
.cri{flex:none;width:40px;height:48px;border-radius:7px;background:#FFFDF8;border:1px solid #D6CCB6;display:grid;place-items:center;color:#8A5A00}
.crep .cra{display:flex;gap:8px;margin-top:9px}
.crep .cra button{flex:1;padding:10px 6px;border:0;border-radius:12px;font:600 13px var(--font);cursor:pointer}
.crep .cra .cro{background:#1B1712;color:#FFFDF8}
.crep .cra .crs{background:rgba(27,23,18,.1);color:var(--ac-ink)}
[data-t=dark] .cmsg.ot .crep .cra .crs{background:rgba(255,255,255,.1);color:var(--tx)}
[data-t=dark] .cmsg.ot .crep .cra .cro{background:var(--ac);color:var(--ac-ink)}
.chfh{margin:16px 2px 8px;font:700 12px var(--font);letter-spacing:1px;color:var(--mu)}.chfh span{font-weight:600;margin-left:4px}
.chfr{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:0 0 8px;border:1px solid var(--ln);border-radius:16px;background:var(--sf)}
.chfr .cfi{background:var(--sf2)}
.chab{flex:none;padding:8px 12px;border:1px solid var(--ln);border-radius:11px;background:var(--sf2);color:var(--tx);font:600 13px var(--font);cursor:pointer}
.chmore{display:block;margin:10px auto 8px;padding:8px 14px;border:1px solid var(--ln);border-radius:12px;background:var(--sf);color:var(--tx);cursor:pointer}
.chc2{flex:none;background:var(--sf);border-top:1px solid var(--ln);padding-bottom:env(safe-area-inset-bottom)}
.chq{gap:8px;padding:8px 12px 0;overflow-x:auto;scrollbar-width:none}
.chq::-webkit-scrollbar{display:none}
.chq .chip{height:34px;padding:0 13px;font-size:13px}
.chc{position:relative;display:flex;gap:8px;}
.chc textarea{flex:1;min-width:0;resize:none;max-height:130px;padding:11px 16px;color:var(--tx);font:500 16px/1.35 var(--font)}
.chat,.chsend{flex:none;width:44px;height:44px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer}
.chat{color:var(--tx)}.chsend{background:var(--ac);color:var(--ac-ink)}
.chov{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end}
.chsb{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.chsh{position:relative;height:min(640px,88%);display:flex;flex-direction:column;gap:12px;padding:10px 16px calc(16px + env(safe-area-inset-bottom));background:var(--bg);border-radius:24px 24px 0 0;max-width:820px;width:100%;margin:0 auto;box-sizing:border-box}
.chgrab{align-self:center;flex:none;width:42px;height:5px;border-radius:3px;background:var(--ln)}
.chsx{flex:none;display:flex;align-items:center;justify-content:space-between}.chsx b{font:700 26px 'Barlow Condensed',var(--font)}
.chcl{border:0;background:none;color:var(--bl);font:700 14px var(--font);cursor:pointer;padding:8px 0 8px 12px}
[data-t=dark] .chcl{color:var(--ac)}
.chsh .chflt{flex:none;margin:0}
.chdl{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.chdoc{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--ln);border-radius:16px;background:var(--sf);color:var(--tx);text-align:left;cursor:pointer;width:100%}
.chdoc.on{background:color-mix(in srgb,var(--ac) 18%,var(--sf));border-color:var(--ac)}
.chdoc .cft b{font-size:14px}.chdoc .cft small{color:var(--mu);opacity:1}
.chck{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--ln);display:grid;place-items:center;color:var(--ac-ink)}
.chdoc.on .chck{background:var(--ac);border-color:var(--ac)}
.chsf{flex:none;display:flex;align-items:center;gap:12px}
.chsf span{flex:1;color:var(--mu);font-size:13px}
.chsnd{padding:14px 28px;border:0;border-radius:16px;background:var(--ac);color:var(--ac-ink);font:700 15px var(--font);cursor:pointer}
.chsnd:disabled{opacity:.4;cursor:default}

/* home: Import spreadsheet banner sits where the backup bar was; the backup bar closes the page */

html[data-t] .hm .imgo .imgt small{font-size:12px;line-height:1.3}
html[data-t] .hm>.bkbn:last-child{margin:30px 0 0}

/* help overlay + sign-in help link */
#dwa-help{position:fixed;inset:0;z-index:2500;display:flex;flex-direction:column;background:var(--bg);padding-top:env(safe-area-inset-top,0px)}
.dwh-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-bottom:1px solid var(--ln);background:var(--sf);color:var(--tx)}
.dwh-bar .btn{min-height:40px}
.dwh-f{flex:1;width:100%;border:0;background:var(--bg)}
.dwa-link{display:block;width:100%;margin-top:14px;padding:10px;background:none;border:0;color:var(--bl);font:600 14px Inter,system-ui,sans-serif;text-align:center;text-decoration:underline;cursor:pointer}
[data-t=dark] .dwa-link{color:var(--ac)}
@media print{#dwa-help{display:none!important}}

/* v90: chat messages show a picture (initials) and a name on every message */
.cmsg{flex-direction:row;align-items:flex-start;gap:8px;max-width:94%}
.cmsg.me{flex-direction:row-reverse;align-items:flex-start;margin-left:auto}
.cmsg.ot{align-items:flex-start}
.cav{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:700 12px var(--font);color:#1B1712}
.cav.sp{visibility:hidden}
.cbd{display:flex;flex-direction:column;min-width:0;max-width:calc(100% - 40px)}
.cmsg.me .cbd{align-items:flex-end}.cmsg.ot .cbd{align-items:flex-start}
.cmsg.me .chn{margin:0 4px 3px 0}
.dwa-tags i.tl{color:var(--bl);border-color:currentColor;background:color-mix(in srgb,var(--ac) 14%,var(--sf))}[data-t=dark] .dwa-tags i.tl{color:var(--ac)}
.dwa-rl{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mu)}
.dwa-rl select{min-height:40px;padding:0 10px;border:1px solid var(--ln);border-radius:12px;background:var(--sf);color:var(--tx);font:600 13.5px Inter,system-ui,sans-serif}

/* ===== v91 ===== */
/* Settings, desktop: right-hand column stacks (Appearance + Defaults, Automatic backup + Reset app) so no gap opens under a short card */
.cfcol{display:flex;flex-direction:column;gap:14px;min-width:0}
@media(min-width:900px){
 .cfgp .cfcol{gap:16px}
 .cfgp>.dwa-acct,.cfgp>.bk1{grid-column:1}
 .cfgp>.cfcol{grid-column:2}
}

/* Files: projects are big folders */
.fgrid{gap:18px 14px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:640px){html[data-t] .fgrid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:26px 20px}}
.fold{--fa:var(--ac);--fb:color-mix(in srgb,var(--ac) 74%,#6b4300);--ff1:color-mix(in srgb,var(--ac) 88%,#fff);--ff2:var(--ac);
 position:relative;display:block;width:100%;aspect-ratio:1.18;min-height:150px;padding:0;margin:14px 0 0;border:0;background:none;box-shadow:none;border-radius:0;
 font:inherit;text-align:left;color:var(--charcoal);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .18s}
/* back panel with the tab */
.fold .fdb{position:absolute;left:0;right:0;top:0;bottom:0;border-radius:6px 16px 16px 16px;background:var(--fb)}
.fold .fdb::before{content:'';position:absolute;left:0;top:-15px;width:46%;height:24px;background:var(--fb);border-radius:12px 12px 0 0;clip-path:polygon(0 0,84% 0,100% 100%,0 100%)}
/* paper sheets peeking out */
.fold .fdp{position:absolute;left:9%;right:9%;top:8px;height:55%;background:#fff;border:1px solid #d9d4c6;border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .2s}
.fold .fdp.p2{left:13%;right:7%;top:3px;background:#f4f1e8;transform:rotate(2.2deg)}
.fold .fdp.p1{transform:rotate(-1.2deg)}
/* front flap */
.fold .fdf{position:absolute;left:0;right:0;bottom:0;top:30%;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:12px 16px 14px;border-radius:14px 16px 16px 16px;
 background:linear-gradient(180deg,var(--ff1),var(--ff2));box-shadow:0 -1px 0 rgba(255,255,255,.35) inset,0 10px 22px -12px rgba(0,0,0,.5);transition:transform .2s;box-sizing:border-box}
.fold .fdf b{font:700 16px/1.2 var(--font);letter-spacing:-.015em;color:var(--charcoal);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fold .fdf span{font-size:13px;color:#3d2e00;font-weight:500}
.fold:active{transform:scale(.97)}
.fold:focus-visible{outline:3px solid var(--tx);outline-offset:6px;border-radius:12px}
@media(hover:hover){.fold:hover .fdf{transform:translateY(-5px)}.fold:hover .fdp.p1{transform:rotate(-1.2deg) translateY(-6px)}.fold:hover .fdp.p2{transform:rotate(2.2deg) translateY(-8px)}}
/* New project: dashed folder outline */
.fold.fnw .fdb{background:transparent;border:2px dashed color-mix(in srgb,var(--ac) 70%,var(--tx) 30%);box-sizing:border-box}
.fold.fnw .fdb::before{background:transparent;border:2px dashed color-mix(in srgb,var(--ac) 70%,var(--tx) 30%);border-bottom:0;box-sizing:border-box;clip-path:none;border-radius:12px 12px 0 0;width:40%}
.fold.fnw .fdf{align-items:center;justify-content:center;text-align:center;background:color-mix(in srgb,var(--ac) 8%,var(--sf));box-shadow:none;}
.fold.fnw .fdf b,.fold.fnw .fdf span{color:var(--tx)}
.fold.fnw .fdf span{color:var(--mu)}
.fold.fnw .fpl{font:600 28px/36px var(--font);font-style:normal;width:38px;height:38px;border-radius:50%;background:var(--ac);color:var(--charcoal);text-align:center;margin-bottom:6px}
.fold.fnw:hover .fdf{transform:none}
html[data-t=dark] .fold .fdp{background:#ecebe6;border-color:#bdb8aa}
html[data-t=dark] .fold .fdp.p2{background:#d3d0c6}
@media(prefers-reduced-motion:reduce){.fold,.fold *{transition:none!important}}

/* v91: People list shows placeholder rows while the first load runs */
.dwa-sk{pointer-events:none}.dwa-sk b,.dwa-sk span{display:block;border-radius:6px;background:linear-gradient(90deg,var(--sf2) 25%,color-mix(in srgb,var(--mu) 18%,var(--sf2)) 50%,var(--sf2) 75%);background-size:200% 100%;animation:dwask 1.2s linear infinite}
.dwa-sk b{height:16px;width:55%}.dwa-sk span{height:12px;width:75%;margin-top:6px}
@keyframes dwask{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.dwa-sk b,.dwa-sk span{animation:none}}
.fold.fnw .fdf{top:2px;left:2px;right:2px;bottom:2px;border-radius:5px 14px 14px 14px}

/* ===== v93: chat edit, select and delete, archive, clear ===== */
.cact{display:flex;gap:2px;margin-top:1px}
.cmsg.me .cact{justify-content:flex-end}
.chedit{display:block;width:100%;min-width:200px;box-sizing:border-box;padding:8px 10px;border:1px solid var(--ln);border-radius:12px;background:var(--sf);color:var(--tx);font:500 15px/1.4 var(--font);resize:none}
.ced{display:flex;justify-content:flex-end;gap:8px;margin:6px 0 2px}
.chab.ok{background:var(--ac);color:var(--ac-ink);border-color:var(--ac)}
.chr.arc{display:flex;align-items:center;cursor:default}

/* select messages */
.cmsg .selbox{display:none;flex:none;align-self:center;width:26px;height:26px;border-radius:8px;border:2px solid color-mix(in srgb,var(--tx) 40%,transparent);background:var(--sf);place-items:center;color:transparent;font:800 16px/1 var(--font)}
.cmsg .selbox::after{content:'\2713'}
.chm .cmsg.pk .selbox,.chm .cmsg.nopk .selbox{display:grid}
.chm .cmsg.nopk .selbox{visibility:hidden}
.chm .cmsg.nopk{opacity:.5}
.chm .cmsg.pk{cursor:pointer;border-radius:16px}
.chm .cmsg.pk.sel{background:color-mix(in srgb,var(--ac) 14%,transparent);box-shadow:0 0 0 2px var(--ac)}
.chm .cmsg.pk.sel .selbox{background:var(--ac);border-color:var(--ac);color:var(--charcoal)}
.chm .cmsg.pk .chb a,.chm .cmsg.pk button{pointer-events:none}
.chselbar{flex:none;display:flex;align-items:center;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--sf);border-top:1px solid var(--ln)}
.chselbar .sbn{flex:1;min-width:0;text-align:center;font:700 14px var(--font);color:var(--tx);white-space:nowrap}
.chselbar .sb{flex:none;min-height:44px;padding:0 14px;border-radius:13px;border:1px solid var(--ln);background:var(--sf2);color:var(--tx);font:700 14px var(--font);cursor:pointer}
.chselbar .sb.d{background:var(--bad-solid);border-color:var(--bad);color:#fff}
.chselbar .sb[disabled]{opacity:.4}
/* room options and clear dialogs */
.chsh.chmn{height:auto;max-height:88%;overflow:auto}
.chmi{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:14px 16px;border:1px solid var(--ln);border-radius:16px;background:var(--sf);color:var(--tx);font:700 16px var(--font);text-align:left;cursor:pointer}
.chmi small{font:500 13px/1.35 var(--font);color:var(--mu)}
.chmi.dn{color:var(--bad)}
.chwarn{margin:0;font:500 15px/1.45 var(--font);color:var(--tx)}
.chlbl{font:700 13px var(--font);color:var(--mu)}
.chcn{width:100%;box-sizing:border-box;min-height:50px;padding:0 14px;border:1px solid var(--ln);border-radius:14px;background:var(--sf);color:var(--tx);font:500 16px var(--font)}
.chsnd.dn{background:var(--bad-solid);color:#fff;width:100%}

/* ===== v94: Home redesign (white / logo near-black), from home_phone_white_and_logo_black ===== */
html[data-t=dark] body:has(.ew){background:var(--desk)}
html[data-t=dark] .etb,html[data-t=dark] .lgs{background:var(--sf)}
html[data-t=dark] .top{background:var(--bg)}

/* greeting */
html[data-t] .hm .hgr{display:block;margin:0 0 14px;padding:0 0 18px;border-bottom:2px solid var(--tx)}
html[data-t] .hm .hgd{display:block;margin:0 0 4px;font:600 11px/1.2 'Barlow Condensed',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--mu)}
html[data-t] .hm .hgh{display:block;font:700 38px/1 'Barlow Condensed',sans-serif;letter-spacing:.01em;text-transform:uppercase;color:var(--tx)}
html[data-t] .hm .hgs{display:none}

/* Continue editing */
html[data-t] .hm>.cont{margin:0 0 24px;padding:12px 14px;gap:12px;background:transparent;color:var(--tx);border:1.5px solid var(--tx);border-radius:8px;box-shadow:none}
html[data-t] .hm>.cont::before{display:none}
html[data-t] .hm>.cont .cpg{width:40px;height:52px;border-radius:3px;border:1px solid var(--ln);box-shadow:none;transform:none}
html[data-t] .hm>.cont .cpg::after{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--ac)}
html[data-t] .hm>.cont .ci small{display:block;margin:0 0 2px;font:600 11px/1.2 'Barlow Condensed',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--mu);white-space:nowrap}
html[data-t] .hm>.cont .ci h2{margin:0;font:700 19px/1.1 'Barlow Condensed',sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--tx);-webkit-line-clamp:2}
html[data-t] .hm>.cont .ci p{margin:2px 0 0;font:400 12px/1.35 Inter,system-ui,sans-serif;color:var(--mu)}
html[data-t] .hm>.cont .btn.p.cop{flex:none;flex-direction:row;gap:0;width:auto;min-height:0;height:auto;margin-left:auto;padding:10px 16px;border-radius:6px;background:var(--ac);color:var(--charcoal);box-shadow:none;font:700 16px/1 'Barlow Condensed',sans-serif;letter-spacing:.06em;text-transform:uppercase}
html[data-t] .hm>.cont .cop svg{display:none}
html[data-t] .hm .bkbn{border-radius:8px;border-width:1.5px}
html[data-t] .hm .bkbn i{border-radius:6px}

/* section labels */
html[data-t] .hm .hsec{margin:0 0 20px}
html[data-t] .hm .hsec>.shd{align-items:baseline;}
html[data-t] .hm .shd .sec{text-transform:uppercase;color:var(--mu)}
html[data-t] .hm .shs{display:none}
html[data-t] .hm .shr{color:var(--mu)}

/* New report / New form: yellow folders */
.hnew{gap:14px;padding-top:16px;margin:0 0 20px}
.hf{position:relative;display:block;height:104px;min-width:0;margin:0;padding:0;border:0;background:none;color:var(--charcoal);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s}
.hf:active{transform:scale(.98)}
.hf:focus-visible{outline:3px solid var(--tx);outline-offset:4px;border-radius:15px}
.hf .fb{position:absolute;inset:0;border-radius:5px 15px 15px 15px;background:color-mix(in srgb,var(--ac) 74%,#6b4300)}
.hf .fb::before{content:'';position:absolute;left:0;top:-11px;width:42%;height:19px;background:inherit;border-radius:10px 10px 0 0;clip-path:polygon(0 0,82% 0,100% 100%,0 100%)}
.hf .ff{position:absolute;left:0;right:0;bottom:0;top:13%;padding:12px 14px;border-radius:13px 15px 15px 15px;background:linear-gradient(180deg,color-mix(in srgb,var(--ac) 88%,#fff),var(--ac));display:flex;flex-direction:column;justify-content:flex-end}
.hf .ff b{display:block;font:700 21px/1.1 'Barlow Condensed',sans-serif;letter-spacing:.03em;text-transform:uppercase}
.hf .ff small{display:block;margin-top:2px;font:500 12px/1.25 Inter,system-ui,sans-serif;color:#3d2e00}
.hf .ff i{position:absolute;top:11px;right:12px;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#1C1B1B;color:var(--ac)}
.hf .ff i svg{width:16px;height:16px;display:block}

/* action rows */
html[data-t] .hm .imgo,html[data-t] .hm .ntb{display:flex;align-items:center;gap:14px;width:100%;min-height:0;box-sizing:border-box;margin:0 0 10px;padding:12px 14px;border:1.5px solid var(--tx);border-radius:8px;background:transparent;box-shadow:none;color:var(--tx);text-align:left}
html[data-t] .hm .imgi,html[data-t] .hm .ntb .nti{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:6px;background:var(--ac);color:var(--charcoal)}
html[data-t] .hm .imgi svg,html[data-t] .hm .ntb .nti svg{width:22px;height:22px}
html[data-t] .hm .imgt b,html[data-t] .hm .ntb .ntt b{display:block;font:700 19px/1.15 'Barlow Condensed',sans-serif;letter-spacing:.04em;text-transform:uppercase}
html[data-t] .hm .imgt small,html[data-t] .hm .ntb .ntt small{display:block;margin-top:2px;font:400 12px/1.3 Inter,system-ui,sans-serif;color:var(--mu)}
html[data-t] .hm .imgo>svg,html[data-t] .hm .ntb>svg{flex:none;color:var(--mu)}
@media(hover:hover){html[data-t] .hm .imgo:hover,html[data-t] .hm .ntb:hover{border-color:var(--ac)}}

/* Files / Back up / Edit PDF quick buttons, in the same outlined style */
html[data-t] .hm .qa{margin:10px 0 22px!important;gap:8px!important}
html[data-t] .hm .qb,html[data-t] .hm .qb:first-child{grid-column:auto;min-height:72px;border:1.5px solid var(--tx);border-radius:8px;background:transparent;color:var(--tx);box-shadow:none}
html[data-t] .hm .qb:first-child span{font-size:inherit;line-height:inherit}
html[data-t] .hm .qic{border-radius:6px;background:var(--ac);color:var(--charcoal)}
html[data-t] .hm .qb svg,html[data-t] .hm .qb:first-child svg{color:var(--charcoal)}
html[data-t] .hm .qt b{font:700 15px/1.1 'Barlow Condensed',sans-serif;letter-spacing:.06em;text-transform:uppercase}

/* Recent: search, filters */
html[data-t] .hm .srow{gap:8px;margin:0 0 10px}
html[data-t] .hm .search{height:44px;border-radius:8px;padding:0 15px;border:1px solid var(--ln);background:var(--sf)}
html[data-t] .hm .selb{height:44px;padding:0 17px;border-radius:8px;border:1px solid var(--ln);background:var(--sf);font:700 13px Inter,system-ui,sans-serif}
html[data-t] .hm .chips{gap:6px;margin:0 0 12px}
html[data-t] .hm .chip{height:32px;padding:0 12px;border-radius:6px;font:600 12.5px/1 Inter,system-ui,sans-serif}
html[data-t] .hm .chip small{margin-left:6px;font-size:11px}

/* Recent: three small tiles per row (four on wide screens) */
.rgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.rgrid:not([data-all])>.rtile:nth-child(n+3){display:flex}
.rgrid:not([data-all])>.rtile:nth-child(n+7){display:none}
@media(min-width:760px){
 .rgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
 .rgrid:not([data-all])>.rtile:nth-child(n+7){display:flex}
 .rgrid:not([data-all])>.rtile:nth-child(n+9){display:none}
}
html[data-t] .rtile{gap:4px;padding:5px 5px 4px!important;border:1.5px solid var(--tx);border-radius:6px;background:transparent;box-shadow:none}
html[data-t] .rtile:active{background:var(--sf2)}
html[data-t] .rtile .rth{aspect-ratio:1/.55;border-radius:4px;border:1px solid var(--ln);box-shadow:none}
html[data-t] .rtile[data-k=rep] .rth::after{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--ac)}
html[data-t] .rtile .rtx{padding:0 2px}
html[data-t] .rtile .rtx b{font:700 12px/1.1 'Barlow Condensed',sans-serif;letter-spacing:.03em;text-transform:uppercase;min-height:26px;-webkit-line-clamp:2}
html[data-t] .rtile .rtx .dmeta{gap:3px;margin-top:3px}
html[data-t] .rtile .kd,html[data-t] .rtile[data-k=rep] .kd:first-child{font:600 10.5px/1.2 Inter,system-ui,sans-serif;letter-spacing:0;text-transform:none;padding:2px 5px;border:1px solid var(--ln);border-radius:3px;background:var(--sf2);color:var(--mu)}
html[data-t] .rtile .kd.warn,html[data-t] .rtile .kd.old{border-color:color-mix(in srgb,var(--ac) 60%,transparent);background:color-mix(in srgb,var(--ac) 22%,transparent);color:var(--tx)}
html[data-t] .rtile .kd.ok{border-color:color-mix(in srgb,var(--ok-solid) 55%,transparent);background:color-mix(in srgb,var(--ok-solid) 22%,transparent);color:var(--tx)}
html[data-t] .rtile .rwhen{margin-top:3px;font:400 11px/1.3 Inter,system-ui,sans-serif}
html[data-t] .rtile .ract{margin:0;padding:0;gap:0;border-top:0;justify-content:flex-end}
html[data-t] .rtile .ract .ib{width:30px;height:30px;min-width:30px;min-height:30px}
html[data-t] .rtile .ract .ib.dpin{position:absolute;top:9px;right:9px;width:22px;height:22px;min-width:22px;min-height:22px;border-radius:4px;background:rgba(255,255,255,.92);border:1px solid #E3E6EB;color:#5C616B}
html[data-t] .rtile .ract .ib.dpin::after{content:'';position:absolute;inset:-8px}
html[data-t] .rtile .ract .ib.dpin svg{width:12px;height:12px}
html[data-t] .rtile .ract .ib.dpin.on{color:var(--ac)}
html[data-t] .rtile .selbox{top:12px;left:12px}
html[data-t] .hm .dmore{height:46px;margin:12px 0 0;border:1.5px solid var(--tx);border-radius:8px;background:transparent;color:var(--tx);font:700 17px/1 'Barlow Condensed',sans-serif;letter-spacing:.06em;text-transform:uppercase}
html[data-t] .hm .dmore:active{background:var(--sf2)}

/* v94: plain white and plain logo near-black (no tinted paper, no blueprint grid) */
html[data-t] body{background-image:none}
html[data-t] .hm .shd .sec::before{display:none}
html[data-t] .hm .shd .sec{padding-left:0}
html[data-t] .hm .shr{padding:0;border:0;border-radius:0;background:none;font-size:12px}

/* v97: material taken from the spreadsheet counts as spreadsheet data (yellow) */
.imv.hl [data-ed="f:mat"],
#stage.imhl [data-ed="f:mat"]{background:rgba(242,169,0,.38)!important}

/* ---- v98 approvals ---- */
.aprsh .aph{margin:0;font:700 19px var(--font);color:var(--tx)}
.aprsh .lead{margin:0;color:var(--mu);font-size:14px;line-height:1.5}
.aprsh select{font:400 15px var(--font);color:var(--tx);background:var(--bg);border:1px solid var(--ln);border-radius:12px;padding:12px;width:100%}
.apr-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto}
.apr-row{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;width:100%;background:var(--bg);color:var(--tx);border:1px solid var(--ln);border-radius:14px;padding:12px 14px;font:inherit;cursor:pointer}
.apr-t{display:flex;flex-direction:column;gap:3px;min-width:0}.apr-t b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apr-t small{color:var(--mu);font-size:12px}
.aps{font-style:normal;font-weight:700;font-size:12px;padding:4px 10px;border-radius:99px;white-space:nowrap;background:#FFF3D1;color:#8A5A00}
.aps.approved{background:var(--ok-soft);color:var(--ok)}.aps.returned{background:#FDE8E6;color:#A12B20}
[data-t=dark] .aps{background:#3A2E0E;color:#F2C25B}[data-t=dark] .aps.approved{background:var(--ok-soft);color:var(--ok)}[data-t=dark] .aps.returned{background:#3A1713;color:#FF9C92}
.apr-meta{display:flex;align-items:center;gap:10px;color:var(--mu);font-size:13px}
.apr-ok,.apr-warn,.apr-bad,.apr-ret{margin:0;padding:12px 14px;border-radius:14px;font-size:14px;line-height:1.5}
.apr-ok{background:var(--ok-soft);color:var(--ok)}.apr-warn,.apr-ret{background:#FFF3D1;color:#7A4E00}.apr-bad{background:#FDE8E6;color:#A12B20}
[data-t=dark] .apr-ok{background:var(--ok-soft);color:#9FE8BD}[data-t=dark] .apr-warn,[data-t=dark] .apr-ret{background:#3A2E0E;color:#F2C25B}[data-t=dark] .apr-bad{background:#3A1713;color:#FFB0A8}
.apr-h{margin:0;padding:0 0 0 18px;color:var(--mu);font-size:13px;line-height:1.6}.apr-h b{color:var(--tx)}
.apr-pick{display:flex;align-items:center;justify-content:center;cursor:pointer}
#apprgo{position:relative}#apprgo .chbg{position:static;margin-left:auto;margin-right:6px}

/* select several rows, copy and paste */
.stage.rsm td[data-key]{cursor:cell;-webkit-user-select:none;user-select:none}
.stage.rsm th[data-hk]{cursor:pointer;-webkit-user-select:none;user-select:none}
.stage.rsm td.rsel{background:rgba(242,169,0,.30)!important;}
.stage.rsm th.rsel{background:rgba(242,169,0,.50)!important;}
.rsb .rsmd{display:flex;gap:6px;margin:8px 0}
.rsb .rsmd button{flex:1;font:600 13px var(--font);padding:9px 6px;border-radius:10px;border:1px solid var(--ln);background:var(--bg);color:var(--tx);cursor:pointer}
.rsb .rsmd button.on{background:var(--ac);border-color:#d9a400;color:#1C1B1B}
.sheet .addrow[data-rsel]{border-style:solid}
.rsb .fhn{display:block;margin-top:8px;color:var(--mu);font-size:11px}
.rsb .nx[disabled]{opacity:.4}
@media print{.rsel,.sheet td.rsel,.sheet th.rsel{background:none!important;box-shadow:none!important}.rsb{display:none!important}}
.stage.rsm tr[data-rr]::after{display:none!important}
.stage.rsm{-webkit-touch-callout:none}.rsb .nx.dl{color:var(--bad)}

/* =====================================================================
   v107: Select cells redesign, signature previews that stay inside their box
   ===================================================================== */
/* --- selection on the page: tinted block with a crisp outer edge, active cell left clear --- */
.stage.rsm td.rsel{background:color-mix(in srgb,var(--ac) 26%,transparent)!important;
 box-shadow:var(--rs-t,0 0 #0000),var(--rs-b,0 0 #0000),var(--rs-l,0 0 #0000),var(--rs-r,0 0 #0000)!important;transition:background .12s}
.stage.rsm td.rsel.e-t{--rs-t:inset 0 2.5px 0 0 #D69100}.stage.rsm td.rsel.e-b{--rs-b:inset 0 -2.5px 0 0 #D69100}
.stage.rsm td.rsel.e-l{--rs-l:inset 2.5px 0 0 0 #D69100}.stage.rsm td.rsel.e-r{--rs-r:inset -2.5px 0 0 0 #D69100}
.stage.rsm td.rsel.rsan{background:color-mix(in srgb,var(--ac) 8%,transparent)!important}
.stage.rsm th.rsel{background:color-mix(in srgb,var(--ac) 55%,transparent)!important;box-shadow:inset 0 -2.5px 0 #D69100!important}
@media(hover:hover){.stage.rsm td[data-key]:not(.rsel):hover{background:rgba(242,169,0,.14)!important}.stage.rsm th[data-hk]:not(.rsel):hover{background:rgba(242,169,0,.25)!important}}
.stage.rsm [data-ed]:hover{outline:0!important}
/* --- one bar, two modes: editing and selecting --- */
.etb[data-m]>*{min-width:0}
.etb.swap>*{animation:etbsw .26s cubic-bezier(.2,.8,.2,1) both}.etb.swap>*:nth-child(2){animation-delay:.04s}.etb.swap>*:nth-child(3){animation-delay:.08s}.etb.swap>*:nth-child(4){animation-delay:.12s}
@keyframes etbsw{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.etb .eh .selb{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px 0 10px!important;margin-right:2px;border-radius:11px;border:1px solid color-mix(in srgb,var(--ac,var(--ac)) 70%,transparent);background:color-mix(in srgb,var(--ac,var(--ac)) 16%,transparent);color:var(--tx)!important;font:700 13px var(--font);cursor:pointer;transition:background .15s,transform .08s}
.etb .eh .selb svg{width:17px;height:17px;color:#D69100}
.etb .eh .selb:active{transform:scale(.96)}
@media(hover:hover){.etb .eh .selb:hover{background:color-mix(in srgb,var(--ac,var(--ac)) 28%,transparent)}}
.etb.sm{display:flex!important;flex-direction:column;gap:8px;padding:10px!important;overflow:visible}
.etb.sm::before{content:'';position:absolute;left:22px;right:22px;top:-1px;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--ac),#FFCF4D,var(--ac))}
.etb.sm .rsh{display:flex;align-items:center;gap:8px}
.etb.sm .rsc{display:flex;align-items:center;gap:11px;flex:1 1 auto;min-width:0}
.etb.sm .rsn{flex:none;min-width:40px;height:40px;padding:0 9px;box-sizing:border-box;border-radius:13px;display:grid;place-items:center;background:var(--sf2);border:1px solid var(--ln);color:var(--mu);font:800 17px/1 var(--font);font-variant-numeric:tabular-nums;transition:background .15s,color .15s}
.etb.sm .rsn.on{background:linear-gradient(180deg,#FFC21F,var(--ac));border-color:transparent;color:var(--ac-ink);box-shadow:0 4px 12px -4px rgba(242,169,0,.7)}
.etb.sm .rsn.pop{animation:rspop .22s cubic-bezier(.3,1.6,.5,1)}
@keyframes rspop{from{transform:scale(1.22)}to{transform:none}}
.etb.sm .rst{display:flex;flex-direction:column;min-width:0;gap:2px}
.etb.sm .rst b{font:700 14.5px/1.15 var(--font);color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.etb.sm .rst small{font:500 12px/1.2 var(--font);color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.etb.sm .rsq{display:flex;flex:none}
.etb.sm .rsq button{border:0;background:none;color:var(--tx);font:600 13px var(--font);min-height:40px;padding:0 10px;border-radius:10px;cursor:pointer}
.etb.sm .rsq button:hover{background:var(--sf2)}.etb.sm .rsq button[disabled]{opacity:.38;pointer-events:none}
.etb.sm .rsd{flex:none;min-height:40px;padding:0 20px;border:0;border-radius:13px;background:var(--ac,var(--ac));color:var(--ac-ink);font:700 14px var(--font);cursor:pointer;box-shadow:0 4px 12px -5px rgba(242,169,0,.8);transition:transform .08s}
.etb.sm .rsd:active{transform:scale(.96)}
.etb.sm .rsmd{display:flex;gap:2px;margin:0;padding:3px;border-radius:14px;background:var(--sf2);border:1px solid var(--ln)}
.etb.sm .rsmd button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 8px;border:0;border-radius:11px;background:transparent;color:var(--mu);font:600 13px var(--font);cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}
.etb.sm .rsmd button.on{background:var(--sf);color:var(--tx);box-shadow:0 1px 4px rgba(0,0,0,.3),0 0 0 1px var(--ln)}
.etb.sm .rsmd button.on svg{color:#D69100}
.etb.sm .rsa{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.etb.sm .rsab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:54px;padding:6px 4px;border:1px solid var(--ln);border-radius:14px;background:var(--sf2);color:var(--tx);font:600 12px/1.1 var(--font);cursor:pointer;transition:background .12s,transform .08s,border-color .12s}
.etb.sm .rsab span{white-space:nowrap}
.etb.sm .rsab:active:not([disabled]){transform:scale(.96)}
.etb.sm .rsab[disabled]{opacity:.38;pointer-events:none}
.etb.sm .rsab em{position:absolute;top:4px;right:6px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:9px;background:var(--tx);color:var(--sf);font:700 10.5px/18px var(--font);font-style:normal;text-align:center}
.etb.sm .rsab em[hidden]{display:none}
.etb.sm .rsab.dl{color:var(--bad)}.etb.sm .rsab.dl em{background:var(--bad-solid);color:#fff}
.etb.sm .fhn{display:block;margin:0;padding:0 2px;color:var(--mu);font:500 11.5px/1.4 var(--font)}
.etb.sm button:focus-visible,.etb .eh .selb:focus-visible{outline:2px solid var(--edit);outline-offset:2px}
@media(hover:hover){.etb.sm .rsab:hover:not([disabled]){background:var(--sf);border-color:var(--mu)}.etb.sm .rsd:hover{filter:brightness(1.06)}.etb.sm .rsmd button:not(.on):hover{color:var(--tx)}}
@media(max-width:560px){.etb.sm{gap:7px;padding:9px!important}.etb.sm .rsmd button svg{display:none}.etb.sm .rsmd button{min-height:40px;font-size:13.5px}.etb.sm .rsab{min-height:52px}}
@media(max-width:560px) and (max-height:700px){.etb.sm .fhn[data-clip]{display:none}}
@media(min-width:900px){
 .etb.sm{flex-direction:row!important;flex-wrap:wrap;align-items:center;column-gap:10px;row-gap:8px}
 .etb.sm>.rsh{flex:0 0 100%}.etb.sm>.rsmd{flex:none;min-width:280px}.etb.sm>.rsa{flex:1 1 360px}.etb.sm>.fhn{flex:0 0 100%;border-top:1px solid var(--ln);padding-top:7px}
 .etb.sm .rsab{min-height:46px}
}
@media(prefers-reduced-motion:reduce){.etb.swap>*,.etb.sm .rsn.pop{animation:none!important}}
/* --- signature previews: the picture always fits inside its box --- */
.sgpv,.sgp0{position:relative;display:block;overflow:hidden;padding:0;box-sizing:border-box;background:#fff;border-radius:12px;border:1px solid var(--ln)}
.sgpv{height:92px}
.sgp0{height:112px}
.sgpv img,.sgp0 img{position:absolute;left:10px;top:10px;width:calc(100% - 20px);height:calc(100% - 20px);max-width:none;max-height:none;object-fit:contain;object-position:center;display:block}
.sgc>button:first-child{position:relative;display:block;padding:0;overflow:hidden;border-radius:inherit}
.sgc>button:first-child img{position:absolute;left:6px;top:6px;width:calc(100% - 12px);height:calc(100% - 12px);max-width:none;max-height:none;object-fit:contain}
.lgc.sgc{width:112px;height:70px}
.sgcard.up{min-height:136px;border-width:1.5px;transition:border-color .15s,background .15s}
.sgcard.up:hover{border-color:var(--ac);background:var(--sf2)}
.sgcard.up span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--sf2);border:1px solid var(--ln);font-size:24px;color:var(--tx)}

/* v109: Save & Approve is the one way out of the preview */
.pvbar.pv3 .pva#pvfiles:not(.done){background:var(--sf2);border-color:var(--ln);color:var(--tx)}
.pva#pvfiles:not(.done){background:var(--sf2);border-color:var(--ln);color:var(--tx)}
.pvbar.pv3 .pva#pvsa,.pva#pvsa{flex:1.5;background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}
.pvbar.pv3 .pva#pvsa.ok,.pva#pvsa.ok{background:var(--ok-solid);border-color:var(--ok);color:#fff}
.pva#pvsa[disabled]{opacity:.6}
.aprsh .pvs{max-height:58vh;overflow:auto;margin:8px 0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.chld{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}.chld>small{flex-basis:100%;color:var(--tx2,#8a8a8a);font-weight:600}
.chlc{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.chlc input{margin:0}.chlh{font-size:13px;color:var(--tx2,#8a8a8a)}

/* v110: selection bar can hold Send as well as Delete */
.selbar{flex-wrap:wrap}.selbar .sbn{order:-1;flex:1 0 100%}.selbar .sb{flex:1}
.selbar .sb{padding:0 8px;white-space:nowrap}

/* ===== v111 ===== */
/* Home: air between the unsigned-documents banner and New document, and a readable section label */
html[data-t] .hm>.bkbn.att,html[data-t] .hm .bkbn.att{margin:0 0 28px}
html[data-t] .hm .hsec>.shd{margin:0 2px 14px;padding-top:2px}
html[data-t] .hm .shd .sec{font:700 16px/1.2 'Barlow Condensed',sans-serif;letter-spacing:.14em}
html[data-t] .hm .shr{font:500 13px/1.2 Inter,system-ui,sans-serif}
html[data-t] .hm .hnew{padding-top:18px}
/* Import: edit button and the four-button bar */
.imedit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:12px 0 4px;min-height:48px;font-weight:700}
.imedh{margin:4px 2px 14px}
.pvbar.pv3.imact{max-width:620px}
.pvbar.pv3.imact .pva span{font-size:12px;line-height:1.15;text-align:center}
.pvbar.pv3.imact .pva#imall{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}
.pvbar.pv3.imact .pva#imsa{flex:1.2}
/* Approvals: create-a-job link */
.aprlink{display:block;margin:-4px 0 12px;padding:6px 2px;border:0;background:none;color:var(--ac);font:700 13px/1.2 var(--font);text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.aprnj,#aprnew.btn{width:100%;margin:10px 0 8px;min-height:48px;background:var(--ac);border-color:var(--ac);color:var(--ac-ink);font-weight:700}
/* Chat > Archived: select, restore, delete */
.archd{display:flex;align-items:center;gap:8px;margin:14px 2px 8px}
.archd>span{flex:1;font:700 12px/1 var(--font);letter-spacing:.12em;color:var(--mu)}
.archd em{font-style:normal;opacity:.7;margin-left:4px}
.chr.arc{gap:10px}
.chab.dn,.acbar .chab.dn{color:var(--bad);border-color:color-mix(in srgb,var(--bad-solid) 45%,var(--ln))}
.chab[disabled]{opacity:.4;pointer-events:none}
.chr.arc .chab{flex:none}
.chr.arc.pk{cursor:pointer}
.chr.arc.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--sf))}
.archk{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:2px solid var(--mu);color:var(--ac-ink)}
.chr.arc.on .archk{background:var(--ac);border-color:var(--ac)}
.acbar{position:fixed;left:12px;right:12px;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;align-items:center;gap:8px;max-width:560px;margin:0 auto;padding:10px 12px;border:1px solid var(--ln);border-radius:16px;background:var(--sf);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.acbar>span{flex:1;min-width:0;text-align:center;font:600 13px/1.2 var(--font);color:var(--mu)}
#chlist:has(.acbar){padding-bottom:84px}
.stabs.pvcp{margin:0 0 12px}
.stabs.pvcp button{font-size:13px;padding:9px 6px}
/* v111: recent imports */
.imrec{margin:26px 0 8px}
.imrh{display:flex;align-items:center;justify-content:space-between;margin:0 2px 10px}
.imrh h3{margin:0;font:700 16px/1.2 var(--font)}
.imrc{border:0;background:none;color:var(--bad);font:700 13px var(--font);padding:6px 4px;cursor:pointer}
.imrb{display:flex;align-items:stretch;gap:8px;margin:0 0 8px}
.imro{flex:1;min-width:0;text-align:left;padding:12px 14px;border:1px solid var(--ln);border-radius:14px;background:var(--sf);color:var(--tx);cursor:pointer}
.imrb.on .imro{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 10%,var(--sf))}
.imro b{display:block;font:700 14px/1.25 var(--font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imro small{display:block;margin-top:3px;color:var(--mu);font-size:12px}
.imrt{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.imrs{font-style:normal;font:700 11px/1 var(--font);padding:5px 8px;border-radius:999px;background:var(--sf2);color:var(--mu)}
.imrs.saved,.imrs.approved{background:#1E9E5A22;color:var(--ok)}
.imrs.waiting,.imrs.edited{background:color-mix(in srgb,var(--ac) 25%,transparent);color:var(--tx)}
.imrx{flex:none;width:44px;border:1px solid var(--ln);border-radius:14px;background:var(--sf);color:var(--mu);display:grid;place-items:center;cursor:pointer}
/* v111: compulsory profile screen and photo viewer */
.pfg{display:flex;justify-content:center;padding:28px 18px 40px}
.pfc{width:100%;max-width:460px}
.pfc .h1{margin:8px 0 6px}
.pfc .sfl{display:block;margin:12px 0}
.pfc .btn.wide{width:100%;margin-top:10px;min-height:48px}
.pfe.warn{color:var(--bad);font-weight:600}
.mezb{padding:0;cursor:zoom-in}
.mezb[disabled]{cursor:default}
.mezo{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(0,0,0,.88);padding:24px}
.mezo img{width:min(88vw,520px);height:min(88vw,520px);max-height:70vh;object-fit:cover;border-radius:18px}
.mezo b{color:#fff;font:700 18px var(--font)}
.mezo button{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:14px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center}
/* v111: zoom bar (left to right) */
#hpan{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:40;max-width:560px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--ln);border-radius:16px;background:var(--sf);box-shadow:0 8px 28px rgba(0,0,0,.35)}
#hpan[hidden]{display:none}
#hpan.pv{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
#hpan button{flex:none;width:40px;height:40px;border-radius:12px;border:1px solid var(--ln);background:var(--sf2);color:var(--tx);font:700 24px/1 var(--font)}
.pvzr{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.pvzh{font-size:12px;color:var(--mu);line-height:1.3}
.pvs.zz{align-items:flex-start;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.pvs.zz .pvp{max-width:none}
body:has(#hpan:not([hidden])) .ew{padding-bottom:210px}

/* v112: form controls that must never inherit the big text-field look (box, 100% width, 44-48px height).
   Checkboxes, radios and sliders get their own compact, consistent style everywhere in the app. Switches (.tgl) keep their own pill style. */
input[type=checkbox]:not([switch]),input[type=radio]{-webkit-appearance:none;appearance:none;flex:none;display:inline-grid;place-content:center;box-sizing:border-box;width:24px;min-width:24px;max-width:24px;height:24px;min-height:24px;margin:0;padding:0;border:2px solid color-mix(in srgb,var(--mu) 70%,transparent);border-radius:7px;background:var(--sf2);box-shadow:none;cursor:pointer;vertical-align:middle;transition:background .15s,border-color .15s}
input[type=radio]{border-radius:50%}
input[type=checkbox]:not([switch])::after{content:'';width:12px;height:7px;border-left:3px solid var(--charcoal);border-bottom:3px solid var(--charcoal);transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform .12s}
input[type=radio]::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--charcoal);transform:scale(0);transition:transform .12s}
input[type=checkbox]:not([switch]):checked,input[type=radio]:checked{background:var(--ac);border-color:var(--ac)}
input[type=checkbox]:not([switch]):checked::after{transform:translateY(-1px) rotate(-45deg) scale(1)}
input[type=radio]:checked::after{transform:scale(1)}
input[type=checkbox]:not([switch]):focus-visible,input[type=radio]:focus-visible{outline:0;box-shadow:0 0 0 4px color-mix(in srgb,var(--ac) 30%,transparent)}
input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.45;cursor:default}
.chip.chlc{display:inline-flex;align-items:center;gap:9px;height:auto;min-height:40px;padding:6px 15px 6px 10px;line-height:1.2}
.sfl:has(>input[type=checkbox]),label.sfl[style*="row"]{width:100%}
.sfl input[type=checkbox]:not([switch]){width:24px;min-width:24px;max-width:24px;flex:none}
.imsw input{width:24px;height:24px}
input[type=range]{-webkit-appearance:none;appearance:none;box-sizing:border-box;width:100%;height:40px;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;accent-color:var(--ac);touch-action:none;cursor:pointer}
input[type=range]:focus,input[type=range]:focus-visible{outline:0;box-shadow:none;border:0}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:color-mix(in srgb,var(--mu) 40%,transparent)}
input[type=range]::-moz-range-track{height:6px;border-radius:99px;background:color-mix(in srgb,var(--mu) 40%,transparent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:28px;height:28px;margin-top:-11px;border-radius:50%;background:var(--ac);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.4)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--ac);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.4)}
input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px color-mix(in srgb,var(--ac) 35%,transparent)}
#hpan input[type=range]{flex:1 1 auto;min-width:0}
/* v112: documents changed on another device */
.dwcf{position:fixed;left:12px;right:12px;top:calc(64px + env(safe-area-inset-top,0px));z-index:60;max-width:560px;margin:0 auto;padding:14px 16px;border-radius:16px;border:1px solid var(--ac);background:var(--sf);color:var(--tx);box-shadow:0 12px 36px rgba(0,0,0,.4)}
.dwcf b{display:block;font:700 15px var(--font);margin-bottom:4px}
.dwcf p{margin:0 0 12px;font-size:13.5px;line-height:1.45;color:var(--mu)}
.dwcf div{display:flex;gap:8px;flex-wrap:wrap}
.dwcf button{flex:1 1 140px;min-height:44px;border-radius:12px;border:1px solid var(--ln);background:var(--sf2);color:var(--tx);font:700 14px var(--font)}
.dwcf button.p{background:var(--ac);border-color:var(--ac);color:var(--charcoal)}

/* v126: forwarded and sent states */
.aps.admin{background:#E7EEFB;color:var(--info)}.aps.sent{background:var(--ok-soft);color:var(--ok)}
[data-t=dark] .aps.admin{background:#13213D;color:var(--info)}[data-t=dark] .aps.sent{background:var(--ok-soft);color:var(--ok)}

/* v127: job step bar, next-step card, overdue pill */
.jstep{flex:none;background:#1C1B1B;color:#fff;}
.jbar{display:flex;gap:4px}.jbar i{flex:1;height:5px;border-radius:3px;background:#ffffff26}
.jbar i.d{background:var(--ok-solid)}.jbar i.n{background:var(--ac)}
.jlbl{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font:600 11px var(--font);color:#ffffffb3}
.jlbl b{color:var(--ac)}
.jstep.late .jbar i.n{background:var(--bad-solid)}.jstep.late .jlbl b{color:var(--bad)}
.jnext{flex:none;margin:6px 10px;padding:12px;border-radius:18px;background:var(--ac);color:var(--ac-ink);display:flex;flex-direction:column;gap:2px}
.jnext small{font:700 9px var(--font);letter-spacing:1px;opacity:.7}
.jnext b{font:700 15px var(--font)}
.jnext span{font-size:12px;opacity:.85}
.jnext .jgo{margin-top:8px;min-height:46px;border-radius:13px;border:0;background:var(--charcoal);color:#fff;font:700 13px var(--font);cursor:pointer}
.jnext .jgo:active{transform:scale(.98)}
.jnext.q{background:var(--sf);color:var(--tx);border:1px solid var(--ln)}
.jnext.q small,.jnext.q span{color:var(--mu);opacity:1}
.jnext.late{background:var(--bad-solid);color:#fff}
.jnext.late .jgo{background:#fff;color:var(--charcoal)}
.jnext.q.late{background:var(--sf);color:var(--tx);border-color:var(--bad)}
.jnext.q.late small{color:var(--bad)}
.chm:has(#chin:focus) .jnext{display:none}
.jlate{font:700 10px var(--font);font-style:normal;padding:3px 7px;border-radius:99px;background:#E5484D26;color:var(--bad)}

/* v128: failed send, empty Jobs, Automatic */
.aprfail{margin:10px 0;padding:12px;border-radius:16px;border:1px solid #E5484D66;background:#E5484D14}
.aprfail b{display:block;color:var(--bad);font:700 15px var(--font)}
.aprfail p{margin:4px 0 10px;font-size:13px;color:var(--tx)}
.aprfr{display:flex;gap:8px}.aprfr .btn{flex:1;min-height:44px}
.jempty{text-align:center;padding:36px 22px 20px}
.jei{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:18px;background:var(--ac);color:var(--ac-ink)}
.jei svg{width:26px;height:26px}
.jempty h3{font:700 22px var(--font);margin:0 0 6px}
.jempty p{color:var(--mu);font-size:14px;margin:0 auto 16px;max-width:30ch}
.jempty .btn{min-height:48px;padding:0 22px}
.aulab{font:700 11px var(--font);letter-spacing:1px;color:var(--mu);margin:16px 14px 6px}
.stm{margin:8px 14px;padding:12px;border-radius:16px;background:var(--sf2)}
.stt{display:flex;justify-content:space-between;font-size:13px}.stt span{color:var(--mu)}
.stb{height:10px;border-radius:5px;background:var(--ln);overflow:hidden;margin:8px 0 2px}
.stb i{display:block;height:100%;background:var(--ac);border-radius:5px}
.stm.warn .stb i{background:#E58A00}.stm.full .stb i{background:var(--bad-solid)}
.stm small{color:var(--bad);font-weight:600}
.auhint{margin:6px 14px;font-size:12px;color:var(--mu)}
.aurow{display:flex;align-items:center;gap:10px;margin:6px 14px;padding:10px 12px;border-radius:14px;background:var(--sf2)}
.aurow>div{flex:1;min-width:0}.aurow b{display:block}.aurow small{color:var(--mu);font-size:12px}
.aur{display:flex;gap:10px;margin:8px 14px}
.aur i{flex:none;width:20px;height:20px;border-radius:7px;background:var(--ok-solid);color:#fff;font:700 12px/20px var(--font);text-align:center;font-style:normal}
.aur b{display:block;font-size:14px}.aur small{color:var(--mu);font-size:12px}

/* v129: site update card, Add to job, Daily report */
.cupd{min-width:200px}
.cuh{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.cuh b{font:700 14px var(--font)}
.cus{font:700 10px var(--font);font-style:normal;letter-spacing:.5px;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--ac);color:var(--ac-ink)}
.cur{display:flex;gap:8px;font-size:13px;margin:2px 0}
.cur small{flex:none;width:58px;font:700 9px var(--font);letter-spacing:.8px;opacity:.65;padding-top:3px}
.cur span{flex:1;min-width:0;overflow-wrap:anywhere}
.utags{display:flex;flex-wrap:wrap;gap:8px;margin:0 14px 4px}
.utags .chip{min-height:44px;padding:0 16px}
#chupd .chcn,#chupd textarea{display:block;width:calc(100% - 28px);margin:0 14px}
#chupd .chsnd,#chdaily .chsnd{display:block;width:calc(100% - 28px);margin:16px 14px 6px}
#chupd .chsnd:disabled,#chdaily .chsnd:disabled{opacity:.45}
.aur i.n{background:var(--sf2);color:var(--mu)}

/* ===== v130: two panes on a computer, compact report cards, slim step bar, To send tray, search in a room, import on a computer ===== */

/* compact report cards: one row per report */
.crep{min-width:min(340px,100%);padding:8px;background:rgba(255,255,255,.5)}
.cgh{display:flex;align-items:center;gap:6px;padding:0 2px 7px;font:700 12.5px var(--font)}
.cgh svg{flex:none;color:var(--ok)}
.crr{display:flex;align-items:center;gap:10px;margin:0 0 5px;padding:7px 8px;border-radius:11px;background:rgba(255,255,255,.72)}
.crr:last-of-type{margin-bottom:0}
.crr .cri{width:28px;height:34px;border-radius:6px}
.crr .cft b{font:600 13.5px/1.25 var(--font);overflow-wrap:anywhere}
.crr .cft small{opacity:.7;font-size:11.5px}
.cro{flex:none;padding:7px 14px;border:0;border-radius:9px;background:#1B1712;color:#FFFDF8;font:600 12.5px var(--font);cursor:pointer}
.crd{flex:none;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:9px;background:none;color:inherit;opacity:.75;cursor:pointer}
.crd:hover{background:rgba(0,0,0,.08);opacity:1}
.crn{margin:7px 2px 0;font-size:12.5px;opacity:.8}
[data-t=dark] .cmsg.ot .crep{background:var(--sf2)}
[data-t=dark] .cmsg.ot .crr{background:var(--sf)}
[data-t=dark] .cmsg.ot .cro{background:var(--ac);color:var(--ac-ink)}
[data-t=dark] .cmsg.ot .crd:hover{background:rgba(255,255,255,.1)}
.rst{flex:none;padding:4px 8px;border-radius:99px;background:rgba(0,0,0,.08);color:inherit;font:700 10.5px/1 var(--font);font-style:normal}
.rst.approved{background:#1E9E5A24;color:#117A41}
.rst.sent{background:#1F4FD820;color:var(--info)}
.rst.waiting{background:#E58A0028;color:#8F5400}
.rst.returned{background:#E5484D22;color:#B42318}
[data-t=dark] .rst.approved{color:var(--ok)}[data-t=dark] .rst.sent{color:var(--info)}[data-t=dark] .rst.waiting{color:#F2B450}[data-t=dark] .rst.returned{color:var(--bad)}
.chfr .rst{margin-left:auto}
.chs mark{background:#F2A90066;color:inherit;border-radius:3px;padding:0 1px}

/* search inside a room */
.chrs{flex:none;display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--sf);border-bottom:1px solid var(--ln)}
.chrs input{flex:1;min-width:0;width:auto;padding:9px 14px;border:1px solid var(--ln);border-radius:12px;background:var(--bg);color:var(--tx);font:500 15px var(--font)}
.chrs small{color:var(--mu);font-size:12px;white-space:nowrap}
.chrs .chab{padding:7px 12px}

/* To send tray */
.jtray{flex:none;background:var(--sf);border-bottom:1px solid var(--ln)}
.jth{display:flex;align-items:center;gap:10px;padding:7px 14px}
.jtt{display:flex;align-items:center;gap:8px;margin-right:auto;padding:4px 0;border:0;background:none;color:var(--tx);cursor:pointer}
.jtt b{font:700 14px var(--font)}
.jtt em{min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:var(--ac);color:var(--ac-ink);font:700 11.5px/20px var(--font);font-style:normal;text-align:center}
.jtc{display:grid;place-items:center;color:var(--mu);transition:transform .15s}
.jtray.open .jtc{transform:rotate(180deg)}
.jth .chab{padding:6px 11px;font-size:12.5px}
.jtgo{padding:8px 14px;border:0;border-radius:10px;background:var(--ac);color:var(--ac-ink);font:700 13px var(--font);cursor:pointer;}
.jtgo:disabled{opacity:.4;cursor:default}
.jtl{display:flex;flex-direction:column;gap:6px;max-height:min(30vh,236px);overflow-y:auto;padding:0 14px 10px}
.jtr{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--ln);border-radius:11px;background:var(--bg);cursor:pointer}
.jtr.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--sf))}
.jtr input{flex:none;width:18px;height:18px;margin:0;padding:0;accent-color:var(--ac)}
.jtr .cft b{font:600 13.5px/1.25 var(--font)}
.jtr .cft small{color:var(--mu);opacity:1;font-size:11.5px}
.jtr .cro{background:#1B1712}
[data-t=dark] .jtr .cro{background:var(--ac);color:var(--ac-ink)}
.chm:has(#chin:focus) .jtray{display:none}

/* Edit and Delete show only when you point at a message on a computer; touch screens keep them as before */
@media(hover:hover) and (pointer:fine){
 .cbd{position:relative}
 .cact{position:absolute;top:50%;z-index:2;margin:0;padding:2px;border:1px solid var(--ln);border-radius:9px;background:var(--sf);box-shadow:0 4px 14px -6px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(-50%);transition:opacity .12s}
 .cmsg.me .cact{right:100%;margin-right:6px}
 .cmsg.ot .cact{left:100%;margin-left:6px}
 .cmsg:hover .cact,.cmsg:focus-within .cact{opacity:1;visibility:visible}
 .cact .chdel{padding:3px 9px;border-radius:6px;color:var(--tx);font-weight:600}
 .cact .chdel:hover{background:var(--sf2)}
}

/* two panes: room list on the left, the open room on the right */
@media(min-width:900px){
 .chsplit{position:fixed;left:88px;right:0;bottom:0;z-index:4;display:grid;grid-template-columns:clamp(280px,26vw,360px) minmax(0,1fr);background:var(--bg)}
 .chside{min-height:0;overflow-y:auto;padding:14px 14px 24px;border-right:1px solid var(--ln);background:var(--sf)}
 .chside .chsr,.chside .chnewp{margin:0 0 12px}
 .chside .chr{padding:10px;gap:10px;border-radius:14px;background:var(--bg)}
 .chside .chr:hover{background:var(--sf2)}
 .chside .chr.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--sf))}
 .chside .chi{width:40px;height:40px;border-radius:12px;font-size:16px}
 .chside .chx b{font-size:15px}.chside .chx small{font-size:13px}
 .chside .chlab{padding:12px 4px 6px}
 .chpane{min-width:0;min-height:0;display:flex;flex-direction:column}
 .chsplit .chm{position:static;flex:1 1 auto;min-height:0;max-width:none;margin:0;width:100%}
 .chph{flex:none;display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--sf);border-bottom:1px solid var(--ln)}
 .chph .chhd{flex:1}
 .chsplit .chtabs{justify-content:flex-start;gap:22px;padding:0 16px}
 .chsplit .chtabs button{flex:none;padding:11px 2px 9px}
 .chsplit .chs{padding:14px max(16px,calc((100% - 860px)/2)) 8px}
 .chsplit .chf{padding:10px max(16px,calc((100% - 860px)/2)) 20px}
 .chsplit .cmsg{max-width:min(80%,760px)}
 .chsplit .chc2{padding-left:max(16px,calc((100% - 860px)/2));padding-right:max(16px,calc((100% - 860px)/2))}
 .chsplit .chq{padding:8px 0 0}
 .chsplit .chc{padding:8px 0 12px}
 .chsplit .jtl,.chsplit .jth{padding-left:16px;padding-right:16px}
 .chempt{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
 .chempt .jei{margin-bottom:14px}
 .chempt h3{margin:0 0 6px;font:700 22px var(--font)}
 .chempt p{max-width:34ch;margin:0;color:var(--mu);font-size:14px}
 /* slim next-step bar: step, progress and the one thing to do, in a single thin row */
 .jstep.jslim{display:flex;align-items:center;gap:16px;padding:6px 16px}
 .jslim .jsl{flex:none;color:#ffffffb3;font:600 12px var(--font);white-space:nowrap}
 .jslim .jsl b{color:var(--ac)}
 .jslim .jbar{flex:1;min-width:80px;max-width:280px}
 .jslim .jbar i{height:4px}
 .jslim .jsk{margin-left:auto;color:#ffffffcc;font:500 12.5px var(--font);white-space:nowrap}
 .jslim .jsk b{color:#fff}
 .jslim .jgo{flex:none;height:28px;padding:0 14px;border:0;border-radius:9px;background:var(--ac);color:var(--ac-ink);font:700 12.5px var(--font);cursor:pointer}
 .jstep.late.jslim .jsk b{color:var(--bad)}
 .jstep.late.jslim .jgo{background:#fff;color:var(--charcoal)}
}
/* composer in one row on wide screens: quick actions, paperclip, message box, Send */
@media(min-width:1280px){
 .chsplit .chc2{display:flex;align-items:flex-end;gap:10px;padding-top:10px;padding-bottom:12px}
 .chsplit .chq{flex:none;padding:0 0 5px;overflow:visible}
 .chsplit .chc{flex:1;min-width:0;padding:0}
}

/* import spreadsheet on a computer: report list on the left, large preview on the right */
@media(min-width:900px){
 .impw.imwide{max-width:1520px;padding-bottom:40px}
 .imcols{display:grid;grid-template-columns:clamp(300px,25vw,380px) minmax(0,1fr);gap:20px;align-items:start}
 .imside{position:sticky;top:var(--imtop,100px);max-height:calc(100vh - var(--imtop,100px) - 16px);overflow-y:auto;padding:0 2px 12px 0}
 .imside .sub{margin-top:0}
 .imside .imfound{margin:0 0 8px}
 .imlist{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}
 .imlist button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:1px solid var(--ln);border-radius:12px;background:var(--sf);color:var(--tx);font:600 13px var(--font);text-align:left;cursor:pointer}
 .imlist button:hover{background:var(--sf2)}
 .imlist button[aria-selected=true]{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 14%,var(--sf));box-shadow:inset 3px 0 0 var(--ac)}
 .imlist .iml{flex:1;min-width:0}
 .imlist .iml b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 13px var(--font)}
 .imlist .iml small{display:block;margin-top:2px;color:var(--mu);font-weight:500;font-size:12px}
 .imlist .imrs{flex:none}
 .imside .imchk{margin-top:0}
 .imside .imrec{margin-top:18px}
 .immain{min-width:0}
 .imtool{position:sticky;top:var(--imtop,100px);z-index:3;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid var(--ln);border-radius:14px;background:var(--sf);box-shadow:var(--sh)}
 .imtool .imtl{flex:1;min-width:200px}
 .imtool .imtl b{display:block;font:700 15px/1.25 var(--font)}
 .imtool .imtl small{color:var(--mu);font-size:12px}
 .imtool .btn{min-height:40px;padding:0 16px;font-weight:600}
 .imtool #impall{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}
 .imtool .btn:disabled{opacity:.5}
 .immain .imv{margin-bottom:24px}
 .impw.imp0{max-width:760px}
}
@media(min-width:900px){
 .chsplit .jtl{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:6px 8px;max-height:132px;padding-bottom:8px}
 .chsplit .jtr{padding:5px 10px}
 .chsplit .jtr .cro{padding:5px 12px}
 .chsplit .jth{padding-top:5px;padding-bottom:5px}
}

/* v132 (stage 2): the file lock. Locked reports show a lock, a view-only Preview, and no download, share or save. */
.aps.locked{background:#FFF3D1;color:#8A5A00}.aps.released{background:var(--ok-soft);color:var(--ok)}
[data-t=dark] .aps.locked{background:#3A2E0E;color:#F2C25B}[data-t=dark] .aps.released{background:var(--ok-soft);color:var(--ok)}
.rst.locked{background:#E58A0028;color:#8F5400}.rst.admin{background:#1F4FD820;color:var(--info)}.rst.released{background:#1E9E5A24;color:#117A41}
[data-t=dark] .rst.locked{color:#F2C25B}[data-t=dark] .rst.admin{color:var(--info)}[data-t=dark] .rst.released{color:var(--ok)}
.crd.lk,.chab.lk{cursor:default;opacity:.6;display:inline-grid;place-items:center}.crd.lk:hover{background:none;opacity:.6}
.chab.lk{width:34px;height:34px;padding:0}
.crr.lkd .cri,.chfr.lkd .cfi{position:relative}
.jtr.lkd{display:flex;align-items:center;gap:10px;opacity:.92}
.jtr.lkd .jtk{flex:none;width:22px;height:22px;display:grid;place-items:center;color:var(--mu)}
.jtr.lkd .chab{flex:none;white-space:nowrap}
/* nothing on screen in the view-only reader can be selected, dragged or long-pressed */
.aprsh .pvp{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;pointer-events:none}

/* v132 (stage 3): the Approvals page. Summary counts, six tabs, a list grouped by job with search, and a report panel (view-only preview, timeline, actions).
   Computer: list on the left, open report on the right. Phone: cards, and one screen per report. */
.apg-sum{grid-template-columns:repeat(4,minmax(0,1fr));}
.apg-sc{flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px 14px;border:1px solid var(--ln);border-radius:16px;background:var(--sf);color:var(--tx);box-shadow:var(--sh);cursor:pointer;font:inherit;min-width:0}
.apg-sc b{font:700 28px/1 var(--font)}
.apg-sc span{color:var(--mu);font:600 12.5px var(--font)}
.apg-sc.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--sf))}
.apg-sc.warn b{color:var(--bad)}[data-t=dark] .apg-sc.warn b{color:var(--bad)}
.apg-q{margin:0 0 10px}.apg-q .search{width:100%;max-width:none;box-sizing:border-box;height:46px}
.apg-chip{display:inline-flex;align-items:center;border:1px solid var(--ac);background:color-mix(in srgb,var(--ac) 14%,transparent);color:var(--tx);border-radius:99px;padding:6px 12px;font:600 12.5px var(--font);margin:0 0 10px;cursor:pointer}
.apg-tabs{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.apg-tabs::-webkit-scrollbar{display:none}
.apg-tabs button{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ln);color:var(--mu);border-radius:99px;min-height:38px;font:600 13px var(--font);cursor:pointer;}
.apg-tabs button i{font-style:normal;font-size:11.5px;min-width:18px;padding:1px 6px;border-radius:99px;background:var(--sf2);color:var(--mu);text-align:center}
.apg-tabs button.on{color:var(--charcoal)}
.apg-tabs button.on i{background:#1B1B1B22;color:var(--charcoal)}

.apg-gh{color:var(--mu);font:700 12px var(--font);text-transform:uppercase;letter-spacing:.04em}
.apg-gh b{font:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apg-gh span{flex:none;background:var(--sf2);color:var(--mu);border-radius:99px;padding:1px 8px;font-size:11.5px;letter-spacing:0}
.apg-gh em{flex:none;font-style:normal;color:var(--bad);font-size:11.5px;letter-spacing:0;text-transform:none}[data-t=dark] .apg-gh em{color:var(--bad)}
.apg-row{position:relative;display:flex;align-items:center;gap:10px;width:100%;margin:0 0 6px;text-align:left;color:var(--tx);border:1px solid var(--ln);font:inherit;cursor:pointer}

.apg-row.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,var(--sf))}
.apg-rt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.apg-rt b{font:600 14px var(--font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apg-rt small{color:var(--mu);font-size:12px}
.apg-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 2px var(--bg)}
.apg-foot{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.apg-none{display:grid;place-items:center;align-content:center;gap:4px;min-height:260px;text-align:center;color:var(--mu)}
.apg-none b{font:700 17px var(--font);color:var(--tx)}.apg-none p{margin:0;font-size:14px}
/* the report panel */
.apg-dh h2{margin:0 0 6px;font:700 22px/1.25 var(--font);color:var(--tx);overflow-wrap:anywhere}
.apg-dh .apr-meta{flex-wrap:wrap;row-gap:4px}
.apg-cols{display:grid;gap:16px;}
.apg-c1,.apg-c2{display:flex;flex-direction:column;gap:16px;min-width:0}
.apg-body{display:flex;flex-direction:column;gap:12px}

.apg-card{background:var(--sf);border:1px solid var(--ln);border-radius:16px;padding:12px 14px;min-width:0}
.apg-ch{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 10px}
.apg-ch b{font:700 14px var(--font);color:var(--tx)}.apg-ch small{color:var(--mu);font-size:12px}
.apg-d .pvs.apg-pv{max-height:none;overflow:visible;margin:0;max-width:none}
.apg-d .pvs.apg-pv .pvp{max-width:100%;height:auto!important;}
.apg-tl{list-style:none;margin:0;padding:0}
.apg-tl li{position:relative;display:flex;gap:12px;padding:0 0 14px}
.apg-tl li:not(:last-child)::before{content:'';position:absolute;left:5px;top:16px;bottom:-2px;width:2px;background:var(--ln)}
.apg-tl li:last-child{padding-bottom:0}
.apg-tl i{flex:none;width:12px;height:12px;margin-top:4px;border-radius:50%;background:var(--sf);border:2px solid var(--mu);box-sizing:border-box}
.apg-tl li.now i{background:var(--ac);border-color:var(--ac)}
.apg-tl b{display:block;font:600 14px/1.35 var(--font);color:var(--tx)}
.apg-tl small{display:block;color:var(--mu);font-size:12.5px}
.apg-tl p{margin:4px 0 0;color:var(--mu);font-size:13px;line-height:1.45}
.apg-d .sfl textarea{min-height:72px}
@media(min-width:900px){
 .apg{position:fixed;left:88px;right:0;bottom:0;z-index:4;display:flex;flex-direction:column;background:var(--bg)}
 .apg>.apg-sum{flex:none;padding:14px 20px 12px;}
 .apg-split{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:clamp(320px,30vw,420px) minmax(0,1fr);border-top:1px solid var(--ln)}
 .apg-side{min-height:0;overflow-y:auto;border-right:1px solid var(--ln);}
 .apg-pane{min-width:0;min-height:0;overflow-y:auto;}
 .apg-sc b{font-size:24px}
 .apg-sc{padding:10px 14px}
 .apg-d .sbt{min-height:48px}
}
@media(min-width:1200px){
 .apg-cols{grid-template-columns:minmax(300px,370px) minmax(0,1fr);}
}
/* phone: the list is made of cards, and a report has a screen of its own */
@media(max-width:899px){
 .apg-sum{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 14px}
 .apg-sc b{font-size:26px}
 .apg-row{padding:14px;margin:0 0 10px;border-radius:18px;background:var(--sf);box-shadow:var(--sh);min-height:64px}
 .apg-rt b{font-size:15px;line-height:1.3}
 .apg-rt small{font-size:12.5px}
 .apg-dot{top:10px;right:10px}
 .apg-tabs{margin:0 -16px;padding:2px 16px 12px}
 .apg-pane{padding:0 0 12px}
 
 .apg-d .sbt{min-height:52px}
 /* six items in the bottom menu: a little smaller so "Approvals" fits */
 html[data-t] .nav button span{font-size:10.5px;letter-spacing:-.1px}
 html[data-t] .nav button{min-width:0;padding-left:0;padding-right:0}
}
@media(max-width:380px){html[data-t] .nav button span{font-size:9.5px;letter-spacing:-.2px}}

/* ---------- v132 stage 4: Approvals extras (waiting time, Matrix view, tick-and-send bar) ---------- */
.apg-w{display:block;margin-top:2px;font:600 12px var(--font)}
.apg-w.warn{color:var(--bad)}[data-t=dark] .apg-w.warn{color:var(--bad)}
.apg-w.done{font-weight:500}
.apg-dh>.apg-w{margin-top:6px;font-size:13px}
.apg-tl .apg-w{margin-top:1px;font-weight:500}
/* a row with a tick box on its left */
.apg-rw{display:flex;align-items:stretch;gap:8px;margin:0 0 6px}
.apg-rw .apg-row{flex:1 1 auto;width:auto;min-width:0;margin:0}
.apg-ck{flex:none;display:grid;place-items:center;width:46px;border:1px solid var(--ln);border-radius:14px;background:var(--bg);cursor:pointer}
.apg-ck input{width:22px;height:22px;margin:0;accent-color:var(--ac);cursor:pointer}
.apg-rw.sel .apg-ck,.apg-rw.sel .apg-row{border-color:var(--ac)}
.apg-rw.sel .apg-ck{background:color-mix(in srgb,var(--ac) 14%,var(--sf))}
/* the bar that appears once something is ticked */
.apg-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--ac);border-radius:16px;background:var(--sf);box-shadow:var(--sh)}
.apg-bar[hidden]{display:none}
.apg-bn{flex:1;min-width:0;color:var(--tx);font:600 13.5px var(--font);white-space:nowrap}
.apg-bn b{font-weight:700}
.apg-bl{flex:none;border:1px solid var(--ln);background:var(--bg);color:var(--tx);border-radius:99px;padding:8px 14px;min-height:40px;font:600 13px var(--font);cursor:pointer}
.apg-bl:disabled{opacity:.45;cursor:default}
.apg-bar .apg-bs{width:auto;margin:0;min-height:40px}
/* List | Matrix switch */
.apg-mode{display:inline-flex;margin:0 0 10px;padding:3px;border:1px solid var(--ln);border-radius:99px;background:var(--bg)}
.apg-mode button{border:0;background:transparent;color:var(--mu);border-radius:99px;padding:7px 18px;min-height:36px;font:600 13px var(--font);cursor:pointer}
.apg-mode button.on{background:var(--ac);color:var(--charcoal)}
/* the matrix */
.apg-mj{margin:0 0 6px}
.apg-ms{margin:0 0 10px;color:var(--mu);font:600 12.5px var(--font)}
.apg-mxw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px 6px}
.apg-mx{border-collapse:separate;border-spacing:6px;width:100%;min-width:300px}
.apg-mx thead th{padding:2px 0 4px;color:var(--mu);font:700 12px var(--font);letter-spacing:.04em;text-align:center}
.apg-mx tbody th{min-width:96px;max-width:150px;padding:2px 6px 2px 0;text-align:left;font-weight:400;vertical-align:middle}
.apg-mx tbody th b{display:block;color:var(--tx);font:600 13.5px/1.3 var(--font);overflow-wrap:anywhere}
.apg-mx tbody th small{display:block;color:var(--mu);font-size:11.5px}
.apg-mx td{padding:0;vertical-align:top;min-width:88px}
.apg-mx0{text-align:center;vertical-align:middle;color:var(--mu);opacity:.55}
.apg-mc{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;height:100%;min-height:64px;padding:8px 9px;border:1px solid var(--ln);border-left-width:4px;border-radius:12px;background:var(--bg);color:var(--tx);font:inherit;text-align:left;cursor:pointer}
.apg-mc:hover{background:var(--sf2)}
.apg-mc b{font:700 12.5px/1.25 var(--font)}
.apg-mc small{color:var(--mu);font-size:11px;line-height:1.3}
.apg-mc .apg-w{margin:0;font-size:11px}
.apg-mc.pending{border-left-color:#E0A100}
.apg-mc.returned{border-left-color:var(--bad)}
.apg-mc.locked{border-left-color:#B7791F}
.apg-mc.admin{border-left-color:#2F6FD6}
.apg-mc.released,.apg-mc.sent{border-left-color:#1E9B52}
.apg-mc.sent{opacity:.8}
@media(min-width:900px){
 .apg-bar{position:sticky;bottom:0;z-index:3;margin:10px -4px -10px}
}
@media(max-width:899px){
 .apg-rw{margin:0 0 10px}
 .apg-rw .apg-row{margin:0}
 .apg-ck{width:50px;border-radius:18px}
 /* floats just above the bottom menu */
 .apg-bar{position:fixed;z-index:21;left:12px;right:12px;bottom:calc(86px + env(safe-area-inset-bottom));max-width:440px;margin:0 auto}
 .apg-mc{min-height:70px}
}

/* ===== v133: Approvals redesign (dark + light share the theme variables) ===== */
/* Waiting for me: one pill instead of four tiles */
.apg-sum{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px 10px;grid-template-columns:none!important;margin:0 0 12px!important}
.apg-me{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ln);background:var(--bg);color:var(--tx);border-radius:99px;padding:8px 8px 8px 14px;min-height:40px;font:700 13.5px var(--font);cursor:pointer}
.apg-me i{font-style:normal;min-width:24px;padding:2px 8px;border-radius:99px;background:var(--sf2);color:var(--tx);font-size:12.5px;text-align:center}
.apg-me.on{background:var(--ac);border-color:var(--ac);color:var(--charcoal)}.apg-me.on i{background:#1B1B1B26;color:var(--charcoal)}
.apg-od{border:0;background:color-mix(in srgb,var(--bad-solid) 16%,transparent);color:var(--bad);border-radius:99px;padding:8px 12px;min-height:40px;font:700 12.5px var(--font);cursor:pointer}
[data-t=dark] .apg-od{color:var(--bad)}
.apg-hint{flex:1 0 100%;color:var(--mu);font-size:12px;line-height:1.35}
.apg-sc{display:none}
/* list rows: calmer, accent edge on the open one */
.apg-row{border-color:transparent!important;background:transparent!important;border-radius:14px!important;padding:12px 14px!important}
.apg-row:hover{background:var(--sf2)!important}
.apg-row.on{background:var(--sf2)!important;box-shadow:inset 3px 0 0 var(--ac)}
.apg-rt b{font-weight:650}
.apg-w{color:var(--bad);font-weight:650}[data-t=dark] .apg-w{color:var(--bad)}.apg-w.done{color:var(--mu)}
.apg-tabs button{background:transparent!important;border-color:transparent!important}
.apg-tabs button.on{background:var(--ac)!important;border-color:var(--ac)!important}
/* report header + progress line */
.apg-dh{margin:0 0 4px}.apg-eb{color:var(--mu);font:600 12px var(--font);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px}

.apg-st{flex-wrap:wrap;align-items:center;}
.apg-st li{align-items:center;gap:8px;}
.apg-st li+li::before{content:'';display:block;width:34px;height:2px;margin:0 10px;background:var(--ln)}
.apg-st li.d+li::before{background:var(--ok-solid)}
.apg-st i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11.5px;font-weight:700;background:var(--sf2);color:var(--mu);flex:none}
.apg-st li.d i{color:#fff}
.apg-st li.n i{color:var(--charcoal);box-shadow:0 0 0 4px color-mix(in srgb,var(--ac) 28%,transparent)}
.apg-st li.x i{color:#fff}[data-t=dark] .apg-st li.x{color:var(--bad)}
/* detail: preview first (left), actions right */
.apg-cols{margin-top:12px}
.apg-pvc{padding:14px;background:var(--sf2)}
.apg-d .pvs.apg-pv{background:transparent}
.apg-d .pvs.apg-pv .pvp{border:0;border-radius:3px;box-shadow:0 18px 40px -14px rgba(0,0,0,.55);margin:0 auto 14px;display:block}
.apg-pvn{margin:6px 0 0;color:var(--mu);font-size:12px}
.apg-pvc .empty{margin:24px 8px;text-align:center}
.apg-body>.sbt,.apg-body>.btn{min-height:50px;border-radius:12px;margin:0}
.apg-body>.sbt.wa{font-size:15px}
.apr-more{border:1px solid var(--ln);border-radius:12px;padding:0 12px}
.apr-more summary{cursor:pointer;padding:12px 0;color:var(--mu);font:600 13px var(--font);list-style:none}
.apr-more summary::-webkit-details-marker{display:none}
.apr-more summary::after{content:'\203A';float:right;transition:transform .15s}
.apr-more[open] summary::after{transform:rotate(90deg)}
.apr-more[open]{padding-bottom:12px}.apr-more>*+*{margin-top:10px}
/* wide screens: actions column is a fixed width on the right */
@media(min-width:1200px){
 .apg-cols{grid-template-columns:minmax(0,1fr) 340px!important;align-items:start}
 .apg-pvc{position:sticky;top:0;max-height:calc(100vh - 290px);display:flex;flex-direction:column}
 .apg-pvc .apg-pv{overflow:auto;min-height:0}
}
@media(min-width:900px) and (max-width:1199px){.apg-c1{order:-1}}
@media(max-width:899px){
 .apg-c1{order:-1}
 
 .apg-pvc{padding:10px}.apg-d .pvs.apg-pv .pvp{max-width:100%}
}
/* header: on the Approvals page the logo sits hard left, in line with the list, and the buttons hard right */
@media(min-width:900px){
 body:has(.apg) .top .tr1,body:has(.apg) .top .tr2{max-width:none!important;margin:0!important;padding:0 18px 0 18px!important}
 body:has(.apg) .top{padding-left:88px!important;padding-right:0!important}
 .apg>.apg-sum,.apg .apg-sum{max-width:none!important}
 .apg-side{padding:20px 18px 24px!important;background:var(--sf)}
 .apg-pane{padding:24px 32px 36px!important}
 .apg .apg-pane{background:var(--bg)}
}
/* Settings: Library tab spans the full width and reads as one page */
.cfgp>.pane.lib{grid-column:1/-1}
.cfgp .pane.lib>h3:first-of-type{margin-top:18px}
@media(min-width:900px){
 .apg-tabs{flex-wrap:wrap!important;overflow:visible!important;gap:4px 4px!important;padding:2px 0 8px!important}
 .apg-tabs button{padding:6px 11px!important;min-height:34px!important;font-size:12.5px!important}
}
@media(min-width:1200px){.apg-d .apg-pvc .pvs.apg-pv{overflow:auto!important;max-height:none!important;flex:1 1 auto;min-height:0}}
@media(max-width:899px){.apg-d .apg-pvc .pvs.apg-pv{max-height:62vh!important;overflow:auto!important}}
@media(max-width:899px){
 .apg-st{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:12px 0 8px}
 .apg-st li{flex-direction:column;gap:6px;text-align:center;position:relative;font-size:11.5px;line-height:1.2}
 .apg-st li+li::before{position:absolute;left:calc(-50% + 14px);right:calc(50% + 14px);top:10px;width:auto;height:2px;margin:0}
 
}

/* ===== v134: weld bead progress, yellow main button, phone slider ===== */
.apg-st{list-style:none;display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:5px!important;margin:16px 0 8px!important;padding:0;max-width:720px}
.apg-st li{display:block!important;position:relative;padding:0;color:var(--mu);font:600 12px var(--font)!important;text-align:left}
.apg-st li::before{display:none!important}
.apg-st li i{display:block!important;width:auto!important;height:10px!important;border-radius:99px!important;background:var(--sf2)!important;box-shadow:none!important;margin:0 0 7px;font-size:0!important}
.apg-st li.d i{background:repeating-linear-gradient(100deg,#2FB36A 0 7px,#279c5b 7px 10px)!important}
.apg-st li.n i{background:repeating-linear-gradient(100deg,var(--ac) 0 7px,#d99700 7px 10px)!important}
.apg-st li.x i{background:repeating-linear-gradient(100deg,var(--bad-solid) 0 7px,#c93d42 7px 10px)!important}
.apg-st li.d,.apg-st li.n{color:var(--tx)}.apg-st li.n span{font-weight:700}
.apg-st li.x{color:var(--bad)}
.apg-st li span{display:block;font-size:12px!important;line-height:1.25}
.mb{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:8px}
.mb i{height:4px;border-radius:9px;background:var(--sf2)}.mb i.d{background:var(--ok-solid)}.mb i.n{background:var(--ac)}.mb i.x{background:var(--bad-solid)}
.apg-row.on .mb i:not(.d):not(.n):not(.x){background:var(--ln)}
.apg-dh h2{font-family:'Barlow Condensed',var(--font)!important;font-weight:700!important;font-size:36px!important;line-height:1.02!important;text-transform:uppercase;letter-spacing:.01em}
/* the main action is yellow */
.apg-body>.sbt.wa,.apg-body>.sbt.em.apg-main{background:var(--ac)!important;border-color:var(--ac)!important;color:var(--charcoal)!important;box-shadow:none!important;font-weight:700}
.apg-hid{display:none!important}
.apg-sl{display:none}
@media(max-width:899px){
 .apg-st li span{font-size:11px!important}
 .apg-cols{display:flex!important;flex-direction:column}
 .apg-c1{display:contents!important}.apg-body{order:1}.apg-c2{order:2}.apg-c1>.apg-card{order:3}
 .apg-dh h2{font-size:30px!important}
 main.apw{padding-bottom:190px!important}
 .apg-sl{display:flex;align-items:center;position:fixed;z-index:22;left:14px;right:14px;bottom:calc(92px + env(safe-area-inset-bottom));height:64px;border-radius:99px;background:var(--sf);border:1px solid var(--ln);padding:6px;box-shadow:0 14px 34px -8px rgba(0,0,0,.55);overflow:hidden;max-width:520px;margin:0 auto;--p:0}
 .apg-sl::before{content:'';position:absolute;left:0;top:0;bottom:0;width:calc(var(--p)*100%);background:color-mix(in srgb,var(--ac) 26%,transparent);pointer-events:none}
 .apg-sl em{flex:1;text-align:center;font:700 17px 'Barlow Condensed',var(--font);letter-spacing:.06em;text-transform:uppercase;font-style:normal;color:var(--tx);padding-left:52px;opacity:calc(1 - var(--p)*1.2);pointer-events:none}
 .apg-slt{position:absolute;left:6px;top:6px;width:52px;height:52px;border-radius:50%;background:var(--ac);color:var(--charcoal);display:grid;place-items:center;font-size:26px;font-weight:700;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
 .apg-slt:focus-visible{outline:3px solid var(--tx);outline-offset:2px}
 .apg-sl.go .apg-slt{background:var(--ok-solid);color:#fff}
}
@media(prefers-reduced-motion:no-preference){.apg-slt span{animation:slnudge 2.4s ease-in-out 1s 2}@keyframes slnudge{50%{transform:translateX(5px)}}}

/* ---------- v135: Approvals list and report panel ---------- */
/* tabs: two tidy rows of three on every screen, never a sideways scroller */
.apg-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px!important;overflow:visible!important;padding:2px 0 10px!important}
.apg-tabs button{justify-content:center;min-width:0;white-space:nowrap;padding:6px 8px!important;font-size:12.5px!important}
/* quiet scrollbars: only visible while the pointer is over the list */
.apg-side,.apg-list,.apg-pane,.apg-pv{scrollbar-width:thin;scrollbar-color:transparent transparent}
.apg-side:hover,.apg-list:hover,.apg-pane:hover,.apg-pv:hover{scrollbar-color:var(--ln) transparent}
.apg-side::-webkit-scrollbar,.apg-pane::-webkit-scrollbar,.apg-pv::-webkit-scrollbar{width:8px}
.apg-side::-webkit-scrollbar-thumb,.apg-pane::-webkit-scrollbar-thumb,.apg-pv::-webkit-scrollbar-thumb{background:transparent;border-radius:8px}
.apg-side:hover::-webkit-scrollbar-thumb,.apg-pane:hover::-webkit-scrollbar-thumb,.apg-pv:hover::-webkit-scrollbar-thumb{background:var(--ln)}
/* job groups: a bar you can fold, with an optional tick that picks the whole job */
.apg-g{margin:0 0 4px}
.apg-gh{display:flex;align-items:center;gap:8px;padding:0;margin:6px 0 6px;background:var(--sf2);border-radius:12px;min-height:44px}
.apg-gt{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:0;background:transparent;color:var(--mu);font:700 12px var(--font);text-transform:uppercase;letter-spacing:.04em;text-align:left;cursor:pointer}
.apg-gt b{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit}
.apg-gt em{flex:none}
.apg-gt span{flex:none;background:var(--sf);color:var(--mu);border-radius:99px;padding:1px 8px;font-size:11.5px;letter-spacing:0}
.apg-gv{flex:none;transition:transform .15s}
.apg-g:not(.open) .apg-gv{transform:rotate(-90deg)}
.apg-gck{width:44px!important;min-height:44px;border:0!important;background:transparent!important;border-radius:12px 0 0 12px!important}
.apg-gh:has(.apg-gck) .apg-gt{padding-left:0}
.apg-ga{display:inline-flex;align-items:center;border:0;background:transparent;color:var(--ac);font:600 12.5px var(--font);text-decoration:underline;padding:6px 2px;margin:0 0 6px;cursor:pointer}
/* rows: the name takes one line, the method tag is always visible */
.apg-rt b{display:block;max-width:100%}
.apg-rt small{display:flex;align-items:center;gap:8px;min-width:0}
.apg-rt small span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apg-ty{flex:none;font-style:normal;font:700 11px var(--font);letter-spacing:.04em;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--ac) 18%,transparent);color:var(--tx)}
/* report header: long names wrap to two lines, Rename sits beside them */
.apg-ht{display:flex;align-items:flex-start;gap:12px;margin:0 0 8px}
.apg-ht h2{flex:1 1 auto;min-width:0;margin:0!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.apg-rn{flex:none;width:auto;min-height:40px;padding:0 14px;margin:0}
.apg-rf{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.apg-rf input{flex:1 1 220px;min-width:0;min-height:46px;box-sizing:border-box;border:2px solid var(--ac);border-radius:12px;background:var(--bg);color:var(--tx);font:600 17px var(--font);padding:0 12px}
.apg-rb{display:flex;gap:8px;flex:none}
.apg-rb .sbt,.apg-rb .btn{width:auto;margin:0;min-height:46px;padding:0 16px}
.apg-rf small{flex:1 0 100%;color:var(--mu);font-size:12px;line-height:1.4}
/* preview: one full page fills the frame; more pages scroll and snap into place */
.apg-d .apg-pv{--pvh:calc(100dvh - 330px)}
.apg-d .apg-pvc .pvs.apg-pv{overflow-y:auto!important;overflow-x:hidden;max-height:calc(var(--pvh) + 34px)!important;scroll-snap-type:y mandatory;overscroll-behavior:contain}
.apg-d .apg-pv .pvp{width:auto!important;height:auto!important;max-width:100%;max-height:var(--pvh);margin:0 auto 4px!important;display:block;scroll-snap-align:start}
.apg-d .apg-pv .pvn{text-align:center;margin:0 0 10px;scroll-snap-align:end}
@media(max-width:899px){
 .apg-d .apg-pv{--pvh:min(72dvh,640px)}
 .apg-ht{flex-wrap:wrap}
 .apg-rf input{flex-basis:100%}
 .apg-rb{width:100%}.apg-rb .sbt,.apg-rb .btn{flex:1}
 .apg-bar{left:max(12px,env(safe-area-inset-left))!important;right:max(12px,env(safe-area-inset-right))!important}
 .apw{overflow-x:clip}
}
/* v135 fixes: partly picked job shows a dash, quieter row ticks, a full page always fits the preview frame */
input[type=checkbox]:not([switch]):indeterminate{background:var(--ac);border-color:var(--ac)}
input[type=checkbox]:not([switch]):indeterminate::after{width:12px;height:0;border-left:0;border-bottom:3px solid var(--charcoal);transform:none}
.apg-rw .apg-ck{width:40px;border:0;background:transparent}
.apg-rw.sel .apg-ck{background:transparent}
.apg-d .apg-pvc{max-height:none!important}
.apg-d .apg-pv{--pvh:calc(100dvh - 390px)}
@media(max-width:899px){.apg-d .apg-pv{--pvh:min(70dvh,620px)}}
.apg-tabs{margin:0!important}
.apg-bar .apg-bn{flex:none;white-space:nowrap}
.apg-bar .apg-bs{flex:1 1 auto!important;min-width:0;padding:0 12px!important;font-size:14px;white-space:normal;line-height:1.15}
@media(max-width:899px){
 .apg-rt b{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}

/* ---------- v135 stage 5: chat room ---------- */
/* one-line activity entry with a Show link */
.crep.apl{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;padding:6px 8px 6px 10px;border-radius:12px}
.apl .apl-i{flex:none;display:grid;place-items:center;color:var(--ok)}
.apl .apl-t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 13px var(--font)}
.apl .apl-t b{font-weight:700}
.apl .apl-s{flex:none;border:0;background:transparent;color:inherit;font:700 13px var(--font);text-decoration:underline;padding:6px 4px;min-height:32px;cursor:pointer}
/* report tiles: 3 across on a computer, 2 across on a phone */
.rp-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 6px}
@media(max-width:699px){.rp-g{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.rp-t{display:flex;flex-direction:column;gap:8px;min-width:0;padding:12px;border:1px solid var(--ln);border-radius:16px;background:var(--sf);box-shadow:var(--sh);transition:box-shadow .2s,border-color .2s}
.rp-t.flash{border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 40%,transparent)}
.rp-h{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.rp-m{font-style:normal;font:700 11px var(--font);letter-spacing:.04em;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--ac) 18%,transparent);color:var(--tx)}
.rp-k{margin-left:auto;display:grid;place-items:center;color:var(--mu)}
.rp-n{display:flex;align-items:flex-start;gap:6px;min-width:0}
.rp-n b{flex:1 1 auto;min-width:0;font:650 14px/1.3 var(--font);color:var(--tx);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.rp-p{flex:none;display:grid;place-items:center;width:34px;height:34px;margin:-6px -6px 0 0;border:0;border-radius:10px;background:transparent;color:var(--mu);cursor:pointer}
.rp-p:hover{background:var(--sf2);color:var(--tx)}
.rp-t small{color:var(--mu);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-a{display:flex;gap:6px;margin-top:auto;padding-top:2px}
.rp-a .chab{flex:1 1 0;min-width:0;padding:9px 6px;text-align:center}
.rp-f{display:flex;flex-direction:column;gap:8px}
.rp-f input{width:100%;box-sizing:border-box;min-height:42px;border:2px solid var(--ac);border-radius:10px;background:var(--bg);color:var(--tx);font:600 14px var(--font);padding:0 10px}
.rp-b{display:flex;gap:6px}.rp-b .chab{flex:1;text-align:center}
.rp-b .chab.em{background:var(--ac);border-color:var(--ac);color:var(--charcoal)}
/* tray: button text may wrap, and shows the default admin */
.jtgo{white-space:normal;line-height:1.15;text-align:center;min-width:0}
.jth{flex-wrap:wrap}
@media(max-width:699px){.rp-a{gap:5px}.rp-a .chab{padding:9px 4px;font-size:12.5px}.rp-t{padding:10px}}

/* ---------- v137: chat looks like WhatsApp ---------- */
.chs{background:var(--wa-wall)}
@media(min-width:900px){.chs{padding:16px 6% 8px}}
.chd{display:flex;justify-content:center;margin:14px 0 6px}
.chd span{background:var(--wa-chip);color:var(--mu);font:500 12px var(--font);padding:4px 12px;border-radius:8px}
/* bubbles: own on the right, others on the left, time inside the bubble */
.cmsg{max-width:min(86%,520px)}
.chb{border:0;background:var(--wa-ot);color:var(--tx);border-radius:14px;padding:7px 10px 5px;box-shadow:0 1px 1px rgba(0,0,0,.22)}
.cmsg.ot .chb{border-top-left-radius:4px}
.cmsg.me .chb{background:var(--wa-me);color:var(--wa-me-tx);border-color:transparent;border-top-right-radius:4px;border-bottom-right-radius:14px}
.cmsg.sm .chb{border-top-left-radius:14px;border-top-right-radius:14px}
.cmsg.me .chn{display:none}
.chn{margin:0 0 2px 2px}
.chb::after{content:'';display:block;clear:both}
.cht{display:inline-block;float:right;margin:7px 0 -1px 12px;font-size:11px;opacity:.72;text-align:right}
.chb .crep{color:inherit;border-radius:10px}
[data-t=light] .chb .crep{background:rgba(0,0,0,.05)}
/* composer: round + opens Add to job, Daily report and Share report */
.chc2{position:relative}
.chc{align-items:center;padding:8px 10px 10px}
.chplus{order:0;flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--sf2);color:var(--tx);font:400 28px/1 var(--font);display:grid;place-items:center;cursor:pointer;padding:0}
.chc2.menu .chplus{background:var(--ac);color:var(--ac-ink)}
.chc textarea{order:1;border:0;background:var(--sf2);border-radius:22px}
.chat{order:2;background:transparent}
.chsend{order:3}
.chq{display:none}
.chc2.menu .chq{display:flex;flex-direction:column;gap:2px;position:absolute;left:10px;bottom:calc(100% + 8px);padding:6px;background:var(--sf);border:1px solid var(--ln);border-radius:16px;box-shadow:var(--sh);z-index:8;overflow:visible}
.chc2.menu .chq .chip{height:44px;justify-content:flex-start;border:0;background:transparent;font-size:15px;padding:0 16px;text-align:left}
.chc2.menu .chq .chip:hover{background:var(--sf2)}
/* header and room list: round avatars; pinned send strip stays slim */
.chhd .chi,.chr .chi{border-radius:50%}
.jstep{padding:7px 14px 6px;border-left:3px solid var(--ac)}
.chb .crep{background:transparent!important;padding:0;margin:0 0 2px;min-width:0}
[data-t=light] .chm .chn{filter:brightness(.68)}

/* v138 polish: sent sheet with Undo (amber countdown, near-black Done) and the desktop header that carries the Chat title */
.aprsent{z-index:70}
.sntm{height:6px;border-radius:3px;background:var(--sf2);overflow:hidden}
.sntm i{display:block;height:100%;width:100%;background:var(--ac);transform-origin:left center;animation:sntm linear forwards}
@keyframes sntm{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(prefers-reduced-motion:reduce){.sntm i{animation:none}}
.aprsent .sbt.em{background:var(--ac)!important;border:0!important;color:var(--charcoal)!important}
.aprsent .btn{background:var(--sf2);color:var(--tx);border:1px solid var(--ln)}
html[data-t=dark] .aprsent .snb{background:var(--sf);color:var(--tx)}
@media(min-width:900px){
 .top.tm .tr1 .h1.s{flex:none;margin:0 0 0 6px;padding-left:16px;border-left:1px solid var(--ln);line-height:30px}
 .top.tm .tr1 .sp{display:block!important;flex:1 1 auto}
}

/* v139: Delivered grouped by job, shared status words */
.apg-gs{display:block;flex:0 0 auto;font-size:12px;color:var(--mu);margin-left:auto;padding-right:8px;white-space:nowrap}
.apg-df{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 12px 10px}
.apg-dl{border:0;background:transparent;color:var(--ac,var(--info));font:600 13px/1.2 inherit;min-height:36px;padding:0 4px;cursor:pointer;text-decoration:underline}
.aps.prog,.aps.todo{background:var(--info-soft);color:var(--info)}

/* v140: job Reports tab and ready-to-send card */
.chrp{overflow:auto;-webkit-overflow-scrolling:touch}
.rpt{display:flex;gap:6px;padding:10px 14px 4px;position:sticky;top:0;background:var(--bg,var(--sf));z-index:1}
.rpt button{flex:1;min-height:40px;border:1px solid var(--ln);border-radius:99px;background:var(--sf);color:var(--mu);font:600 13px var(--font);cursor:pointer}
.rpt button.on{background:var(--ac);border-color:var(--ac);color:#fff}
.rpt i{font-style:normal;margin-left:6px;opacity:.8}
.rpr{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--ln)}
.rpr.on{background:rgba(31,79,163,.07)}
.rpr input{width:20px;height:20px;flex:none}.rpsp{width:20px;flex:none}
.rpb{flex:1;min-width:0;text-align:left;border:0;background:none;color:var(--tx);cursor:pointer;padding:0}
.rpb b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rpb small{display:block;color:var(--mu);font-size:12px;margin-top:2px}
.rpbar{position:sticky;bottom:0;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--sf);border-top:1px solid var(--ln)}
.rpbar span{flex:1;font-size:12.5px;color:var(--mu)}
.rpnote{margin:6px 14px 14px;font-size:12px;color:var(--mu)}
.rpdone{margin:24px 14px;padding:18px;border:1px solid var(--ln);border-radius:14px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}
.jtray.card .jcd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;flex-wrap:wrap}
.jtray.card .jcd>span{display:flex;gap:8px}

/* v141: Reset app under Back up now */
@media(min-width:900px){.cfgp>.bkl{grid-column:1}}

/* ---------- v149: shared toast + bottom sheet (ui.js). Tokens only. ---------- */
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:3100;display:flex;align-items:center;gap:10px;
 width:max-content;max-width:min(calc(100vw - 24px),420px);padding:10px 12px 10px 12px;background:var(--sf);color:var(--tx);border:1px solid var(--ln);border-radius:14px;
 box-shadow:var(--sh),0 12px 30px #0004;font:500 14px/1.35 var(--font);animation:dwtin .18s var(--ease)}
.toast .ti{flex:none;display:grid;place-items:center;width:22px;height:22px}
.toast .tm{flex:1;min-width:0;overflow-wrap:anywhere}
.toast.tk-ok .ti{color:var(--ok)}.toast.tk-err .ti{color:var(--bad)}.toast.tk-warn .ti{color:var(--warn)}.toast.tk-info .ti,.toast.tk-undo .ti{color:var(--info)}
.toast.tk-err{border-color:color-mix(in srgb,var(--bad) 45%,var(--ln))}
.toast .tu{flex:none;min-height:36px;margin:-4px -4px -4px 4px;padding:0 12px;border:0;border-radius:10px;background:var(--sf2);color:var(--bl);font:700 14px var(--font);cursor:pointer}
.toast .tu:focus-visible{outline:0;box-shadow:var(--focus)}
@keyframes dwtin{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@media(prefers-reduced-motion:reduce){.toast,.dwui .snb{animation:none!important}}

.dwui{z-index:3000}
.dwui .snb{animation:dwsin .2s var(--ease)}
.dwui.out{opacity:0;transition:opacity .12s}.dwui.out .snb{transform:translateY(12px);transition:transform .12s}
@keyframes dwsin{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
.dwui .aph{margin:0;font:700 19px var(--font);color:var(--tx)}
.dwui .lead{margin:0;color:var(--mu);font-size:14px;line-height:1.5}
.dwui .snote{margin:0;color:var(--mu);font-size:12.5px}
.dwui .sfl{display:flex;flex-direction:column;gap:6px}
.dwui .sfl input{font:400 16px var(--font);color:var(--tx);border:1px solid var(--ln);padding:12px;min-height:48px}
.dwui .sfl input:focus{outline:0;box-shadow:var(--focus);border-color:var(--ac)}
.dwacts{display:flex;flex-direction:column;gap:10px}
.dwacts .btn{min-height:48px}
.sbt.dg{background:var(--bad-solid);color:#fff;border:0}
.sbt:disabled,.sbt[disabled]{opacity:.45}

/* ---------- v149: Returned -> Editor -> Resubmit (guided fixes) ---------- */
.rtn{display:flex;flex-direction:column;gap:10px;margin:0 0 10px;padding:12px 12px 4px;background:var(--sf);border:1px solid var(--ln);border-left:4px solid var(--bad-solid);border-radius:var(--rb);box-shadow:var(--sh)}
.rtn[hidden]{display:none}
.rtn-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rtn-top b{font:700 13px var(--font);color:var(--mu);letter-spacing:.04em;text-transform:uppercase}
.rtn-chip{padding:3px 10px;border-radius:99px;background:var(--bad-soft);color:var(--bad);font:700 12px var(--font)}
.rtn-fl{display:flex;flex-direction:column;gap:8px}
.rtn-fh{display:flex;justify-content:space-between;align-items:baseline}.rtn-fh b{font:700 11.5px var(--font);letter-spacing:.08em;color:var(--mu)}.rtn-fh span{font:700 13px var(--font)}
.rtn-pb{display:flex;gap:6px}.rtn-pb i{flex:1;height:6px;border-radius:3px;background:var(--ln)}.rtn-pb i.on{background:var(--ok-solid)}
.rtn-li{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rtn-it{display:flex;gap:10px;align-items:center;width:100%;min-height:48px;padding:8px 10px;border:1px solid var(--ln);border-radius:12px;background:var(--bg);color:var(--tx);text-align:left;font:inherit;cursor:pointer}
.rtn-it b{display:block;font:700 14px var(--font)}.rtn-it small{display:block;color:var(--mu);font-size:12.5px}
.rtn-it.rcur{background:var(--warn-soft);border-color:var(--ac)}.rtn-it.ok{border-color:color-mix(in srgb,var(--ok-solid) 50%,var(--ln))}
.rtn-it:focus-visible,.rtn-nw input:focus,.rtn-dn:focus-visible{outline:0;box-shadow:var(--focus)}
.rtn-no{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--mu);font:700 13px var(--font)}
.rtn-it.rcur .rtn-no{background:var(--tx);color:var(--bg);border-color:var(--tx)}.rtn-it.ok .rtn-no{background:var(--ok-solid);border-color:var(--ok-solid);color:#fff}
.rtn-call{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--charcoal);color:#F5F4EF;font-size:13.5px;line-height:1.4}.rtn-call b{color:var(--ac);font-size:13px}
.rtn-wn{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:end}
.rtn-w,.rtn-nw{display:flex;flex-direction:column;gap:4px;min-width:0}.rtn-wn small{font:700 10.5px var(--font);letter-spacing:.08em;color:var(--mu)}
.rtn-w s{padding:10px 12px;border-radius:10px;background:var(--bad-soft);color:var(--bad);font:700 14px var(--font);overflow-wrap:anywhere}
.rtn-ar{align-self:end;padding-bottom:12px;color:var(--mu);font-size:18px}
.rtn-nw input{font:600 16px var(--font);min-height:46px;padding:0 12px;border:2px solid var(--tx);border-radius:12px;background:var(--bg);color:var(--tx);width:100%}
.rtn-dn{min-height:48px}
.rtn-vs{margin:0;color:var(--mu);font-size:12.5px}.rtn-vs b{color:var(--tx);margin-right:4px}
.rtn-cm{margin:0;font-size:14px;color:var(--tx);overflow-wrap:anywhere}
.rtn-bar{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));z-index:16;display:flex;flex-direction:column;gap:6px;margin:4px -8px 8px;padding:8px;background:var(--sf);border:1px solid var(--ln);border-radius:16px;box-shadow:var(--sh),0 8px 24px #0003}
.rtn-bt{color:var(--mu);font-size:12.5px;padding:0 4px}
.rtn-br{display:flex;gap:8px}.rtn-br .btn{flex:1;min-height:44px;padding:0 8px}.rtn-br .rtn-go{flex:1.4;min-height:44px;padding:0 8px;font-size:14px;white-space:nowrap}
.sbt.dis{background:var(--sf2);color:var(--mu);border:0}
@media(min-width:900px){.rtn{max-width:760px;margin-left:auto;margin-right:auto}}
.rflag{outline:2px dashed var(--bad-solid);outline-offset:2px;background:color-mix(in srgb,var(--bad-solid) 9%,transparent)!important;scroll-margin-top:240px}
.rflag.ok{outline-color:var(--ok-solid);background:color-mix(in srgb,var(--ok-solid) 9%,transparent)!important}
.rflag.cur{outline:3px solid var(--bad-solid)}.rflag.ok.cur{outline-color:var(--ok-solid)}
.rflag::after{content:attr(data-flag);position:absolute;margin:-12px 0 0 -6px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--bad-solid);color:#fff;font:700 11px/18px var(--font);text-align:center;pointer-events:none}
.rflag.ok::after{background:var(--ok-solid)}
.fl-list{display:flex;flex-direction:column;gap:6px;max-height:46vh;overflow:auto}
.fl-row{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--ln);border-radius:12px}.fl-row[hidden]{display:none}
.fl-row label{display:flex;gap:10px;align-items:flex-start;min-height:36px}.fl-row b{display:block;font:600 14px var(--font)}.fl-row small{display:block;color:var(--mu);font-size:12.5px;overflow-wrap:anywhere}
.fl-row input[type=checkbox]{width:22px;height:22px;margin-top:2px;flex:none}
.fl-n{font:400 14px var(--font);padding:8px 10px;border:1px solid var(--ln);border-radius:10px;background:var(--bg);color:var(--tx)}

.rtn-bar{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:16;max-width:560px;margin:0 auto;display:flex;gap:8px;align-items:center;padding:8px;background:var(--sf);border:1px solid var(--ln);border-radius:18px;box-shadow:var(--sh),0 10px 30px #0004}
.rtn-bar .rtn-s{flex:none}.rtn-bar .rtn-c{min-width:0;padding:0 4px;white-space:nowrap}.rtn-bar .rtn-go{flex:1;min-height:44px;padding:0 8px;font-size:13.5px;white-space:nowrap}
.rtn-bar .rtn-n{width:40px;height:40px}
.rtn[hidden]+.stage{padding-bottom:0}
.stage{scroll-padding-bottom:90px}
/* v149: Returned, fix list first */
.apr-fx{margin:0;padding:16px;border-radius:16px;background:var(--sf);border:1px solid var(--ln);border-left:4px solid var(--bad-solid);display:flex;flex-direction:column;gap:12px}
.apr-fxh b{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}
.apr-fxn{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;background:var(--sf2);border-radius:12px;padding:12px}
.apr-fxa{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--bad-solid);color:#fff;font-size:13px;font-weight:700}
.apr-fx .sbt{margin:0}.apr-fx .snote{margin:0}

/* v149: fix list on the Approvals page */
.apr-fxi{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--ln);border-radius:12px;background:var(--bg)}
.apr-fxi.ok{border-color:color-mix(in srgb,var(--ok-solid) 50%,var(--ln))}
.apr-fxc{flex:none;width:96px;min-width:0;border-radius:8px;background:var(--sf2);padding:4px}.apr-fxc small{display:block;font-size:10.5px;color:var(--mu);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apr-fxc span{display:block;margin-top:2px;padding:4px 6px;border:2px solid var(--bad-solid);border-radius:6px;background:var(--bad-soft);font:700 12px var(--font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apr-fxi.ok .apr-fxc span{border-color:var(--ok-solid);background:var(--ok-soft)}
.apr-fxt{flex:1;min-width:0}.apr-fxt b{display:block;font:700 14px var(--font)}.apr-fxt small{display:block;color:var(--mu);font-size:13px;overflow-wrap:anywhere}
.apr-fxb{flex:none;min-height:40px;padding:0 10px;border:0;background:none;color:var(--bad);font:700 13px var(--font);cursor:pointer}.apr-fxi.ok .apr-fxb{color:var(--ok)}
.apg-fn{margin-left:6px;padding:2px 8px;border-radius:99px;background:var(--bad-soft);color:var(--bad);font:700 11px var(--font)}

/* v149: slow preview */
.pvsk{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:14px;background:var(--sf2)}.pvsk i{display:block;height:9px;border-radius:5px;background:var(--ln)}.pvsk i:nth-child(1){width:55%}.pvsk i:nth-child(3){width:85%}.pvsk i:nth-child(4){width:100%}
.pvsn{margin:8px 0 0;color:var(--mu);font-size:13.5px}
.apr-slow{margin:10px 0 0;padding:12px 14px;border-radius:14px;background:var(--warn-soft);color:var(--tx);border:1px solid color-mix(in srgb,var(--ac) 40%,var(--ln))}.apr-slow p{margin:0 0 10px;font-size:14px}
.apr-slr{display:flex;gap:8px;flex-wrap:wrap}.apr-slr .btn,.apr-slr .sbt{min-height:44px;padding:0 18px;width:auto}
@media(prefers-reduced-motion:no-preference){.pvsk i{animation:pvsk 1.4s ease-in-out infinite}}@keyframes pvsk{50%{opacity:.5}}

/* v149: job overview */
.apg-rdy{display:flex;flex-direction:column;gap:8px;margin:10px 0;padding:14px;border:1px solid var(--ln);border-radius:16px;background:var(--sf)}
.apg-rdy b{font:700 16px/1.3 var(--font)}.apg-rdy small{color:var(--mu);font-size:13px}.apg-rdy .sbt{min-height:48px}
.apg-rp{height:8px;border-radius:4px;background:var(--ln);overflow:hidden}.apg-rp i{display:block;height:100%;background:var(--ok-solid)}
.apg-words{margin:10px 0;padding:12px 14px;border:1px solid var(--ln);border-radius:14px;background:var(--sf)}
.apg-words summary{cursor:pointer;font:700 11.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--mu);min-height:28px}
.apg-words dl{margin:8px 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:14px}.apg-words dt{font-weight:700}.apg-words dd{margin:0;color:var(--mu)}

/* v149: full-page reader */
.aprrd{position:fixed;inset:0;z-index:1200;display:flex;flex-direction:column;background:var(--desk);color:var(--tx)}
.rd-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px calc(10px);padding-top:max(10px,env(safe-area-inset-top));background:var(--charcoal);color:#F5F4EF}
.rd-h .btn{min-height:44px;width:auto;background:transparent;color:#F5F4EF;border-color:#5a5855}.rd-h .sbt{min-height:44px;padding:0 18px;width:auto}
.rd-t{flex:1;min-width:140px}.rd-t b{display:block;font:700 17px var(--font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-t small{color:#c9c7c2;font-size:12.5px}
.rd-m{flex:1;min-height:0;display:flex}
.rd-th{display:none;flex:none;width:104px;overflow:auto;padding:12px;background:var(--sf2);border-right:1px solid var(--ln)}
.rd-tb{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;margin-bottom:12px;padding:3px;background:none;border:2px solid transparent;border-radius:8px;cursor:pointer;color:var(--mu);font:600 12px var(--font)}.rd-tb canvas{background:#fff;border-radius:3px;max-width:100%}.rd-tb.on{border-color:var(--ac)}
.rd-pg{flex:1;min-width:0;overflow:auto;padding:16px 12px 110px;-webkit-overflow-scrolling:touch}.rd-box{margin:0 auto;width:max-content;min-width:100%}.rd-box canvas{display:block;margin:0 auto 6px;max-width:none!important;background:#fff;box-shadow:var(--sh)}
.rd-si{display:none;flex:none;width:300px;overflow:auto;padding:16px;background:var(--sf);border-left:1px solid var(--ln);flex-direction:column;gap:12px}
.rd-bs{font:700 11.5px var(--font);letter-spacing:.08em;color:var(--mu)}.rd-card{padding:14px;border-radius:14px;background:var(--sf2);font-size:14px;line-height:1.5}.rd-st{color:var(--mu)}
.rd-z{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:99px;background:var(--charcoal);color:#F5F4EF;box-shadow:0 10px 30px #0006}
.rd-z button{min-width:44px;min-height:44px;border:0;border-radius:99px;background:none;color:#F5F4EF;font:700 18px var(--font);cursor:pointer}.rd-z .rd-fit{color:var(--ac);font-size:14px;padding:0 12px}.rd-z span{min-width:48px;text-align:center;font:600 14px var(--font)}
.rd-z button:focus-visible,.rd-tb:focus-visible{outline:0;box-shadow:var(--focus)}
html.aprrd-on{overflow:hidden}
@media(min-width:760px){.rd-th{display:block}}@media(min-width:1000px){.rd-si{display:flex}}
.apg-full{margin-top:10px;width:100%}

.etb .er.sy .nx{font-size:20px;font-weight:700;line-height:1}
