:root{--bg: #0d0f12;--surface: #161a20;--border: #2a313c;--text: #e8eaed;--muted: #8b949e;--accent: #3dff8a;--accent-dim: #1a5c32;--danger: #f87171;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{padding-bottom:env(safe-area-inset-bottom,0)}a{color:var(--accent)}#root{min-height:100vh}.app-shell{max-width:28rem;margin:0 auto;padding:1rem 1.1rem 2rem}.app-shell--wide{max-width:100%;padding-left:.85rem;padding-right:.85rem}.dash-toolbar{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.85rem}.dash-month-label{font-weight:600;font-size:1rem;min-width:6.5rem;text-align:center}.dash-icon-btn{width:2.5rem;min-width:2.5rem;padding:.45rem 0;font-size:1.25rem;line-height:1}.dash-view-tabs{display:flex;gap:.35rem;margin-bottom:.75rem}.dash-view-tabs button{flex:1;width:auto;padding:.5rem .35rem;font-size:.78rem;background:var(--surface);color:var(--muted);border:1px solid var(--border)}.dash-view-tabs button.active{color:var(--accent);border-color:var(--accent-dim);background:#3dff8a14}.dash-period-hint{font-size:.78rem;margin-bottom:.75rem!important}.dash-section{margin-bottom:1.1rem}.dash-h2{font-size:.95rem;font-weight:700;margin:0 0 .5rem;color:var(--accent);letter-spacing:.02em}.stat-grid--2{grid-template-columns:1fr 1fr}.dash-buckets{display:flex;flex-direction:column;gap:.65rem}.dash-bucket-card{margin-bottom:0}.dash-bucket-title{font-weight:700;font-size:.9rem;margin-bottom:.65rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}.dash-platform-block{margin-bottom:.55rem}.dash-platform-name{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.2rem}.dash-mini-metrics{display:flex;flex-wrap:wrap;gap:.35rem .65rem;font-size:.82rem}.dash-day-table-wrap{overflow-x:auto;margin:0 -.15rem;border-radius:10px;border:1px solid var(--border)}.dash-day-table{width:100%;border-collapse:collapse;font-size:.78rem}.dash-day-table th,.dash-day-table td{padding:.35rem .4rem;text-align:right;border-bottom:1px solid var(--border)}.dash-day-table th:first-child,.dash-day-table td:first-child{text-align:left;position:sticky;left:0;background:var(--surface)}.dash-day-table th{color:var(--muted);font-weight:600;font-size:.68rem;text-transform:uppercase;background:var(--surface)}.plat-home{--plat-google: #3dff8a;--plat-fb: #5b9fff;--plat-grab: #00b14f;--plat-gojek: #00aa13}.plat-title{margin-bottom:.15rem}.plat-sub{margin-bottom:.85rem!important}.plat-sub--clientline{line-height:1.45}.plat-client-em{color:var(--text, #e6edf3);font-weight:700;letter-spacing:.02em}.plat-sub-hint{font-weight:400;color:var(--muted);font-size:.82em;opacity:.92}.plat-data-source-note{margin:-.35rem 0 1rem!important;font-size:.72rem;line-height:1.45;color:var(--muted);opacity:.9;max-width:42rem}.plat-main-tabs{display:flex;gap:.4rem;margin-bottom:1rem;padding:.25rem;background:#161a20e6;border-radius:14px;border:1px solid var(--border)}.plat-main-tabs button{flex:1;width:auto;padding:.65rem .35rem;font-size:.78rem;font-weight:600;background:transparent;color:var(--muted);border:none;border-radius:10px;box-shadow:none}.plat-main-tabs button.active{background:var(--surface);color:var(--text);box-shadow:0 2px 12px #00000059}.plat-toolbar{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.65rem}.plat-time-tabs{display:flex;gap:.35rem;margin-bottom:.65rem}.plat-time-tabs button{flex:1;width:auto;padding:.48rem .3rem;font-size:.74rem;background:var(--surface);color:var(--muted);border:1px solid var(--border)}.plat-time-tabs button.active{color:var(--accent);border-color:var(--accent-dim);background:#3dff8a12}.plat-period{font-size:.76rem!important;margin-bottom:1rem!important}.plat-stack{display:flex;flex-direction:column;gap:.85rem;min-width:0;width:100%}.plat-panel{position:relative;border-radius:16px;overflow:hidden;background:linear-gradient(160deg,#1e242cfa,#12151a);border:1px solid var(--border);box-shadow:0 8px 32px #00000059}.plat-panel--compact{border-radius:14px}.plat-panel__accent{position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--plat-google),#1a5c32);border-radius:16px 0 0 16px}.plat-panel--fb .plat-panel__accent--fb,.plat-panel--fb .plat-panel__accent{background:linear-gradient(180deg,var(--plat-fb),#2a4a7a)}.plat-panel__inner{padding:1rem 1rem 1rem 1.15rem;margin-left:4px}.plat-h2{font-size:1rem;font-weight:700;margin:0 0 .75rem;letter-spacing:-.02em}.plat-h3{font-size:.88rem;font-weight:700;margin:0 0 .65rem;color:var(--muted)}.plat-metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem .75rem}.plat-metric-grid--4{grid-template-columns:1fr 1fr}@media (min-width: 380px){.plat-metric-grid--4{grid-template-columns:1fr 1fr 1fr 1fr}}.plat-metric-grid--dense{grid-template-columns:1fr 1fr}@media (min-width: 360px){.plat-metric-grid--dense{grid-template-columns:1fr 1fr 1fr}}.plat-metric{display:flex;flex-direction:column;gap:.2rem;padding:.55rem .6rem;background:linear-gradient(145deg,#ffffff0d,#0000002e);border-radius:12px;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 12px #00000026}.plat-metric__k{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.plat-metric__v{font-size:.98rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.plat-metric__vrow{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem}.plat-delta{font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;padding:.12rem .35rem;border-radius:6px;letter-spacing:.01em}.plat-delta--good{color:#4ade80;background:#4ade801f}.plat-delta--bad{color:#f87171;background:#f871711f}.plat-delta--flat{color:var(--muted);background:#ffffff0f}.plat-week-switcher{display:grid;grid-template-columns:2.5rem minmax(0,1fr) 2.5rem;align-items:center;gap:.4rem .45rem;width:100%;max-width:100%;min-width:0;padding:.5rem .45rem;margin-bottom:.65rem;box-sizing:border-box;background:linear-gradient(145deg,#ffffff0f,#0003);border:1px solid rgba(255,255,255,.08);border-radius:12px}.plat-week-switcher__label{min-width:0;max-width:100%;font-size:.76rem;font-weight:700;text-align:center;color:var(--text);line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.plat-week-switcher__btn{width:2.5rem;height:2.5rem;min-width:2.5rem;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:600;line-height:1;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:var(--text);cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.plat-week-switcher__btn:disabled{opacity:.35;cursor:not-allowed}.plat-week-switcher__btn:not(:disabled):active{transform:scale(.96)}.plat-gg-card{border-radius:16px;overflow:hidden;border:1px solid var(--border);background:linear-gradient(165deg,#1c2026,#0e1014);box-shadow:0 6px 24px #0000004d}.plat-gg-card--grab{border-color:#00b14f59;box-shadow:0 6px 28px #00b14f14}.plat-gg-card--gojek{border-color:#00aa1359;box-shadow:0 6px 28px #00aa1314}.plat-gg-card__head{padding:.65rem 1rem;font-weight:800;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}.plat-gg-card--grab .plat-gg-card__head{background:linear-gradient(90deg,rgba(0,177,79,.25),transparent);color:#5ee9a0}.plat-gg-card--gojek .plat-gg-card__head{background:linear-gradient(90deg,rgba(0,170,19,.25),transparent);color:#6be87a}.plat-gg-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.65rem .75rem .85rem}.plat-gg-grid .plat-metric{background:#00000040}.plat-week-gg__title{font-weight:700;font-size:.9rem;margin-bottom:.5rem;padding-left:.15rem;color:var(--text)}.plat-hint{font-size:.72rem!important;margin-top:.5rem!important}.plat-charts-section{margin-top:.35rem}.plat-charts-section__title{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin:0 0 .5rem;font-weight:700;opacity:.95}.plat-panel--fb .plat-charts-section__title{color:#7eb8ff}.plat-charts-section--solo{margin-top:0}.plat-chart-block{margin-top:.85rem;padding:.75rem .65rem .65rem;border-radius:14px;background:linear-gradient(165deg,#ffffff0a,#0000001f);border:1px solid rgba(255,255,255,.07);box-shadow:0 8px 32px #00000040}.plat-chart-block:first-of-type{margin-top:.25rem}.plat-chart-caption{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.35rem;font-weight:600}.plat-chart-sub{margin:0 0 .5rem;font-size:.68rem;line-height:1.35;color:var(--muted);opacity:.88}.plat-chart-block--spend-clicks .plat-chart-wrap--tall{height:300px}.plat-chart-wrap{position:relative;height:220px;width:100%}.plat-chart-wrap--short{height:180px}.plat-chart-wrap--mid{height:240px}.plat-chart-wrap--tall{height:280px}.plat-chart-wrap--gg-compare{height:260px}.plat-chart-hint{margin:0 0 .6rem;font-size:.72rem;line-height:1.4;color:var(--muted)}.plat-roas-strip{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid rgba(255,255,255,.08)}.plat-roas-strip__item{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .35rem;border-radius:10px;background:#0003;border:1px solid rgba(110,231,183,.15)}.plat-roas-strip__svc{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6ee7b7}.plat-roas-strip__label{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.plat-roas-strip__val{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent)}h1{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .35rem}.sub{color:var(--muted);font-size:.9rem;margin:0 0 1.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1rem;margin-bottom:.75rem}label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.35rem}input{width:100%;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:1rem}input:focus{outline:none;border-color:var(--accent-dim);box-shadow:0 0 0 3px #3dff8a1f}button,.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1rem;border:none;border-radius:12px;font-weight:600;font-size:1rem;cursor:pointer;background:linear-gradient(135deg,#3dff8a,#1ec96a);color:#041208;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.err{color:var(--danger);font-size:.88rem;margin:.5rem 0 0}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.stat{padding:.65rem .75rem;border-radius:10px;background:var(--bg);border:1px solid var(--border)}.stat .v{font-size:1.15rem;font-weight:700}.stat .k{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.nav-bottom{position:fixed;bottom:0;left:0;right:0;display:flex;gap:0;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0)}.nav-bottom a{flex:1;text-align:center;padding:.75rem;font-size:.8rem;color:var(--muted);text-decoration:none}.nav-bottom a.active{color:var(--accent);font-weight:600}.nav-bottom--admin a{font-size:.72rem;padding:.65rem .35rem}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.admin-tabs button{flex:1;width:auto;padding:.55rem .5rem;font-size:.85rem;background:var(--surface);color:var(--muted);border:1px solid var(--border)}.admin-tabs button.active{color:var(--accent);border-color:var(--accent-dim);background:#3dff8a14}.admin-designer-link{display:block;text-align:center;text-decoration:none;margin-bottom:1rem;padding:.65rem .75rem;font-size:.88rem;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--accent-dim);border-radius:10px}.admin-designer-link:hover{color:var(--accent)}.designer-section-title{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 .5rem}.designer-toggle{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--muted);margin-bottom:.85rem;cursor:pointer}.designer-task-card{font-size:.82rem;margin-bottom:.65rem}.designer-task-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.designer-task-num{font-size:.72rem}.designer-task-meta{font-size:.8rem;margin-bottom:.25rem}.designer-task-source{font-size:.72rem!important;color:var(--accent)!important;opacity:.9}.designer-task-body{margin:.45rem 0 .35rem;white-space:pre-wrap;word-break:break-word;line-height:1.35;color:var(--text)}.designer-task-foot{margin-top:.25rem!important}.designer-overdue{color:var(--danger);font-weight:600}.designer-prio{display:inline-block;font-size:.68rem;font-weight:700;padding:.2rem .45rem;border-radius:6px;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em}.designer-prio--p0{color:#fecaca;border-color:#7f1d1d;background:#f871711f}.designer-prio--p1{color:#fdba74;border-color:#9a3412;background:#fb923c1a}.designer-prio--p2{color:#fde047;border-color:#854d0e;background:#eab3081a}.designer-prio--p3{color:var(--muted);background:var(--bg)}.designer-prio--pending{margin-top:.45rem;color:var(--muted);border-style:dashed}.admin-user-card{font-size:.88rem;margin-bottom:.65rem}.admin-user-card .row{display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:center;margin-top:.5rem}.admin-user-card .badge{font-size:.68rem;padding:.15rem .45rem;border-radius:6px;background:var(--bg);border:1px solid var(--border);color:var(--muted)}.admin-user-card .badge.on{color:var(--accent);border-color:var(--accent-dim)}.admin-user-card button.row-btn{width:auto;flex:1;min-width:5.5rem;padding:.45rem .5rem;font-size:.78rem}.admin-list-plain{list-style:none;margin:0;padding:0}.admin-list-plain li{padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:1rem}.admin-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1rem;width:100%;max-width:24rem;max-height:85vh;overflow:auto}.admin-modal h2{font-size:1.05rem;margin:0 0 .75rem}.admin-modal select{width:100%;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:1rem;margin-bottom:.75rem}.logo{font-weight:800;letter-spacing:.04em;font-size:.85rem;color:var(--accent);margin-bottom:.25rem}
