:root{--bg:#14161b;--panel:#1c1f27;--panel2:#232733;--line:#2e3340;--text:#e6e8ee;--muted:#8b93a7;--accent:#5b9dff;--cond:#3b4a6b;--cond-b:#6f8fd6;--equip:#22432f;--equip-b:#56c07a;--setvar:#4a3a1e;--setvar-b:#d9a441;--cmd:#33323e}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;height:100vh;display:flex}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 12px;display:flex}.brand{color:var(--muted);margin-right:8px;font-size:15px}.brand b{color:var(--text)}.filename{color:var(--muted);margin-left:8px}.warn{color:#d9a441;margin-left:auto;font-size:12px}.note{color:var(--muted);margin-left:auto;font-size:12px}.fineprint{color:var(--muted);margin-top:22px;font-size:12.5px}.fineprint code{background:var(--panel2);border-radius:4px;padding:1px 5px}.content:has(.vars){padding:0;overflow:hidden}.vars{height:100%;display:flex}.vars-main{flex-direction:column;flex:1;min-width:0;padding:12px 0 12px 16px;display:flex}.vars-scroll{flex:1;min-height:0;padding-right:12px;overflow:auto}.vars-scroll table.grid thead th{z-index:3;position:sticky;top:0}.addvar{padding:8px 0 0}.vars-side{border-left:1px solid var(--line);flex:0 0 250px;padding:12px;overflow:auto}.vars-side h4{margin:0 0 8px}.vars-side>button{width:100%;margin-bottom:6px}.varhelp{max-width:720px;color:var(--muted);margin-bottom:12px}.vars-side .varhelp{max-width:none;margin-top:12px;font-size:12.5px}.varhelp p{margin:0 0 8px}.varhelp b{color:var(--text)}.varhelp code{background:var(--panel2);color:var(--text);border-radius:4px;padding:1px 5px}button{background:var(--panel2);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:5px 11px;font-size:13px}button:hover{border-color:#40485a}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#0b1220;font-weight:600}.empty{text-align:center;max-width:520px;margin:auto;padding:40px}.empty h1{font-weight:650}.empty p{color:var(--muted)}.empty-actions{justify-content:center;gap:10px;margin-top:18px;display:flex}.main{flex:1;min-height:0;display:flex}.site-footer{border-top:1px solid var(--line);background:var(--panel);color:var(--muted);text-align:center;flex:none;margin-top:auto;padding:8px 16px;font-size:12px;line-height:1.5}.site-footer a{color:var(--accent);text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer b{color:var(--text);font-weight:600}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:4px;width:140px;padding:8px;display:flex}.side button{text-align:left;background:0 0;border:none;border-radius:6px;padding:8px 10px}.side button.active{background:var(--panel2);color:#fff}.content{flex:1;min-width:0;padding:16px 20px;overflow:auto}.content:has(.swaps){padding:0;overflow:hidden}.swaps{flex-direction:column;height:100%;display:flex}.swaptop{margin:12px 16px}.swaps-scroll{flex:1;min-height:0;padding:0 16px 16px;overflow:auto}.swaps-scroll table.grid thead th{z-index:3;position:sticky;top:0}.hint{color:var(--muted);margin:0 0 12px}.muted{color:var(--muted)}.flow{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.lane{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:300px;max-width:460px;overflow:hidden}.lane-title{background:var(--panel2);border-bottom:1px solid var(--line);padding:9px 12px;font-weight:600}.lane-body{padding:10px 12px}.rn{margin:3px 0}.rn-label{border:1px solid var(--line);border-radius:6px;padding:4px 9px;font-size:13px;display:inline-block}.rn.cond>.rn-label{background:var(--cond);border-color:var(--cond-b);font-weight:600}.rn.equip>.rn-label{background:var(--equip);border-color:var(--equip-b)}.rn.setvar>.rn-label{background:var(--setvar);border-color:var(--setvar-b)}.rn.cmd>.rn-label,.rn.other>.rn-label{background:var(--cmd)}.rn.comment{color:var(--muted);padding-left:4px;font-size:12px;font-style:italic}.rn-kids{border-left:2px solid var(--line);margin:4px 0 6px 14px;padding-left:12px}table.grid{border-collapse:separate;border-spacing:0;width:100%;max-width:900px}.grid th,.grid td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;padding:5px 8px}.grid th:first-child,.grid td:first-child{border-left:1px solid var(--line)}.grid thead th{border-top:1px solid var(--line);background:var(--panel2);font-weight:600}.grid tr.adv td{color:var(--muted);background:#191b22}.grid tr.addrow td{background:#191c24}.grid select,.grid input{width:100%}select,input{background:var(--panel2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:5px;padding:4px 6px}.ac-wrap{display:inline-block;position:relative}.ac-input{width:100%}.ac-list{z-index:20;background:var(--panel2);border:1px solid var(--line);border-radius:6px;max-height:240px;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0006}.ac-item{cursor:pointer;white-space:nowrap;padding:5px 8px}.ac-item.hi{background:var(--accent);color:#0b1220}.acb-suggest{z-index:100000;color:#e6e8ee;background:#232733;border:1px solid #40485a;border-radius:6px;max-height:260px;font:13px system-ui,sans-serif;position:fixed;overflow:auto;box-shadow:0 10px 30px #00000080}.acb-item{cursor:pointer;white-space:nowrap;padding:5px 10px}.acb-item:hover{background:var(--accent);color:#0b1220}.sets{align-items:flex-start;gap:16px;display:flex}.setlist{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:200px;overflow:hidden}.setlist-head{border-bottom:1px solid var(--line);gap:4px;padding:6px;display:flex}.setlist-head button{flex:1;padding:4px}.setitem{cursor:pointer;border-bottom:1px solid #20232c;padding:7px 10px}.setitem.active{background:var(--panel2);color:#fff}.seteditor{flex:1;min-width:0}.setrow{align-items:center;gap:8px;margin-bottom:12px;display:flex}.setrow label{color:var(--muted)}.slots{grid-template-columns:repeat(2,1fr);gap:8px 18px;max-width:720px;display:grid}.slot{align-items:center;gap:8px;display:flex}.slot label{width:44px;color:var(--muted);text-align:right}.settingsview{padding-bottom:24px}.settingsview .sec-h{border-bottom:1px solid var(--line);margin:16px 0 6px;padding-bottom:4px;font-size:14px}.settingsview code{background:var(--panel2);color:var(--text);border-radius:4px;padding:1px 5px}.setcheck{align-items:flex-start;gap:8px;max-width:640px;margin:6px 0;display:flex}.setcheck b{font-weight:600}.initrow{align-items:center;gap:8px;max-width:720px;margin:4px 0;display:flex}.initsum{flex:1}.cmds{padding:4px 2px}.cmds code,.cmds-list code{background:var(--panel2);color:var(--text);border-radius:4px;padding:1px 5px}.cmdlist{max-width:720px;margin-top:10px}.mt-modes{margin:10px 0}.mt-mode{align-items:center;gap:8px;margin:4px 0;display:flex}.outline{border:1px solid var(--line);background:var(--panel);border-radius:8px;max-width:720px;margin-top:8px;padding:6px 4px}.outrow{color:var(--text);padding:2px 6px;font-size:13px}.rightval{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;flex:0 0 320px;width:320px;min-height:0;display:flex}.rv-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;display:flex}.rv-ok{color:var(--equip-b);font-size:13px;font-weight:600}.rv-badge{color:#fff;background:#c65b6b;border-radius:10px;padding:1px 9px;font-size:12px}.rv-body{padding:8px 12px;overflow:auto}.rv-body ul{margin:0;padding-left:16px}.rv-body li{color:var(--text);margin:6px 0;font-size:12.5px}.modal-bg{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:340px;padding:18px 20px}.modal h3{margin:0 0 12px}.mrow{align-items:center;gap:10px;margin-bottom:10px;display:flex}.mrow label{width:40px;color:var(--muted)}.mcheck{align-items:center;gap:8px;margin:8px 0;display:flex}.mactions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.modal.wide{flex-direction:column;width:min(720px,94vw);max-height:88vh;display:flex}.re-headbar{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.re-headbar h3{margin:0}.re-body{overflow:auto}.grid .rowbtns{white-space:nowrap;gap:4px;display:flex}.addadv{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.swaptop{background:var(--panel);border:1px solid var(--line);border-radius:8px;grid-template-columns:max-content 1fr max-content;align-items:center;gap:10px 14px;padding:12px 14px;display:grid}.swaptop .lbl{color:var(--muted);font-weight:600}.swaptop .ctrls{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.swaptop .primary{min-width:92px}.addbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.addbar .lbl{width:108px;color:var(--muted);font-weight:600}.grid tr.grp td{background:var(--panel2);color:var(--text);border-top:2px solid var(--line);font-weight:600}.grid td.advsum{color:var(--muted)}.re-node{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:6px 0;padding:8px 10px}.re-node.cond{border-left:3px solid var(--cond-b)}.re-node.equip{border-left:3px solid var(--equip-b)}.re-node.leaf{border-left:3px solid var(--line)}.re-headrow{justify-content:space-between;align-items:center;display:flex}.re-type{font-weight:600}.re-ctrls button{margin-left:2px;padding:2px 7px}.re-sub{color:var(--muted);margin:6px 0 2px;font-size:12px}.re-conds{margin-bottom:4px}.re-cond{align-items:center;gap:6px;margin:3px 0;display:flex}.re-is{color:var(--muted)}.re-cond select{max-width:260px}.re-expr{min-width:160px;font-family:var(--mono,monospace);flex:1}.re-row{align-items:center;gap:8px;margin:4px 0;display:flex}.re-row label{width:64px;color:var(--muted);text-align:right}.re-row input{flex:1}.re-row input.re-key{flex:0 0 150px}.re-slots{margin:4px 0}.re-slot{align-items:center;gap:6px;margin:3px 0;display:flex}.re-check{color:var(--muted);align-items:center;gap:6px;margin-top:6px;font-size:13px;display:flex}.re-children{border-left:2px solid var(--line);margin:4px 0 2px 14px;padding-left:10px}.re-add,.re-mini{margin-top:4px}.re-mini{padding:3px 8px;font-size:12px}
