:root{--bg: #f3f4f9;--surface: #ffffff;--surface-2: #fafbff;--sidebar: #131a2a;--sidebar-2: #1b2336;--sidebar-active: #262f49;--text: #19202e;--text-muted: #6b7488;--text-invert: #e9ecf5;--text-invert-muted: #8f98b3;--border: #e7e9f2;--border-strong: #d2d6e6;--accent: #4f46e5;--accent-strong: #4338ca;--accent-soft: #eef0ff;--teal: #0fb5a6;--teal-soft: #e3faf6;--danger: #e0454b;--danger-soft: #fdeced;--success: #1f9d63;--warning: #ca8a04;--radius: 12px;--radius-sm: 8px;--radius-lg: 18px;--shadow-sm: 0 1px 2px rgba(20, 26, 45, .06);--shadow: 0 6px 24px -8px rgba(20, 26, 45, .18);--shadow-lg: 0 24px 60px -20px rgba(20, 26, 45, .35);--font-display: "Manrope", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-display);margin:0;letter-spacing:-.02em}button{font-family:var(--font-body);cursor:pointer}a{color:inherit;text-decoration:none}input,select{font-family:var(--font-body)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:14px;font-weight:600;transition:background .15s,border-color .15s,transform .05s,opacity .15s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.95)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-icon{width:34px;height:34px;padding:0;border-radius:var(--radius-sm)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--text-muted)}.input,.select{height:42px;padding:0 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;color:var(--text);transition:border-color .15s,box-shadow .15s;width:100%}.input:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-accent{background:var(--accent-soft);color:var(--accent-strong)}.badge-teal{background:var(--teal-soft);color:var(--teal)}.badge-muted{background:#eef0f6;color:var(--text-muted)}.app-shell{display:flex;min-height:100vh}.rail{width:248px;flex-shrink:0;background:var(--sidebar);color:var(--text-invert);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.rail-brand{display:flex;align-items:center;gap:11px;padding:22px 22px 18px}.rail-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(140deg,var(--accent),var(--teal));display:grid;place-items:center;flex-shrink:0}.rail-brand-name{font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.03em}.rail-brand-sub{font-size:11px;color:var(--text-invert-muted);letter-spacing:.04em;text-transform:uppercase}.rail-nav{display:flex;flex-direction:column;gap:3px;padding:8px 12px}.rail-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-invert-muted);font-size:14px;font-weight:600;transition:background .15s,color .15s}.rail-link:hover{background:var(--sidebar-2);color:var(--text-invert)}.rail-link.active{background:var(--sidebar-active);color:#fff}.rail-link.active .rail-ico{color:var(--teal)}.rail-ico{width:18px;height:18px;flex-shrink:0}.rail-foot{margin-top:auto;padding:16px;border-top:1px solid rgba(255,255,255,.07)}.rail-user{display:flex;align-items:center;gap:10px;margin-bottom:12px}.rail-avatar{width:36px;height:36px;border-radius:50%;background:var(--sidebar-active);display:grid;place-items:center;font-weight:700;font-family:var(--font-display);color:var(--teal)}.rail-user-name{font-size:14px;font-weight:600;color:var(--text-invert)}.rail-user-role{font-size:11px;color:var(--text-invert-muted)}.content{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 32px;gap:16px}.topbar h1{font-size:24px;font-weight:800}.topbar .subtitle{font-size:13px;color:var(--text-muted);margin-top:3px}.page{padding:8px 32px 40px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:20px}.metric{padding:18px 20px}.metric-label{font-size:13px;color:var(--text-muted);font-weight:600}.metric-value{font-family:var(--font-mono);font-size:32px;font-weight:700;letter-spacing:-.02em;margin-top:6px;color:var(--text)}.metric-value.accent{color:var(--accent)}.metric-value.teal{color:var(--teal)}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px}.filters .field{min-width:160px}.segmented{display:inline-flex;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:3px;gap:2px}.segmented button{height:34px;padding:0 14px;border:none;background:transparent;border-radius:6px;font-size:13px;font-weight:600;color:var(--text-muted)}.segmented button.active{background:var(--accent);color:#fff}.funnel{display:flex;flex-direction:column;gap:0}.funnel-stage{position:relative}.funnel-bar-wrap{display:flex;align-items:center;gap:16px;padding:14px 0}.funnel-meta{width:200px;flex-shrink:0}.funnel-name{font-family:var(--font-display);font-weight:700;font-size:15px}.funnel-var{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.funnel-track{flex:1;height:44px;background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.funnel-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--teal));border-radius:var(--radius-sm);display:flex;align-items:center;padding:0 14px;min-width:46px;transition:width .5s cubic-bezier(.22,1,.36,1)}.funnel-count{font-family:var(--font-mono);font-weight:700;font-size:16px;color:#fff}.funnel-connector{display:flex;align-items:center;gap:8px;margin-left:216px;height:26px;color:var(--text-muted);font-size:13px}.funnel-connector .pct{font-family:var(--font-mono);font-weight:700;color:var(--teal)}.funnel-connector .pct.low{color:var(--danger)}.funnel-connector .arrow{width:2px;height:14px;background:var(--border-strong)}.funnel-trend{width:92px;flex-shrink:0;text-align:right}.trend{font-family:var(--font-mono);font-weight:700;font-size:13px;white-space:nowrap}.trend.up{color:var(--success)}.trend.down{color:var(--danger)}.trend.flat{color:var(--text-muted)}.conv-gear{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .15s,background .15s}.conv-gear:hover{color:var(--accent);background:var(--accent-soft)}.conv-gear svg{width:15px;height:15px}.conv-off{color:var(--text-muted);font-style:italic}.conv-base-hint{color:var(--text-muted);font-size:12px}.conv-cell{display:inline-flex;align-items:center;gap:6px}.conv-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}.conv-toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;padding:12px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);font-weight:700}.table td{padding:13px 16px;border-bottom:1px solid var(--border)}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-2)}.mono{font-family:var(--font-mono)}.breakdown-scroll{max-height:70vh;overflow:auto;border-top:1px solid var(--border)}.breakdown-table{border-collapse:separate;border-spacing:0;font-size:14px}.breakdown-table th,.breakdown-table td{padding:12px 16px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface)}.breakdown-table tbody td:nth-child(odd){background:#fff}.breakdown-table tbody td:nth-child(2n){background:#f4f5fb}.breakdown-table thead th{position:sticky;top:0;z-index:2;background:#eef0f7;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;box-shadow:0 1px 0 var(--border-strong)}.breakdown-table tbody td:first-child,.breakdown-table thead th:first-child{position:sticky;left:0;z-index:1;background:#f2f3fa;font-weight:600;box-shadow:1px 0 0 var(--border-strong)}.breakdown-table thead th:first-child{z-index:3;background:#e9ebf4}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}.section-head h2{font-size:17px;font-weight:700}.section-gap{margin-top:24px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-aside{background:var(--sidebar);color:var(--text-invert);padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-aside:after{content:"";position:absolute;right:-120px;bottom:-120px;width:420px;height:420px;background:radial-gradient(circle,rgba(79,70,229,.45),transparent 65%)}.login-aside-brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:800;font-size:20px}.login-aside-pitch{position:relative;z-index:1}.login-aside-pitch h2{font-size:34px;font-weight:800;line-height:1.12;margin-bottom:16px}.login-aside-pitch p{color:var(--text-invert-muted);font-size:15px;line-height:1.6;max-width:380px}.login-mini-funnel{display:flex;flex-direction:column;gap:8px;margin-top:36px;max-width:320px;position:relative;z-index:1}.login-mini-bar{height:30px;border-radius:7px;background:linear-gradient(90deg,var(--accent),var(--teal));display:flex;align-items:center;padding:0 12px;font-family:var(--font-mono);font-size:13px;font-weight:700;color:#fff}.login-main{display:grid;place-items:center;padding:40px}.login-form{width:100%;max-width:360px}.login-form h1{font-size:26px;font-weight:800;margin-bottom:6px}.login-form .hint{color:var(--text-muted);font-size:14px;margin-bottom:28px}.field .hint{display:block;margin-top:6px;color:var(--text-muted);font-size:12.5px;line-height:1.4}.login-form .field{margin-bottom:16px}.login-form .btn{width:100%;height:46px;margin-top:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f14238c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:20px;z-index:50}.modal{width:100%;max-width:460px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.modal-head{padding:22px 24px 0}.modal-head h3{font-size:19px;font-weight:700}.modal-body{padding:18px 24px;display:flex;flex-direction:column;gap:14px}.modal-foot{padding:16px 24px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border);background:var(--surface-2)}.alert{padding:11px 14px;border-radius:var(--radius-sm);font-size:14px;font-weight:500}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-success{background:var(--teal-soft);color:var(--teal)}.empty{text-align:center;padding:48px 20px;color:var(--text-muted)}.empty h3{font-size:17px;margin-bottom:6px;color:var(--text)}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner-dark{border-color:var(--border-strong);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{min-height:100vh;display:grid;place-items:center}.stage-editor{display:flex;gap:10px;align-items:center}.stage-editor .input{flex:1}.row{display:flex;gap:12px;align-items:center}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}@media (max-width: 980px){.login-wrap{grid-template-columns:1fr}.login-aside{display:none}}@media (max-width: 760px){.rail{width:72px}.rail-brand-name,.rail-brand-sub,.rail-link span,.rail-user-name,.rail-user-role{display:none}.rail-link{justify-content:center}.funnel-meta{width:120px}.funnel-connector{margin-left:136px}.topbar,.page{padding-left:18px;padding-right:18px}}
