@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green-900:#0a2e22;--green-700:#0f5c3e;--green-500:#1a9060;--green-400:#22b578;--green-100:#d6f0e5;--green-50:#edf8f3;--amber:#b07218;--amber-bg:#fbf0dc;--red:#c44b2a;--red-bg:#faece7;--blue:#1a5a9c;--blue-bg:#e8f1fb;--ink:#111210;--ink-2:#3d3d3a;--ink-3:#6b6b67;--ink-4:#9b9b96;--border:#e2e2df;--border-2:#c8c8c4;--bg:#f5f5f2;--surface:#fff;--sans:"Inter",system-ui,-apple-system,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--r:5px;--r-lg:8px}html{font-size:13px}body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}h1{letter-spacing:-.2px;font-size:18px;font-weight:600}h2{font-size:15px;font-weight:600}h3{font-size:13px;font-weight:600}button{font-family:var(--sans);cursor:pointer}input,select,textarea{font-family:var(--sans);outline:none;font-size:12px}.app{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:196px;height:100vh;display:flex;position:sticky;top:0}.main{flex:1;padding:28px 32px;overflow:auto}.inner{max-width:900px}.nav-logo{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:8px;padding:14px 16px;display:flex}.nav-logo-mark{background:var(--green-500);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.nav-logo-mark svg{fill:#fff}.nav-logo span{color:var(--ink);font-size:14px;font-weight:600}.nav-section{font-size:10px;font-family:var(--mono);color:var(--ink-4);text-transform:uppercase;letter-spacing:.08em;margin-top:6px;padding:6px 10px 2px}.nav-item{color:var(--ink-3);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;width:calc(100% - 12px);margin:1px 6px;padding:7px 12px;font-size:12px;font-weight:400;transition:all .1s;display:flex}.nav-item:hover{background:var(--bg);color:var(--ink)}.nav-item.active{background:var(--green-50);color:var(--green-700);font-weight:500}.nav-item-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.nav-footer{border-top:1px solid var(--border);margin-top:auto;padding:12px}.nav-user{color:var(--ink);font-size:12px;font-weight:500}.nav-role{color:var(--ink-4);font-size:11px;font-family:var(--mono);margin-top:1px}.nav-signout{color:var(--ink-4);cursor:pointer;font-size:11px;font-family:var(--sans);background:0 0;border:none;margin-top:6px;padding:0}.nav-signout:hover{color:var(--ink)}.ph{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.ph h1{font-size:16px;font-weight:600}.ph-sub{color:var(--ink-3);font-size:11px;font-family:var(--mono);margin-top:2px}.btn{border-radius:var(--r);border:1px solid var(--border-2);background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .1s;display:inline-flex}.btn:hover{border-color:var(--ink-3);background:var(--bg)}.btn-primary{background:var(--green-500);color:#fff;border-color:var(--green-500)}.btn-primary:hover{background:var(--green-700);border-color:var(--green-700)}.btn-sm{padding:4px 10px;font-size:11px}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px}.card-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;padding:14px 16px;transition:border-color .1s}.card-row:hover{border-color:var(--border-2)}.field{flex-direction:column;gap:3px;display:flex}.field label{font-size:10px;font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea{border:1px solid var(--border-2);border-radius:var(--r);background:var(--surface);color:var(--ink);width:100%;padding:6px 9px;font-size:12px;transition:border-color .1s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-500);outline:none}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-section{font-size:10px;font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;border-top:1px solid var(--border);margin-top:14px;margin-bottom:8px;padding-top:14px}.form-section:first-child{border-top:none;margin-top:0;padding-top:0}.submit-row{border-top:1px solid var(--border);gap:6px;margin-top:16px;padding-top:14px;display:flex}.submit-row .btn-primary{flex:1;justify-content:center}.stat-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.stat{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:11px 13px}.stat-val{margin-bottom:2px;font-size:18px;font-weight:600;line-height:1.2}.stat-label{font-size:10px;font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.badge{font-size:10px;font-family:var(--mono);letter-spacing:.03em;border-radius:3px;padding:2px 7px;font-weight:500;display:inline-block}.badge-green{background:var(--green-50);color:var(--green-700)}.badge-amber{background:var(--amber-bg);color:var(--amber)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-gray{background:var(--bg);color:var(--ink-3);border:1px solid var(--border)}.tbl{border-collapse:collapse;width:100%}.tbl th{font-size:10px;font-family:var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;background:var(--bg);border-bottom:1px solid var(--border);text-align:left;padding:7px 10px;font-weight:500}.tbl td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px;font-size:12px}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover td{background:#00000004}.tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:18px;display:flex}.tab{color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:7px 14px;font-size:12px;font-weight:400;transition:all .1s}.tab:hover{color:var(--ink)}.tab.active{color:var(--green-700);border-bottom-color:var(--green-500);font-weight:500}.note{border-left:2px solid var(--green-400);background:var(--green-50);font-size:11px;font-family:var(--mono);color:var(--green-700);border-radius:0 var(--r) var(--r) 0;margin-bottom:14px;padding:8px 12px;line-height:1.5}.warn{border-left:2px solid var(--amber);background:var(--amber-bg);font-size:11px;font-family:var(--mono);color:var(--amber);border-radius:0 var(--r) var(--r) 0;margin-bottom:14px;padding:8px 12px;line-height:1.5}.bc{font-size:11px;font-family:var(--mono);color:var(--ink-3);align-items:center;gap:5px;margin-bottom:14px;display:flex}.bc button{color:var(--ink-3);cursor:pointer;font-family:var(--mono);background:0 0;border:none;padding:0;font-size:11px}.bc button:hover{color:var(--ink)}.bc span{opacity:.4}.upload{border:1px dashed var(--border-2);border-radius:var(--r-lg);text-align:center;cursor:pointer;background:var(--surface);padding:40px 24px;transition:all .15s}.upload:hover,.upload.drag{border-color:var(--green-500);background:var(--green-50)}.canvas-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg);position:relative;overflow:hidden}.canvas-toolbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:8px 12px;display:flex}.canvas-toolbar span{color:var(--ink-3);font-size:11px;font-family:var(--mono)}.canvas-svg{cursor:default;width:100%;display:block}.eq-node{cursor:pointer}.eq-node:hover rect,.eq-node:hover circle{filter:brightness(.95)}.stream-line{cursor:pointer}.stream-line:hover{stroke-width:3px}.data-panel{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);margin-top:12px;padding:14px 16px}.data-panel h3{align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}
