@import url("https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@500;600;700&display=swap");:root{--bg:#0b0e14;--grid:#161b26;--panel:#11151f;--panel-2:#0e121b;--steel:#8a94a6;--steel-dim:#4a5160;--text:#c7cedb;--text-dim:#6b7385;--red:#ff3b30;--amber:#ffb020;--green:#22c77e;--blue:#3a7bff}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Sora,system-ui,sans-serif;-webkit-font-smoothing:antialiased;height:100%;overflow:hidden}body{background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px;background-position:-1px -1px;position:relative}body:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.mono{font-family:IBM Plex Mono,monospace}.display{font-family:Archivo,sans-serif}.app{height:100vh;display:flex;flex-direction:column;padding:6px 16px;gap:6px;max-width:1860px;margin:0 auto}.bar{border:1px solid #1c2230;background:linear-gradient(180deg,rgba(17,21,31,.9),rgba(11,14,20,.9));border-radius:8px;flex-shrink:0}.topbar{position:relative;display:flex;align-items:center;justify-content:space-between;padding:10px 16px}.cta-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:Archivo,sans-serif;font-weight:700;letter-spacing:.04em;font-size:13px;color:#06140e;background:var(--green);border:1px solid var(--green);padding:9px 18px;border-radius:6px;text-decoration:none;white-space:nowrap;box-shadow:0 0 18px rgba(34,199,126,.35);transition:filter .15s,box-shadow .15s}.cta-btn:hover{filter:brightness(1.08);box-shadow:0 0 26px rgba(34,199,126,.6)}.topbar .title{font-family:Archivo,sans-serif;font-weight:800;letter-spacing:.18em;font-size:18px;color:#eaeff7}.topbar .title small{display:block;font-family:IBM Plex Mono,monospace;font-weight:400;letter-spacing:.12em;font-size:9px;color:var(--text-dim);margin-top:2px}.topbar .right{display:flex;align-items:center;gap:18px}.throughput-readout{display:flex;align-items:center;gap:10px;font-family:IBM Plex Mono,monospace}.throughput-readout .label{font-size:9px;letter-spacing:.14em;color:var(--text-dim)}.tmeter{display:flex;gap:3px}.tmeter i{width:9px;height:18px;background:#1c2230;border-radius:1px;display:block}.tmeter i.on{background:var(--c,var(--green));box-shadow:0 0 6px var(--c,var(--green))}.throughput-readout .num{font-size:16px;font-weight:600;color:#eaeff7}.btn{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;color:var(--steel);background:#131826;border:1px solid #232b3c;padding:6px 12px;border-radius:5px;cursor:pointer;transition:all .15s}.btn:hover{color:#eaeff7;border-color:#36405a;background:#182032}.laws{display:flex;align-items:center;gap:40px;padding:6px 18px}.laws .laws-tag{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.16em;color:var(--text-dim)}.law{display:flex;align-items:center;gap:12px;flex:1 1}.law .law-name{font-size:10px;letter-spacing:.1em;color:var(--steel);white-space:nowrap;min-width:108px}.law .law-name,.law .law-val{font-family:IBM Plex Mono,monospace}.law .law-val{font-size:13px;font-weight:600;color:#eaeff7;width:20px;text-align:right}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:#232b3c;border-radius:3px;outline:none;cursor:pointer;flex:1 1}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#c7cedb;border:2px solid #0b0e14;box-shadow:0 0 0 1px #36405a;cursor:pointer;-webkit-transition:background .15s;transition:background .15s}input[type=range]::-webkit-slider-thumb:hover{background:#fff}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#c7cedb;border:2px solid #0b0e14;cursor:pointer}input[type=range].danger::-webkit-slider-thumb{background:var(--amber)}.stage{position:relative;flex:1 1;min-height:0;display:flex;align-items:center;justify-content:center}.loop-wrap{position:relative;width:100%;max-width:1820px;aspect-ratio:1200/460;max-height:100%}.loop-canvas,.loop-svg{position:absolute;inset:0;width:100%;height:100%}.loop-canvas{pointer-events:none}.node-rect{cursor:pointer;transition:filter .3s}.node-label{font-size:16px;letter-spacing:.12em;fill:var(--text)}.node-label,.node-score{font-family:IBM Plex Mono,monospace}.node-score{font-weight:600;font-size:30px}.node-sub{font-size:9px;letter-spacing:.08em;fill:var(--text-dim)}.node-sub,.seg-name{font-family:IBM Plex Mono,monospace}.seg-name{font-size:10.5px;letter-spacing:.01em}.seg-slider{display:flex;align-items:center;width:100%;height:100%;pointer-events:auto}.seg-slider input[type=range]{width:100%;height:3px;margin:0}.seg-slider input[type=range]::-webkit-slider-thumb{width:9px;height:9px;border-width:1.5px}.seg-slider input[type=range]::-moz-range-thumb{width:9px;height:9px}.seg-val{font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;min-width:9px;text-align:right}@keyframes redpulse{0%,to{filter:drop-shadow(0 0 3px rgba(255,59,48,.55))}50%{filter:drop-shadow(0 0 14px rgba(255,59,48,.95))}}.pulse-red{animation:redpulse 1.2s ease-in-out infinite}.foundation{display:flex;align-items:stretch;gap:10px;padding:4px 16px}.foundation .found-tag{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.14em;color:var(--text-dim);align-self:center;white-space:nowrap;min-width:96px}.found-block{flex:1 1;position:relative;border:1px solid #232b3c;border-radius:6px;padding:4px 12px 5px;background:repeating-linear-gradient(90deg,rgba(138,148,166,.05) 0 2px,transparent 2px 6px),linear-gradient(180deg,#141925,#0e121b);display:flex;flex-direction:column;gap:3px;overflow:hidden;transition:transform .2s}.found-block .fb-head{display:flex;justify-content:space-between;align-items:baseline}.found-block .fb-name{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.12em;color:var(--steel)}.found-block .fb-val{font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:600;color:#eaeff7}.found-block .crack{position:absolute;inset:0;pointer-events:none}.found-block.risk{border-color:rgba(255,59,48,.5)}.found-block .fb-supports{font-family:IBM Plex Mono,monospace;font-size:7.5px;letter-spacing:.06em;color:var(--steel-dim)}.insight{display:flex;align-items:center;gap:14px;padding:12px 18px;height:72px;flex-shrink:0;overflow:hidden;border-color:rgba(255,59,48,.28);background:linear-gradient(180deg,rgba(40,16,16,.55),rgba(11,14,20,.9))}.insight .diamond{color:var(--red);font-size:14px;filter:drop-shadow(0 0 6px rgba(255,59,48,.7))}.insight .itext{font-size:14px;line-height:1.45}.insight .itext .pill{font-family:Archivo,sans-serif;font-weight:700;letter-spacing:.04em}.insight .itext .wasted{color:var(--blue)}.insight .itext .imp{font-family:Archivo,sans-serif;font-weight:700;color:#eaeff7}.panel-scrim{position:fixed;inset:0;background:rgba(4,6,10,.55);z-index:50;animation:fade .2s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.panel{position:fixed;top:0;right:0;height:100vh;width:420px;max-width:92vw;background:linear-gradient(180deg,#12161f,#0c0f16);border-left:1px solid #232b3c;z-index:51;display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.5);animation:slidein .24s cubic-bezier(.2,.8,.2,1)}@keyframes slidein{0%{transform:translateX(40px);opacity:0}to{transform:translateX(0);opacity:1}}.panel-head{padding:18px 20px 14px;border-bottom:1px solid #1c2230;display:flex;justify-content:space-between;align-items:flex-start}.panel-head .ph-name{font-family:Archivo,sans-serif;font-weight:800;letter-spacing:.1em;font-size:18px}.panel-head .ph-meta{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.1em;color:var(--text-dim);margin-top:4px}.panel-body{padding:12px 20px;overflow-y:auto;flex:1 1}.panel-foot{padding:14px 20px;border-top:1px solid #1c2230}.subpart{border:1px solid #1c2230;border-radius:6px;padding:11px 12px;margin-bottom:9px;background:#0f131c;transition:opacity .15s,border-color .15s}.subpart.off{opacity:.42}.subpart .sp-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}.subpart .sp-name{flex:1 1;background:transparent;border:none;color:var(--text);font-family:IBM Plex Mono,monospace;font-size:12px;padding:2px 4px;border-radius:4px}.subpart .sp-name:focus{outline:none;background:#141a26}.subpart .sp-name:disabled{color:var(--steel)}.subpart .sp-score{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:14px;width:22px;text-align:right;color:#eaeff7}.subpart .sp-row{display:flex;align-items:center;gap:10px}.toggle{width:34px;height:18px;border-radius:10px;background:#232b3c;border:1px solid #2c3548;position:relative;cursor:pointer;flex-shrink:0;transition:background .15s}.toggle.on{background:var(--green);border-color:var(--green)}.toggle:after{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:#0b0e14;transition:transform .15s}.toggle.on:after{transform:translateX(16px)}.icon-btn{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 5px;border-radius:4px;line-height:1}.icon-btn:hover{color:var(--red);background:rgba(255,59,48,.08)}.add-btn{width:100%;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.08em;color:var(--steel);background:#11161f;border:1px dashed #2c3548;padding:10px;border-radius:6px;cursor:pointer}.add-btn:hover{color:#eaeff7;border-color:#3a7bff}.add-btn:disabled{opacity:.4;cursor:not-allowed}.fixed-note{font-size:10px;color:var(--text-dim);line-height:1.5;padding:4px 2px}.fixed-note,.toast{font-family:IBM Plex Mono,monospace}.toast{position:fixed;top:100px;left:50%;transform:translateX(-50%);background:#161b26;border:1px solid var(--red);color:#eaeff7;font-size:12px;letter-spacing:.06em;padding:10px 18px;border-radius:6px;z-index:80;box-shadow:0 0 24px rgba(255,59,48,.3);animation:toastin .3s ease,toastout .4s ease 2.1s forwards}@keyframes toastin{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes toastout{to{opacity:0;transform:translate(-50%,-10px)}}.color-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.tooltip-box{position:fixed;z-index:200;max-width:300px;background:#f5f7fb;color:#11151f;font-family:Sora,system-ui,sans-serif;font-size:12.5px;font-weight:500;line-height:1.45;padding:10px 13px;border-radius:8px;border:1px solid hsla(0,0%,100%,.25);box-shadow:0 10px 34px rgba(0,0,0,.55);pointer-events:none}