*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);font-weight:var(--fw-regular);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";line-height:1.5}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.num{font-variant-numeric:tabular-nums}.icon{flex:none;display:block}[data-platform=tiktok]{--pc:var(--p-tiktok);--pt:#fff0f3}[data-platform=facebook]{--pc:var(--p-facebook);--pt:#eef4ff}[data-platform=instagram]{--pc:var(--p-instagram);--pt:#fdf0f5}[data-platform=youtube]{--pc:var(--p-youtube);--pt:#fff0f0}[data-platform=x]{--pc:var(--p-x);--pt:#f2f3f5}[data-platform=custom]{--pc:var(--p-custom);--pt:#f2f3f5}:root[data-theme=dark] [data-platform]{--pt:color-mix(in srgb, var(--pc) 16%, var(--surface))}:root[data-theme=dark] [data-platform=x]{--pc:var(--text)}.ptag{border-radius:var(--r-sm);background:var(--pt,var(--surface-2));height:16px;color:var(--pc,var(--text-muted));font-size:10px;font-weight:var(--fw-medium);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;padding:0 4px;line-height:1;display:inline-flex}.dot{background:var(--dot,var(--text-muted));border-radius:50%;flex:none;width:6px;height:6px}.app{height:100%;max-width:640px;height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;margin:0 auto;display:flex}.topbar{align-items:center;gap:var(--sp-sm);min-height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--sp-xs) 0 var(--sp-md);background:var(--surface);border-bottom:1px solid var(--border);flex:none;display:flex}.brand{align-items:center;gap:var(--sp-sm);flex:1;min-width:0;display:flex}.brand-mark{border-radius:var(--r-control);flex:none;width:26px;height:26px}.brand-text{min-width:0;line-height:1.25}.brand-name{font-family:var(--font-display);font-size:var(--fs-title);font-weight:var(--fw-semibold);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.conn{font-size:var(--fs-caption);color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;display:flex}.conn[data-online=true]{--dot:var(--success)}.conn[data-online=false]{--dot:var(--danger)}.live-tag{border-radius:var(--r-sm);background:var(--surface-2);height:20px;color:var(--text-muted);font-size:var(--fs-caption);font-weight:var(--fw-medium);white-space:nowrap;flex:none;align-items:center;gap:5px;padding:0 6px;display:inline-flex}.live-tag[data-live=true]{background:var(--live-soft);color:var(--live);font-weight:var(--fw-semibold);--dot:var(--live)}.live-tag[data-ended=true]{color:var(--text-secondary)}.live-tag[data-live=true] .dot{animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}.icon-btn{border-radius:var(--r-control);width:36px;height:36px;color:var(--text-secondary);background:0 0;border:0;flex:none;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2)}.icon-btn:active{background:var(--border)}.icon-btn.sm{width:28px;height:28px}.banner{align-items:flex-start;gap:var(--sp-sm);margin:var(--sp-sm) var(--sp-md) 0;padding:10px var(--sp-md);border-radius:var(--r-card);border:1px solid color-mix(in srgb, var(--tone) 28%, transparent);background:var(--tone-soft);flex:none;display:flex}.banner[data-tone=danger]{--tone:var(--danger);--tone-soft:var(--danger-soft)}.banner[data-tone=warning]{--tone:var(--warning);--tone-soft:var(--warning-soft)}.banner>.icon{color:var(--tone);margin-top:2px}.banner-body{flex:1;min-width:0}.banner-title{font-weight:var(--fw-medium)}.banner-sub{color:var(--text-secondary);font-size:var(--fs-caption)}.btn-outline{height:var(--h-md);padding:0 var(--sp-md);border-radius:var(--r-control);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:var(--fs-body);font-weight:var(--fw-medium);white-space:nowrap;flex:none;justify-content:center;align-items:center;gap:6px;display:inline-flex}.btn-outline:active{background:var(--surface-2)}.btn-outline:disabled{color:var(--text-disabled);border-color:var(--border)}.strip{padding:var(--sp-sm) var(--sp-md) 0;scrollbar-width:none;flex:none;gap:6px;display:flex;overflow-x:auto}.strip::-webkit-scrollbar{display:none}.stag{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);height:24px;color:var(--text-secondary);font-size:var(--fs-caption);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.stag .dot{background:var(--state,var(--text-muted))}.stag .sep{color:var(--border-strong)}.stag .state{color:var(--text);font-weight:var(--fw-medium)}.stag[data-error=true]{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 28%, transparent);color:var(--danger)}.stag[data-error=true] .state{color:var(--danger)}.stag .icon{color:var(--text-secondary)}.kpi-card{margin:var(--sp-sm) var(--sp-md) 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex:none}.kpis{grid-template-columns:repeat(3,1fr);padding:10px 0 8px;display:grid}.kpi{padding:0 var(--sp-md);min-width:0}.kpi+.kpi{border-left:1px solid var(--border)}.kpi-label{font-size:var(--fs-caption);color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;display:flex}.kpi-label .icon{color:var(--text-secondary)}.kpi-value{font-size:var(--fs-kpi);font-weight:var(--fw-semibold);letter-spacing:-.01em;white-space:nowrap;margin-top:2px;line-height:1.2}.kpi.gift .kpi-value{color:var(--gift)}.kpi-toggle{width:100%;height:30px;padding:0 var(--sp-md);border:0;border-top:1px solid var(--surface-2);color:var(--text-secondary);font-size:var(--fs-caption);font-weight:var(--fw-medium);background:0 0;justify-content:space-between;align-items:center;display:flex}.ptable{border-collapse:collapse;width:100%;font-size:var(--fs-body)}.ptable th,.ptable td{height:30px;padding:0 var(--sp-md);border-top:1px solid var(--surface-2);text-align:right;white-space:nowrap}.ptable th{height:26px;font-size:var(--fs-caption);font-weight:var(--fw-regular);color:var(--text-muted)}.ptable th .icon{vertical-align:-3px;color:var(--text-secondary);display:inline-block}.ptable th:first-child,.ptable td:first-child{text-align:left}.ptable td.gift{color:var(--gift)}.ptable .cap{align-items:center;gap:6px;display:inline-flex}.ptable .muted{color:var(--text-muted)}.segmented{margin:var(--sp-sm) var(--sp-md) 0;border-radius:var(--r-control);background:var(--surface-2);flex:none;gap:2px;padding:2px;display:flex}.segmented button{border-radius:var(--r-sm);height:28px;color:var(--text-secondary);font-size:var(--fs-body);font-weight:var(--fw-medium);white-space:nowrap;background:0 0;border:0;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:0 4px;display:inline-flex}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014,0 0 0 .5px #0000000a}.segmented .dot{background:var(--pc)}.feed-card{min-height:0;margin:var(--sp-sm) var(--sp-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;flex:1;display:flex;overflow:hidden}.feed-head{align-items:center;gap:var(--sp-sm);height:36px;padding:0 var(--sp-xs) 0 var(--sp-md);flex:none;display:flex}.feed-title{font-size:var(--fs-body);font-weight:var(--fw-semibold);white-space:nowrap}.feed-title .count{color:var(--text-muted);font-weight:var(--fw-regular)}.feed-head .spacer{flex:1}.tabs{padding:0 var(--sp-xs);border-bottom:1px solid var(--border);scrollbar-width:none;flex:none;align-items:stretch;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{height:32px;padding:0 var(--sp-sm);color:var(--text-secondary);font-size:var(--fs-body);white-space:nowrap;background:0 0;border:0;flex:none;align-items:center;gap:4px;display:inline-flex;position:relative}.tab .icon{color:currentColor}.tab[aria-selected=true]{color:var(--primary);font-weight:var(--fw-medium)}.tab[aria-selected=true]:after{content:"";left:var(--sp-sm);right:var(--sp-sm);background:var(--primary);border-radius:1px;height:2px;position:absolute;bottom:-1px}.check-toggle{height:32px;padding:0 var(--sp-sm);border-radius:var(--r-control);color:var(--text-secondary);font-size:var(--fs-caption);white-space:nowrap;background:0 0;border:0;flex:none;align-items:center;gap:6px;display:inline-flex}.check-toggle .box{border:1px solid var(--border-strong);background:var(--surface);width:14px;height:14px;color:var(--on-primary);border-radius:3px;place-items:center;display:grid}.check-toggle[aria-pressed=true] .box{background:var(--primary);border-color:var(--primary)}.feed-wrap{flex:1;min-height:0;position:relative}.feed{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:100%;margin:0;padding:0;list-style:none;overflow-y:auto}.feed>li+li{border-top:1px solid var(--surface-2)}.feed-empty{height:100%;padding:var(--sp-xl);text-align:center;color:var(--text-muted);font-size:var(--fs-body);place-items:center;display:grid}.feed-empty .icon{margin:0 auto var(--sp-sm);color:var(--border-strong)}.row{width:100%;min-height:40px;padding:10px var(--sp-md);background:var(--surface);color:var(--text);text-align:left;border:0;gap:10px;display:flex}button.row:active{background:var(--bg)}@media (hover:hover){button.row:hover{background:var(--bg)}}.row.fresh{animation:.18s ease-out rowIn}@keyframes rowIn{0%{opacity:0}}.avatar{object-fit:cover;width:28px;height:28px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-secondary);background:var(--surface-2);border-radius:50%;flex:none;place-items:center;display:grid}.row-main{flex:1;min-width:0;display:block}.row-meta{align-items:center;gap:6px;min-height:16px;display:flex}.row-name{font-size:var(--fs-name);font-weight:var(--fw-medium);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.row-time{font-size:var(--fs-caption);color:var(--text-muted);flex:none;margin-left:auto;padding-left:4px}.row-text{font-size:var(--fs-feed);font-weight:var(--fw-regular);color:var(--text);overflow-wrap:anywhere;word-break:break-word;margin-top:2px;line-height:1.45;display:block}.intent{border-radius:var(--r-sm);background:var(--intent-soft);height:16px;color:var(--intent);font-size:10px;font-weight:var(--fw-medium);white-space:nowrap;flex:none;align-items:center;gap:2px;padding:0 4px;display:inline-flex}.feed>li.gift-li,.feed>li.gift-li+li{border-top-color:var(--gift-border)}.row.gift{background:var(--gift-soft)}button.row.gift:active{background:var(--gift-soft);filter:brightness(.98)}.gift-line{color:var(--gift);font-size:var(--fs-feed);flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;display:flex}.gift-line .gift-name{font-weight:var(--fw-semibold)}.row.activity{min-height:32px;color:var(--text-muted);font-size:var(--fs-caption);align-items:center;gap:8px;padding-top:6px;padding-bottom:6px}.row.activity .icon{color:var(--text-muted)}.row.activity b{font-weight:var(--fw-medium);color:var(--text-secondary)}.row.out{justify-content:flex-end}.out-bubble{max-width:88%;padding:var(--sp-sm) 10px;border-radius:var(--r-card);background:var(--primary-soft)}.out-to{font-size:var(--fs-caption);color:var(--text-secondary)}.out-bubble .row-text{margin-top:1px}.out-targets{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.out-target{border-radius:var(--r-sm);background:var(--surface);max-width:100%;min-height:18px;font-size:var(--fs-caption);font-weight:var(--fw-medium);white-space:nowrap;align-items:center;gap:4px;padding:0 6px 0 3px;display:inline-flex}.out-target[data-state=pending]{color:var(--text-muted)}.out-target[data-state=sent]{color:var(--success)}.out-target[data-state=failed]{color:var(--danger);background:var(--danger-soft);white-space:normal;align-items:flex-start;padding-top:1px;padding-bottom:1px;line-height:16px}.out-target[data-state=failed] .icon{margin-top:2px}.new-pill{left:50%;bottom:var(--sp-sm);background:var(--primary);height:30px;color:var(--on-primary);font-size:var(--fs-caption);font-weight:var(--fw-medium);box-shadow:var(--shadow-popup);white-space:nowrap;border:0;border-radius:15px;align-items:center;gap:6px;padding:0 12px;display:inline-flex;position:absolute;transform:translate(-50%)}.composer{gap:var(--sp-sm);padding:var(--sp-sm) var(--sp-md);background:var(--surface);border-top:1px solid var(--border);flex:none;display:flex}.composer-input{height:var(--h-lg);padding:0 var(--sp-md);border-radius:var(--r-control);background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-body);text-align:left;border:1px solid #0000;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.composer-input span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn-icon-primary{width:var(--h-lg);height:var(--h-lg);border-radius:var(--r-control);background:var(--primary);color:var(--on-primary);border:0;flex:none;place-items:center;display:grid}.btn-icon-primary:active{background:var(--primary-active)}.backdrop{z-index:20;background:#1d212973;animation:.15s ease-out fade;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{z-index:21;max-width:640px;max-height:88dvh;padding:var(--sp-sm) var(--sp-lg) calc(var(--sp-lg) + env(safe-area-inset-bottom));background:var(--surface);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:var(--shadow-popup);margin:0 auto;animation:.18s ease-out up;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}@keyframes up{0%{opacity:.6;transform:translateY(16px)}}.grabber{width:36px;height:4px;margin:0 auto var(--sp-xs);background:var(--border);border-radius:2px}.sheet-head{align-items:center;gap:var(--sp-sm);min-height:40px;display:flex}.sheet-title{font-family:var(--font-display);font-size:var(--fs-title);font-weight:var(--fw-semibold);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sheet-head .grow{flex:1}.quote{margin:var(--sp-xs) 0 var(--sp-sm);padding:var(--sp-sm) 10px;border-left:2px solid var(--pc,var(--border-strong));border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2);color:var(--text-secondary);font-size:var(--fs-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.lock{margin-bottom:var(--sp-sm);font-size:var(--fs-caption);color:var(--text-muted);align-items:center;gap:6px;display:flex}.targets{margin:var(--sp-xs) 0 var(--sp-md);flex-wrap:wrap;gap:6px;display:flex}.chip{height:var(--h-md);border-radius:var(--r-control);border:1px solid var(--border);background:var(--surface);max-width:100%;color:var(--text);font-size:var(--fs-body);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;padding:0 10px;display:inline-flex;overflow:hidden}.chip:active{background:var(--surface-2)}.chip[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.chip:disabled{color:var(--text-disabled);background:var(--surface-2)}.chip .dot{background:var(--pc)}.textarea{resize:none;width:100%;min-height:76px;max-height:40dvh;padding:var(--sp-sm) var(--sp-md);border-radius:var(--r-control);background:var(--surface-2);border:1px solid #0000;font-size:16px;line-height:1.45;transition:border-color .15s,box-shadow .15s;display:block}.textarea:hover{border-color:var(--border-strong)}.textarea:focus{background:var(--surface);border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.counter-row{justify-content:space-between;gap:var(--sp-sm);margin:6px 0 var(--sp-md);font-size:var(--fs-caption);color:var(--text-muted);display:flex}.counter[data-over=true]{color:var(--danger);font-weight:var(--fw-medium)}.section-label{font-size:var(--fs-caption);font-weight:var(--fw-medium);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:center;margin:0 0 6px;display:flex}.link-btn{height:28px;color:var(--primary);font-size:var(--fs-caption);font-weight:var(--fw-medium);letter-spacing:0;text-transform:none;background:0 0;border:0;align-items:center;gap:4px;padding:0 4px;display:inline-flex}.quick{margin-bottom:var(--sp-lg);flex-wrap:wrap;gap:6px;display:flex}.btn-primary{width:100%;height:var(--h-lg);border-radius:var(--r-control);background:var(--primary);color:var(--on-primary);font-size:var(--fs-body);font-weight:var(--fw-medium);border:0;justify-content:center;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{background:var(--primary-active)}.btn-primary:disabled{background:color-mix(in srgb, var(--primary) 40%, var(--surface))}.hint{margin-top:var(--sp-sm);font-size:var(--fs-caption);color:var(--text-muted);text-align:center;justify-content:center;align-items:center;gap:6px;display:flex}.hint.warn{color:var(--warning)}.setting{justify-content:space-between;align-items:center;gap:var(--sp-md);border-bottom:1px solid var(--border);min-height:48px;display:flex}.setting-label{font-weight:var(--fw-medium)}.setting-sub{font-size:var(--fs-caption);color:var(--text-muted)}.seg{border-radius:var(--r-control);background:var(--surface-2);gap:2px;padding:2px;display:inline-flex}.seg button{border-radius:var(--r-sm);height:28px;color:var(--text-secondary);font-size:var(--fs-body);font-weight:var(--fw-medium);background:0 0;border:0;padding:0 14px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.select{border-radius:var(--r-control);background:var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2386909C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;max-width:55%;height:32px;color:var(--text);font:inherit;font-size:16px;font-weight:var(--fw-medium);appearance:none;text-overflow:ellipsis;border:1px solid #0000;flex:none;padding:0 28px 0 10px}.select:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.switch{appearance:none;background:var(--border-strong);border-radius:11px;flex:none;width:40px;height:22px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch:checked{background:var(--primary)}.switch:checked:after{transform:translate(18px)}.switch:disabled{opacity:.5}.qr-list{margin:0 0 var(--sp-sm);padding:0;list-style:none}.qr-item{align-items:center;gap:var(--sp-sm);border-bottom:1px solid var(--border);min-height:40px;display:flex}.qr-item span{overflow-wrap:anywhere;flex:1;min-width:0}.qr-add{gap:var(--sp-sm);display:flex}.input{min-width:0;height:var(--h-lg);padding:0 var(--sp-md);border-radius:var(--r-control);background:var(--surface-2);border:1px solid #0000;flex:1;font-size:16px}.input:focus{background:var(--surface);border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft);outline:none}.qr-add .btn-outline{height:var(--h-lg)}.fine{margin-top:var(--sp-lg);font-size:var(--fs-caption);color:var(--text-muted);line-height:1.6}.toast{top:calc(60px + env(safe-area-inset-top));z-index:30;align-items:center;gap:var(--sp-sm);width:max-content;max-width:calc(100% - 24px);padding:10px var(--sp-lg);border-radius:var(--r-card);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-popup);animation:.15s ease-out fade;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast .icon{color:var(--danger)}.toast[data-tone=info] .icon{color:var(--primary)}.center{min-height:100%;min-height:100dvh;padding:var(--sp-xl) var(--sp-lg);place-items:center;display:grid}.card{width:100%;max-width:400px;padding:var(--sp-xl);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);text-align:center}.card .brand-mark{border-radius:var(--r-card);width:44px;height:44px;margin:0 auto}.card h1{margin:var(--sp-md) 0 var(--sp-xs);font-family:var(--font-display);font-size:var(--fs-heading);font-weight:var(--fw-semibold)}.card p{margin:0 0 var(--sp-lg);color:var(--text-secondary)}.card .hint{justify-content:center}.tabbar{padding:0 var(--sp-md) env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);flex:none;display:flex}.composer+.tabbar{border-top-color:var(--surface-2)}.tabbar-item{height:52px;color:var(--text-muted);font-size:var(--fs-caption);font-weight:var(--fw-medium);background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;display:flex}.tabbar-item[aria-selected=true]{color:var(--primary)}.tabbar-icon{place-items:center;display:grid;position:relative}.tabbar-dot{background:var(--live);width:7px;height:7px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:-2px;right:-5px}.control{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:var(--sp-sm) var(--sp-md) var(--sp-lg);gap:var(--sp-sm);flex-direction:column;flex:1;display:flex;overflow-y:auto}.control-empty{padding:var(--sp-xl) var(--sp-lg);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);text-align:center;margin:auto 0}.control-empty-icon{border-radius:var(--r-card);background:var(--primary-soft);width:48px;height:48px;color:var(--primary);place-items:center;display:inline-grid}.control-empty h2{margin:var(--sp-md) 0 var(--sp-xs);font-family:var(--font-display);font-size:var(--fs-title);font-weight:var(--fw-semibold)}.control-empty p{color:var(--text-secondary);margin:0}.ctl-note{align-items:flex-start;gap:var(--sp-sm);padding:8px var(--sp-md);border-radius:var(--r-card);font-size:var(--fs-caption);color:var(--text-secondary);background:var(--surface-2);flex:none;display:flex}.ctl-note .icon{margin-top:2px}.ctl-note[data-tone=warning]{background:var(--warning-soft);color:var(--text)}.ctl-note[data-tone=warning] .icon{color:var(--warning)}.ctl-card{padding:0 var(--sp-md) var(--sp-md);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);flex:none}.ctl-head{align-items:center;gap:var(--sp-sm);min-height:40px;display:flex}.ctl-head .grow{flex:1}.ctl-title{font-size:var(--fs-body);font-weight:var(--fw-semibold);align-items:center;gap:6px;display:inline-flex}.ctl-title .icon{color:var(--text-secondary)}.ctl-sub{font-size:var(--fs-caption);color:var(--text-muted)}.ctl-empty{font-size:var(--fs-caption);color:var(--text-muted);margin:0}.control button:disabled,.action:disabled{opacity:.5}.onair-tag{border-radius:var(--r-sm);background:var(--live);color:#fff;height:16px;font-size:10px;font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;gap:3px;padding:0 5px;display:inline-flex}.cmd-mark{background:var(--surface);width:18px;height:18px;color:var(--text-muted);box-shadow:0 0 0 1px var(--border);pointer-events:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;right:4px}.cmd-mark[data-state=ok]{background:var(--success);color:#fff;box-shadow:none}.cmd-mark[data-state=failed]{background:var(--danger);color:#fff;box-shadow:none}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scene-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.scene-btn{border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface-2);min-height:64px;color:var(--text);text-align:left;font-size:var(--fs-body);font-weight:var(--fw-medium);flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:4px;padding:28px 8px 8px;line-height:1.25;display:flex;position:relative}.scene-btn:active{background:var(--border)}.scene-btn[data-active=true]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.scene-name{overflow-wrap:anywhere}.hotkey{border:1px solid var(--border-strong);background:var(--surface);min-width:16px;height:16px;color:var(--text-muted);font:10px/14px var(--font-mono);text-align:center;border-radius:3px;padding:0 4px;position:absolute;top:6px;left:8px}.step-btns{gap:4px;display:inline-flex}.icon-btn.step{border:1px solid var(--border);background:var(--surface);width:36px;height:32px;position:relative}.icon-btn.step .cmd-mark{top:-6px;right:-6px}.product-rail{gap:var(--sp-sm);margin:0 calc(-1 * var(--sp-md));padding:2px var(--sp-md) 4px;scroll-snap-type:x proximity;scroll-padding:0 var(--sp-md);scrollbar-width:none;-webkit-overflow-scrolling:touch;display:flex;position:relative;overflow-x:auto}.product-rail::-webkit-scrollbar{display:none}.product-card{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);width:124px;color:var(--text);text-align:left;scroll-snap-align:start;flex-direction:column;flex:none;gap:4px;padding:6px 6px 8px;display:flex;position:relative}.product-card:active{background:var(--surface-2)}.product-card[data-on-air=true]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);background:var(--primary-soft)}.product-thumb{aspect-ratio:1;border-radius:var(--r-control);background:var(--surface-2);place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.product-thumb img{object-fit:cover;width:100%;height:100%}.product-initial{font-size:28px;font-weight:var(--fw-semibold);color:var(--text-muted)}.onair-tag.on-thumb{position:absolute;top:4px;left:4px}.product-name{-webkit-line-clamp:2;min-height:2.5em;font-size:var(--fs-body);font-weight:var(--fw-medium);-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.price-row{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.price{font-size:var(--fs-title);font-weight:var(--fw-semibold);color:var(--danger)}.price-was{font-size:var(--fs-caption);color:var(--text-muted)}.product-chips{flex-wrap:wrap;gap:3px;display:flex}.pchip{border-radius:var(--r-sm);background:var(--surface-2);height:16px;color:var(--text-secondary);font-size:10px;font-weight:var(--fw-medium);white-space:nowrap;align-items:center;padding:0 4px;display:inline-flex}.pchip.disc{background:var(--danger-soft);color:var(--danger)}.pchip.code{background:var(--primary-soft);color:var(--primary)}.orders{align-items:center;gap:var(--sp-sm);grid-template-columns:auto 1fr auto;display:grid}.orders-count{min-width:52px;font-size:28px;font-weight:var(--fw-semibold);text-align:center;line-height:1}.orders-add{border-radius:var(--r-card);background:var(--primary);height:56px;color:var(--on-primary);font-size:18px;font-weight:var(--fw-semibold);letter-spacing:.01em;border:0;position:relative}.orders-add:active{background:var(--primary-active)}.orders-undo{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);width:56px;height:56px;color:var(--text-secondary);font-size:var(--fs-caption);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.btn-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.big-btn{border:1px solid color-mix(in srgb, var(--warning) 35%, transparent);border-radius:var(--r-control);background:var(--warning-soft);height:48px;color:var(--gift);font-size:var(--fs-feed);font-weight:var(--fw-semibold);justify-content:center;align-items:center;gap:6px;display:inline-flex;position:relative}.big-btn.quiet{border-color:var(--border);background:var(--surface-2);color:var(--text)}.running{align-items:center;gap:var(--sp-sm);min-height:48px;display:flex}.running-pill{background:var(--text);height:36px;color:var(--surface);font-size:18px;font-weight:var(--fw-semibold);border-radius:18px;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.running-pill.flash{background:var(--live);color:#fff}.running-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);font-size:var(--fs-caption);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.04em;flex:1;overflow:hidden}.running .btn-outline{height:40px;position:relative}.preset-list{flex-direction:column;gap:6px;display:flex}.preset{align-items:center;gap:var(--sp-sm);min-height:44px;padding:8px 32px 8px var(--sp-md);border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface);color:var(--text);text-align:left;font-size:var(--fs-feed);display:flex;position:relative}.preset[data-on=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.preset-text{overflow-wrap:anywhere;flex:1;min-width:0}.preset .cmd-mark{top:50%;right:8px;transform:translateY(-50%)}.banner-live{align-items:center;gap:var(--sp-sm);padding:8px var(--sp-md);border-radius:var(--r-control);background:var(--primary-soft);color:var(--primary);font-weight:var(--fw-medium);margin-bottom:6px;display:flex}.banner-form{gap:var(--sp-sm);margin-top:var(--sp-sm);display:flex}.banner-form .btn-outline{height:var(--h-lg);position:relative}.link-btn{position:relative}.qr-form{gap:var(--sp-sm);flex-direction:column;display:flex}.qr-row{gap:var(--sp-sm);display:flex}.qr-form .btn-outline{height:var(--h-lg);position:relative}.qr-form .input[aria-invalid=true]{border-color:var(--warning)}.qr-form .hint{justify-content:flex-start;margin-top:0}.toggle-list{flex-direction:column;display:flex}.toggle-row,.mixer-row{align-items:center;gap:var(--sp-sm);border:0;border-top:1px solid var(--surface-2);width:100%;min-height:48px;color:var(--text);text-align:left;background:0 0;padding:4px 0;display:flex;position:relative}.toggle-list>:first-child{border-top:0}.mixer-icon{border-radius:var(--r-control);background:var(--surface-2);width:32px;height:32px;color:var(--text-secondary);flex:none;place-items:center;display:grid}.mixer-row[data-muted=true] .mixer-icon{background:var(--danger-soft);color:var(--danger)}.toggle-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.toggle-label,.mixer-label{font-weight:var(--fw-medium)}.mixer-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.toggle-sub{font-size:var(--fs-caption);color:var(--text-muted)}.toggle-row .cmd-mark{position:static}.switch-ui{background:var(--border-strong);border-radius:11px;flex:none;width:40px;height:22px;transition:background .15s;position:relative}.switch-ui:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle-row[aria-checked=true] .switch-ui{background:var(--primary)}.toggle-row[aria-checked=true] .switch-ui:after{transform:translate(18px)}.mute-btn{min-width:76px;height:36px;padding:0 var(--sp-md);border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface);color:var(--success);font-weight:var(--fw-medium);position:relative}.mute-btn[data-muted=true]{border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:var(--danger-soft);color:var(--danger)}.mute-btn .cmd-mark{top:-6px;right:-6px}.feed>li{position:relative}.row.has-more{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;padding-right:40px}.row-more{border-radius:var(--r-control);width:36px;height:32px;color:var(--text-muted);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:4px;right:2px}.row-more:active{background:var(--surface-2)}.feed>li.featured-li .row{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.row-meta .onair-tag{background:var(--primary)}.featured-li .row-name{min-width:3em}.featured-li .intent-label{display:none}.action-list{margin-top:var(--sp-xs);flex-direction:column;gap:6px;display:flex}.action{align-items:center;gap:var(--sp-md);min-height:52px;padding:8px var(--sp-md);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);color:var(--text);text-align:left;display:flex}.action:active{background:var(--surface-2)}.action .icon{color:var(--text-secondary)}.action.primary{border-color:var(--primary);background:var(--primary-soft)}.action.primary .icon,.action.primary .action-label{color:var(--primary)}.action.danger .icon,.action.danger .action-label{color:var(--danger)}.action-text{flex-direction:column;line-height:1.3;display:flex}.action-label{font-size:var(--fs-feed);font-weight:var(--fw-medium)}.action-sub{font-size:var(--fs-caption);color:var(--text-muted)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (max-width:340px){:root{--fs-kpi:20px}}
