/* Layout: header + tabs, then one section per tab. Sponsoring = control bar, quarter grid + stats rail, rules + campaigns below. */
@font-face{font-family:'Bricolage';font-weight:700;font-display:swap;src:url(fonts/bricolage-grotesque-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Bricolage';font-weight:800;font-display:swap;src:url(fonts/bricolage-grotesque-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:400;font-display:swap;src:url(fonts/dm-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:500;font-display:swap;src:url(fonts/dm-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-weight:700;font-display:swap;src:url(fonts/dm-sans-latin-700-normal.woff2) format('woff2')}

:root{
  --bg:#FBF6EC; --surface:#FFFDF8; --ink:#13342C; --muted:#5E716A; --line:#E4DACA; --field:#F6F0E4;
  --spot:#0F3D33; --accent:#E4572E; --warn:#A87A0B; --danger:#B4381E;
  --display:'Bricolage','Arial Black',Arial,sans-serif;
  --body:'DM Sans','Helvetica Neue',Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0E1A17; --surface:#15241F; --ink:#EDE6D8; --muted:#9DB0A8; --line:#2A3B35; --field:#0F1D19;
  --spot:#3B8B72; --accent:#F0704A; --warn:#E0B44A; --danger:#F07A5E; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0E1A17; --surface:#15241F; --ink:#EDE6D8; --muted:#9DB0A8; --line:#2A3B35; --field:#0F1D19;
  --spot:#3B8B72; --accent:#F0704A; --warn:#E0B44A; --danger:#F07A5E; color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
img{max-width:100%}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.4;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  padding-block:max(20px,env(safe-area-inset-top,0px)) 48px}
.wrap{max-width:1260px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance}
h1{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.5px}
h2{font-size:19px;font-weight:800}
h3{font-size:16px;font-weight:800;margin-bottom:8px}
p{margin:0}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}
.muted{color:var(--muted)} .small{font-size:13px;margin:4px 0 8px}
.num{font-variant-numeric:tabular-nums}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.between{justify-content:space-between}
.gap-b{margin-bottom:12px} .gap-t{margin-top:12px}
.top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.fx{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.fx input[type=number]{width:76px}

.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);overflow-x:auto}
.tabs a{font-weight:700;color:var(--muted);text-decoration:none;padding:10px 14px;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.tabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
.tab{display:flex;flex-direction:column;gap:18px}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}
label.f,.f{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
input[type=number],input[type=text],select{font:inherit;font-size:15px;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:7px 9px;min-width:0}
input[type=number],input[type=text]{width:100%}
input[type=number]{font-variant-numeric:tabular-nums}
input:focus-visible,button:focus-visible,select:focus-visible,a:focus-visible,label.btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;align-items:end}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--field)}
.seg button{font:inherit;font-size:13px;font-weight:700;border:0;background:transparent;color:var(--muted);padding:6px 12px;border-radius:999px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.btn{font:inherit;font-size:13px;font-weight:700;border:1px solid var(--line);background:var(--field);color:var(--ink);border-radius:8px;padding:7px 12px;cursor:pointer;display:inline-block}
.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.danger{color:var(--danger)}
.btn.icon{padding:3px 8px;font-size:14px;line-height:1}
.x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:6px}
.x:hover{color:var(--danger);background:var(--field)}

.main{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}
@media (max-width:960px){.main{grid-template-columns:minmax(0,1fr)}}
.gridwrap{overflow-x:auto}
table.q{border-collapse:separate;border-spacing:8px;width:100%;min-width:760px;margin:-8px}
table.q th{font-family:var(--display);font-size:16px;font-weight:800;text-align:left;padding:4px 6px;vertical-align:top}
table.q th.rowh{width:150px;padding-top:10px}
.rowh .rname{display:flex;align-items:center;justify-content:space-between;gap:4px}
.rowh small{display:block;font-family:var(--body);font-size:12px;font-weight:500;color:var(--muted);margin:2px 0 6px}
.step{display:flex;align-items:center;gap:4px;font-family:var(--body);font-size:12px;font-weight:700;margin-top:4px}
.step .lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.step .n{width:18px;text-align:center;font-variant-numeric:tabular-nums}
.step button{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:var(--field);color:var(--ink);cursor:pointer;font-weight:700;padding:0}
td.cell{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;vertical-align:top}
.amt{display:flex;align-items:center;gap:6px}
.amt input{font-family:var(--display);font-weight:800;font-size:19px;padding:4px 8px}
.amt span{font-size:12px;font-weight:700;color:var(--muted)}
.pct{font-size:12px;color:var(--muted);margin-top:4px}
.bar{height:32px;border-radius:9px;background:var(--line);margin-top:8px;cursor:pointer;overflow:hidden}
.bar .fill{height:100%;background:var(--spot);border-radius:9px;transition:width .25s}
.bardesc{font-size:13px;font-weight:700;margin-top:5px}
.prod{display:flex;align-items:center;gap:5px;margin-top:8px;flex-wrap:wrap}
.prod b{font-size:11px;letter-spacing:.3px;color:var(--muted);width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile{border:0;padding:0;cursor:pointer;border-radius:5px;position:relative;transition:opacity .15s,transform .1s;background:var(--c)}
.tile:hover{transform:translateY(-1px)}
.tile.reel{width:20px;height:32px}
.tile.story{width:16px;height:28px;border-radius:8px}
.tile.post{width:15px;height:15px;border-radius:4px}
.tile.off{opacity:.3}
.tile.reel::after{content:"";position:absolute;left:7px;top:11px;border-left:7px solid rgba(255,255,255,.9);border-top:5px solid transparent;border-bottom:5px solid transparent}
.tile.camp,.bar.camp{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--ring)}
.per{font-size:12px;margin-top:6px;color:var(--muted)}
.per b{color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted);align-items:center;margin-top:12px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:5px}

.stats{display:flex;flex-direction:column;gap:14px;position:sticky;top:12px}
.big{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;margin-top:6px}
.kv{display:flex;justify-content:space-between;gap:8px;font-size:14px;padding:5px 0;border-bottom:1px solid var(--line)}
.kv:last-child{border-bottom:0}
.kv>span:last-child{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.kv.strong{font-weight:800;font-size:16px}
.inspect{border-left:4px solid var(--accent);padding:8px 10px;background:var(--field);border-radius:6px;font-size:14px;min-height:62px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:0}

.lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
@media (max-width:960px){.lower{grid-template-columns:minmax(0,1fr)}}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.chk{font-size:12px;font-weight:700;margin:6px 0 10px;color:var(--muted)}
.chk.bad{color:var(--warn)}
.list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.item{display:grid;grid-template-columns:auto 34px minmax(0,1fr) auto auto;gap:8px;align-items:center}
.item.cat{grid-template-columns:34px minmax(0,1fr) auto}
.item input[type=color]{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;padding:2px;background:var(--field)}
.item .pick{width:20px;height:20px;cursor:pointer;accent-color:var(--accent)}
.item .tot{font-weight:700;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}

table.lines{border-collapse:collapse;width:100%;min-width:820px}
table.lines th{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 6px;border-bottom:2px solid var(--line)}
table.lines td{padding:6px;border-bottom:1px solid var(--line);vertical-align:middle}
table.lines td.r,table.lines th.r{text-align:right}
table.lines td.tot{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
table.lines input,table.lines select{padding:6px 7px;font-size:14px}
table.lines .w-qty{width:70px} table.lines .w-pr{width:110px} table.lines .w-fee{width:70px}
#newRowName{width:auto;flex:1 1 200px}
table.lines tr.grp td{font-family:var(--display);font-weight:800;font-size:15px;padding-top:14px;border-bottom:2px solid var(--line)}
table.lines tr.sub td{font-weight:700;background:var(--field)}
table.lines tr.total td{font-weight:800;font-size:16px;border-top:2px solid var(--ink)}
.sumgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.sumgrid .card{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.sumgrid .card b{display:block;font-family:var(--display);font-size:20px;margin-top:4px}
.chip{font-size:12px;font-weight:700;border:1px dashed var(--line);border-radius:999px;padding:5px 10px;background:transparent;color:var(--ink);cursor:pointer}
.chip:hover{border-style:solid}
.group{margin-bottom:16px}
.totals{max-width:520px;margin-left:auto;width:100%}
footer{margin-top:8px}

@media (prefers-reduced-motion: reduce){*{transition:none!important}}
@media print{
  body{background:#fff;color:#000;padding:0}
  .tabs,.seg,.btn,.x,.step button,#newRowName,#newRowShape,#mediaQuick,.fx,footer{display:none!important}
  .panel{border-color:#bbb;break-inside:avoid}
  .stats{position:static}
}
.group table.lines{table-layout:fixed}
.group table.lines th:nth-child(2){width:90px}
.group table.lines th:nth-child(3){width:140px}
.group table.lines th:nth-child(4){width:150px}
.group table.lines th:nth-child(5){width:44px}
#newGroupName{width:auto;flex:1 1 220px}
