:root{--bg: #0a0c11;--panel: #12151d;--panel-2: #181c27;--panel-3: #1f2533;--border: #232a39;--border-strong: #2f3850;--text: #e9edf6;--muted: #94a1ba;--faint: #7a8aa3;--primary: #3b82f6;--primary-600: #2563eb;--primary-700: #1d4ed8;--primary-soft: rgba(59, 130, 246, .14);--accent: #f59e0b;--ok: #34d399;--warn: #fbbf24;--err: #f87171;--info: #38bdf8;--radius: 12px;--radius-sm: 8px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .55);--shadow-glow: 0 0 0 1px rgba(59, 130, 246, .15), 0 8px 30px -10px rgba(37, 99, 235, .45);--ring: 0 0 0 3px rgba(59, 130, 246, .35);--t-fast: .12s cubic-bezier(.4, 0, .2, 1);--t: .18s cubic-bezier(.4, 0, .2, 1);--select-chevron: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2394a1ba' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");--font: "Fira Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:dark}:root[data-theme=light]{--bg: #f4f7fc;--panel: #ffffff;--panel-2: #f3f6fb;--panel-3: #e9eff7;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--muted: #54607a;--faint: #5e6d85;--primary: #2563eb;--primary-600: #1d4ed8;--primary-700: #1e40af;--primary-soft: rgba(37, 99, 235, .1);--accent: #b45309;--ok: #15803d;--warn: #b45309;--err: #dc2626;--info: #0369a1;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 10px 30px -14px rgba(15, 23, 42, .2);--shadow-glow: 0 0 0 1px rgba(37, 99, 235, .2), 0 10px 30px -12px rgba(37, 99, 235, .35);--ring: 0 0 0 3px rgba(37, 99, 235, .3);--select-chevron: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2354607a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");color-scheme:light}:root[data-theme=light] body{background:radial-gradient(900px 500px at 78% -8%,rgba(37,99,235,.08),transparent 60%),radial-gradient(700px 420px at 0% 0%,rgba(180,83,9,.05),transparent 55%),var(--bg);background-attachment:fixed}*{box-sizing:border-box}html{scrollbar-color:var(--border-strong) transparent}body{margin:0;font-family:var(--font);color:var(--text);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:radial-gradient(900px 500px at 78% -8%,rgba(37,99,235,.14),transparent 60%),radial-gradient(700px 420px at 0% 0%,rgba(245,158,11,.06),transparent 55%),var(--bg);background-attachment:fixed}::selection{background:var(--primary-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#3a445c}.app{width:100%;max-width:100%;margin:0;padding:22px 28px 72px}.app-header{display:flex;align-items:center;gap:12px;margin-bottom:6px}.app-header h1{display:inline-flex;align-items:center;gap:9px;font-size:22px;font-weight:700;margin:0;letter-spacing:-.02em}.app-header h1 svg{width:26px;height:26px;color:var(--accent);filter:drop-shadow(0 0 10px rgba(245,158,11,.45))}.app-header .brand{display:flex;flex-direction:column;gap:2px;flex:0 0 auto}.app-header .tag{color:var(--muted);font-size:13px;padding-left:35px}.header-banner{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px}.header-banner img{max-height:80px;flex:0 1 auto;min-width:0;object-fit:contain;border-radius:8px}.header-banner a{flex:0 1 auto;min-width:0;display:flex;align-items:center;justify-content:center}@media (max-width: 1180px){.header-banner{display:none}}@media (max-width: 860px){.app-header .tag{display:none}}.theme-toggle{padding:8px;line-height:0;color:var(--muted)}.theme-toggle:hover:not(:disabled){color:var(--text)}.theme-toggle svg{display:block}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500}.tour-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center}.tour-card{max-width:420px;margin:16px}.tour-hole{position:absolute;border-radius:10px;box-shadow:0 0 0 9999px #0000008c;pointer-events:none}.tour-tooltip-anchor{position:absolute;max-width:360px}.tour-tooltip{background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:14px 16px}.tour-tooltip:focus{outline:none}.tabs{display:flex;gap:2px;margin:20px 0 22px;border-bottom:1px solid var(--border)}.tab{display:inline-flex;align-items:center;gap:9px;background:none;border:none;color:var(--muted);padding:10px 16px;cursor:pointer;font:inherit;font-size:14px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--t),background var(--t),border-color var(--t)}.tab svg{width:18px;height:18px;flex:0 0 auto}.tab:hover{color:var(--text);background:var(--panel-2)}.tab:active{transform:translateY(1px)}.tab.active{color:var(--text);border-bottom-color:var(--primary)}.tab.active svg{color:var(--primary)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--err);color:#fff;font-size:10px;font-weight:700;line-height:1;margin-left:4px}@media (min-width: 1024px){.app{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto 1fr;column-gap:28px;align-items:center}.app-header{grid-column:1 / -1;grid-row:1}.tabs{grid-column:1 / -1;grid-row:2;margin:0;border-bottom:1px solid var(--border)}.app-header,.tabs{padding-bottom:12px}main{grid-column:1 / -1;grid-row:3;min-width:0;margin-top:18px}}.card{background:linear-gradient(180deg,var(--panel) 0%,color-mix(in srgb,var(--panel) 92%,black) 100%);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;box-shadow:var(--shadow-md)}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}.card-title{font-size:15px;margin:0;font-weight:600;letter-spacing:-.01em}.card-actions{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.card-actions .row{align-items:flex-end}.card-actions .btn{height:38px}.card-body{padding:18px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat{position:relative;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 15px;overflow:hidden;transition:border-color var(--t),transform var(--t)}.stat:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--primary),var(--primary-700));opacity:.85}.stat:hover{border-color:var(--border-strong);transform:translateY(-1px)}.stat-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.stat-value{font-size:23px;font-weight:650;margin-top:5px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-sub{color:var(--muted);font-size:12px;margin-top:2px}.stat-clickable{cursor:pointer}.stat-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.stat-active{border-color:var(--primary);background:var(--primary-soft)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}.sort-btn{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:right;width:100%;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.sort-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}tbody tr{transition:background var(--t-fast)}tbody tr:hover{background:var(--primary-soft)}tfoot td{font-weight:650;border-top:2px solid var(--border-strong)}tfoot th{font-weight:650;border-top:2px solid var(--border-strong);color:var(--text);text-transform:none;letter-spacing:0;font-size:13px}.table-wrap{overflow-x:auto;margin:-18px}.modal-body .table-wrap{margin:0}.table-wrap table{min-width:max-content}.table-compact th,.table-compact td{padding:6px 7px;font-size:12px}.table-compact .cell-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.table-compact .btn{padding:3px 7px;font-size:12px;line-height:1}.campaign-sort-bar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:4px}.sort-btn-inline{background:none;border:1px solid transparent;border-radius:4px;padding:2px 8px;cursor:pointer;font-size:11px;color:var(--muted);white-space:nowrap;font-family:inherit;text-transform:uppercase;letter-spacing:.04em;transition:color var(--t-fast),border-color var(--t-fast)}.sort-btn-inline:hover{border-color:var(--border);color:var(--text)}.sort-btn-inline.active{color:var(--primary);font-weight:700;border-color:#3b82f64d;background:#3b82f614}.campaign-list{display:flex;flex-direction:column}.campaign-item{border-bottom:1px solid var(--border);border-left:3px solid var(--border-strong);padding:10px 4px 10px 14px;cursor:pointer;transition:background var(--t-fast),border-left-color var(--t-fast)}.campaign-item[data-status=ENABLE]{border-left-color:var(--ok)}.campaign-item[data-status=DISABLE]{border-left-color:var(--border-strong)}.campaign-item:hover{background:var(--primary-soft)}.campaign-item-top{display:flex;align-items:center;gap:8px}.campaign-item-name{font-size:14px;font-weight:600;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-item-sep{color:var(--border-strong);font-size:12px;flex-shrink:0}.campaign-item-account{font-size:12px;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.campaign-item-actions{gap:3px;margin-left:auto;flex-shrink:0;display:flex;align-items:center}.campaign-item-actions .btn{padding:1px 6px;font-size:10px;line-height:1.5;border-radius:var(--radius-pill);opacity:.6;transition:opacity var(--t-fast),background var(--t-fast)}.campaign-item-actions .btn:not(:disabled):hover{opacity:1}.campaign-item:hover .campaign-item-actions .btn{opacity:.85}.campaign-item-metrics{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 16px;margin-top:7px;padding-left:22px}.metric-group{display:flex;gap:0 16px;padding:0 16px 0 0;border-right:1px solid var(--border)}.metric-group:last-child{border-right:none;padding-right:0}.metric-chip{display:inline-flex;flex-direction:column;align-items:flex-start}.metric-chip-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;line-height:1.3}.metric-chip-value{font-size:14px;font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1.25;color:var(--text)}.campaign-totals{border-top:2px solid var(--border-strong);padding:10px 0 6px;margin-top:4px}.campaign-totals .campaign-item-metrics{gap:4px 0;margin-top:6px;padding-left:0}.campaigns-layout{display:flex;gap:16px;align-items:flex-start}.campaigns-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:10px}@media (max-width: 720px){.campaigns-layout{flex-direction:column}.campaigns-layout .level-tabs{flex-direction:row!important;width:100%!important;flex-wrap:wrap}}.field{display:inline-flex;flex-direction:column;gap:5px}.filter-fixed .field{display:flex;width:100%}.field-label{color:var(--muted);font-size:12px;font-weight:500}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font:inherit;font-size:14px;transition:border-color var(--t),box-shadow var(--t),background var(--t)}input::placeholder,textarea::placeholder{color:var(--faint)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}input[type=checkbox]:focus,input[type=radio]:focus{box-shadow:none}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--primary);outline-offset:1px}select:focus{box-shadow:none}select:focus-visible{outline:2px solid var(--primary);outline-offset:1px;box-shadow:none}select{cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right 10px center;background-size:14px;padding-right:32px}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);border-radius:var(--radius-sm);padding:8px 13px;font:inherit;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--t),border-color var(--t),transform var(--t-fast),box-shadow var(--t),opacity var(--t)}.btn:hover:not(:disabled){border-color:var(--primary);background:var(--panel-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,var(--primary) 0%,var(--primary-600) 100%);border-color:var(--primary-700);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,var(--primary) 0%,var(--primary-700) 100%);border-color:var(--primary-700);box-shadow:var(--shadow-glow)}.btn-danger{background:transparent;border-color:color-mix(in srgb,var(--err) 55%,transparent);color:var(--err)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--err) 14%,transparent);border-color:var(--err)}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,transparent);background:color-mix(in srgb,var(--ok) 14%,transparent)}.badge-warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,transparent);background:color-mix(in srgb,var(--warn) 14%,transparent)}.badge-err{color:var(--err);border-color:color-mix(in srgb,var(--err) 35%,transparent);background:color-mix(in srgb,var(--err) 14%,transparent)}.badge-info{color:var(--info);border-color:color-mix(in srgb,var(--info) 35%,transparent);background:color-mix(in srgb,var(--info) 14%,transparent)}.badge-muted{color:var(--muted);border-color:var(--border-strong);background:var(--panel-2)}.badge-muted:before{background:var(--faint)}.state{color:var(--muted);padding:18px 4px;display:flex;align-items:center;gap:10px}.state-error{color:var(--err)}.state-empty{justify-content:center;flex-direction:column;text-align:center;gap:12px;padding:32px 16px}.state-action{margin-left:auto}.spinner{width:14px;height:14px;border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-panel{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;display:grid;gap:14px;box-shadow:var(--shadow-sm)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:start}.form-grid .field{display:flex}.form-grid input,.form-grid select{width:100%}.list-filter{width:100%;min-width:0;margin-bottom:6px;padding:6px 9px;font-size:13px}.check-list{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;max-height:160px;overflow:auto;display:grid;gap:2px;background:var(--panel)}.check-item{display:flex;gap:8px;align-items:center;cursor:pointer;padding:5px 6px;border-radius:6px;transition:background var(--t-fast)}.check-item:hover{background:var(--panel-3)}.check-item input{min-width:auto;width:auto;accent-color:var(--primary)}.check-item-disabled{opacity:.5;cursor:not-allowed}.check-item-disabled:hover{background:transparent}.picker-actions{display:flex;gap:6px;margin-bottom:6px}.subtabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:12px}.form-actions{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.mapping-list .state{justify-content:flex-start;text-align:left}.form-section-title{font-weight:600;font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding-bottom:7px;margin-top:6px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);cursor:pointer;font-size:12px;background:var(--panel);transition:border-color var(--t),background var(--t)}.chip:hover{border-color:var(--primary)}.chip:has(input:checked){border-color:var(--primary);background:var(--primary-soft);color:var(--text)}.chip input{width:auto;min-width:auto;accent-color:var(--primary)}.chip-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.field-hint{font-size:11px;margin-top:3px}.field-hint-warn{color:var(--warn-text, #b45309)}.field-hint-err{color:var(--err)}.field-hint-inline{font-size:11px;font-weight:400}[data-theme=dark] .field-hint-warn{color:#fbbf24}.hint{position:relative;display:inline-flex;align-items:center;outline:none}.hint-bubble{position:fixed;transform:translate(-50%,calc(-100% - 8px));background:var(--panel-3);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:7px 10px;font-size:12px;font-weight:400;text-transform:none;letter-spacing:normal;line-height:1.4;white-space:normal;width:max-content;max-width:260px;text-align:left;pointer-events:none;box-shadow:var(--shadow-md);z-index:1200}.req-mark{color:var(--warn);margin-left:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.field-note{font-size:12px;color:var(--muted);margin-top:4px;max-width:65ch;line-height:1.5}.tree-adgroup-card{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-top:12px}.tree-ad-card{background:var(--panel-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;margin-top:8px}.tree-node-title{font-size:14px;font-weight:600;letter-spacing:-.01em;margin:0;flex:1}.tree-node-title--ad{font-size:13px;font-weight:600;color:var(--muted);margin:0;flex:1}.tree-node-header{display:flex;align-items:center;gap:8px}.form-submit-bar{bottom:0;z-index:5;background:var(--panel);border-top:1px solid var(--border);margin:12px -18px -18px;padding:12px 18px}.tree-sticky-header{position:sticky;top:0;z-index:4;background:var(--panel-2)}.modal-body .form-panel.tl-form{display:flex;flex-direction:column;gap:0;min-height:100%}.tl-form .tl-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:grid;gap:14px}input[type=number]{font-variant-numeric:tabular-nums}.btn-disclosure{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 6px;font-size:13px;display:inline-flex;align-items:center}.disclosure-chevron{transition:transform var(--t-fast, .15s) ease}@media (prefers-reduced-motion: reduce){.disclosure-chevron{transition:none}}.chips-fieldset{border:0;padding:0;margin:0;min-width:0}.link-button{background:none;border:0;padding:0;margin:0;font:inherit;color:var(--accent);text-align:left;text-decoration:underline;cursor:pointer}.link-button:hover{text-decoration:none}textarea{font-family:var(--mono);font-size:13px;width:100%;resize:vertical}.trend{display:grid;gap:6px}.trend-top{display:flex;justify-content:space-between;font-size:12px;font-variant-numeric:tabular-nums}.trend-svg{width:100%;height:150px;display:block;overflow:visible}.trend-axis{position:relative;height:14px;color:var(--faint);font-size:11px;font-family:var(--mono)}.trend-grid-label{position:absolute;left:2px;color:var(--faint);font-size:11px;font-family:var(--mono);transform:translateY(-50%);pointer-events:none;line-height:1}.trend-wrap{position:relative;cursor:crosshair;border-radius:var(--radius-sm)}.trend-wrap:focus-visible{outline:none;box-shadow:var(--ring)}.trend-tooltip{position:absolute;top:-6px;display:flex;gap:8px;align-items:baseline;padding:5px 9px;background:var(--panel-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-size:12px;white-space:nowrap;pointer-events:none;z-index:10}.trend-tooltip strong{font-variant-numeric:tabular-nums}.progress{display:flex;width:120px;height:5px;border-radius:var(--radius-pill);background:var(--panel-3);overflow:hidden;margin-top:5px}.progress-done{background:var(--ok)}.progress-failed{background:var(--err)}.daypart{display:grid;gap:8px}.daypart-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}.daypart-scroll{overflow-x:auto;padding-bottom:4px}.daypart-grid{display:grid;grid-template-columns:44px repeat(48,minmax(11px,1fr));gap:2px;min-width:640px;-webkit-user-select:none;user-select:none}.daypart-corner{grid-column:1}.daypart-hour{grid-column:span 2;color:var(--faint);font-size:11px;font-family:var(--mono);text-align:left;line-height:1}.daypart-row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1}.daypart-day{border:none;background:none;color:var(--muted);font:inherit;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:0 6px 0 0;cursor:pointer}.daypart-day:hover{color:var(--text)}.daypart-cell{height:18px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--panel-3);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast)}.daypart-cell:hover{border-color:var(--primary)}.daypart-cell.on{background:var(--primary);border-color:var(--primary-700)}.daypart-cell:focus-visible{outline:none;box-shadow:var(--ring);z-index:1}.entity-controls{display:grid;gap:8px;padding:4px 0 8px 16px;border-left:2px solid var(--border)}.entity-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.entity-row .btn{padding:4px 9px;font-size:12px}.entity-name{min-width:240px;font-size:12px}.entity-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;max-width:640px}.entity-kv{display:grid;grid-template-columns:max-content 1fr;gap:2px 14px;font-size:12px}.live-badge{display:inline-flex;align-items:center;gap:6px;color:var(--ok);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);animation:live-pulse 1.6s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;box-shadow:0 0 color-mix(in srgb,var(--ok) 45%,transparent)}50%{opacity:.6;box-shadow:0 0 0 5px transparent}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:fade-in .12s ease}.modal{background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);max-width:560px;width:100%;max-height:82vh;display:flex;flex-direction:column;overflow:hidden;animation:modal-in .15s cubic-bezier(.2,0,.2,1)}.modal--wide{max-width:960px}.modal--medium{max-width:720px}.modal-body .form-panel{border:none;background:none;box-shadow:none;padding:0;margin:0}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.modal-title{font-size:15px;font-weight:600;margin:0;letter-spacing:-.01em}.modal-close{padding:4px 8px;line-height:1;font-size:14px;color:var(--muted);flex-shrink:0}.modal-close:hover:not(:disabled){color:var(--text)}.modal-body{padding:18px;overflow-y:auto;flex:1}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.toaster{position:fixed;bottom:154px;right:24px;z-index:1100;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:10px 16px;border-radius:6px;font-size:13px;font-weight:500;box-shadow:0 4px 16px #00000040;animation:toast-in .18s ease-out}.toast-ok{background:var(--ok);color:#fff}.toast-err{background:var(--err);color:#fff}.toast-warn{background:var(--warn);color:#1a1a1a}.toast-info{background:var(--info);color:#fff}.toast-muted{background:var(--surface);color:var(--text);border:1px solid var(--border)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.delta{font-variant-numeric:tabular-nums;font-weight:600}.delta-up{color:var(--ok)}.delta-down{color:var(--err)}.delta-flat{color:var(--muted)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12px}a{color:var(--primary)}@media (max-width: 640px){.app{padding:16px 12px 56px}.app-header{flex-wrap:wrap;row-gap:6px}.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:0 0 auto}.card-head{flex-direction:column;align-items:stretch}.card-actions{width:100%}.form-grid{grid-template-columns:1fr}.form-grid-spacer{display:none}input,select,textarea{min-width:0}.row>.field{flex:1 1 140px}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.tutorial-fab{position:fixed;bottom:24px;right:24px;z-index:900;display:inline-flex;align-items:center;gap:10px;padding:13px 21px;border-radius:var(--radius-pill);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-md);color:var(--text);font-size:17px;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.tutorial-fab svg{color:var(--accent);flex-shrink:0;width:23px;height:23px}.tutorial-fab:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:0 6px 20px #00000047}.tutorial-fab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tutorial-login-btn{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:.625rem 1.25rem;border-radius:.375rem;background:var(--panel);border:1px solid var(--border);color:var(--text);font-size:.9375rem;font-weight:500;text-decoration:none;cursor:pointer;box-shadow:0 1px 3px #00000014;transition:border-color .12s ease,transform .12s ease}.tutorial-login-btn svg{color:var(--accent);flex-shrink:0;width:18px;height:18px}.tutorial-login-btn:hover{transform:translateY(-1px);border-color:var(--accent)}.tutorial-login-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.support-fab{position:fixed;bottom:89px;right:24px;z-index:900;display:inline-flex;align-items:center;gap:10px;padding:13px 21px;border-radius:var(--radius-pill);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-md);color:var(--text);font-size:17px;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.support-fab svg{color:var(--accent);flex-shrink:0;width:23px;height:23px}.support-fab:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:0 6px 20px #00000047}.support-fab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.support-login-btn{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:.625rem 1.25rem;border-radius:.375rem;background:var(--panel);border:1px solid var(--border);color:var(--text);font-size:.9375rem;font-weight:500;text-decoration:none;cursor:pointer;box-shadow:0 1px 3px #00000014;transition:border-color .12s ease,transform .12s ease}.support-login-btn svg{color:var(--accent);flex-shrink:0;width:18px;height:18px}.support-login-btn:hover{transform:translateY(-1px);border-color:var(--accent)}.support-login-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.launch-stepper{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.launch-step-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 7px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.launch-step-chip:hover:not(:disabled){background:var(--panel-3);color:var(--text)}.launch-step-chip:disabled{cursor:default;opacity:.5}.launch-step-chip:focus-visible{outline:none;box-shadow:var(--ring)}.launch-step-chip.is-reached{color:var(--text)}.launch-step-chip.is-current{border-color:var(--primary);background:var(--primary-soft);color:var(--text)}.launch-step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-pill);background:var(--border-strong);color:var(--text);font-size:12px;font-weight:700;flex:none}.launch-step-chip.is-current .launch-step-num{background:var(--primary);color:#fff}.launch-step-footer{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);justify-content:flex-end}.launch-review{display:flex;flex-direction:column;gap:14px}.review-section{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);padding:10px 14px 14px}.review-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-section-head .form-section-title{border-bottom:0;padding-bottom:0;margin:0}.review-rows{margin:10px 0 0;display:grid;grid-template-columns:max-content 1fr;gap:5px 18px}.review-row{display:contents}.review-row dt{color:var(--muted);font-size:13px}.review-row dd{margin:0;color:var(--text);font-size:13px}.review-issues-title{font-weight:600;margin-bottom:6px}.launch-review .review-issues-title+ul{margin:0;padding-left:18px}.onoff-switch{position:relative;width:34px;height:20px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--border);cursor:pointer;flex-shrink:0;vertical-align:middle;transition:background .15s ease,border-color .15s ease}.onoff-switch-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:left .15s ease}.onoff-switch-on{background:var(--ok);border-color:var(--ok)}.onoff-switch-on .onoff-switch-knob{left:16px}.onoff-switch:disabled{opacity:.55;cursor:default}.theme-toggle{margin-left:auto}.support-header-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.support-header-btn~.theme-toggle{margin-left:0}.support-header-btn svg{width:14px;height:14px}
