@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}*{box-sizing:border-box}:root{--bg:#f7f7f5;--panel:#ffffff;--ink:#1c1c1a;--muted:#6f6f6a;--line:#e4e4df;--accent:#0f766e;--accent-ink:#ffffff;--danger:#b42318;--amber:#b45309;--green:#047857;--grey:#6b7280}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-inter),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.45}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:7px 14px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,white)}button.linkish{border:none;background:none;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:2px}button.linkish.danger-link{color:var(--danger)}input,select,textarea{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 10px}input:disabled,select:disabled,textarea:disabled{background:var(--bg);color:var(--muted)}.app{max-width:860px;margin:0 auto;padding:0 20px 40px}.app.wide{max-width:1500px}.topbar{justify-content:space-between;padding:14px 0}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px}.brand .mark{font-weight:700;letter-spacing:.01em}.brand .dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}.sub{color:var(--muted);font-size:12.5px}.backlink{color:var(--ink);text-decoration:none;font-weight:600}.centered{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.notice{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;text-align:center;margin-top:18px}.notice p{margin:4px 0}.dropzone{margin-top:8px;border:2px dashed var(--line);border-radius:14px;background:var(--panel);padding:34px 20px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:border-color .15s,background .15s}.dropzone.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,white)}.dropzone.busy{opacity:.7;cursor:progress}.campaign-list{margin-top:20px;display:flex;flex-direction:column;gap:10px}.campaign-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;text-decoration:none;color:var(--ink)}.campaign-card:hover{border-color:var(--accent)}.card-main{display:flex;flex-direction:column;gap:2px}.card-title{font-weight:600}.card-sub{font-size:12.5px}.card-sub,.chip{color:var(--muted)}.chip{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);white-space:nowrap}.chip-active{background:color-mix(in srgb,var(--green) 12%,white);color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,white)}.chip-confirmed,.chip-pushed{background:color-mix(in srgb,var(--accent) 10%,white);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,white)}.chip-parsing,.chip-review{background:color-mix(in srgb,var(--amber) 10%,white);color:var(--amber);border-color:color-mix(in srgb,var(--amber) 30%,white)}.chip-push_failed{background:color-mix(in srgb,var(--danger) 10%,white);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,white)}.badge{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px}.b-matched{background:color-mix(in srgb,var(--green) 12%,white);color:var(--green)}.b-ambiguous{background:color-mix(in srgb,var(--amber) 14%,white);color:var(--amber)}.b-unmatched{background:color-mix(in srgb,var(--danger) 10%,white);color:var(--danger)}.b-excluded{background:var(--bg);color:var(--grey)}.detail{display:grid;grid-template-columns:minmax(0,1fr) 400px;grid-gap:18px;gap:18px;align-items:start}@media (max-width:1100px){.detail{grid-template-columns:1fr}}.detail-head{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}.head-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.title-input{font-size:17px;font-weight:700;border:1px solid transparent;background:transparent;flex:1 1;min-width:200px;padding:4px 6px}.title-input:focus,.title-input:hover:not(:disabled){border-color:var(--line);background:var(--panel)}.window-row label{align-items:center;gap:6px}.banner-label,.window-row label{display:flex;color:var(--muted);font-size:12.5px}.banner-label{flex-direction:column;gap:4px;width:100%}.banner-input{width:100%;resize:vertical}.actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}.errors{margin:4px 0 0;padding:10px 14px 10px 28px;background:color-mix(in srgb,var(--danger) 6%,white);border:1px solid color-mix(in srgb,var(--danger) 25%,white);border-radius:10px;color:var(--danger)}.errors li{margin:2px 0}.tabs{display:flex;align-items:center;gap:6px;margin:14px 0 10px;flex-wrap:wrap}.tabs button{border-radius:999px;padding:5px 14px}.tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}.tab-counts{margin-left:auto;display:flex;gap:6px}.items-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow-x:auto}table.items{width:100%;border-collapse:collapse;font-size:13px}.items th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px;white-space:nowrap}.items td,.items th{border-bottom:1px solid var(--line)}.items td{padding:8px 10px;vertical-align:top}.items tr:last-child td{border-bottom:none}.items tr.dim td{opacity:.45}.items .num{text-align:right;white-space:nowrap}.prod{min-width:180px}.prod-name{display:block;font-weight:600}.prod-sub{display:block;color:var(--muted);font-size:12px}.prod-none{color:var(--danger);font-style:italic}.pdf{max-width:260px}.price-input{width:84px;text-align:right;padding:4px 8px}.push-ok{color:var(--green)}.push-err,.push-ok{display:inline-block;font-size:11px;font-weight:600}.push-err{color:var(--danger)}.picker-row td{background:var(--bg)}.picker{flex-direction:column;padding:6px 2px}.picker,.picker-search{display:flex;gap:8px}.picker-search input{flex:1 1}.picker-results{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}.picker-product{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.picker-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 0}.picker-line.variation{padding-left:16px}.vouchers{display:flex;flex-direction:column;gap:10px}.voucher-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px}.v-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.v-row label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.v-row label input,.v-row label select{width:110px}.v-row label.check{flex-direction:row;align-items:center;gap:6px;padding-bottom:8px}.v-actions{display:flex;gap:10px}.preview section{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:12px}.preview h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.log pre,.preview pre{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;overflow-x:auto;font-size:12px;max-height:360px}.banner-preview{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.banner-demo{margin-top:4px;background:#454545;color:#fff;border-radius:6px;padding:8px 12px;font-size:13px;text-align:center}.promo-render{border:1px dashed var(--line);border-radius:8px;padding:12px 16px;margin-bottom:8px}.log{display:flex;flex-direction:column;gap:8px}.log-entry{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 14px}.log-entry.failed{border-color:color-mix(in srgb,var(--danger) 35%,white)}.log-entry summary{display:flex;gap:14px;align-items:center;cursor:pointer;list-style:none}.log-action{font-weight:600}.detail-right{position:-webkit-sticky;position:sticky;top:14px}.chat-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;height:calc(100vh - 90px);min-height:480px}.chat-scroll{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.chat-empty{color:var(--muted);font-size:13px;padding:8px 4px}.turn{gap:8px}.msg,.turn{display:flex;flex-direction:column}.msg{gap:3px;max-width:92%}.msg.us{align-self:flex-end;align-items:flex-end}.msg.them{align-self:flex-start;align-items:flex-start}.who{font-size:11.5px;color:var(--muted);display:flex;gap:8px}.when{opacity:.7}.bubble{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:8px 12px;white-space:pre-wrap;word-break:break-word}.msg.us .bubble{background:color-mix(in srgb,var(--accent) 8%,white);border-color:color-mix(in srgb,var(--accent) 22%,white)}.attis{display:flex;gap:6px;flex-wrap:wrap}.attis img{max-width:180px;border-radius:8px;border:1px solid var(--line)}.attis a{color:var(--accent);font-size:12.5px}.tl{border-left:2px solid var(--line);margin-left:6px;padding-left:12px;display:flex;flex-direction:column;gap:6px}.tl-entry{display:flex;gap:8px;align-items:flex-start;font-size:12.5px}.tl-entry.reverted .tl-text{text-decoration:line-through;color:var(--muted)}.tl-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:6px;flex-shrink:0}.tl-body{flex:1 1}.tl-meta{display:flex;gap:8px;color:var(--muted);font-size:11px}.tl-tag{border:1px solid var(--line);padding:0 6px}.tl-revert,.tl-tag{border-radius:999px}.tl-revert{font-size:11.5px;padding:2px 10px}.status{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px}.pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.composer{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);align-items:flex-end}.composer textarea{flex:1 1;resize:none;max-height:168px}.send{background:var(--accent);border-color:var(--accent);color:#fff}