:root{--bg: #0b0f17;--panel: #131a26;--panel-2: #1b2434;--border: #263248;--text: #e6edf6;--muted: #93a1b5;--accent: #4f8cff;--accent-2: #7c5cff;--good: #34d399;--warn: #fbbf24;--bad: #f87171;--radius: 12px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent);text-decoration:none}.app{display:flex;min-height:100%}.sidebar{width:240px;flex:0 0 240px;background:var(--panel);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column;gap:6px}.brand{font-weight:700;font-size:16px;letter-spacing:.3px;padding:4px 8px 14px}.brand small{display:block;color:var(--muted);font-weight:500;font-size:11px}.nav-section{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin:14px 8px 4px}.nav a{display:block;padding:8px 10px;border-radius:8px;color:var(--text);font-weight:500}.nav a.active,.nav a:hover{background:var(--panel-2)}.main{flex:1;min-width:0;padding:24px 28px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.h1{font-size:20px;font-weight:700;margin:0}.sub{color:var(--muted);margin:2px 0 0}.badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.badge.mock{color:var(--warn);border-color:#4a3d1a;background:#241d0c}.badge.live{color:var(--good);border-color:#16432f;background:#0c2119}.badge.custom{color:var(--accent);border-color:#1e3559;background:#0c1a2e}.grid{display:grid;gap:16px}.cols-2{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.cols-3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card h3{margin:0 0 10px;font-size:15px}.card .muted{color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}.kpis-4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:2px}.kpi .n{font-size:24px;font-weight:700;line-height:1.2}.kpi .l{color:var(--muted);font-size:12px;line-height:1.3;min-height:2.6em}a.kpi-link{color:inherit;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.kpi .kpi-open{margin-top:auto;padding-top:8px;font-size:12px;font-weight:650;line-height:1.2;min-height:1.2em;color:var(--accent)}.kpi .kpi-open.is-spacer{visibility:hidden}a.kpi-link:hover,a.kpi-link:focus-visible{border-color:var(--accent);background:var(--panel-2);outline:none}a.kpi-link:hover .l,a.kpi-link:focus-visible .l{color:var(--text)}a.kpi-link:active{transform:translateY(1px)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}tbody tr:hover{background:var(--panel-2)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.postback-table{max-height:320px;overflow:auto}.postback-table thead th{position:sticky;top:0;background:var(--panel);z-index:1}.people-table{max-height:min(70vh,640px);overflow:auto}.people-table thead th{position:sticky;top:0;background:var(--panel);z-index:1}.spend-track{height:6px;margin-top:6px;background:var(--panel-2);border:1px solid var(--border);border-radius:99px;overflow:hidden;min-width:72px}.spend-fill{height:100%;background:var(--accent);border-radius:99px}.pill{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600}.pill.active,.pill.rewarded{background:#0c2119;color:var(--good)}.pill.in_progress,.pill.started{background:#0c1a2e;color:var(--accent)}.pill.completed{background:#181140;color:var(--accent-2)}.pill.pending{background:#241d0c;color:var(--warn)}.pill.expired,.pill.void,.pill.redeemed{background:#241016;color:var(--bad)}.pill.paused,.pill.verifying{background:#241d0c;color:var(--warn)}.pill.draft{background:#0c1a2e;color:var(--accent)}.pill.archived{background:#1a1f2a;color:var(--muted)}button.danger{color:var(--bad);border-color:#4a1c1c}label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}input,select,textarea{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 11px;font:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}.row{display:flex;gap:12px}.row>*{flex:1}button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 14px;font-weight:600;cursor:pointer;font:inherit}button:hover{filter:brightness(1.08)}button.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}button.small{padding:5px 10px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}.identity{display:flex;align-items:center;gap:8px}.identity select{width:auto}.toast{position:fixed;bottom:20px;right:20px;background:var(--panel-2);border:1px solid var(--border);padding:12px 16px;border-radius:10px;max-width:360px;box-shadow:0 10px 30px #0006}.toast.good{border-color:#16432f}.toast.bad{border-color:#4a1c1c}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.right{text-align:right}.stack{display:flex;flex-direction:column;gap:6px}.hint{color:var(--muted);font-size:12px}.qr{background:#fff;padding:8px;border-radius:10px;width:max-content}.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px}.crumb-sep{color:var(--muted);font-size:12px}.crumb-btn{display:inline-flex;align-items:center;background:transparent;border:1px solid var(--border);color:var(--text);padding:4px 10px;font-size:12px;font-weight:600;border-radius:8px;text-decoration:none;line-height:1.3}.crumb-btn:hover{border-color:var(--accent);color:var(--accent)}.crumb-btn.current{background:var(--panel-2);color:var(--muted);cursor:default;pointer-events:none}.tree-region{font-weight:700;font-size:13px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}.tree-city{font-size:12px;font-weight:600;color:var(--text);margin:6px 0 4px 2px}.loc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;margin-bottom:6px;color:var(--text);background:var(--panel-2);cursor:pointer}.loc-row:hover{border-color:var(--accent)}.loc-row.on{border-color:var(--accent);background:#0c1a2e}.loc-row input[type=checkbox]{width:auto;margin:0;accent-color:var(--accent);flex-shrink:0}.loc-row-body{flex:1;min-width:0}.loc-row-name{font-weight:650}.loc-row-meta{display:flex;gap:8px;flex-shrink:0;align-items:center}.loc-open{font-size:12px;font-weight:650;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease}.loc-row:hover .loc-open,.loc-row:focus-within .loc-open,.city-venue:hover .loc-open,.city-venue:focus-within .loc-open{opacity:1;pointer-events:auto}.city-list{max-height:320px;overflow-y:auto;padding-right:4px}a.loc-row{color:inherit}.city-venue{padding:12px 0;border-top:1px solid var(--border)}.city-venue:first-of-type{border-top:none;padding-top:4px}.loc-list{gap:14px;overflow-y:auto;overscroll-behavior:auto;padding-right:4px}.loc-list .tree-city{position:sticky;top:0;z-index:1;background:var(--panel);padding:4px 0;margin:0}.funnel-flow{display:flex;flex-direction:column;gap:16px}.funnel-row{display:flex;align-items:stretch;gap:8px}.funnel-square{flex:1 1 0;min-width:0;min-height:148px;display:flex;flex-direction:column;justify-content:space-between;padding:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;overflow:hidden;color:inherit;text-decoration:none}a.funnel-square-link{cursor:pointer;transition:border-color .15s ease,background .15s ease}a.funnel-square-link .kpi-open{font-size:10px;color:var(--accent);font-weight:650}a.funnel-square-link:hover,a.funnel-square-link:focus-visible{border-color:var(--accent);background:#1e2838;outline:none}.funnel-square-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.funnel-square-step{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.funnel-arrow{flex:0 0 44px;align-self:center;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--accent);font-size:13px;font-weight:750;letter-spacing:-.02em;text-align:center}.funnel-arrow-mark{display:block;width:28px;height:2px;background:var(--accent);position:relative;border-radius:2px}.funnel-arrow-mark:after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);border:5px solid transparent;border-left-color:var(--accent)}.funnel-arrow-lbl{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.funnel-square-title{font-weight:650;font-size:13px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.funnel-square-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;width:100%;text-align:center}.funnel-square-stats>*{min-width:0;overflow:hidden}.funnel-stat-n{font-size:14px;font-weight:750;letter-spacing:-.04em;line-height:1.15;font-variant-numeric:tabular-nums;overflow:hidden;white-space:nowrap}.funnel-stat-l{margin-top:2px;font-size:9px;font-weight:650;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.filter-chip{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);color:var(--text);padding:5px 10px;font-size:12px;font-weight:600;border-radius:999px}.filter-chip .hint{margin:0}.filter-chip.on{background:var(--panel-2);border-color:var(--accent);color:var(--accent)}.event-filter{display:inline-flex;align-items:center;gap:8px;margin:0;flex:0 0 auto;color:var(--muted);font-size:12px;font-weight:650;white-space:nowrap}.event-filter select{width:auto;min-width:13.5rem;flex:0 0 auto;padding:8px 32px 8px 11px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%239aa4b2' d='M1.4.8 6 5.4 10.6.8 12 2.2 6 8.2 0 2.2z'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:10px 7px;cursor:pointer}.city-picker{position:relative;width:100%;margin:10px 0 14px}.city-menu{position:absolute;z-index:20;top:calc(100% + 6px);right:0;left:0;max-height:220px;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #00000073;padding:6px}.city-menu-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}.city-menu-actions{display:flex;gap:6px}.city-option{display:flex;align-items:center;gap:8px;margin:0;padding:7px 8px;border-radius:8px;color:var(--text);font-size:13px;cursor:pointer}.city-option:hover,.city-option.on{background:var(--panel-2)}.city-option input[type=checkbox]{width:auto;margin:0;accent-color:var(--accent);flex-shrink:0}.city-option-name{flex:1;min-width:0}button.ghost.on{border-color:var(--accent);color:var(--accent);background:#0c1a2e}.notify-editor{display:grid;grid-template-columns:minmax(420px,1fr) 320px;gap:28px;align-items:start}.notify-phone-col{position:sticky;top:16px}.notify-preview{width:266px}.iphone17-stage{--pt: 1px;--scale: .6;--sw: 402;--sh: 874;--bezel: 12px;width:calc((var(--sw) * var(--pt) + var(--bezel) * 2) * var(--scale));height:calc((var(--sh) * var(--pt) + var(--bezel) * 2) * var(--scale))}.iphone17-scale{width:calc(var(--sw) * var(--pt) + var(--bezel) * 2);height:calc(var(--sh) * var(--pt) + var(--bezel) * 2);transform:scale(var(--scale));transform-origin:top left}.iphone17-chassis{width:calc(var(--sw) * var(--pt) + var(--bezel) * 2);height:calc(var(--sh) * var(--pt) + var(--bezel) * 2);background:linear-gradient(180deg,#2a2d33,#16181d 40%,#0e1014);border-radius:62px;padding:var(--bezel);position:relative;box-shadow:inset 0 0 0 1px #3a3e46,0 0 0 1px #0a0b0e,0 22px 50px #00000080}.iphone17-btn{position:absolute;background:#2c3038;box-shadow:inset 0 0 0 1px #4a4f58}.iphone17-btn.action{left:-3px;top:168px;width:3px;height:32px;border-radius:2px 0 0 2px}.iphone17-btn.vol-up{left:-3px;top:220px;width:3px;height:52px;border-radius:2px 0 0 2px}.iphone17-btn.vol-down{left:-3px;top:282px;width:3px;height:52px;border-radius:2px 0 0 2px}.iphone17-btn.power{right:-3px;top:248px;width:3px;height:78px;border-radius:0 2px 2px 0}.iphone17-screen{width:calc(var(--sw) * var(--pt));height:calc(var(--sh) * var(--pt));border-radius:50px;overflow:hidden;position:relative;background:radial-gradient(90% 70% at 70% 10%,rgba(90,140,200,.35),transparent 50%),radial-gradient(80% 60% at 20% 80%,rgba(40,30,70,.55),transparent 55%),linear-gradient(180deg,#5d6f90,#2b3654 42%,#141a2a)}.iphone17-status{display:flex;justify-content:space-between;align-items:center;height:54px;padding:14px 28px 0;color:#fff;font-size:16px;font-weight:600}.iphone17-status-right{display:flex;align-items:center;gap:6px}.iphone17-status-right svg{display:block}.iphone17-island{position:absolute;top:14px;left:50%;transform:translate(-50%);width:126px;height:36px;border-radius:20px;background:#000}.iphone17-lock-time{text-align:center;color:#fff;font-weight:200;font-size:84px;letter-spacing:-3px;line-height:1;margin-top:28px}.iphone17-lock-date{text-align:center;color:#ffffffeb;font-size:20px;font-weight:500;margin:6px 0 28px}.ios-note{margin:0 16px;background:#ffffffc7;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);color:#111;border-radius:16px;padding:12px 14px;box-shadow:0 8px 24px #0000002e}.ios-note-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ios-note-icon{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,#4f8cff,#7c5cff);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 22px}.ios-note-app{flex:1;font-size:13px;font-weight:500;color:#6b7280;letter-spacing:.2px}.ios-note-time{font-size:13px;color:#8b919c}.ios-note-title{display:block;font-weight:600;font-size:15px;line-height:1.25;color:#111}.ios-note-body{display:block;font-weight:400;font-size:15px;line-height:1.3;color:#1f2937;margin-top:1px}.notify-caption{margin:10px 2px 0;color:var(--muted);font-size:12px}.notify-device-label{margin:8px 2px 0;color:var(--text);font-size:12px;font-weight:650}.when-setup{display:flex;flex-direction:column;gap:12px;margin:16px 0 8px}.when-setup-head h3{margin:0 0 4px;font-size:15px}.when-step{padding:12px 14px 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.when-step.is-overridden{opacity:.55}.when-step-kicker{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.when-step h4{margin:2px 0 8px;font-size:14px;font-weight:700}.when-step .hint{margin:0 0 10px}.when-step .hint:last-child{margin-bottom:0}.when-days,.when-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.when-chip{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:650;line-height:1.2}.when-chip:hover{border-color:var(--accent)}.when-chip.on{background:#0c1a2e;border-color:var(--accent);color:var(--accent)}.when-override{border-radius:10px;text-align:left;max-width:100%;white-space:normal}.when-recap-step{border-color:#1e3559;background:#0c1a2e}.when-recap{margin:0;font-size:14px;font-weight:650;line-height:1.45;color:var(--text)}.about-list{display:flex;flex-direction:column;gap:8px}.about-card{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:12px 14px;font:inherit}.about-card:hover{border-color:var(--accent)}.about-card.on{background:#0c1a2e;border-color:var(--accent)}.about-card-title{font-size:14px;font-weight:700}.about-card-blurb{margin:4px 0 0;color:var(--muted);font-size:13px;font-weight:400;line-height:1.4}.send-rules-section{margin:16px 0 4px;padding:12px 14px 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.send-rules-section h4{margin:0 0 8px;font-size:14px;font-weight:700}.send-rules-section .hint{margin:6px 0 0}@media (max-width: 980px){.notify-editor{grid-template-columns:1fr}.notify-phone-col{position:static}}.copy-checks{margin:0;padding-left:18px}.copy-checks li{margin:4px 0}.copy-checks .ok{color:var(--good)}.copy-checks .bad{color:var(--warn)}
