:root{--ink:#191920;--ink-2:#56565f;--ink-3:#9696a0;--mut:#6b6b73;--line:#e8e7ec;--line-2:#f1f0f4;--line-strong:#dcdbe3;--paper:#f4f4f6;--surface:#ffffff;--brand:#3a35e0;--brand-2:#5b54f0;--brand-soft:#eceafb;--flow-a:#5b6ee0;--flow-b:#8b6cf0;--cv:#179268;--cv-soft:#e4f4ee;--amber:#c9781f;--amber-soft:#fbf0e0;--shadow:0 1px 2px rgba(22,23,45,.05), 0 1px 1px rgba(22,23,45,.03);--shadow-md:0 6px 22px rgba(22,23,45,.07), 0 2px 6px rgba(22,23,45,.04);--shadow-lg:0 24px 64px rgba(20,20,45,.2), 0 6px 18px rgba(20,20,45,.1);--r:13px;--r-sm:9px;--ff-disp:"Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--ff-body:"Inter", ui-sans-serif, system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--ff-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--ff-body);color:var(--ink);background:var(--paper);background-image:radial-gradient(1100px 460px at 50% -8%,#fafaf9,#fafaf900 60%);background-repeat:no-repeat;font-size:13px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:.004em}.num,.mono{font-family:var(--ff-mono);font-variant-numeric:tabular-nums;letter-spacing:0}::selection{background:#d9d6f7}button,select,input,textarea{font-family:inherit;color:inherit}select,input,textarea{border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px;background:var(--surface);font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;color:var(--ink)}select::placeholder,input::placeholder,textarea::placeholder{color:var(--ink-3)}select:hover,input:hover,textarea:hover{border-color:#cfced9}select:focus,input:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3.5px var(--brand-soft)}button{border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:8px 14px;background:var(--surface);cursor:pointer;font-size:13px;font-weight:600;transition:.14s ease;color:var(--ink)}button:hover{border-color:#c6c5d2;background:#fcfcfd}button:active{transform:translateY(.5px)}button.primary{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 1px 2px #1414282e}button.primary:hover{background:#000;border-color:#000;box-shadow:0 2px 8px #14142838}button.cv{background:var(--cv);color:#fff;border-color:var(--cv);box-shadow:0 1px 2px #0f785038}button.cv:hover{background:#0f7e58;border-color:#0f7e58;box-shadow:0 2px 9px #0f785042}button.ghost{background:var(--surface);color:var(--ink)}button[disabled]{opacity:.42;pointer-events:none;box-shadow:none}button.link{border:none;background:none;padding:0;color:var(--brand);font-size:13px;font-weight:500;cursor:pointer;box-shadow:none}button.link:hover{text-decoration:underline;background:none}.grow{flex:1}.muted{color:var(--ink-3)}header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:11px;padding:7px 24px;margin-bottom:6px;background:#f8f8fac7;-webkit-backdrop-filter:saturate(1.6) blur(12px);backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-family:var(--ff-disp);font-weight:700;font-size:16.5px;letter-spacing:-.015em}.brand svg{width:25px;height:25px;flex:0 0 auto;display:block;border-radius:7px;box-shadow:0 1px 3px #1414282e}.brand small{font-family:var(--ff-mono);font-weight:400;font-size:10.5px;color:var(--ink-3);letter-spacing:.03em;text-transform:uppercase}header select{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink-2);height:30px;border-radius:var(--r-sm)}header>button{height:36px}header .iconbtn{width:30px;height:30px;padding:0;display:grid;place-items:center;font-size:16px;color:var(--ink-2);font-weight:400;border-radius:var(--r-sm)}.pill{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);padding:6px 11px;border-radius:7px}.wrap{max-width:1180px;margin:0 auto;padding:12px 24px 64px}header{max-width:1180px;margin-left:auto;margin-right:auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:13px}.h1{font-family:var(--ff-disp);font-weight:700;font-size:18px;letter-spacing:-.02em;margin:0 0 4px;color:var(--ink)}.lede{color:var(--ink-2);font-size:11.5px;line-height:1.45;margin:0;max-width:560px}h3{font-family:var(--ff-mono);font-size:10.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px}.res-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:6px 0 2px;flex-wrap:wrap}.res-head>div{min-width:0;flex:1 1 360px}.controls{display:flex;gap:7px;flex-wrap:wrap;align-items:center;flex:0 0 auto}.ctrl{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);padding:7px 12px;border-radius:8px;font-weight:400;white-space:nowrap;transition:.14s}.ctrl:hover{border-color:#c6c5d2;color:var(--ink)}.ctrl b{color:var(--ink);font-weight:600}.period-wrap{display:inline-flex;align-items:center;gap:6px}.period-select{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:8px;padding:6px 10px;height:auto;font-weight:500}.period-wrap input[type=date]{font-family:var(--ff-mono);font-size:11px;padding:5px 8px;border-radius:8px}.canvas-controls .period-select{background:#ffffffeb}.kpis{display:flex;gap:10px;margin:10px 0 0;flex-wrap:wrap}.statcard{position:relative;flex:1;min-width:104px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;box-shadow:var(--shadow)}.statcard .sl{display:flex;align-items:center;gap:6px;font-family:var(--ff-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-top:5px;font-weight:500}.statcard .sl:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--brand);flex:0 0 auto}.statcard.good .sl:before{background:var(--cv)}.statcard.warn .sl:before{background:var(--amber)}.statcard .sv{font-family:var(--ff-mono);font-weight:600;font-size:18px;letter-spacing:-.5px;color:var(--ink);line-height:1.05}.statcard.good .sv{color:var(--cv)}.statcard.warn .sv{color:var(--amber)}.kpis-4 .statcard{min-width:92px}.statcard .delta{margin-top:5px;font-family:var(--ff-mono);font-size:10.5px;font-weight:600;display:flex;align-items:center;gap:5px}.statcard .delta span{color:var(--ink-3);font-weight:400}.statcard .delta.up{color:var(--cv)}.statcard .delta.down{color:#c0392b}.statcard .delta.flat{color:var(--ink-3)}.trend{position:relative}.trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.trend-legend{display:flex;gap:7px;flex-wrap:wrap}.trend-legend .chip{display:flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;color:var(--ink-3);transition:.13s}.trend-legend .chip .dot{width:8px;height:8px;border-radius:50%}.trend-legend .chip .num{font-family:var(--ff-mono);font-weight:600;color:inherit}.trend-legend .chip .chip-d{font-family:var(--ff-mono);font-size:10px;font-weight:600;letter-spacing:0}.trend-legend .chip .chip-d.up{color:var(--cv)}.trend-legend .chip .chip-d.down{color:#c0392b}.trend-legend .chip:not(.on){color:var(--ink-3)}.trend-legend .chip:not(.on) .num{color:var(--ink-3)}.trend-legend .chip:not(.on) .chip-d{color:var(--ink-3)}.trend-ctrls{display:flex;align-items:center;gap:8px}.trend-ctrls .tg{font-size:11.5px;font-weight:600;color:var(--ink-2);border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:6px 11px;transition:.13s}.trend-ctrls .tg:hover{border-color:#c6c5d2}.trend-ctrls .tg.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.trend-ctrls .seg{display:flex;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}.trend-ctrls .seg button{border:none;background:none;font-size:12px;font-weight:600;color:var(--ink-2);padding:4px 11px;border-radius:7px;transition:.12s}.trend-ctrls .seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.trend-svg{width:100%;height:auto;display:block;overflow:visible}.trend-axis{font-family:var(--ff-mono);font-size:10px;fill:var(--ink-3)}.trend-tip{position:absolute;top:6px;transform:translate(-50%);pointer-events:none;z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-md);padding:9px 12px;min-width:130px}.trend-tip .tt-day{font-family:var(--ff-mono);font-size:10.5px;color:var(--ink-3);margin-bottom:6px;white-space:nowrap}.trend-tip .tt-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);margin-top:3px}.trend-tip .tt-row .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.trend-tip .tt-row .num{margin-left:auto;font-weight:600;color:var(--ink)}.trend-tip .tt-d{font-family:var(--ff-mono);font-size:10px;font-weight:600;margin-left:6px}.trend-tip .tt-d.up{color:var(--cv)}.trend-tip .tt-d.down{color:#c0392b}.explorer-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:8px 12px}.explorer-bar.incard{margin:-13px -13px 10px;border:0;border-bottom:1px solid var(--line-2);border-radius:0;box-shadow:none;background:transparent;padding:10px 13px}.eb-group{display:flex;align-items:center;gap:8px}.eb-label{font-family:var(--ff-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.seg{display:flex;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}.seg button{border:none;background:none;font-size:12px;font-weight:600;color:var(--ink-2);padding:5px 11px;border-radius:7px;transition:.12s;white-space:nowrap}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.filter-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:var(--brand);background:var(--brand-soft);border:1px solid #d9d6f7;border-radius:999px;padding:5px 11px;transition:.12s}.filter-chip b{font-weight:700}.filter-chip span{color:var(--ink-3);font-family:var(--ff-mono);margin-left:2px}.filter-chip:hover{border-color:#c0392b;color:#c0392b;background:#faecec}.filter-chip:hover span{color:#c0392b}.eb-spacer{flex:1 1 auto}.jump-bar{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.jump-lead{font-family:var(--ff-mono);font-size:10px;letter-spacing:.03em;color:var(--ink-3);margin-right:2px}.jump-btn{pointer-events:auto;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink-2);border:1px solid var(--line-strong);background:#fff;border-radius:8px;padding:4px 10px;transition:.13s}.jump-btn svg{opacity:.75}.jump-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.jump-btn:hover svg{opacity:1}.kpi-overlay{flex-wrap:wrap;max-width:calc(100% - 28px)}.kpi-overlay .filter-chip,.kpi-overlay .jump-bar{pointer-events:auto}.kpi-overlay .jump-lead{display:none}.detbox-h.bd-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.bd-search{font-size:11.5px;padding:4px 9px;border-radius:7px;max-width:120px;font-weight:400;text-transform:none;letter-spacing:0}.bar-row.clickable{cursor:pointer;border-radius:7px;padding:6px 7px;margin:0 -7px}.bar-row.clickable:hover{background:var(--paper)}.bar-row.clickable.on{background:var(--brand-soft)}.bar-row.clickable.on .bl{color:var(--brand);font-weight:600}.filterbar{display:flex;align-items:center;gap:10px;background:linear-gradient(0deg,#fbfbff,#fbfbff);border:1px solid var(--line);border-left:3px solid var(--brand);color:var(--ink-2);border-radius:10px;padding:11px 15px;margin:16px 0 0;font-size:12.5px;font-weight:500;box-shadow:var(--shadow)}.filterbar .x,.filterbar button{margin-left:auto;border:1px solid var(--line-strong);background:#fff;color:var(--ink-2);border-radius:7px;padding:5px 12px;font-weight:500;font-size:11.5px;font-family:var(--ff-mono);transition:.14s}.filterbar .x:hover,.filterbar button:hover{border-color:#c0392b;color:#c0392b;background:#faecec}.appbody{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:start}.appmain{min-width:0}.wrap.is-sandbox{max-width:1280px}.sidenav{position:sticky;top:54px;display:flex;flex-direction:column;gap:2px;padding:2px}.sidenav-h{font-family:var(--ff-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:6px 10px 8px}.sidenav button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:7px 10px;border:1px solid transparent;border-radius:9px;background:none;font-size:12.5px;font-weight:500;color:var(--ink-2);transition:.13s;position:relative}.sidenav button svg{flex:0 0 auto;color:var(--ink-3);transition:.13s}.sidenav button:hover{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow)}.sidenav button.on{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow);font-weight:600}.sidenav button.on svg{color:var(--brand)}.sidenav button.on:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.flowwrap{margin-top:16px;padding:10px;overflow:hidden}.flow-zoom{position:relative}.flow-scroll{overflow:auto;max-height:74vh;border-radius:10px}.flow-scroll svg{display:block}.empty{padding:40px 24px;text-align:center;color:var(--ink-3)}.flowwrap.sandbox{position:relative;height:72vh;min-height:520px;max-height:760px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.sandbox .flow-zoom{position:absolute;top:0;right:0;bottom:0;left:0}.sandbox .flow-scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;max-height:none;border-radius:var(--r);background-color:#fbfbfd;background-image:radial-gradient(circle,rgba(25,25,40,.13) 1.5px,transparent 1.7px),radial-gradient(circle,rgba(25,25,40,.07) 1.2px,transparent 1.4px);background-size:90px 90px,22.5px 22.5px;touch-action:none;cursor:grab}.sandbox .flow-scroll.panning,.sandbox .flow-scroll.space-pan{cursor:grabbing}.sandbox .fnode,.sandbox .srccard,.sandbox .expand-ic,.sandbox .subcard{cursor:pointer}.sandbox .flow-scroll.panning .flow-particles{opacity:.35;transition:opacity .12s}.sandbox:before,.sandbox:after{content:"";position:absolute;left:0;right:0;height:30px;pointer-events:none;z-index:4;border-radius:var(--r)}.sandbox:before{top:0;background:linear-gradient(180deg,#fbfbfd,#fbfbfd00)}.sandbox:after{bottom:0;background:linear-gradient(0deg,#fbfbfd,#fbfbfd00)}.zoom-ctl{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:2px;background:#ffffffdb;-webkit-backdrop-filter:saturate(1.7) blur(14px);backdrop-filter:saturate(1.7) blur(14px);border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:var(--shadow-md)}.zoom-ctl .sep{width:1px;height:20px;background:var(--line);margin:0 4px}.zoom-ctl button{width:30px;height:30px;padding:0;border-radius:8px;font-size:15px;line-height:1;border:1px solid transparent;background:none;color:var(--ink-2);display:grid;place-items:center;transition:.13s}.zoom-ctl button:hover{background:var(--paper);color:var(--ink)}.zoom-ctl .z{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink);min-width:46px;text-align:center;cursor:pointer;font-variant-numeric:tabular-nums}.zoom-ctl .z:hover{color:var(--brand)}.kpi-overlay{position:absolute;left:14px;top:14px;z-index:5;pointer-events:none;display:flex;align-items:center;gap:14px;background:#fffc;-webkit-backdrop-filter:blur(10px) saturate(1.5);backdrop-filter:blur(10px) saturate(1.5);border:1px solid var(--line);border-radius:11px;padding:8px 13px;box-shadow:var(--shadow)}.kpi-overlay .k{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.kpi-overlay .k b{color:var(--ink);font-weight:600;font-size:13px;margin-left:4px}.kpi-overlay .k.cv b{color:var(--cv)}.kpi-overlay .ov-x{pointer-events:auto;font-family:var(--ff-mono);font-size:11px;font-weight:500;color:var(--ink-2);border:1px solid var(--line-strong);background:#fff;border-radius:7px;padding:3px 9px;transition:.13s}.kpi-overlay .ov-x:hover{border-color:#c0392b;color:#c0392b;background:#faecec}.canvas-controls{position:absolute;right:14px;top:14px;z-index:5;display:flex;align-items:center;gap:7px}.canvas-controls .ctrl{box-shadow:var(--shadow);background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.flowwrap.sandbox.tall{height:calc(100vh - 132px);min-height:480px;max-height:none}.canvas-state{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;z-index:3;padding:24px}.canvas-state .cs-card{max-width:360px;display:flex;flex-direction:column;align-items:center;gap:9px;background:#ffffffb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:26px 28px;box-shadow:var(--shadow)}.canvas-state .cs-title{font-family:var(--ff-disp);font-weight:700;font-size:16px;color:var(--ink)}.canvas-state .cs-sub{color:var(--ink-2);font-size:13px;line-height:1.6}.canvas-state .cs-cap{color:var(--ink-3);font-family:var(--ff-mono);font-size:12px;margin-top:12px}.cs-spin{width:28px;height:28px;border-radius:50%;border:3px solid var(--brand-soft);border-top-color:var(--brand);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:880px){.appbody{grid-template-columns:1fr}.sidenav{position:static;flex-direction:row;flex-wrap:wrap;margin-bottom:6px}.sidenav-h{display:none}.flowwrap.sandbox{height:62vh}}.stagelabel{font-family:var(--ff-mono);font-weight:500;fill:var(--ink-3);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}.fnode{cursor:pointer}.fnode rect{transition:.16s}.fnode .nlabel{font-family:var(--ff-body);font-weight:600;fill:var(--ink);font-size:12.5px}.fnode .nnum{font-family:var(--ff-mono);font-weight:600;fill:var(--ink);font-size:19px;letter-spacing:-.5px}.fnode .npct{font-family:var(--ff-mono);font-weight:400;font-size:11px}.fnode.dim{opacity:.22}.fnode.sel>rect{stroke:#8a83ea;stroke-width:1.8}.srccard{cursor:pointer}.srccard.dim{opacity:.22}.srccard.sel>rect{stroke:#8a83ea;stroke-width:1.8}.srccard .sname{font-weight:600;fill:var(--ink);font-size:12px;font-family:var(--ff-body)}.srccard .snum{font-family:var(--ff-mono);font-weight:500;font-size:10.5px;fill:var(--ink-3)}.flowlink{fill:none;transition:.18s}.flowlink.dim{opacity:.06}.looplink{fill:none;transition:.18s}.looplink.dim{opacity:.06}.linklabel{font-family:var(--ff-mono);font-weight:500;font-size:10px;fill:var(--ink-3)}.linklabel.loop{fill:#7b6cf0;font-weight:500}.linklabel.dim{opacity:.1}.flow-dot{pointer-events:none;mix-blend-mode:multiply}.flow-particles{pointer-events:none}.expand-ic{cursor:pointer}.expand-ic rect{fill:#fff;stroke:var(--line)}.expand-ic:hover rect{stroke:var(--ink);fill:#fbfbfe}.subcard .sub-l{font-family:var(--ff-body);font-size:11px;font-weight:500;fill:var(--ink-2)}.subcard .sub-v{font-family:var(--ff-mono);font-size:11px;font-weight:600;fill:var(--ink)}.detail{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow)}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.detail-eyebrow{font-family:var(--ff-mono);font-size:10px;font-weight:500;color:var(--ink-3);letter-spacing:.06em;margin-bottom:5px;text-transform:uppercase}.detail-title{font-family:var(--ff-disp);font-weight:700;font-size:17px;letter-spacing:-.018em}.detail-close{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-3);width:30px;height:30px;border-radius:8px;font-size:16px;line-height:1;padding:0;transition:.14s}.detail-close:hover{border-color:var(--ink);color:var(--ink)}.detail-stats{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.detbox{background:linear-gradient(180deg,#fcfcfb,#fafaf9);border:1px solid var(--line);border-radius:11px;padding:15px 16px}.detbox-h{font-family:var(--ff-mono);font-size:10px;font-weight:500;color:var(--ink-3);margin-bottom:13px;text-transform:uppercase;letter-spacing:.05em}.bar-row{display:flex;align-items:center;gap:9px;margin-bottom:10px;font-size:12px}.bar-row:last-child{margin-bottom:0}.bar-row .bl{width:96px;flex:0 0 auto;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row .bt{flex:1;height:7px;background:var(--line-2);border-radius:4px;overflow:hidden}.bar-row .bf{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ink-3),var(--ink-2))}.bar-row.cv .bf{background:linear-gradient(90deg,#3fbd8e,var(--cv))}.bar-row .bv{font-family:var(--ff-mono);font-weight:600;font-size:11px;color:var(--ink-2);width:48px;text-align:right;flex:0 0 auto}.path-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:12px}.path-row:last-child{border:0}.path-row .pp{flex:1;color:var(--ink-2);line-height:1.45}.path-row .pc{flex:0 0 auto;color:var(--ink);font-weight:600;font-size:11px;font-family:var(--ff-mono)}.chip-x{border:1px solid var(--line-strong);background:#fff;color:var(--ink-2);border-radius:6px;width:23px;height:23px;font-size:13px;line-height:1;cursor:pointer;font-family:var(--ff-mono);padding:0;transition:.14s}.chip-x:hover{border-color:#c0392b;color:#c0392b;background:#faecec}.ele{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:13px}.ele:last-child{border-bottom:none}.badge{font-size:10.5px;padding:3px 9px;border-radius:999px;font-family:var(--ff-mono);font-weight:500}.badge.active{background:var(--cv-soft);color:#0f7a4d}.badge.review{background:var(--amber-soft);color:#a35b09}code{background:var(--line-2);padding:1.5px 6px;border-radius:6px;font-family:var(--ff-mono);font-size:12px;color:var(--ink)}.kpi-mini{display:flex;gap:16px;margin-bottom:8px}.kpi-mini .lbl{font-size:11px;color:var(--ink-3)}.kpi-mini .val{font-family:var(--ff-mono);font-size:18px;font-weight:600}.builder.stacked{display:flex;flex-direction:column;gap:14px;width:100%;max-width:100%;min-width:0}.builder.stacked>.rail,.builder.stacked>.canvas{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.builder.funnel-style{display:flex;flex-direction:column;gap:10px;width:100%;max-width:100%;min-width:0}.fb-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.fb-toolbar .cand-search{flex:0 1 200px;min-width:140px;font-size:12px;padding:6px 9px}.fb-toolbar .cand-addtoggle{font-size:12px;padding:6px 11px;white-space:nowrap}.fb-toolbar .cand-addtoggle.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.fb-picker{display:flex;align-items:center;gap:6px;flex:1 1 300px;min-width:220px}.fb-picker input{flex:1 1 auto;min-width:120px;font-size:12px;padding:6px 9px}.fb-picker .picker{flex:0 0 auto;font-size:12px;padding:6px 12px;background:var(--brand);color:#fff;border-color:var(--brand);white-space:nowrap}.fb-picker .picker:hover{background:#2f2acb;border-color:#2f2acb}.fb-hint{font-size:11px;color:var(--ink-3);white-space:nowrap}.palette-tools{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line-2)}.palette-tools .cand-search{width:100%;font-size:12px;padding:6px 9px}.palette-tools .cand-addtoggle{width:100%;font-size:12px;padding:6px 8px;text-align:center}.palette-tools .cand-addtoggle.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.palette-manual{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:7px}.palette-manual .seg-sm{display:flex}.palette-manual .seg-sm button{flex:1;padding:5px;font-size:11.5px}.palette-manual input{width:100%;font-size:11.5px;padding:5px 8px}.palette-manual .addbtn{width:100%;font-size:11.5px}.fb-manual{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}.fb-manual input{flex:1 1 150px;min-width:120px;font-size:12.5px}.fb-picknote{font-size:11.5px;color:var(--ink-2);background:var(--brand-soft);border:1px solid #d9d6f7;border-radius:var(--r-sm);padding:7px 10px}.fb-canvas{position:relative;width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:auto;height:60vh;min-height:440px;background-color:#fbfbfd;background-image:radial-gradient(circle,rgba(25,25,40,.13) 1.5px,transparent 1.7px),radial-gradient(circle,rgba(25,25,40,.07) 1.2px,transparent 1.4px);background-size:90px 90px,22.5px 22.5px}.fb-canvas .board{overflow:visible;min-height:100%;width:max-content;padding:16px;align-items:flex-start}.stage-col.palette{flex:0 0 212px;background:var(--surface)}.stage-col.palette .stage-name.static{flex:1;font-family:var(--ff-mono);font-size:10.5px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;cursor:default}.palette-body{gap:6px;max-height:268px;overflow:auto}.cand-searchbtn{flex:0 0 auto;width:22px;height:22px;padding:0;display:grid;place-items:center;border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;color:var(--ink-3)}.cand-searchbtn:hover{border-color:var(--ink);color:var(--ink)}.cand-searchbtn.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.funnel-flow.linear{display:flex;gap:12px;align-items:flex-start;flex:0 0 auto}.funnel-col{flex:0 0 200px;display:flex;flex-direction:column;gap:10px;align-self:flex-start;border-radius:12px;transition:.12s}.funnel-col.coldrop{box-shadow:0 0 0 2px var(--brand);background:var(--brand-soft)}.stage-lane{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}.stage-lane .stage-body{min-height:120px}.stage-lane .stage-grip{cursor:grab}.col-gap{flex:0 0 26px;align-self:stretch;min-height:120px;border:2px dashed var(--line-strong);border-radius:10px;background:#3a35e008;transition:.12s}.col-gap.on{border-color:var(--brand);background:var(--brand-soft)}.autosave{font-size:11.5px;color:var(--ink-3);margin-right:auto;font-family:var(--ff-mono)}.lane-add{border:1px dashed var(--line-strong);background:none;color:var(--ink-3);border-radius:8px;padding:7px;font-size:11.5px}.lane-add:hover:not(:disabled){border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.lane-add:disabled{opacity:.4;cursor:default}.palette-body .page-chip{padding:6px 8px;gap:7px}.palette-body .page-chip .gico{width:20px;height:20px;font-size:11px}.palette-body .page-chip .pn{font-size:11.5px}.palette-body .page-chip .pu{font-size:9.5px}.palette-body .src-tag{font-size:8.5px;padding:1px 5px}.palette-body .cc-btn{width:20px;height:20px;font-size:10px}.palette-body .page-chip.editing{flex-direction:column;align-items:stretch}.palette-foot{border-top:1px solid var(--line);padding:9px 10px}.palette-pick{width:100%;font-size:11.5px;padding:7px 8px;background:var(--brand);color:#fff;border-color:var(--brand)}.palette-pick:hover{background:#2f2acb;border-color:#2f2acb}.palette-pick-form{display:flex;flex-direction:column;gap:6px}.palette-pick-form input{font-size:11.5px;padding:6px 8px}.palette-pick-form .pp-actions{display:flex;gap:6px}.palette-pick-form .pp-actions .picker{flex:1;font-size:11.5px;padding:6px 8px;background:var(--brand);color:#fff;border-color:var(--brand)}.palette-pick-form .pp-actions .picker:hover{background:#2f2acb;border-color:#2f2acb}.palette-pick-form .pp-note{font-size:10.5px;color:var(--ink-3);line-height:1.4}.fb-wrap{position:relative;width:100%;max-width:100%;min-width:0}.fb-zoom{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:2px;background:#fffffff0;border:1px solid var(--line);border-radius:11px;padding:4px;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fb-zoom button{width:28px;height:28px;padding:0;border-radius:7px;font-size:15px;line-height:1;border:0;background:transparent;color:var(--ink-2)}.fb-zoom button:hover{background:var(--line-2);color:var(--ink)}.fb-zoom .z{font-family:var(--ff-mono);font-size:11px;color:var(--ink);min-width:42px;text-align:center;cursor:pointer}.flow-arrow{flex:0 0 auto;align-self:center;display:flex;align-items:center;color:var(--flow-b);opacity:.55}.builder{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start;max-width:100%}.builder .rail{padding:11px 13px}.rail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:9px}.builder .rail h4{display:flex;align-items:baseline;gap:8px;font-family:var(--ff-mono);font-size:11px;font-weight:500;color:var(--ink-3);margin:0;text-transform:uppercase;letter-spacing:.04em}.builder .rail h4 .muted{font-size:11px}.builder .rail .sub{font-size:11.5px;color:var(--ink-3);margin:0;line-height:1.5;max-width:640px}.rail-head-r{display:flex;align-items:center;gap:7px}.cand-search{font-size:12px;min-width:140px;flex:0 1 180px;padding:6px 9px}.cand-addtoggle{font-size:12px;padding:6px 11px;white-space:nowrap}.cand-addtoggle.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.cand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:5px;max-height:92px;overflow:auto;padding:1px}.cand-grid .page-chip{width:auto;padding:5px 8px;gap:7px;border-radius:7px}.cand-grid .page-chip .gico{width:20px;height:20px;font-size:11px;border-radius:5px}.cand-grid .page-chip .pn{font-size:11.5px}.cand-grid .page-chip .pu{font-size:9.5px}.cand-grid .src-tag{font-size:8.5px;padding:1px 5px}.cand-grid .cc-btn{width:21px;height:21px;font-size:11px}.picker-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.picker-bar .pb-label{font-family:var(--ff-mono);font-size:10px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.picker-bar input{flex:1 1 200px;min-width:150px;font-size:12px;padding:5px 9px}.picker-bar .picker{flex:0 0 auto;font-size:12px;padding:5px 12px;background:var(--brand);color:#fff;border-color:var(--brand)}.picker-bar .picker:hover{background:#2f2acb;border-color:#2f2acb}.picker-bar .pb-note{flex:1 1 100%;font-size:10.5px;color:var(--ink-3);line-height:1.35}.seg-sm{flex:0 0 auto}.seg-sm button{padding:5px 10px;font-size:12px}.src-tag{flex:0 0 auto;font-family:var(--ff-mono);font-size:9px;font-weight:600;padding:2px 6px;border-radius:5px;letter-spacing:.02em;background:var(--line-2);color:var(--ink-3)}.src-tag.s-pick{background:var(--brand-soft);color:var(--brand)}.src-tag.s-manual{background:var(--amber-soft);color:var(--amber)}.cc-btn{flex:0 0 auto;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-3);border-radius:6px;width:24px;height:24px;padding:0;font-size:12px;line-height:1;display:grid;place-items:center}.cc-btn:hover{border-color:var(--ink);color:var(--ink)}.page-chip.editing{cursor:default;align-items:stretch;gap:8px}.page-chip.editing .cc-edit{flex:1 1 auto;display:flex;flex-direction:column;gap:5px;min-width:0}.page-chip.editing .cc-edit input{font-size:12px;padding:5px 8px}.cc-actions{display:flex;flex-direction:column;gap:5px;flex:0 0 auto}button.mini{font-size:11px;padding:4px 9px}.rail-tools{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.rail-tools.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.rt-row{display:flex;gap:6px;flex-wrap:wrap}.rt-row input{flex:1 1 140px;font-size:12.5px}.rail-tools .seg{display:flex;gap:6px;margin-bottom:7px}.rail-tools .seg button{flex:1;padding:6px;font-size:12px}.rail-tools .seg button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.rail-tools .addbtn{font-size:12.5px;flex:0 0 auto}.rail-tools .picker{font-size:12.5px;flex:0 0 auto;background:var(--brand);color:#fff;border-color:var(--brand)}.rail-tools .picker:hover{background:#2f2acb;border-color:#2f2acb}.rail-tools .picknote{font-size:11px;color:var(--ink-3);margin-top:7px;line-height:1.5}.rail-tools .ttl{font-family:var(--ff-mono);font-size:10.5px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin:0 0 7px}.stage-grip{cursor:grab;color:var(--ink-3);font-size:13px;line-height:1;padding:2px 3px;-webkit-user-select:none;user-select:none;flex:0 0 auto}.stage-grip:active{cursor:grabbing}.stage-col.dragover{outline:2px dashed var(--brand);outline-offset:-2px}.stage-col.coldragging{opacity:.5}.overlay.nested{z-index:70}.discover-search{width:100%;margin-bottom:12px}.discover-list{max-height:54vh;overflow:auto}.discover-row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line-2)}.discover-row:last-child{border-bottom:none}.discover-row .gico{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;background:var(--line-2);color:var(--ink-2);font-family:var(--ff-mono);font-size:12px;font-weight:600}.discover-row .gico.cv{background:var(--cv-soft);color:var(--cv)}.discover-row .dpath{font-family:var(--ff-mono);font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 32%;min-width:60px}.discover-row input.dname{flex:1 1 38%;min-width:80px;font-size:12.5px}.discover-row .dadd{flex:0 0 auto;font-size:12px;padding:6px 12px}.discover-row .dadd.added{color:var(--cv);border-color:#bce0d1;background:#fbfffd}.discover-empty{padding:24px;text-align:center;color:var(--ink-3);font-size:12.5px}.page-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--line);cursor:grab;transition:.12s;-webkit-user-select:none;user-select:none;touch-action:none}.page-chip:hover{border-color:var(--ink);background:#fbfbfe}.page-chip.dragging{opacity:.4}.page-chip.used{opacity:.38;pointer-events:none}.page-chip .gico{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;background:var(--line-2);color:var(--ink-2);font-family:var(--ff-mono);font-size:13px;font-weight:600}.page-chip .gico.cv{background:var(--cv-soft);color:var(--cv)}.page-chip .meta{min-width:0;flex:1 1 auto;overflow:hidden}.page-chip .pn{display:block;max-width:100%;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-chip .pu{display:block;max-width:100%;font-family:var(--ff-mono);font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-chip .add{flex:0 0 auto;font-size:17px;color:var(--ink-3);font-weight:400;line-height:1}.canvas{padding:18px;position:relative;min-width:0;overflow:hidden}.canvas .chead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap}.canvas .chead .lbl{font-family:var(--ff-mono);font-size:11px;font-weight:500;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.canvas .chead .hint{font-size:11.5px;color:var(--ink-3)}.board{display:flex;gap:12px;align-items:stretch;overflow-x:auto;padding:2px 2px 8px;min-height:300px}.builder-page .board{min-height:58vh}.builder-page .stage-body{min-height:200px}.panel-page .board{min-height:58vh}.panel-page .stage-body{min-height:200px}.panel-body{margin-top:14px}.panel-page.narrow .panel-body{max-width:760px}.panel-body>.card>h3:first-child{display:none}.stage-col{flex:0 0 196px;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}.stage-col.source{flex-basis:172px;background:#fbfbfe}.stage-head{display:flex;align-items:center;gap:6px;padding:9px 10px;border-bottom:1px solid var(--line)}.stage-name{flex:1;min-width:0;border:1px solid transparent;background:transparent;font-family:var(--ff-disp);font-weight:600;font-size:13px;color:var(--ink);padding:3px 6px;border-radius:5px;outline:none}.stage-name:hover{border-color:var(--line)}.stage-name:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 2px var(--brand-soft)}.stage-ct{font-family:var(--ff-mono);font-size:11px;color:var(--ink-3);min-width:16px;text-align:center}.stage-auto{font-family:var(--ff-mono);font-size:9.5px;color:var(--ink-3);border:1px solid var(--line);border-radius:4px;padding:2px 5px;letter-spacing:.03em}.stage-rm{border:0;background:transparent;color:var(--ink-3);font-size:15px;line-height:1;padding:2px 5px;border-radius:5px;cursor:pointer}.stage-rm:hover{background:#faecec;color:#c0392b}.stage-body{flex:1;display:flex;flex-direction:column;gap:8px;padding:10px;min-height:110px;transition:.12s}.stage-body.drop{background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}.stage-empty{margin:auto;color:var(--ink-3);font-size:11.5px;border:1px dashed var(--line);border-radius:8px;padding:18px 8px;width:100%;text-align:center}.bcard{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:.12s}.bcard:hover{border-color:var(--ink-3)}.bcard.cv{border-color:#bce0d1;background:#fbfffd}.bcard.dragging{opacity:.35}.bcard .gico{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;background:var(--line-2);color:var(--ink-2);font-family:var(--ff-mono);font-size:12px;font-weight:600}.bcard .gico.cv{background:var(--cv-soft);color:var(--cv)}.bcard .bmeta{min-width:0;flex:1 1 auto;overflow:hidden}.bcard .bn{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bcard .bu{display:block;font-family:var(--ff-mono);font-size:10px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bcard .bedit{border:0;background:transparent;color:var(--ink-3);font-size:12px;line-height:1;padding:2px 4px;border-radius:5px;flex:0 0 auto}.bcard .bedit:hover{background:var(--line-2);color:var(--ink)}.bcard .brm{border:0;background:transparent;color:var(--ink-3);font-size:15px;line-height:1;padding:2px 5px;border-radius:5px;flex:0 0 auto}.bcard .brm:hover{background:#faecec;color:#c0392b}.bcard.editing{cursor:default;padding:8px}.bcard.editing .cc-edit{display:flex;flex-direction:column;gap:5px;width:100%;min-width:0}.bcard.editing .cc-edit input{font-size:11.5px;padding:5px 7px}.bcard.editing .cc-actions{display:flex;gap:5px}.bcard.src{cursor:default;gap:8px;padding:9px 10px}.bcard.src .bdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.bcard.src .bn{flex:1;font-weight:500;font-size:12px}.bcard.src .bv{font-family:var(--ff-mono);font-size:11px;color:var(--ink-3)}.drag-ghost{position:fixed;z-index:80;pointer-events:none;box-shadow:var(--shadow-lg);transform:rotate(-1.5deg);opacity:.96;border-color:var(--brand)!important}.placeholder{height:42px;border-radius:8px;border:1.5px dashed var(--brand);background:#fff}.stage-add{flex:0 0 110px;align-self:flex-start;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:110px;background:transparent;border:1px dashed var(--line);border-radius:10px;color:var(--ink-3);font-size:12px;cursor:pointer;transition:.12s}.stage-add:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.stage-add .plus{font-size:18px}.canvas-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;align-items:center}@media (max-width:880px){.builder{grid-template-columns:1fr}.rail-tools.two{grid-template-columns:1fr;gap:12px}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#16161c73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:start center;z-index:60;padding:40px 20px;overflow:auto;animation:fade .18s}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{width:min(720px,94vw);max-height:calc(100vh - 80px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden}.sheet.wide{width:min(1120px,96vw)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line);flex:0 0 auto}.sheet-title{font-family:var(--ff-disp);font-weight:700;font-size:18px;letter-spacing:-.01em}.sheet-body{padding:20px;overflow:auto}.sheet-body>.card{border:none;box-shadow:none;padding:0;margin:0}.sheet-body>.card>h3:first-child{display:none}.menu{position:relative}.menu-pop{position:absolute;right:0;top:calc(100% + 10px);background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-lg);min-width:212px;padding:7px;z-index:30;animation:pop .14s cubic-bezier(.2,.8,.2,1)}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}.menu-pop button{display:block;width:100%;text-align:left;border:none;background:none;padding:9px 11px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--ink)}.menu-pop button:hover{background:var(--paper)}.menu-pop .sep{height:1px;background:var(--line);margin:6px 4px}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.gate{max-width:392px;margin:9vh auto;padding:30px 30px 26px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-lg)}.gate h1{font-family:var(--ff-disp);font-weight:700;font-size:24px;letter-spacing:-.02em;margin:0 0 4px}.gate label{display:block;font-size:11.5px;font-weight:500;color:var(--ink-3);margin:14px 0 5px}.gate input{width:100%}.gate .err{color:#c0392b;font-size:13px;margin-top:10px;min-height:16px}.tabs{display:flex;gap:6px;margin:20px 0 8px;background:var(--paper);padding:4px;border-radius:11px}.tabs button{flex:1;border:none;background:none;font-weight:600;color:var(--ink-2)}.tabs button:hover{background:#00000008}.tabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.row{display:flex;gap:16px;align-items:flex-start}.panel{width:300px;flex:none}@media (max-width:880px){header{flex-wrap:wrap;gap:8px;padding:14px 16px 10px}.wrap{padding:6px 16px 48px}header select{flex:1;min-width:0}.detail-grid{grid-template-columns:1fr}.row{flex-direction:column}.panel{width:100%}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.n1{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start;margin-top:14px}.n1-list{padding:12px;position:sticky;top:14px}.n1-search{width:100%;font-size:13px;padding:8px 11px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:10px}.n1-users{display:flex;flex-direction:column;gap:2px;max-height:72vh;overflow:auto}.n1-user{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:var(--r-sm);padding:9px 10px;cursor:pointer;transition:.12s}.n1-user:hover{background:var(--line-2)}.n1-user.on{background:var(--brand-soft)}.n1-user .src-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.n1-u-main{display:flex;flex-direction:column;gap:2px;min-width:0}.n1-u-id{font-family:var(--ff-mono);font-size:12px;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.n1-user.on .n1-u-id{color:var(--brand)}.n1-u-sub{font-size:11px;color:var(--ink-3)}.cv-badge{font-size:9px;font-weight:600;color:var(--cv);background:var(--cv-soft);border-radius:4px;padding:1px 4px;letter-spacing:.02em}.n1-detail{min-width:0}.n1-profile{padding:13px 15px}.n1-profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.n1-tags{display:flex;gap:6px;flex-wrap:wrap}.n1-tag{font-size:11px;font-weight:500;color:var(--ink-2);border:1px solid var(--line-strong);border-radius:999px;padding:3px 10px;white-space:nowrap}.n1-tag.cv{color:var(--cv);border-color:var(--cv-soft);background:var(--cv-soft)}.n1-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;margin-top:12px}.n1-stat{background:var(--line-2);border-radius:var(--r-sm);padding:9px 11px}.n1-stat .v{font-family:var(--ff-mono);font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}.n1-stat .v.sm{font-size:12.5px;font-weight:500}.n1-stat .l{font-size:10px;color:var(--ink-3);margin-top:3px;white-space:nowrap}.n1-timeline{display:flex;flex-direction:column;gap:12px;margin-top:14px}.n1-sess{padding:0;overflow:hidden}.n1-sess-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line-2);background:var(--line-2)}.n1-sess-no{font-size:12px;font-weight:600;color:var(--ink)}.n1-sess-when{font-size:11.5px;color:var(--ink-2);font-family:var(--ff-mono)}.n1-sess-src{font-size:11px;font-weight:600;margin-left:auto}.n1-events{padding:6px 0}.n1-ev{display:grid;grid-template-columns:24px 46px 86px minmax(0,1fr);align-items:center;gap:8px;padding:5px 16px;font-size:12.5px}.n1-ev-ic{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;font-size:11px;font-family:var(--ff-mono);background:var(--line-2);color:var(--ink-2)}.n1-ev.pv .n1-ev-ic{background:var(--brand-soft);color:var(--brand)}.n1-ev.click .n1-ev-ic{background:var(--amber-soft);color:var(--amber)}.n1-ev.cv .n1-ev-ic{background:var(--cv-soft);color:var(--cv)}.n1-ev-time{font-family:var(--ff-mono);font-size:11px;color:var(--ink-3)}.n1-ev-label{color:var(--ink-2);font-size:11.5px;white-space:nowrap}.n1-ev.cv .n1-ev-label{color:var(--cv);font-weight:600}.n1-ev-detail{font-family:var(--ff-mono);font-size:11.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.errboundary{max-width:560px;margin:64px auto;padding:0 16px}.errboundary h2{margin:0 0 6px;font-family:var(--ff-disp)}.errboundary-detail{margin:12px 0;padding:10px 12px;background:var(--line-2);border-radius:var(--r-sm);font-family:var(--ff-mono);font-size:12px;color:var(--ink-2);white-space:pre-wrap;word-break:break-word}.n1-back{display:none}@media (max-width:880px){.n1{grid-template-columns:1fr}.n1-list{position:static}.n1-users{max-height:none}.n1-stats{grid-template-columns:repeat(3,1fr)}.n1 .n1-detail,.n1.m-detail .n1-list{display:none}.n1.m-detail .n1-detail{display:block}.n1-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;background:none;border:none;color:var(--brand);font-size:13px;font-weight:600;cursor:pointer;padding:4px 0}}
