@import url('https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=DM+Sans:wght@400;500;600&family=DM+Mono:wght@400;500&display=swap');
:root {
  --bg:#09090e; --s1:#0e1018; --s2:#13161f; --s3:#181d28; --s4:#1d2333;
  --b1:#222a3a; --b2:#2b3550;
  --blue:#4d8ff5; --bd:rgba(77,143,245,.12); --bg2:rgba(77,143,245,.22);
  --teal:#2dd4a0; --td:rgba(45,212,160,.1);
  --amber:#f0a832; --ad:rgba(240,168,50,.1);
  --red:#f06060; --rd:rgba(240,96,96,.1);
  --t1:#eef2ff; --t2:#8896b8; --t3:#505d7a; --t4:#363f58;
  --syne:'Syne',sans-serif; --dm:'DM Sans',sans-serif; --mono:'DM Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--dm);background:var(--bg);color:var(--t1);min-height:100vh;font-size:14px;line-height:1.6;}

/* TOPBAR */
.tb{position:sticky;top:0;z-index:100;height:50px;display:flex;align-items:center;background:rgba(9,9,14,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--b1);}
.tb-logo{width:180px;flex-shrink:0;padding:0 20px;border-right:1px solid var(--b1);font-family:var(--syne);font-size:15px;font-weight:700;color:var(--blue);height:100%;display:flex;align-items:center;}
.tb-logo span{color:var(--t3);font-weight:600;}
.tb-steps{flex:1;display:flex;align-items:center;padding:0 18px;gap:0;overflow:hidden;}
.stp{display:flex;align-items:center;cursor:pointer;}
.stp-n{width:23px;height:23px;border-radius:50%;border:1.5px solid var(--b2);background:var(--s2);color:var(--t3);font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .18s;font-family:var(--mono);}
.stp-l{font-size:11px;color:var(--t3);padding:0 8px;white-space:nowrap;font-weight:500;transition:color .18s;}
.stp-sep{width:14px;height:1px;background:var(--b1);flex-shrink:0;}
.stp.active .stp-n{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 8px var(--bg2);}
.stp.active .stp-l{color:var(--t1);font-weight:600;}
.stp.done .stp-n{background:var(--td);border-color:var(--teal);color:var(--teal);}
.stp.done .stp-l{color:var(--t2);}
.stp:hover:not(.active) .stp-n{border-color:var(--blue);}
.stp:hover:not(.active) .stp-l{color:var(--t2);}
.tb-r{padding:0 20px;border-left:1px solid var(--b1);height:100%;display:flex;align-items:center;}
.tb-r a{font-size:11.5px;color:var(--t3);text-decoration:none;transition:color .15s;}
.tb-r a:hover{color:var(--blue);}

/* LAYOUT */
.layout{display:grid;grid-template-columns:1fr 280px;min-height:calc(100vh - 50px);}
.main{padding:36px 46px;border-right:1px solid var(--b1);}
.side{background:var(--s1);padding:24px 20px;position:sticky;top:50px;height:calc(100vh - 50px);overflow-y:auto;}

/* PANELS */
.pnl{display:none;}.pnl.on{display:block;}

/* STEP HEADER */
.ph{margin-bottom:26px;}
.ph-tag{font-family:var(--mono);font-size:10px;color:var(--blue);letter-spacing:2px;text-transform:uppercase;margin-bottom:7px;}
.ph-title{font-family:var(--syne);font-size:26px;font-weight:700;line-height:1.15;margin-bottom:7px;letter-spacing:-.2px;}
.ph-sub{font-size:13px;color:var(--t2);line-height:1.65;max-width:500px;}

/* CARDS */
.card{background:var(--s2);border:1px solid var(--b1);border-radius:11px;padding:20px;margin-bottom:12px;}
.card:last-child{margin-bottom:0;}
.clbl{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:13px;}

/* FORM ROWS */
.row{display:grid;gap:12px;margin-bottom:12px;}.row:last-child{margin-bottom:0;}
.row.c2{grid-template-columns:1fr 1fr;}.row.c3{grid-template-columns:1fr 1fr 1fr;}
.fld{display:flex;flex-direction:column;gap:5px;}
.lbl{font-size:11.5px;font-weight:600;color:var(--t2);display:flex;align-items:center;gap:5px;}
.lbl .r{color:var(--red);font-size:9px;}.lbl .o{color:var(--t4);font-weight:400;font-size:11px;}

/* INPUTS */
input[type=text],input[type=number],select,textarea{background:var(--s3);border:1px solid var(--b2);border-radius:8px;color:var(--t1);font-family:var(--dm);font-size:13.5px;padding:9px 12px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;}
input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--bd);}
select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23505d7a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px;}
textarea{resize:vertical;min-height:72px;line-height:1.55;}
input::placeholder,textarea::placeholder{color:var(--t4);}

/* START CARDS */
.start-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.scard{border:1.5px solid var(--b2);border-radius:12px;padding:20px 16px;cursor:pointer;background:var(--s3);transition:all .18s;user-select:none;position:relative;}
.scard:hover:not(.dim){border-color:var(--blue);transform:translateY(-2px);}
.scard.sel{border-color:var(--blue);background:var(--bd);}
.scard.dim{opacity:.28;cursor:default;}
.sc-chk{position:absolute;top:12px;right:12px;width:17px;height:17px;border-radius:50%;border:1.5px solid var(--b2);display:flex;align-items:center;justify-content:center;font-size:9px;transition:all .15s;}
.scard.sel .sc-chk{background:var(--blue);border-color:var(--blue);color:#fff;}
.sc-icon{font-size:24px;margin-bottom:8px;}
.sc-name{font-family:var(--syne);font-size:14px;font-weight:700;margin-bottom:4px;}
.scard.sel .sc-name{color:var(--blue);}
.sc-desc{font-size:12px;color:var(--t2);line-height:1.5;}
.sc-pill{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;margin-top:8px;}
.pill-b{background:var(--bd);color:var(--blue);border:1px solid var(--bg2);}
.pill-t{background:var(--td);color:var(--teal);border:1px solid rgba(45,212,160,.2);}
.pill-a{background:var(--ad);color:var(--amber);border:1px solid rgba(240,168,50,.2);}
.pill-g{background:rgba(150,150,150,.1);color:var(--t3);border:1px solid var(--b2);}

/* BOARDS */
.boards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.brd{border:1.5px solid var(--b2);border-radius:9px;padding:13px 10px;cursor:pointer;background:var(--s3);transition:all .15s;user-select:none;text-align:center;}
.brd:hover{border-color:var(--blue);}
.brd.sel{border-color:var(--teal);background:var(--td);}
.brd-icon{font-size:18px;margin-bottom:4px;}
.brd-name{font-size:12px;font-weight:700;color:var(--t1);}
.brd.sel .brd-name{color:var(--teal);}
.brd-hint{font-size:10px;color:var(--t3);margin-top:2px;}

/* FREQ TABS */
.freq-tabs{display:flex;background:var(--bg);border:1px solid var(--b2);border-radius:8px;overflow:hidden;margin-bottom:13px;}
.ft{flex:1;padding:8px 10px;font-size:11.5px;font-weight:600;font-family:var(--dm);color:var(--t3);background:none;border:none;cursor:pointer;transition:all .15s;text-align:center;}
.ft.on{background:var(--blue);color:#fff;}
.ft:not(.on):hover{background:var(--s3);color:var(--t2);}

/* TOGGLE BLOCK */
.tblk{border:1px solid var(--b1);border-radius:10px;overflow:hidden;margin-bottom:9px;}
.tblk:last-child{margin-bottom:0;}
.tblk-hd{display:flex;align-items:center;gap:11px;padding:12px 14px;background:var(--s3);cursor:pointer;transition:background .12s;}
.tblk-hd:hover{background:var(--s2);}
.tblk-info{flex:1;}
.tblk-title{font-size:13px;font-weight:600;color:var(--t1);}
.tblk-hint{font-size:11px;color:var(--t3);margin-top:1px;}
.tblk-body{padding:14px;border-top:1px solid var(--b1);}
.tblk-body.hide{display:none;}

/* TOGGLE */
.tog{width:32px;height:17px;border-radius:9px;background:var(--b2);position:relative;flex-shrink:0;transition:background .2s;cursor:pointer;}
.tog.on{background:var(--teal);}
.tog::after{content:'';position:absolute;width:11px;height:11px;background:#fff;border-radius:50%;top:3px;left:3px;transition:left .18s;}
.tog.on::after{left:18px;}
.tog-row{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.tog-row:last-child{margin-bottom:0;}
.tog-lbl{font-size:13px;font-weight:500;flex:1;}
.tog-hint{font-size:11px;color:var(--t3);}

/* TAGS */
.tags{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:6px 8px;min-height:36px;background:var(--s3);border:1px solid var(--b2);border-radius:8px;cursor:text;transition:border-color .15s;}
.tags:focus-within{border-color:var(--blue);}
.tag-item{display:inline-flex;align-items:center;gap:3px;background:var(--bd);color:var(--blue);border:1px solid rgba(77,143,245,.2);border-radius:4px;padding:2px 7px;font-size:11.5px;font-weight:500;}
.tag-item.preset{background:var(--ad);color:var(--amber);border-color:rgba(240,168,50,.2);}
.tag-x{cursor:pointer;opacity:.45;font-size:13px;line-height:1;transition:opacity .1s;}
.tag-x:hover{opacity:1;}
.tag-in{background:none;border:none;outline:none;color:var(--t1);font-size:12.5px;font-family:var(--dm);min-width:80px;flex:1;padding:1px 3px;}

/* QUICK CHIPS */
.qchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.qchip{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:1.5px solid var(--b2);border-radius:20px;font-size:12px;font-weight:500;color:var(--t2);cursor:pointer;background:var(--s3);transition:all .15s;user-select:none;}
.qchip:hover{border-color:var(--amber);color:var(--amber);}
.qchip.on{border-color:var(--amber);background:var(--ad);color:var(--amber);}

/* THRESHOLD */
.thr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.thr{border:1.5px solid var(--b2);border-radius:10px;padding:14px;cursor:pointer;background:var(--s3);transition:all .15s;user-select:none;}
.thr:hover{border-color:var(--blue);}
.thr.sel{border-color:var(--blue);background:var(--bd);}
.thr-name{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:4px;}
.thr.sel .thr-name{color:var(--blue);}
.thr-desc{font-size:11px;color:var(--t2);line-height:1.5;}
.thr-pill{display:inline-block;font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:3px;margin-top:6px;}

/* PROVINCES / REGIONS */
.geo-tabs{display:flex;background:var(--bg);border:1px solid var(--b2);border-radius:8px;overflow:hidden;margin-bottom:13px;}
.geo-tab{flex:1;padding:8px 14px;font-size:12px;font-weight:600;font-family:var(--dm);color:var(--t3);background:none;border:none;cursor:pointer;transition:all .15s;}
.geo-tab.on{background:var(--blue);color:#fff;}
.geo-tab:not(.on):hover{background:var(--s3);color:var(--t2);}
.prov-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;}
.prov{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--b2);border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--t2);background:var(--s3);user-select:none;transition:all .15s;}
.prov:hover{border-color:var(--blue);color:var(--t1);}
.prov.sel{border-color:var(--blue);background:var(--bd);color:var(--blue);font-weight:600;}
.pchk{width:14px;height:14px;border-radius:3px;border:1.5px solid var(--b2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;transition:all .15s;}
.prov.sel .pchk{background:var(--blue);border-color:var(--blue);color:#fff;}
.prov .rg-hint{margin-left:auto;font-size:10px;color:var(--t4);font-weight:500;}
.prov.sel .rg-hint{color:var(--blue);}

/* SLIDER */
.sl-row{display:flex;align-items:center;gap:12px;}
input[type=range]{-webkit-appearance:none;flex:1;height:3px;background:var(--b2);border-radius:2px;outline:none;padding:0;border:none;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--blue);cursor:pointer;box-shadow:0 0 6px var(--bg2);}
.sl-val{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--blue);min-width:24px;text-align:right;}

/* DRAG LIST */
.drag-list{border:1px solid var(--b1);border-radius:9px;overflow:hidden;}
.drag-item{display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--s3);border-bottom:1px solid var(--b1);font-size:13px;cursor:grab;user-select:none;transition:background .1s;}
.drag-item:last-child{border-bottom:none;}
.drag-item.dragging{opacity:.35;}
.drag-item.over{background:var(--s2);box-shadow:inset 0 0 0 1px var(--blue);}
.dh{color:var(--t4);font-size:14px;flex-shrink:0;}
.dn{width:21px;height:21px;border-radius:50%;background:var(--blue);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.dn.fb{background:var(--b2);color:var(--t3);}
.dl{flex:1;font-weight:500;}
.dm{font-size:11px;color:var(--t3);}

/* CAMP LIST */
.camp-list{border:1px solid var(--b1);border-radius:9px;overflow:hidden;}
.camp-item{display:flex;align-items:center;gap:11px;padding:12px 14px;background:var(--s3);border-bottom:1px solid var(--b1);cursor:pointer;transition:background .1s;}
.camp-item:last-child{border-bottom:none;}
.camp-item:hover{background:var(--s2);}
.camp-item.sel{background:var(--bd);}
.camp-r{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--b2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.camp-item.sel .camp-r{border-color:var(--blue);background:var(--blue);}
.camp-item.sel .camp-r::after{content:'';width:4px;height:4px;border-radius:50%;background:#fff;}
.camp-name{font-size:13px;font-weight:600;}
.camp-meta{font-size:11px;color:var(--t3);margin-top:1px;}

/* VAR TABLE */
.varmap{width:100%;border-collapse:collapse;border:1px solid var(--b1);border-radius:9px;overflow:hidden;}
.varmap th{background:var(--bg);color:var(--t3);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:8px 11px;text-align:left;border-bottom:1px solid var(--b1);}
.varmap td{padding:8px 11px;border-bottom:1px solid var(--b1);font-size:12.5px;vertical-align:middle;}
.varmap tr:last-child td{border-bottom:none;}
.varmap tr:nth-child(even) td{background:var(--s2);}
.vpill{font-family:var(--mono);font-size:11px;color:#c084fc;background:rgba(192,132,252,.1);border:1px solid rgba(192,132,252,.18);padding:2px 6px;border-radius:3px;}
.vstar{color:var(--teal);font-size:10px;margin-left:2px;}

/* BANNERS */
.info{display:flex;gap:9px;padding:10px 13px;border-radius:8px;margin-bottom:11px;font-size:12.5px;line-height:1.55;}
.info.bl{background:var(--bd);border:1px solid rgba(77,143,245,.18);color:#93c5fd;}
.info.am{background:var(--ad);border:1px solid rgba(240,168,50,.18);color:var(--amber);}
.info.tl{background:var(--td);border:1px solid rgba(45,212,160,.18);color:var(--teal);}
.info.rd{background:var(--rd);border:1px solid rgba(240,96,96,.2);color:#fca5a5;}

/* BOTTOM NAV */
.bnav{display:flex;justify-content:space-between;align-items:center;padding-top:22px;margin-top:8px;border-top:1px solid var(--b1);}
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:8px;border:none;font-size:13.5px;font-weight:600;font-family:var(--dm);cursor:pointer;transition:all .15s;}
.btn-ghost{background:var(--s3);color:var(--t2);border:1px solid var(--b2);}
.btn-ghost:hover{border-color:var(--blue);color:var(--t1);}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:#3a7ee0;box-shadow:0 0 14px var(--bg2);}
.btn-teal{background:var(--teal);color:var(--bg);}
.btn-teal:hover{opacity:.88;}
.btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;}

/* SIDEBAR */
.sb-title{font-family:var(--syne);font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;}
.sb-s{margin-bottom:13px;}
.sb-sl{font-size:9.5px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
.sb-row{display:flex;justify-content:space-between;align-items:baseline;padding:3px 0;border-bottom:1px solid rgba(34,42,58,.8);font-size:11.5px;}
.sb-row:last-child{border-bottom:none;}
.sb-k{color:var(--t3);}
.sb-v{font-weight:500;color:var(--t1);text-align:right;max-width:140px;word-break:break-word;}
.sb-v.bl{color:var(--blue);}.sb-v.tl{color:var(--teal);}.sb-v.am{color:var(--amber);}.sb-v.di{color:var(--t4);font-style:italic;font-weight:400;}
.why{background:var(--bg);border:1px solid var(--b1);border-left:2px solid var(--blue);border-radius:0 7px 7px 0;padding:10px 12px;margin-top:13px;}
.why-lbl{font-size:9px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-family:var(--mono);}
.why-txt{font-size:11.5px;color:var(--t2);line-height:1.6;}

/* SIMULATION */
.sim-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:12px;}
.sim-stat{background:var(--s3);border:1px solid var(--b1);border-radius:9px;padding:14px;text-align:center;}
.sim-stat-val{font-family:var(--mono);font-size:20px;font-weight:600;margin-bottom:3px;}
.sim-stat-lbl{font-size:10.5px;color:var(--t3);}
.sim-kv{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--b1);font-size:12.5px;}
.sim-kv:last-child{border-bottom:none;}
.sim-kv-k{color:var(--t3);}
.sim-kv-v{font-weight:500;color:var(--t1);text-align:right;max-width:260px;word-break:break-word;}
.sim-kv-v.bl{color:var(--blue);}.sim-kv-v.tl{color:var(--teal);}.sim-kv-v.am{color:var(--amber);}.sim-kv-v.rd{color:var(--red);}
.sim-kv-v.mono{font-family:var(--mono);font-size:11px;}
.prompt-box{background:var(--bg);border:1px solid var(--b1);border-radius:9px;padding:15px;font-family:var(--mono);font-size:11.5px;color:#7dd3fc;line-height:1.75;white-space:pre-wrap;max-height:320px;overflow-y:auto;margin-bottom:8px;}
.pipe-list{border:1px solid var(--b1);border-radius:9px;overflow:hidden;}
.pipe-item{display:flex;align-items:flex-start;gap:11px;padding:12px 14px;background:var(--s3);border-bottom:1px solid var(--b1);}
.pipe-item:last-child{border-bottom:none;}
.pipe-n{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;font-family:var(--mono);}
.pipe-n.tl{background:var(--teal);color:var(--bg);}
.pipe-title{font-size:13px;font-weight:600;margin-bottom:3px;}
.pipe-desc{font-size:12px;color:var(--t2);line-height:1.55;}
.pipe-out{font-family:var(--mono);font-size:11px;color:var(--teal);background:var(--td);border:1px solid rgba(45,212,160,.15);border-radius:4px;padding:2px 8px;margin-top:6px;display:inline-block;}
.slack-box{background:#1a1d21;border-radius:9px;padding:16px 20px;font-family:var(--mono);font-size:12px;line-height:1.85;color:#d1d2d3;white-space:pre;}

/* MUTED / EMPTY */
.muted{font-size:12px;color:var(--t3);padding:6px 2px;}
