@font-face{font-family:Inter;src:url(/inter.woff2) format('woff2');font-weight:100 900;font-display:swap}
:root{--bg:#08090b;--bg2:#0f1115;--card:#14171c;--card2:#191d23;--line:#23272f;--tx:#eef0f3;--mu:#8a919c;--ac:#e8b14a;--ac2:#f5cf7f;--tl:#4fd1c5;--ok:#00c875;--wk:#fdab3d;--st:#ef4f6a;--sb:env(safe-area-inset-bottom);--stp:env(safe-area-inset-top);--sl:env(safe-area-inset-left);--sr:env(safe-area-inset-right)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--tx);font:14px/1.4 Inter,-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"cv11" 1}
body{background:radial-gradient(900px 480px at 90% -10%,#2a200b 0,transparent 60%),radial-gradient(700px 400px at -10% 10%,#0c2321 0,transparent 60%),var(--bg);background-attachment:fixed;min-height:100vh}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,textarea,select{font:inherit;font-size:16px;color:var(--tx);background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:9px 11px;width:100%;outline:0;-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--mu) 50%),linear-gradient(135deg,var(--mu) 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:26px}
input:focus,textarea:focus,select:focus{border-color:var(--ac);box-shadow:0 0 0 3px #e8b14a22}input[readonly]{opacity:.75}input.bad{border-color:var(--st)}
input.m{text-align:right;font-variant-numeric:tabular-nums}textarea{min-height:80px}
#splash{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-items:center;transition:opacity .5s,visibility .5s}#splash.out{opacity:0;visibility:hidden}
.sp-logo{text-align:center;animation:rise .7s cubic-bezier(.2,.8,.2,1)}.sp-logo img{width:96px;border-radius:24px;box-shadow:0 20px 60px #e8b14a40}.sp-title{margin-top:16px;letter-spacing:.5em;font-weight:600;font-size:13px;color:var(--ac)}
@keyframes rise{from{opacity:0;transform:translateY(14px) scale(.96)}}@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}}@keyframes pulse{50%{opacity:.3}}
header#top{position:sticky;top:0;z-index:30;display:flex;gap:10px;align-items:center;padding:calc(var(--stp) + 10px) calc(var(--sr) + 14px) 10px calc(var(--sl) + 14px);background:#08090bd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid #ffffff0d}
.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand b{display:block;font-size:17px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand small{display:block;color:var(--mu);font-size:12px}.logo{width:34px;height:34px;border-radius:9px}
.iconbtn{width:40px;height:40px;border-radius:12px;background:#ffffff0d;border:1px solid var(--line);font-size:24px;line-height:1;display:grid;place-items:center}
.topr{margin-left:auto;display:flex;gap:8px;align-items:center}.ghost{padding:8px 12px;border-radius:12px;background:#ffffff0a;border:1px solid var(--line);font-size:13px;min-height:40px;white-space:nowrap}
.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--ac),#b9822a);color:#1a1205;font-weight:800;font-size:14px}
.syncpill{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#ffffff0d;border:1px solid var(--line);font-size:12px;color:var(--mu);min-height:40px;white-space:nowrap}
.syncpill i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok)}.syncpill.pend i{background:var(--wk);box-shadow:0 0 10px var(--wk);animation:pulse 1.2s infinite}.syncpill.off i{background:var(--mu);box-shadow:none}.syncpill.err i{background:var(--st);box-shadow:0 0 10px var(--st)}
#tabs{position:sticky;top:calc(var(--stp) + 61px);z-index:25;display:flex;gap:6px;overflow-x:auto;padding:10px calc(var(--sr) + 14px) 10px calc(var(--sl) + 14px);background:#08090bcc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid #ffffff08;scrollbar-width:none}#tabs::-webkit-scrollbar{display:none}
#tabs button{flex:none;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--mu);font-size:13px;font-weight:550;min-height:38px;white-space:nowrap;transition:.2s}
#tabs button.on{background:linear-gradient(135deg,var(--ac),#c8902f);color:#1a1205;border-color:transparent;box-shadow:0 6px 20px #e8b14a33}#tabs button .n{opacity:.6;font-weight:500;margin-left:6px}#tabs .sep{flex:none;width:1px;background:var(--line);margin:4px 2px}
main#view{padding:16px calc(var(--sr) + 14px) calc(var(--sb) + 60px) calc(var(--sl) + 14px);max-width:1280px;margin:0 auto;animation:fadeUp .3s}
body.home #tabs,body.home #verBtn,body.home #expBtn,body.home #homeBtn{display:none}
h2{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mu);font-weight:650;margin:26px 2px 10px}
.card{background:linear-gradient(180deg,var(--card),#111419);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 10px 30px #0005}
.hero{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:12px}.stat{position:relative;overflow:hidden}.stat small{color:var(--mu);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}.stat b{display:block;font-size:30px;font-weight:780;letter-spacing:-.02em;margin-top:6px}.stat em{font-style:normal;color:var(--mu);font-size:12px}
.stat.main{background:radial-gradient(400px 200px at 100% 0,#e8b14a30,transparent),linear-gradient(180deg,#1b1810,#121008);border-color:#e8b14a55}.stat.main b{font-size:38px;color:var(--ac2)}.stat.tl b{color:var(--tl)}.stat.rd b{color:#f39aa9}
.bar{height:8px;border-radius:9px;background:#ffffff10;overflow:hidden;margin-top:10px}.bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--tl),#7ee6dc)}.bar i.over{background:linear-gradient(90deg,var(--st),#ff8da0)}
.charts{display:grid;grid-template-columns:minmax(260px,1fr) 1.6fr;gap:12px;margin-top:12px}.donut{display:flex;gap:18px;align-items:center}.donut svg{width:170px;height:170px;flex:none}.legend{display:grid;gap:7px;font-size:13px}.legend div{display:flex;align-items:center;gap:8px}.legend i{width:10px;height:10px;border-radius:3px;flex:none}.legend span{color:var(--mu);margin-left:auto;padding-left:10px;font-variant-numeric:tabular-nums}
.bars{display:grid;gap:10px}.brow{display:grid;grid-template-columns:minmax(120px,1.1fr) 2fr auto;gap:10px;align-items:center;font-size:13px}.brow .bar{margin:0}.brow span{color:var(--mu);font-variant-numeric:tabular-nums;white-space:nowrap}
table.t{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}table.t th{text-align:left;color:var(--mu);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
table.t td{padding:6px 8px;border-bottom:1px solid #ffffff08;vertical-align:middle}table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.t tr.tot td{font-weight:750;border-top:1px solid var(--line);background:#ffffff05}table.t tr.grand td{font-weight:800;color:var(--ac2);font-size:15px;background:#e8b14a12}
table.t td input{padding:7px 9px;border-radius:9px;font-size:16px}.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:18px}.neg{color:var(--st)}.pos{color:var(--ok)}.mu{color:var(--mu)}.pc{font-size:11px;color:var(--mu);margin-left:6px}
.sec{margin-top:12px;padding:0;overflow:hidden}.sech{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;user-select:none}.sech b{font-size:15px}.sech .chev{transition:.2s;color:var(--mu)}.sec.closed .chev{transform:rotate(-90deg)}.sec.closed .secb{display:none}
.sech .sums{margin-left:auto;display:flex;gap:14px;font-variant-numeric:tabular-nums;font-size:13px}.sums span small{color:var(--mu);margin-right:5px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.sums b{font-size:14px}
.secb{padding:0 12px 12px}.r{display:grid;gap:8px;align-items:center;padding:6px 4px;border-top:1px solid #ffffff08}.r .x{display:flex;gap:4px}
.r.ai{grid-template-columns:1fr 130px 130px 76px}.r.sd{grid-template-columns:1fr 150px 76px}.r.ps{grid-template-columns:1.6fr 110px 90px 100px 100px 90px 90px 110px 76px}
.r.lg{grid-template-columns:140px 100px 1fr 1.4fr 120px 150px 110px 76px}.r.lg.as{grid-template-columns:140px 100px 1fr 1.4fr 120px 110px 150px 110px 76px}
.rh{font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:.07em;font-weight:600;border-top:0}.rh>*{padding:0 4px}.rh .n{text-align:right}.calc{text-align:right;font-variant-numeric:tabular-nums;color:var(--mu);padding-right:6px}.calc.b{color:var(--tx);font-weight:700}
.mini{width:34px;height:34px;border-radius:10px;background:#ffffff08;border:1px solid var(--line);color:var(--mu);font-size:14px;display:grid;place-items:center}.mini:hover{color:var(--tx)}.mini.del:hover{color:var(--st);border-color:#ef4f6a66}
.add{margin-top:8px;width:100%;padding:11px;border-radius:12px;border:1px dashed #e8b14a55;color:var(--ac);font-weight:600}.add:hover{background:#e8b14a0d}
.btn{padding:11px 16px;border-radius:12px;font-weight:650;background:#ffffff10;border:1px solid var(--line);min-height:44px}.btn.gold{background:linear-gradient(135deg,var(--ac),#c8902f);color:#1a1205;border:0}.btn.red{color:var(--st)}.btn.sm{padding:7px 12px;min-height:36px;font-size:13px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input{max-width:320px}.chip{padding:7px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;color:var(--mu)}.chip.on{color:var(--tx);border-color:var(--tl);background:#4fd1c518}
.tsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:6px}.tsum .card{padding:12px 14px}.tsum small{color:var(--mu);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.tsum b{display:block;font-size:22px;font-weight:760;margin-top:2px}.tsum .feeds{font-size:12px;color:var(--tl)}
.bcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.bc{cursor:pointer;transition:.2s}.bc:hover{transform:translateY(-2px);border-color:#e8b14a66}.bc h3{margin:0 0 4px;font-size:19px}.bc .fig{display:flex;gap:18px;margin-top:12px}.bc .fig div small{display:block;color:var(--mu);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.bc .fig b{font-size:17px}.bc .acts{display:flex;gap:8px;margin-top:14px}
.homehd{display:flex;align-items:flex-end;gap:12px;margin:10px 2px 18px}.homehd h1{margin:0;font-size:34px;letter-spacing:-.02em}.homehd h1 span{color:var(--ac)}
.sheet{position:fixed;inset:0;z-index:60;visibility:hidden}.sheet.open{visibility:visible}.sheet-bg{position:absolute;inset:0;background:#000a;opacity:0;transition:.25s}.sheet.open .sheet-bg{opacity:1}
.sheet-card{position:absolute;left:50%;bottom:0;transform:translate(-50%,100%);width:min(680px,100%);max-height:88vh;overflow:auto;background:#121519;border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;padding:8px 18px calc(var(--sb) + 22px);transition:transform .3s cubic-bezier(.2,.8,.2,1)}.sheet.open .sheet-card{transform:translate(-50%,0)}
.grab{width:40px;height:5px;border-radius:5px;background:#ffffff22;margin:4px auto 12px}.sheet h3{margin:4px 0 12px;font-size:18px}.sheet .row{display:flex;gap:10px;margin-top:12px}.sheet label{display:block;color:var(--mu);font-size:12px;margin:12px 0 6px}
.list{display:grid;gap:8px}.li{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line)}.li .grow{flex:1;min-width:0}.li small{color:var(--mu);display:block}
.hist .h{padding:10px 0;border-bottom:1px solid #ffffff0a}.hist .h small{color:var(--mu)}.hist .d{font-size:13px;margin-top:4px}.hist .d s{color:#f39aa9;text-decoration:line-through}.hist .d ins{color:var(--ok);text-decoration:none}
.passbox{font:600 20px ui-monospace,Menlo,monospace;letter-spacing:.06em;padding:14px;border-radius:12px;background:#000;border:1px dashed var(--ac);text-align:center;user-select:all;-webkit-user-select:all}
#toast{position:fixed;left:50%;bottom:calc(var(--sb) + 22px);transform:translate(-50%,30px);opacity:0;background:#1f242b;border:1px solid var(--line);padding:11px 16px;border-radius:14px;z-index:90;transition:.25s;pointer-events:none;box-shadow:0 10px 30px #0008}#toast.on{opacity:1;transform:translate(-50%,0)}
.login{position:fixed;inset:0;z-index:80;display:none;place-items:center;background:radial-gradient(600px 400px at 50% 0,#2a200b,transparent),var(--bg);padding:20px}.login.on{display:grid}.lcard{width:min(380px,100%);text-align:center}.lcard img{width:84px;border-radius:22px;box-shadow:0 20px 60px #e8b14a40}.lcard h1{margin:16px 0 4px}.lcard p{color:var(--mu);margin:0 0 22px}.lcard form{display:grid;gap:10px}#lerr{color:var(--st);margin-top:10px;min-height:20px}
.empty{color:var(--mu);text-align:center;padding:30px}.flash{animation:fl 1s}@keyframes fl{0%{background:#e8b14a33}}
.who{font-size:11px;color:var(--mu)}.tag{font-size:11px;padding:2px 8px;border-radius:99px;background:#ffffff10;color:var(--mu)}.tag.gold{background:#e8b14a22;color:var(--ac2)}.tag.red{background:#ef4f6a22;color:#f39aa9}
.covtitle{display:flex;align-items:center;gap:12px;margin:4px 2px 14px}.covtitle h1{margin:0;font-size:28px;letter-spacing:-.01em}.covtitle .sub{color:var(--ac);font-weight:650;letter-spacing:.12em;font-size:12px}
.notes{display:grid;gap:8px}
@media (max-width:900px){.hero{grid-template-columns:1fr 1fr}.charts{grid-template-columns:1fr}.r.ps,.r.lg,.r.lg.as{grid-template-columns:1fr 1fr;padding:10px 4px}.r.ps>*:first-child,.r.lg .wide{grid-column:1/-1}.r.ps .x,.r.lg .x{grid-column:1/-1;justify-content:flex-end}.rh.ps,.rh.lg{display:none}.r [data-l]::before{content:attr(data-l);display:block;font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.07em;margin:0 0 3px 2px}}
@media (max-width:600px){.hero{grid-template-columns:1fr}.stat.main b{font-size:34px}.stat b{font-size:24px}.r.ai{grid-template-columns:1fr 1fr 76px}.r.ai .d{grid-column:1/-1}.r.sd{grid-template-columns:1fr 76px}.r.sd .d{grid-column:1/-1}.rh.ai,.rh.sd{display:none}
 .lb{display:none}#verBtn,#expBtn{padding:8px 11px}.brand small{display:none}.donut{flex-direction:column}.sech{flex-wrap:wrap}.sech .sums{margin-left:0;width:100%}.homehd h1{font-size:28px}.syncpill span{max-width:70px;overflow:hidden;text-overflow:ellipsis}}
@media print{header,#tabs,.sheet,#toast{display:none!important}}
.brand{flex:1;overflow:hidden}.brand>div{min-width:0;overflow:hidden}
@media (max-width:600px){.brand .logo{display:none}.brand b{font-size:15px}.syncpill{padding:6px 10px}.topr{gap:6px}.ghost{min-height:38px}.iconbtn{width:38px;height:38px}.avatar{width:38px;height:38px}}
/* labour */
.lband{border-left:4px solid var(--bd)}.lhero .stat em{display:block;margin-top:4px}
.lsec{border-left:4px solid var(--bd)}.lsec .dot{width:10px;height:10px;border-radius:50%;background:var(--bd)}
.r.lr{grid-template-columns:1.5fr 1.1fr 64px 96px 86px 92px 104px 96px 120px 112px}.r.lr.mm{grid-template-columns:1.1fr 1.3fr 64px 96px 86px 70px 104px 96px 120px 112px}
.r.lr:not(.rh){border-left:3px solid var(--bd);padding-left:8px}.r.lr .n{text-align:right;font-variant-numeric:tabular-nums}.r.lr .tdc{color:var(--tl);font-size:13px}.r.lr input{width:100%}
.r.lr .gwrap{grid-column:1/-1}.gwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.gwrap.big{padding:0;max-height:75vh;overflow:auto}
table.grid{border-collapse:separate;border-spacing:0;font-size:11px}table.grid th,table.grid td{border-right:1px solid #ffffff10;border-bottom:1px solid #ffffff10;padding:0;text-align:center}
table.grid td{min-width:30px;height:30px;cursor:pointer;color:var(--tx)}table.grid.wk td{min-width:44px}table.grid td.we{background:#ffffff06}table.grid td.hi{background:repeating-linear-gradient(45deg,#5b627033 0 4px,transparent 4px 8px)}
table.grid td.on{background:#4fd1c533;color:#bff3ee;font-weight:650}table.grid tr.tdr td.on{background:#e8b14a33;color:#ffe2a8}table.grid td.dl{color:#ff7a8f}table.grid td.hl{box-shadow:inset 0 0 0 99px #e8b14a1c}
table.grid .gw th{background:color-mix(in srgb,var(--pc) 28%,#14171c);color:#fff;font-size:10px;font-weight:650;padding:4px 6px;white-space:nowrap;border-top:2px solid var(--pc)}table.grid .gd th{color:var(--mu);font-weight:500;padding:3px 2px;font-size:10px}table.grid .gd th.we{color:#6b7280}
table.grid .stk{position:sticky;left:0;background:#14171c;z-index:2;text-align:left;padding:4px 8px;min-width:120px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
table.grid thead,table.grid .gw th,table.grid .gd th{position:sticky;top:0}table.grid .gd th{top:23px}table.grid .gw .stk,table.grid .gd .stk{z-index:3}
table.grid tr.g-office .stk{box-shadow:inset 3px 0 #9be38f}table.grid tr.g-stores .stk{box-shadow:inset 3px 0 #7cc4f0}table.grid tr.g-dressing .stk{box-shadow:inset 3px 0 #f7b267}table.grid tr.g-standby .stk{box-shadow:inset 3px 0 #c3a6f2}
table.grid .gsec th{color:var(--ac2);text-transform:uppercase;font-size:11px;letter-spacing:.06em}table.grid .stk small{color:var(--mu);font-weight:400}
table.grid.pas .stk.wide{min-width:300px;max-width:300px;display:flex;gap:4px;align-items:center}table.grid.pas .stk input{font-size:12px;padding:4px 6px;min-height:0;width:130px}table.grid.pas .stk .rx{display:flex;gap:2px}table.grid.pas .stk .mini{width:26px;height:26px;font-size:11px}
table.grid.pas td{min-width:38px}table.grid tr.tot td,table.grid tr.tot th{color:var(--tl);font-weight:650}
.sched .sh{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:10px}.sched .sh .mu{font-size:12px}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.sgrid label{font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:4px}.sgrid input{width:100%}
.wstrip{display:flex;gap:4px;overflow-x:auto;margin-top:12px;padding-bottom:4px}.wstrip span{flex:0 0 auto;border-top:3px solid var(--pc);background:color-mix(in srgb,var(--pc) 14%,#14171c);border-radius:6px;padding:5px 8px;font-size:10px}.wstrip b{display:block;white-space:nowrap}.wstrip small{color:var(--mu)}
.lcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}.lcols .ttl{font-size:12px;letter-spacing:.08em;font-weight:700;color:var(--ac2);margin-bottom:8px}.lcols input{width:120px;text-align:right}
.tsum2{display:flex;gap:20px;flex-wrap:wrap;padding:10px 4px 0;color:var(--mu);font-size:13px}.tsum2 b{color:var(--tx)}
table.t.ref input{width:100%;min-width:60px}
@media (max-width:900px){.r.lr,.r.lr.mm{grid-template-columns:1fr 1fr;padding:10px 8px}.r.lr .role,.r.lr .x{grid-column:1/-1}.r.lr .x{justify-content:flex-end}.r.lr.rh{display:none}.r.lr .n{text-align:left}}
/* add costs */
.addcost{display:flex;align-items:center;gap:14px;width:100%;text-align:left;margin:0 0 14px;border-color:#e8b14a55;background:linear-gradient(90deg,#e8b14a14,transparent 60%),var(--card,#14171c);cursor:pointer;flex-wrap:wrap}
.addcost .ico{width:44px;height:44px;border-radius:12px;background:var(--ac,#e8b14a);color:#1a1405;display:grid;place-items:center;font-size:26px;font-weight:800}.addcost b{font-size:17px;display:block}.addcost small{color:var(--mu);font-size:13px}.addcost .qb{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.acbtns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn.big{padding:18px;font-size:16px;text-align:center;justify-content:center;display:flex}
.ccard{display:grid;grid-template-columns:200px 1fr;gap:16px}.cprev{display:flex;flex-direction:column;gap:6px;align-items:center;color:var(--tl);text-decoration:none;font-size:12px}.cprev img{width:100%;max-height:340px;object-fit:contain;border-radius:10px;background:#000}.cprev span{font-size:64px}
.cflds label{display:block;font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 4px}.cflds input,.cflds select{width:100%}.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.cflag{background:#e8b14a1c;color:var(--ac2);border-radius:8px;padding:7px 10px;margin-top:8px;font-size:13px}.cflag.red{background:#ef4f6a22;color:#f39aa9}
.crec{margin-top:12px;padding:10px 12px;border-radius:10px;background:#4fd1c514;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.crec b{font-size:22px;color:var(--tl)}.crec small{color:var(--mu)}
input.bad{border-color:#ef4f6a!important}
@media (min-width:901px){.r.lg{grid-template-columns:140px 100px 1fr 1.4fr 120px 150px 110px 112px}.r.lg.as{grid-template-columns:140px 100px 1fr 1.4fr 120px 110px 150px 110px 112px}}
@media (max-width:600px){.ccard{grid-template-columns:1fr}.cprev img{max-height:200px}.acbtns{grid-template-columns:1fr}.addcost .qb{margin-left:58px}}
/* prep & strike types + crew */
table.grid td.ep{background:#5fd37a3a!important;color:#d6ffd9}table.grid td.eh{background:#ff6b8133!important}table.grid td.es{background:#b18cff3a!important;color:#ece0ff}
table.grid td.eh .pv{color:#ffb3bf}table.grid td.dl .pv{color:#ff5c74;font-weight:700}table.grid.pas td{min-width:52px;line-height:1.05;font-size:10px}table.grid.pas td .pc{display:block;font-size:14px;font-weight:800;color:#fff}
table.grid.pas td.need{background:#ef4f6a40;color:#ffd0d8;font-weight:800}table.grid.pas tr.dly th{color:#f39aa9}table.grid.pas .stk .pt{min-width:26px;text-align:right;color:var(--tl);font-weight:700;font-size:12px}
table.grid.pas tr.tot th small{display:block;color:var(--mu);font-weight:400;font-size:10px}
.chip.ep{border-color:#5fd37a;color:#bff5c7;background:#5fd37a22}.chip.eh{border-color:#ff6b81;color:#ffc2cb;background:#ff6b8122}.chip.es{border-color:#b18cff;color:#e1d2ff;background:#b18cff22}.chip.sel{box-shadow:0 0 0 2px #fff6}
.pchips{flex-wrap:wrap;gap:8px}.lg{padding:2px 8px;border-radius:6px}.lg.ep{background:#5fd37a3a}.lg.eh{background:#ff6b8133}.lg.es{background:#b18cff3a}
.stepper{display:grid;grid-template-columns:64px 1fr 64px;gap:8px}.stepper input{font-size:28px;text-align:center;font-weight:800}.stepper .btn{font-size:26px}
.dcalc input{width:100%}

/* weekends (faint, under fills) */
:root{--we:#ffffff0d;--weh:#ffffff14}html.light{--we:#1a1d2209;--weh:#1a1d2212}
table.grid td.we{background:var(--we)}table.grid .gd th.we{background:var(--weh)}
/* ---------- light theme ---------- */
html.light{--bg:#f6f3ec;--bg2:#ffffff;--card:#ffffff;--card2:#faf8f3;--line:#e2ddd2;--tx:#1b1e23;--mu:#5f6670;--ac:#c38a1e;--ac2:#8a5d06;--tl:#0f7f76;--st:#c0203a;color-scheme:light}
html.light body{background:radial-gradient(900px 480px at 90% -10%,#f3e3bd 0,transparent 60%),radial-gradient(700px 400px at -10% 10%,#d9efec 0,transparent 60%),var(--bg)}
html.light header#top,html.light #tabs{background:#f6f3ecee!important;border-color:var(--line)}
html.light .iconbtn,html.light .ghost,html.light .syncpill,html.light .mini,html.light .btn,html.light .tag,html.light .bar{background:#1b1e230a}
html.light .btn.gold,html.light #tabs button.on{background:linear-gradient(135deg,#e8b14a,#c8902f);color:#1a1205}
html.light .card{background:#fff;box-shadow:0 6px 20px #6b5a3014}
html.light .stat.main{background:radial-gradient(400px 200px at 100% 0,#e8b14a40,transparent),linear-gradient(180deg,#fff8e8,#fdf0d2);border-color:#e8b14a88}
html.light .stat.main b{color:#8a5d06}html.light .stat.tl b{color:var(--tl)}html.light .stat.rd b{color:#b0233e}
html.light table.t td,html.light .r,html.light .hist .h{border-color:#1b1e2312}html.light table.t tr.tot td{background:#1b1e2306}
html.light .sheet-card{background:#fff}html.light .grab{background:#1b1e2326}html.light #toast{background:#1b1e23;color:#fff}
html.light .login{background:radial-gradient(600px 400px at 50% 0,#f3e3bd,transparent),var(--bg)}
html.light .tag.gold{background:#e8b14a33;color:#7a5205}html.light .tag.red,html.light .cflag.red{background:#c0203a18;color:#a01c33}html.light .cflag{background:#e8b14a26;color:#7a5205}
html.light .chip.on{background:#0f7f7614;border-color:var(--tl);color:var(--tx)}
html.light .neg,html.light .bad{color:#b0233e}
html.light table.grid th,html.light table.grid td{border-color:#1b1e2314;color:var(--tx)}
html.light table.grid .stk{background:#fff}
html.light table.grid .gw th{background:color-mix(in srgb,var(--pc) 30%,#ffffff);color:#1b1e23}
html.light table.grid td.on{background:#0f7f7624;color:#0b5c55}html.light table.grid tr.tdr td.on{background:#e8b14a33;color:#7a5205}
html.light table.grid td.ep{background:#3fae5a2e!important;color:#1d5a2b}html.light table.grid td.eh{background:#e0405a24!important}html.light table.grid td.es{background:#8a5cf02a!important;color:#43297e}
html.light table.grid td.eh .pv{color:#a01c33}html.light table.grid td.dl .pv{color:#c0102e}html.light table.grid.pas td .pc{color:#1b1e23}
html.light table.grid.pas td.need{background:#c0203a26;color:#8a1426}html.light table.grid td.hl{box-shadow:inset 0 0 0 99px #e8b14a26}
html.light .chip.ep{background:#3fae5a1c;color:#1d5a2b}html.light .chip.eh{background:#e0405a18;color:#8a1426}html.light .chip.es{background:#8a5cf01c;color:#43297e}html.light .chip.sel{box-shadow:0 0 0 2px #1b1e2355}
html.light .lg.ep{background:#3fae5a2e}html.light .lg.eh{background:#e0405a24}html.light .lg.es{background:#8a5cf02a}
html.light .wstrip span{background:color-mix(in srgb,var(--pc) 18%,#ffffff)}
html.light .addcost{background:linear-gradient(90deg,#e8b14a22,transparent 60%),#fff}html.light .crec{background:#0f7f7612}
html.light .r.lr .tdc{color:var(--tl)}
table.grid tr.g-mm .stk{box-shadow:inset 3px 0 #c3a6f2}table.grid .rt{min-width:64px;padding:0 6px;text-align:right;font-variant-numeric:tabular-nums;background:var(--card2);font-size:11px}table.grid.wk .stk{max-width:260px}
.sset{margin-top:12px}.sset>b{font-size:15px}.sset .mu{font-size:13px}.sset.danger{border-color:#ef4f6a66}.sset.danger>b{color:#f39aa9}.btn.red{background:#ef4f6a;color:#fff;border:0}.btn.red:disabled{opacity:.45}
.xprev{margin-top:12px}.xprev table{margin-top:10px}.xprev label{display:block;font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 4px}
html.light .sset.danger>b{color:#a01c33}
/* role grids: names + paired alternating shading */
:root{--alt:#ffffff0b;--altk:#00000026}html.light{--alt:#ffffff00;--altk:#1a1d220d}
table.grid.roles .stk{min-width:300px;max-width:340px;width:320px}
table.grid tr.alt>td,table.grid tr.alt>th.stk{background-image:linear-gradient(var(--alt),var(--alt))}
table.grid.roles tr.pr:not(.alt)>td,table.grid.roles tr.pt2:not(.alt)>td,table.grid.roles tr.pr:not(.alt)>th.stk,table.grid.roles tr.pt2:not(.alt)>th.stk{background-image:linear-gradient(var(--altk),var(--altk))}
html.light table.grid.roles tr.alt>td,html.light table.grid.roles tr.alt>th.stk{background-image:linear-gradient(#ffffff,#ffffff)}html.light table.grid.roles tr.alt>td.on{background-image:none}
table.grid tr.pr>*{border-top:1px solid #ffffff1c}html.light table.grid tr.pr>*{border-top-color:#1a1d2224}
table.grid .rn{display:flex;align-items:center;gap:8px;min-width:0}table.grid .rn b{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
table.grid .rn input{flex:1 1 120px;min-width:110px;font-size:12px;padding:3px 7px;min-height:0;height:24px;border-radius:7px;background:transparent}
table.grid .rtd{color:var(--mu);font-weight:500;font-size:10px;padding-left:10px}
.cok{background:#2fbf8a1f;color:#7fe0b8;border-radius:8px;padding:7px 10px;margin-top:8px;font-size:13px}html.light .cok{background:#1f8a5f18;color:#17694a}

/* Excel role colours (per group, alternating darker/lighter; running-total line = same hue, one step deeper) */
table.grid.roles tr.rc>th.stk,table.grid.roles tr.rc>td.rt{background-color:color-mix(in srgb,var(--rc) 40%,var(--card));background-image:none}
table.grid.roles tr.rc.pt2>th.stk,table.grid.roles tr.rc.pt2>td.rt{background-color:color-mix(in srgb,var(--rc) 25%,var(--card))}
table.grid.roles tr.rc>td:not(.on):not(.we):not(.hi):not(.rt){background-image:linear-gradient(color-mix(in srgb,var(--rc) 17%,transparent),color-mix(in srgb,var(--rc) 17%,transparent))}
table.grid.roles tr.rc.pt2>td:not(.on):not(.we):not(.hi):not(.rt){background-image:linear-gradient(color-mix(in srgb,var(--rc) 10%,transparent),color-mix(in srgb,var(--rc) 10%,transparent))}
html.light table.grid.roles tr.rc>th.stk,html.light table.grid.roles tr.rc>td.rt{background-color:var(--rc);background-image:none}
html.light table.grid.roles tr.rc.pt2>th.stk,html.light table.grid.roles tr.rc.pt2>td.rt{background-color:color-mix(in srgb,var(--rc) 82%,#9aa0a8)}
html.light table.grid.roles tr.rc>td:not(.on):not(.we):not(.hi):not(.rt){background-image:linear-gradient(color-mix(in srgb,var(--rc) 55%,transparent),color-mix(in srgb,var(--rc) 55%,transparent))}
html.light table.grid.roles tr.rc.pt2>td:not(.on):not(.we):not(.hi):not(.rt){background-image:linear-gradient(color-mix(in srgb,var(--rc) 70%,#d9d9d9 30%),color-mix(in srgb,var(--rc) 70%,#d9d9d9 30%))}
html.light table.grid.roles tr.rc .rn input{background:#ffffffb3}
/* phones: narrow sticky role/name column, tap to expand */
@media (max-width:599px){table.grid.roles .stk{min-width:150px;max-width:150px;width:150px;white-space:normal}
 table.grid.roles .rn{flex-direction:column;align-items:stretch;gap:2px}table.grid.roles .rn b{font-size:10px;white-space:nowrap}table.grid.roles .rn input{flex:none;min-width:0;width:100%;height:22px;font-size:11px;padding:2px 6px}
 table.grid.roles .rtd{padding-left:2px;font-size:9px;white-space:nowrap}
 table.grid.roles tr.xp>.stk{min-width:260px;max-width:260px;width:260px}table.grid.roles tr.xp .rn b{white-space:normal}}

/* day grid: tap toggles 1, long-press/right-click opens the values picker */
table.grid:not(.pas) td[data-g]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;cursor:pointer}
table.grid td.lpress{transition:box-shadow .45s linear;box-shadow:inset 0 0 0 2px var(--ac)}table.grid td.lpdone{box-shadow:inset 0 0 0 3px var(--ac2)}
table.grid td.lphint{box-shadow:inset 0 0 0 2px #f39aa9}

table.grid.pas tr.bdn td{line-height:1.05;font-size:11px}table.grid.pas tr.bdn td small{display:block;font-size:9px;color:var(--mu)}table.grid.pas tr.bdn td.need small{color:#f39aa9}html.light table.grid.pas tr.bdn td.need small{color:#a01c33}

/* no truncation on Prop Labour: wrap to 2 lines instead of cutting off */
textarea.wrapin{min-height:0;resize:none;overflow:hidden;line-height:1.25;white-space:pre-wrap;word-break:break-word;display:block}
.lr textarea.wrapin{font-size:14px;padding:7px 10px}
table.grid.roles .rn{align-items:center}
table.grid.roles .rn b{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15;font-size:10.5px;flex:1 1 55%;min-width:0;word-break:break-word}
table.grid.roles .rn input{flex:1 1 45%}
table.grid.roles tr.pr>th.stk{padding-top:3px;padding-bottom:3px}
@media (max-width:599px){table.grid.roles .rn b{font-size:9.5px}table.grid.roles .rn input{flex:none}}
.sched .sgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important}.sched .sgrid input[type=date]{min-width:150px;font-size:15px;padding-right:6px}

/* full day grids are a read-only display */
table.grid.roles .rn i.nm{font-style:normal;font-weight:600;font-size:11px;color:var(--tx);flex:0 1 auto;padding:2px 8px;border-radius:6px;background:#ffffff10;white-space:nowrap}html.light table.grid.roles .rn i.nm{background:#ffffffb3}
@media (max-width:599px){table.grid.roles .rn i.nm{white-space:normal;font-size:10px;padding:1px 6px}}
@media (max-width:599px){table.grid.roles th.stk{text-align:left}table.grid.roles .rn{align-items:flex-start}}

/* schedule: hiatus start–end pairs */
.sched .hrows{display:grid;gap:8px;margin:10px 0}
.sched .hpair{display:grid;grid-template-columns:90px minmax(150px,220px) 16px minmax(150px,220px);align-items:center;gap:8px}
.sched .hpair b{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mu)}.sched .hpair .dash{text-align:center;color:var(--mu)}
.sched .hpair input{min-width:0;font-size:15px}
@media (max-width:599px){.sched .hpair{grid-template-columns:1fr 1fr}.sched .hpair b{grid-column:1/-1}.sched .hpair .dash{display:none}}

/* ===== softer charcoal/slate dark theme (light theme untouched) ===== */
:root{--bg:#22272e;--bg2:#2a3038;--card:#2e343d;--card2:#343b45;--line:#454e5a;--tx:#f1f3f6;--mu:#b3bbc6;--we:#ffffff14;--weh:#ffffff1f;--alt:#ffffff0e;--altk:#0000001f}
html:not(.light) body{background:radial-gradient(900px 480px at 90% -10%,#3a2e14 0,transparent 60%),radial-gradient(700px 400px at -10% 10%,#173533 0,transparent 60%),var(--bg)}
html:not(.light) header#top{background:#22272ee6}html:not(.light) #tabs{background:#22272ed9}
html:not(.light) .card{background:linear-gradient(180deg,var(--card),#2a3038);box-shadow:0 10px 30px #0003}
html:not(.light) .stat.main{background:radial-gradient(400px 200px at 100% 0,#e8b14a38,transparent),linear-gradient(180deg,#3a3424,#2e2a20)}
html:not(.light) .sheet-card{background:#2a3038}html:not(.light) #toast{background:#3a424d}
html:not(.light) .login{background:radial-gradient(600px 400px at 50% 0,#3a2e14,transparent),var(--bg)}
html:not(.light) table.grid .stk{background:#2e343d}
html:not(.light) table.grid .gw th{background:color-mix(in srgb,var(--pc) 34%,#2e343d)}
html:not(.light) .wstrip span{background:color-mix(in srgb,var(--pc) 20%,#2e343d)}
html:not(.light) .iconbtn,html:not(.light) .syncpill,html:not(.light) .ghost{background:#ffffff12}
html:not(.light) .btn{background:#ffffff16}html:not(.light) .mini{background:#ffffff10}html:not(.light) .tag{background:#ffffff18}
html:not(.light) table.grid td.we{background:var(--we)}
html:not(.light) table.grid td.on{background:#4fd1c547;color:#d4fbf6}html:not(.light) table.grid tr.tdr td.on{background:#e8b14a47;color:#ffe9bd}
html:not(.light) table.grid td.ep{background:#5fd37a52!important;color:#e4ffe7}html:not(.light) table.grid td.eh{background:#ff6b814a!important}html:not(.light) table.grid td.es{background:#b18cff52!important;color:#f2eaff}
html:not(.light) .lg.ep{background:#5fd37a52}html:not(.light) .lg.eh{background:#ff6b814a}html:not(.light) .lg.es{background:#b18cff52}
html:not(.light) table.grid.roles tr.rc>th.stk,html:not(.light) table.grid.roles tr.rc>td.rt{background-color:color-mix(in srgb,var(--rc) 46%,#2e343d)}
html:not(.light) table.grid.roles tr.rc.pt2>th.stk,html:not(.light) table.grid.roles tr.rc.pt2>td.rt{background-color:color-mix(in srgb,var(--rc) 30%,#2e343d)}
html:not(.light) table.grid.roles tr.rc>td:not(.on):not(.we):not(.hi):not(.rt){background-image:linear-gradient(color-mix(in srgb,var(--rc) 22%,transparent),color-mix(in srgb,var(--rc) 22%,transparent))}
html:not(.light) table.grid.roles tr.rc.pt2>td:not(.on):not(.we):not(.hi):not(.rt){background-image:linear-gradient(color-mix(in srgb,var(--rc) 13%,transparent),color-mix(in srgb,var(--rc) 13%,transparent))}
html:not(.light) table.grid.roles tr.rc>th.stk{color:#14171c}html:not(.light) table.grid.roles tr.rc>th.stk .rtd{color:#3b424c}
html:not(.light) table.grid.roles .rn i.nm{background:#00000026;color:#14171c}
html:not(.light) table.grid.roles tr.rc>td.rt{color:#14171c}

/* month band above day headers (sticky with the header rows) */
table.grid .gm th{position:sticky;top:23px;z-index:2;font-size:10px;font-weight:750;letter-spacing:.08em;text-align:left;padding:3px 6px;white-space:nowrap;background:#3a424d;color:#f1f3f6;border-left:2px solid var(--ac)}
table.grid .gm th.odd{background:#454e5a}table.grid .gm .stk{z-index:3;border-left:0;color:var(--mu)}
table.grid .gm th span{position:sticky;left:calc(var(--stkw,320px) + 6px)}
table.grid .gd th{top:44px!important;font-size:9.5px;line-height:1.15}
html.light table.grid .gm th{background:#ece6d8;color:#3d3420}html.light table.grid .gm th.odd{background:#e2dac7}html.light table.grid .gm .stk{color:#5f6670}

html:not(.light) table.grid .gd th{background:#2e343d}html:not(.light) table.grid .gd th.we{background:color-mix(in srgb,#ffffff 10%,#2e343d)}html.light table.grid .gd th{background:#ffffff}html.light table.grid .gd th.we{background:#f1ede4}

/* weekly allowance ticks */
.alwbox{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.alwc{display:inline-flex;align-items:center;gap:5px;font-size:13px;white-space:nowrap}.alwc input{width:18px;height:18px;padding:0;accent-color:var(--ac);-webkit-appearance:checkbox;appearance:auto}.alwc small{color:var(--mu)}
.alwt{font-variant-numeric:tabular-nums;display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.alwi{width:90px!important;padding:4px 8px}
table.grid .axc{font-style:normal;font-size:9px;font-weight:700;padding:1px 5px;border-radius:5px;background:#00000022;color:inherit;white-space:nowrap}table.grid .axc.cu{background:#ef4f6a33}html.light table.grid .axc{background:#1a1d2214}
.lr{grid-template-columns:1.4fr 1.1fr 64px 96px 86px minmax(230px,1.2fr) 104px 96px 120px 112px}@media (max-width:900px){.lr .alw{grid-column:1/-1}}
@media (min-width:901px){.lr:not(.mm){grid-template-columns:1.3fr 1fr 60px 90px minmax(250px,1.3fr) 80px 96px 90px 100px 112px!important}}.alwbox{flex-wrap:wrap}.alwbox .btn.sm{min-height:0;padding:4px 8px;font-size:11px}
.charts.nodonut{grid-template-columns:1fr!important}
@media (min-width:901px){.lr:not(.mm){grid-template-columns:minmax(150px,1.6fr) minmax(110px,1.1fr) 52px 80px 212px 66px 86px 80px 84px 104px!important;gap:8px}.alwbox{gap:2px 8px}.alwc{font-size:12px}.alwc small{display:none}.alwi{width:70px!important}}
.oltb{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.olm{display:block;margin:6px 0;font-size:13px}.olm select{width:auto;display:inline-block;padding:4px 6px}
.olx{margin:4px 0 10px;padding-left:18px;font-size:13px}.olx li{margin:2px 0}.olu{white-space:pre-wrap;font-size:11px;max-height:160px;overflow:auto}
.glist{max-height:55vh;overflow:auto}.gday{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.gday>b{display:block;margin-bottom:2px}
.tag.amb{background:#f59e0b33;color:#fbbf24;border-color:#f59e0b66}html.light .tag.amb{color:#92400e}
/* freeze-pane headers on cost / breakdown tables */
.tw{max-height:78vh;overflow:auto;overscroll-behavior:contain}
.tw>table.t{border-collapse:separate;border-spacing:0}
.tw>table.t>tbody>tr:first-child>th,.tw>table.t>thead th,.tw>table.t>tr:first-child>th{position:sticky;top:0;z-index:4;background:var(--card2);box-shadow:inset 0 -1px 0 var(--line)}
.tw>table.t tr>:first-child{position:sticky;left:0;z-index:2;background:var(--card)}
.tw>table.t>tbody>tr:first-child>th:first-child,.tw>table.t>thead th:first-child{z-index:5;background:var(--card2)}
html.light .tw>table.t tr>:first-child{background:#fff}html.light .tw>table.t>tbody>tr:first-child>th{background:#eef0f3}
/* the three input tabs (Action Input, SD Makes Input, Plant & Skip Input) in light green */
#tabs button.inp{background:#2f5a3c;border-color:#4f8a5f;color:#e3f5e8}
#tabs button.inp.on{background:#8fd19e;border-color:#8fd19e;color:#0f2a17;box-shadow:0 0 0 2px #d4edda55}
html.light #tabs button.inp{background:#d4edda;border-color:#a8d5b3;color:#14361f}
html.light #tabs button.inp.on{background:#2f7d45;border-color:#2f7d45;color:#fff}
/* budget warning: ≤ threshold remaining pulses red; overspent = solid red + Over */
@keyframes wpulse{0%,100%{color:inherit;text-shadow:none}50%{color:#ff5a5a;text-shadow:0 0 10px #ff5a5a88}}
.wp{animation:wpulse 1.5s ease-in-out infinite;font-weight:700}
.wo{color:#ff5a5a!important;font-weight:700}html.light .wo{color:#c62828!important}
html.light .wp{animation-name:wpulseL}@keyframes wpulseL{0%,100%{color:inherit}50%{color:#c62828}}
@media (prefers-reduced-motion:reduce){.wp{animation:none;color:#ff6b6b}html.light .wp{color:#c62828}}
.otag{margin-left:6px;font-size:10px;vertical-align:middle}
tr.snone{display:none}td.snm{display:flex;align-items:center;gap:6px;min-width:250px}td.snm input{flex:1;min-width:150px;padding:6px 8px;font-size:14px}
.sdrag{cursor:grab;color:var(--mu);touch-action:none;user-select:none;-webkit-user-select:none;padding:4px 2px;font-size:14px}.sgo{color:var(--mu);text-decoration:none;padding:2px 6px;border-radius:8px}.sgo:hover{color:var(--gold,#e8b14a)}
tr.sdragging{opacity:.55}tr.sdrop>td{box-shadow:inset 0 2px 0 #e8b14a}.sadd{margin:4px 0}
/* sheen sweep on the total budget tile (both apps) */
.hero .stat.main{position:relative;overflow:hidden;isolation:isolate}
.hero .stat.main::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:45%;pointer-events:none;z-index:2;
 background:linear-gradient(105deg,transparent 0%,rgba(255,236,190,0) 25%,rgba(255,240,205,.22) 48%,rgba(255,255,255,.32) 52%,rgba(255,236,190,0) 75%,transparent 100%);
 transform:translateX(-160%) skewX(-12deg);will-change:transform;animation:sheen 7s cubic-bezier(.4,0,.2,1) 1.5s infinite}
html.light .hero .stat.main::after{background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,0) 25%,rgba(255,255,255,.55) 50%,rgba(255,255,255,0) 75%,transparent 100%)}
@keyframes sheen{0%{transform:translateX(-160%) skewX(-12deg)}17%,100%{transform:translateX(330%) skewX(-12deg)}}
@media (prefers-reduced-motion:reduce){.hero .stat.main::after{animation:none;display:none}}
.r.sd.estr{grid-template-columns:1fr auto 150px 76px!important}.etag{display:flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}.etag a{text-decoration:none}
table.estt input,table.estt select{padding:5px 7px;font-size:13px}table.estt td{vertical-align:top}
table.estt input[type=checkbox],.olm input[type=radio],.olm input[type=checkbox]{width:auto!important;min-width:0;height:auto;padding:0;margin:0 4px 0 0;display:inline-block;vertical-align:middle}
.olm label{display:inline-flex;align-items:center;margin-right:12px;font-weight:400}
table.estt input[data-e=desc]{min-width:230px}table.estt select{min-width:170px}#sheet:has(.estt) .sheet,.sheet:has(.estt){max-width:min(1100px,96vw)!important}
td.snm input{min-width:200px}
.sheet-card:has(.estt){max-width:min(1100px,96vw)!important;width:min(1100px,96vw)}
table.estt input[type=checkbox],.olm input[type=radio],.olm input[type=checkbox]{-webkit-appearance:auto;appearance:auto;width:18px!important;height:18px;accent-color:#e8b14a;border:0;background:none}
/* shared read-only view */
body.shared #homeBtn,body.shared #setBtn,body.shared #verBtn,body.shared #meBtn,body.shared .avatar,body.shared [data-hist],body.shared #login,body.shared .costtile,body.shared #rb{display:none!important}
body.shared::after{content:"Read-only shared view";position:fixed;left:50%;bottom:10px;transform:translateX(-50%);background:#0009;color:#fff;font-size:12px;padding:5px 12px;border-radius:999px;z-index:50;pointer-events:none}
.shgone{min-height:100vh;display:grid;place-items:center;padding:20px}.shgone .card{max-width:420px;text-align:center;padding:30px}
.shl .li{align-items:center;gap:8px}.shu{font-size:12px;margin-top:6px;width:100%}
/* shading: Action / Makes (warm amber) vs Set Dec (cool blue) */
:root{--shA:#e8b14a17;--shAh:#e8b14a2e;--shS:#5b8def1c;--shSh:#5b8def36}
html.light{--shA:#fbefd6;--shAh:#f5dfae;--shS:#e3ecfb;--shSh:#c9daf6}
table.bkd tr>:nth-child(n+2):nth-child(-n+7){background:var(--shA)}
table.bkd tr>:nth-child(n+8){background:var(--shS)}
table.bkd tr:first-child>th:nth-child(n+2):nth-child(-n+7){background:linear-gradient(var(--shAh),var(--shAh)),var(--card2)}
table.bkd tr:first-child>th:nth-child(n+8){background:linear-gradient(var(--shSh),var(--shSh)),var(--card2)}
table.bkd tr>:nth-child(8){box-shadow:inset 2px 0 0 #5b8def66}
.card.grpA{background:linear-gradient(180deg,var(--shA),transparent),var(--card);border-color:#e8b14a55}
.card.grpS{background:linear-gradient(180deg,var(--shS),transparent),var(--card);border-color:#5b8def66}
#tabs button.gA:not(.on){background:var(--shAh);border-color:#e8b14a77}
#tabs button.gS:not(.on){background:var(--shSh);border-color:#5b8def88}
#tabs button.gA.on,#tabs button.gS.on{box-shadow:0 0 0 2px currentColor inset}
/* set / character list: plain text look, still editable */
td.snm{gap:4px}
td.snm input{border:0!important;background:transparent!important;box-shadow:none!important;padding:2px 0!important;border-radius:0!important;font-size:inherit!important;font-weight:inherit;color:inherit;min-width:180px}
td.snm input:focus{outline:none;text-decoration:none;border-bottom:1px solid var(--ac2,#e8b14a)!important}
td.snm .sdrag,td.snm .sgo,td.snm .sdel{opacity:0;transition:opacity .15s}
tr[data-sk]:hover td.snm .sdrag,tr[data-sk]:hover td.snm .sgo,tr[data-sk]:hover td.snm .sdel,td.snm:focus-within .sdrag,td.snm:focus-within .sgo,td.snm:focus-within .sdel{opacity:.75}
@media (hover:none){td.snm .sdrag,td.snm .sgo,td.snm .sdel{opacity:.35}}
td.snm .sdel{background:none!important;border:0!important;padding:2px 4px;font-size:11px}td.snm .sdrag{font-size:12px}
.sadd{opacity:.7;border-style:dashed}
/* Prop Labour Roles input page: clean text look, still editable inline */
.lr input:not([type=checkbox]),.lr textarea,.lr select{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:3px 2px!important;border-bottom:1px solid transparent!important;color:inherit}
.lr input:not([type=checkbox]):hover,.lr textarea:hover{border-bottom-color:color-mix(in srgb,var(--mu) 35%,transparent)!important}
.lr input:not([type=checkbox]):focus,.lr textarea:focus,.lr select:focus{outline:none;border-bottom:1px solid var(--ac2,#e8b14a)!important}
.lr textarea{resize:none}
.covl{color:inherit;text-decoration:none;border-bottom:1px dotted color-mix(in srgb,currentColor 40%,transparent)}.covl:hover{color:var(--ac2,#e8b14a);border-bottom-style:solid}
/* shade v2: Action amber · Makes rose · Set Dec blue, stronger dividers + row lines */
:root{--shM:#e86a9a1a;--shMh:#e86a9a33;--shA:#e8b14a1c;--shAh:#e8b14a36;--shS:#5b8def1f;--shSh:#5b8def3a;--rowl:#ffffff1f;--divA:#e8b14a;--divM:#e86a9a;--divS:#5b8def}
html.light{--shM:#fbe6ee;--shMh:#f5c9da;--shA:#fcefd4;--shAh:#f6dca6;--shS:#e3ecfb;--shSh:#c6d8f6;--rowl:#0000001f;--divA:#c98a12;--divM:#c2457a;--divS:#3b6fd1}
table.bkd tr>:nth-child(n+5):nth-child(-n+7){background:var(--shM)}
table.bkd tr:first-child>th:nth-child(n+5):nth-child(-n+7){background:linear-gradient(var(--shMh),var(--shMh)),var(--card2)}
table.bkd tr>:nth-child(2){box-shadow:inset 3px 0 0 var(--divA)}
table.bkd tr>:nth-child(5){box-shadow:inset 3px 0 0 var(--divM)}
table.bkd tr>:nth-child(8){box-shadow:inset 3px 0 0 var(--divS)}
table.bkd td,table.bkd th{border-bottom:1px solid var(--rowl)!important}
table.bkd tr>td[colspan]{background:transparent;box-shadow:none}
/* cover sections: Action Purchases row amber, Action Makes row rose, Set Dec blue */
.card.grpA tr[data-i="0"]>td{background:var(--shA)}.card.grpA tr[data-i="0"]>td:first-child{box-shadow:inset 3px 0 0 var(--divA)}
.card.grpA tr[data-i="1"]>td{background:var(--shM)}.card.grpA tr[data-i="1"]>td:first-child{box-shadow:inset 3px 0 0 var(--divM)}
.card.grpA{background:var(--card);border-color:color-mix(in srgb,var(--divA) 45%,transparent)}
.card.grpS tr[data-g="sd"]>td{background:var(--shS)}.card.grpS tr[data-g="sd"]>td:first-child{box-shadow:inset 3px 0 0 var(--divS)}
.card.grpA td,.card.grpS td,.card.grpA th,.card.grpS th{border-bottom:1px solid var(--rowl)}
/* tabs */
#tabs button.gA:not(.on){background:var(--shAh);border-color:var(--divA)}
#tabs button.gM:not(.on){background:var(--shMh);border-color:var(--divM)}
#tabs button.gS:not(.on){background:var(--shSh);border-color:var(--divS)}
#tabs button.gM.on{box-shadow:0 0 0 2px currentColor inset}
/* borderless editable figures on cover/breakdown tables */
input.pm{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:2px 0!important;text-align:right;font:inherit!important;color:inherit;width:100%!important;max-width:140px;border-bottom:1px solid transparent!important;cursor:text}
td.n input.pm{margin-left:auto;display:block}
input.pm:hover:not([readonly]){border-bottom-color:color-mix(in srgb,var(--mu) 35%,transparent)!important}
input.pm:focus{outline:none;border-bottom:1.5px solid var(--ac2,#e8b14a)!important}
input.pm.bad{border-bottom-color:#ff5a5a!important}
#pdr.pm{font-size:20px!important;font-weight:700!important;text-align:left;max-width:none}
/* subtler group edges */
table.bkd tr>:nth-child(2){box-shadow:inset 1px 0 0 color-mix(in srgb,var(--divA) 35%,transparent)}
table.bkd tr>:nth-child(5){box-shadow:inset 1px 0 0 color-mix(in srgb,var(--divM) 35%,transparent)}
table.bkd tr>:nth-child(8){box-shadow:inset 1px 0 0 color-mix(in srgb,var(--divS) 35%,transparent)}
.card.grpA tr[data-i="0"]>td:first-child{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--divA) 35%,transparent)}
.card.grpA tr[data-i="1"]>td:first-child{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--divM) 35%,transparent)}
.card.grpS tr[data-g="sd"]>td:first-child{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--divS) 35%,transparent)}
/* labour cover: no freeze panes */
.tw.nofz{max-height:none;overflow-x:auto;overflow-y:visible}
.tw.nofz>table.t tr>*{position:static!important;box-shadow:none}
/* Prop Labour view switch: pastel Roles (lilac) / Full day grid (peach) */
.chip[data-v=list]{background:#b9a7e033;border-color:#b9a7e077;color:#ddd3f5}
.chip[data-v=grid]{background:#f2b8952e;border-color:#f2b89577;color:#f8d9c6}
.chip[data-v=list].on{background:#b9a7e0;border-color:#b9a7e0;color:#241a3d;box-shadow:0 0 0 2px #b9a7e055}
.chip[data-v=grid].on{background:#f2b895;border-color:#f2b895;color:#3d2214;box-shadow:0 0 0 2px #f2b89555}
html.light .chip[data-v=list]{background:#eee8fb;border-color:#cdbff0;color:#4a3a7a}
html.light .chip[data-v=grid]{background:#fdebe0;border-color:#f3c9ae;color:#7a4426}
html.light .chip[data-v=list].on{background:#cdbff0;border-color:#9d88dc;color:#2a1d52;box-shadow:0 0 0 2px #9d88dc55}
html.light .chip[data-v=grid].on{background:#f6c9aa;border-color:#e39a6e;color:#4a2412;box-shadow:0 0 0 2px #e39a6e55}
.chip[data-v]{font-weight:650;padding-left:14px;padding-right:14px}
/* freeze panes only on prop cover Breakdown of costs + Not budgeted (.fz) */
.tw:not(.fz){max-height:none;overflow-x:auto;overflow-y:visible}
.tw:not(.fz)>table.t tr>*{position:static!important}
.tw:not(.fz)>table.t tr>:first-child{background:transparent}
html.light .tw:not(.fz)>table.t tr>:first-child{background:transparent}
.tw:not(.fz)>table.t tr:first-child>th{background:var(--card2)}
/* shade v3: Action pale green (mint) · Makes pale blue · Set Dec pale purple */
:root{--shA:#4fc79a1c;--shAh:#4fc79a38;--shM:#6aa8f01c;--shMh:#6aa8f038;--shS:#a68be81f;--shSh:#a68be83c;--divA:#4fc79a;--divM:#6aa8f0;--divS:#a68be8}
html.light{--shA:#e0f5ec;--shAh:#c3ebd9;--shM:#e3effc;--shMh:#c8def8;--shS:#efe8fb;--shSh:#dccff5;--divA:#2f9e6e;--divM:#3b78c9;--divS:#7a5bc7}
/* input tabs nudged to a warmer lime/olive green so they read differently from Action's mint */
#tabs button.inp{background:#46562a;border-color:#7d9446;color:#eef5dc}
#tabs button.inp.on{background:#c5df8f;border-color:#c5df8f;color:#25300f;box-shadow:0 0 0 2px #e4f2cc55}
html.light #tabs button.inp{background:#e9f4d2;border-color:#bcd88a;color:#33461a}
html.light #tabs button.inp.on{background:#7aa83a;border-color:#7aa83a;color:#fff}
