:root{--bg:#eef3fb;--text:#0f172a;--muted:#64748b;--line:#dbe4f0;--primary:#2563eb;--primary-2:#7c3aed;--danger:#dc2626;--success:#16a34a;--soft:#f8fafc;--shadow:0 18px 50px rgba(15,23,42,.10)}
*{box-sizing:border-box}
body{font-family:Inter,Arial,sans-serif;background:radial-gradient(circle at top left,#dbeafe,transparent 30%),var(--bg);margin:0;color:var(--text)}
#root{width:calc(100% - 32px);max-width:none;min-height:calc(100vh - 32px);margin:16px auto;padding:28px;background:rgba(255,255,255,.94);border-radius:24px;box-shadow:var(--shadow);border:1px solid #fff}
.hero,.panel,.path-map{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:22px;padding:18px}
.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);font-weight:800;margin:0 0 6px}
h1{font-size:34px;margin:0 0 8px}
h2{font-size:22px;margin:0}
.lead{margin:0;color:var(--muted);line-height:1.55;max-width:860px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.report-export{display:inline-flex;gap:8px;align-items:center}
.locale-label{align-self:center;color:var(--muted);font-weight:700;font-size:13px}
.locale-select,.report-select,input,textarea{padding:10px 12px;border:1px solid #cbd5e1;border-radius:12px;background:white;color:var(--text);font:inherit}
button,.button{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border:0;border-radius:12px;cursor:pointer;background:var(--primary);color:white;font-weight:700;font-size:14px;text-decoration:none}
.button:hover,button:hover{filter:brightness(.95)}
.danger{background:var(--danger)}
.secondary{background:#475569}
.ghost{background:#e2e8f0;color:#0f172a}
.summary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:16px 0}
.stat{padding:14px;background:linear-gradient(180deg,#f8fafc,#eef2ff);border:1px solid var(--line);border-radius:16px}
.stat span{display:block;color:var(--muted);font-size:12px}
.stat b{display:block;font-size:22px;margin-top:4px}
.section-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.visual-controls{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.visual-switch{display:inline-flex;gap:6px;padding:4px;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:999px}
.visual-switch__button{border-radius:999px;padding:8px 12px;background:transparent;color:#334155}
.visual-switch__button.active{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.25)}
.funnel-canvas{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 0 12px;width:100%}
.funnel-stage{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:12px;width:var(--stage-width);min-width:min(100%,300px);transition:width .2s ease}
.funnel-stage__shape{display:flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:14px 28px;color:#fff;text-align:center;background:linear-gradient(90deg,var(--primary),var(--primary-2));clip-path:polygon(4% 0,96% 0,90% 100%,10% 100%);box-shadow:0 12px 28px rgba(37,99,235,.18)}
.funnel-stage__number{display:inline-grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.22);font-weight:800}
.funnel-stage__meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;color:#334155;font-size:13px;font-weight:800}
.funnel-stage__meta span{padding:7px 10px;border-radius:999px;background:#fff;border:1px solid var(--line)}

.section-hint{max-width:720px;margin:0;color:var(--muted);line-height:1.5}
.path-map{margin:16px 0;overflow:hidden}
.path-map--funnel{overflow:visible}
.flow-canvas{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px;overflow-x:auto;padding:4px 2px 10px}
.flow-group{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:280px}
.flow-children{position:relative;display:flex;justify-content:center;align-items:flex-start;gap:14px;width:100%;padding-top:20px}
.flow-children:before{content:"";position:absolute;top:0;left:12%;right:12%;border-top:2px dashed #b9c7dc}
.flow-children>.flow-group:before{content:"";position:absolute;top:-20px;height:20px;border-left:2px dashed #b9c7dc}
.flow-node{width:min(100%,520px);min-width:260px;padding:14px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 10px 24px rgba(15,23,42,.07)}
.flow-node.split{border-color:#c4b5fd}
.flow-node.finish{border-color:#bbf7d0}
.flow-node__top{display:flex;gap:10px;align-items:center}
.flow-node__step{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-weight:800}
.flow-node__bar{height:18px;margin:12px 0 10px;background:#e2e8f0;border-radius:999px;overflow:hidden}
.flow-node__bar span{display:block;height:100%;max-width:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:inherit}
.flow-node__meta{display:flex;gap:8px;flex-wrap:wrap;color:#334155;font-size:13px;font-weight:700}
.flow-node__meta span,.flow-node__loss{padding:6px 9px;border-radius:999px;background:#fff;border:1px solid var(--line)}
.flow-node__loss{display:inline-block;margin-top:8px;color:#b45309;background:#fffbeb}
.tree{margin-top:16px}
.node{position:relative;margin:16px 0 16px 28px;padding:16px;border:1px solid var(--line);border-left:5px solid var(--primary);background:var(--soft);border-radius:18px;box-shadow:0 8px 22px rgba(15,23,42,.05)}
.node:before{content:"";position:absolute;left:-34px;top:28px;width:29px;border-top:2px dashed #b9c7dc}
.node.root{margin-left:0}
.node.root:before{display:none}
.node-head{display:grid;grid-template-columns:minmax(220px,1fr) 140px auto;gap:10px;align-items:center}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;color:var(--muted);font-weight:700}
.field input,textarea{width:100%}
textarea{min-height:58px;resize:vertical;margin-top:10px}
.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-self:end}
.metrics{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:#334155}
.pill{padding:6px 9px;background:white;border:1px solid var(--line);border-radius:999px}
.bar{height:12px;background:#e2e8f0;border-radius:99px;margin-top:12px;overflow:hidden}
.fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:99px}
.note{margin-top:10px}
.note-preview{margin-top:8px;padding:10px 12px;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;color:#9a3412;font-size:13px;white-space:pre-wrap}
.empty{padding:28px;text-align:center;color:var(--muted);border:2px dashed #cbd5e1;border-radius:18px;background:#f8fafc}
.status{font-size:13px;color:var(--success);font-weight:700;margin-top:10px}
.visually-hidden{display:none}

@media(max-width:980px){#root{width:calc(100% - 20px);margin:10px auto;padding:16px}
.hero,.section-title{display:block}
.visual-controls{align-items:flex-start;margin-top:12px}
.toolbar{justify-content:flex-start;margin-top:16px}
.report-export{flex-wrap:wrap}
.summary{grid-template-columns:1fr 1fr}
.node-head{grid-template-columns:1fr}
.actions{justify-content:flex-start}
.flow-canvas{grid-template-columns:1fr}
.flow-children{justify-content:flex-start;overflow-x:auto}
.funnel-stage{grid-template-columns:1fr;width:100%!important}
.funnel-stage__meta{justify-content:center}
}

@media(max-width:520px){.summary{grid-template-columns:1fr}
.node{margin-left:12px}
.node:before{display:none}
.flow-node{min-width:240px}
}

