/* Marketing module: Laporan, Rekod Sales, Rekod Offline. On marketing.wanoptom.com (body.host-mkt) the whole app uses a dark navy theme taken from the logo, with #ffcc00 as the accent. */

/* ---------- dark navy theme for the marketing host ---------- */
body.host-mkt{
  --bg:#0f1730; --panel:#17213f; --fg:#e8ebf5; --muted:#9ca5c4; --line:#2a3658; --grid:#212c4c; --yellow-soft:#3a3315;
  --navy:#c7d2f2; --navy-ink:#eef1fa; --hot:#ff7468; --warm:#ffb547; --cold:#8fb0e3; --ok:#4fcf8c; --bad:#7d86a3;
  --s1:#3d8bff; --s2:#ffcc00; --s3:#22d3c5; --s4:#ff8a4c; --s0:#4a5574;
  color-scheme:dark;
  background:radial-gradient(1200px 500px at 85% -10%,rgba(255,204,0,.07),transparent 60%),var(--bg);
  background-attachment:fixed;
}
body.host-mkt .band{background:#0b1226;color:#e8ebf5;border-bottom:2px solid #ffcc00;box-shadow:0 6px 24px rgba(0,0,0,.35)}
body.host-mkt .brand b{color:#eef1fa}
body.host-mkt .brand i{color:#c3cbe3;opacity:1}
body.host-mkt .views{background:rgba(255,255,255,.06)}
body.host-mkt .views button{color:#c3cbe3}
body.host-mkt .views button:hover{color:#fff}
body.host-mkt .views button[aria-pressed="true"]{background:#ffcc00;color:#0b1226}
body.host-mkt .sync{color:#c3cbe3}
body.host-mkt .sync button{background:rgba(255,255,255,.08);color:#eef1fa}
body.host-mkt .sync .linkbtn{background:transparent}
body.host-mkt .tile.hero{background:linear-gradient(135deg,#ffcc00,#ffd84a);border-color:#ffcc00}
body.host-mkt .tile.hero small,body.host-mkt .tile.hero span{color:#2d3e6e}
body.host-mkt .tile.hero strong{color:#0b1226}
body.host-mkt .tile.hero .d{color:#0b1226}
body.host-mkt .login{background:var(--bg)}
body.host-mkt .login-top{background:#0b1226;border-bottom:2px solid #ffcc00}
body.host-mkt .login-top b{color:#eef1fa}
body.host-mkt .btn.primary{background:#ffcc00;color:#0b1226;border-color:#ffcc00}
body.host-mkt .toast{background:#ffcc00;color:#0b1226}
body.host-mkt .field input,body.host-mkt .field select,body.host-mkt .field textarea{background:#0f1730}
body.host-mkt :focus-visible{outline-color:#ffcc00}

/* ---------- report ---------- */
.mkt,.mkt-entry{padding-block:14px;display:grid;gap:14px}
#mkBody{display:grid;gap:14px}
.mkt-bar{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap}
.mkt-bar #mkSync{margin-left:auto}
.seg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px}
.seg button{border:0;background:transparent;border-radius:8px;padding:7px 14px;font-weight:700;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--navy-ink);color:var(--bg)}
body.host-mkt .seg button[aria-pressed="true"]{background:#ffcc00;color:#0b1226}
.pick{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.pick select,.pick input{border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:7px 10px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--fg)}

.take{margin:0;font-size:16px;line-height:1.55;color:var(--fg);max-width:70em}
.take b{font-family:var(--f-display)}
.y{color:#b38f00}
body.host-mkt .y{color:#ffcc00}
.warn{color:var(--hot)!important;font-weight:700}
.good{color:var(--ok)}
.muted{color:var(--muted);opacity:.55}
.bad{color:var(--hot)}

.mk-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}
.tiles.mini{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}
.tiles.mini .tile strong{font-size:22px}
.d{font-weight:700;font-variant-numeric:tabular-nums}
.d.up{color:var(--ok)} .d.down{color:var(--hot)}
.tile.hero .d.up,.tile.hero .d.down{color:#0b1226}

.legend .sw,.sw{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:-1px}
.sw.line{height:3px;border-radius:2px;background:#ffcc00;width:14px;vertical-align:3px}
.chart .curlab{fill:var(--fg);font-weight:700}
.chart .ytxt{fill:#b38f00}
body.host-mkt .chart .ytxt{fill:#ffcc00}

/* year table */
.mk-year th:first-child,.mk-year td:first-child{position:sticky;left:0;background:var(--panel);z-index:1;min-width:150px}
.mk-year tr.grp td{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted);padding-top:14px;border-bottom:1px solid var(--line)}
.mk-year td.cur,.mk-year th.cur{background:color-mix(in srgb,#ffcc00 12%,transparent)}
.mk-year .tot{font-weight:800;border-left:1px solid var(--line)}
.mlink{border:0;background:transparent;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:2px 4px;border-radius:5px}
.mlink:not(:disabled):hover{background:#ffcc00;color:#0b1226}
.mlink:disabled{cursor:default;opacity:.5}

/* online vs offline */
.mk-onoff tr.lvl0 td{font-weight:800;border-top:1px solid var(--line)}
.mk-onoff tr.lvl1 td:first-child{padding-left:24px;color:var(--muted)}
.mk-onoff tr.lvl2 td{font-weight:800;border-top:2px solid var(--line);background:color-mix(in srgb,#ffcc00 8%,transparent)}
th.pct,td.pct{color:var(--muted)}
.mk-onoff tr.lvl0 td.pct,.mk-onoff tr.lvl2 td.pct{color:var(--fg)}
.splitbox{display:grid;gap:8px;margin-bottom:14px}
.splitrow{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;font-size:12.5px}
.splitrow>span:first-child{font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:11px}
.split{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--grid)}
.split .bar{height:100%;border-radius:0;min-width:0}

/* sections and funnel */
.mk-sec{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:6px;padding-bottom:6px;border-bottom:2px solid var(--line)}
.mk-sec h2{margin:0;font-family:var(--f-display);font-size:18px;letter-spacing:.2em}
.mk-sec p{margin:0;color:var(--muted);font-size:12.5px}
.mk-sec.on{border-color:#3d8bff} .mk-sec.on h2{color:#3d8bff}
.mk-sec.off{border-color:#ffcc00} .mk-sec.off h2{color:#b38f00}
body.host-mkt .mk-sec.off h2{color:#ffcc00}
.funnel{display:grid;gap:4px}
.stage{display:grid;grid-template-columns:110px minmax(0,1fr) 70px minmax(150px,auto);gap:12px;align-items:center}
.stage .lab{font-weight:700}
.stage b{font-family:var(--f-display);font-size:20px;text-align:right;font-variant-numeric:tabular-nums}
.stage .cost{font-size:12px;color:var(--muted)}
.track{position:relative;height:26px;background:var(--grid);border-radius:7px;overflow:hidden}
.track .bar{height:100%;border-radius:7px}
.track .prev{position:absolute;left:0;top:50%;height:2px;background:var(--muted);opacity:.8}
.track .prev::after{content:"";position:absolute;right:-1px;top:-5px;width:2px;height:12px;background:var(--muted)}
.conv{padding-left:122px}
.pill{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--grid);color:var(--muted)}
.pill.bad{background:color-mix(in srgb,var(--hot) 16%,transparent);color:var(--hot)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.stats>div{border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.stats small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.stats b{font-family:var(--f-display);font-size:19px;font-variant-numeric:tabular-nums}
.empty-note{margin:0;color:var(--muted);font-size:13px;padding:14px;border:1px dashed var(--line);border-radius:10px;text-align:center}
td.name{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st{font-size:11px;font-weight:800;padding:1px 7px;border-radius:5px;background:var(--grid);color:var(--muted);white-space:nowrap}
.st.on{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.nowrap{white-space:nowrap}

/* ---------- entry pages ---------- */
.entry-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:14px;align-items:start}
.edit-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.match{font-size:13px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;color:var(--muted)}
.match.hit{border-color:#e0b400;background:var(--yellow-soft);color:var(--fg)}
.match .chip{margin-right:6px}
.in{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:6px 8px;min-width:0}
.in.mono{font-family:var(--f-mono);font-size:12.5px}
.ang-edit td{padding:4px 6px}
.ang-edit td:first-child{width:32%}
#mkSet{margin-bottom:14px}
#mkSet .kv{margin:0}
.bad{color:var(--hot);font-weight:600}

/* Staff form: what each person may see in marketing */
fieldset.perms{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 14px}
fieldset.perms legend{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:0 6px}
fieldset.perms label{display:flex;gap:8px;align-items:flex-start;font-size:13px;cursor:pointer}
fieldset.perms input{margin-top:3px;accent-color:#e0b400}
fieldset.perms:disabled{opacity:.6}

@media (max-width:1180px){.mk-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .mk-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mk-tiles .tile{padding:12px}
  .mk-tiles .tile strong{font-size:22px}
  .tiles.mini{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tiles.mini .tile strong{font-size:18px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .edit-grid.two{grid-template-columns:minmax(0,1fr)}
  .stage{grid-template-columns:86px minmax(0,1fr) 54px;gap:8px}
  .stage .cost{grid-column:2/-1;margin-top:-2px}
  .conv{padding-left:94px}
  .splitrow{grid-template-columns:44px minmax(0,1fr)}
  .splitrow>span:last-child{grid-column:2}
  .take{font-size:14.5px}
  .mkt-bar #mkSync{margin-left:0;width:100%}
  body.host-mkt .views{max-width:100%;overflow-x:auto;scrollbar-width:none}
  body.host-mkt .views button{padding:7px 10px;white-space:nowrap}
  .mk-year th:first-child,.mk-year td:first-child{min-width:120px}
}
@media (prefers-reduced-motion:no-preference){
  #mkBody>*{animation:mkIn .45s cubic-bezier(.2,.8,.2,1) both}
  #mkBody>*:nth-child(2){animation-delay:.04s} #mkBody>*:nth-child(3){animation-delay:.08s} #mkBody>*:nth-child(4){animation-delay:.12s} #mkBody>*:nth-child(n+5){animation-delay:.16s}
  .split .bar{transform-origin:left center;animation:growX .9s cubic-bezier(.2,.8,.2,1) both .15s}
}
@keyframes mkIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
