@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=DM+Sans:wght@300;400;500;600;700&display=swap");[data-theme=light]{--bg-base:#eef1f6;--bg-surface:#fff;--bg-card:#fff;--bg-elev:#f4f6fa;--bg-hover:#eaecf2;--border:#dde3ec;--border-hi:#c4cdd9;--shadow-sm:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 20px rgba(0,0,0,.10),0 2px 6px rgba(0,0,0,.05);--shadow-lg:0 8px 40px rgba(0,0,0,.14),0 4px 12px rgba(0,0,0,.07);--t1:#0d1621;--t2:#38506a;--t3:#6b819a;--t4:#9fb0c2;--teal:#006f5a;--teal-l:#00956e;--teal-d:rgba(0,111,90,.08);--amber:#b86e00;--amber-l:#f59e0b;--amber-d:rgba(184,110,0,.08);--red:#b52b2b;--red-l:#e84545;--red-d:rgba(181,43,43,.07);--blue:#1a65a0;--blue-d:rgba(26,101,160,.07);--green:#1a7040;--green-d:rgba(26,112,64,.07);--purple:#5f3fbf}[data-theme=dark]{--bg-base:#070a10;--bg-surface:#0c1018;--bg-card:#111620;--bg-elev:#171e2c;--bg-hover:#1c2438;--border:#1a2a40;--border-hi:#243650;--shadow-sm:0 1px 3px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2);--shadow-md:0 4px 20px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.2);--shadow-lg:0 8px 40px rgba(0,0,0,.6),0 4px 12px rgba(0,0,0,.3);--t1:#dde5f0;--t2:#8fa3bf;--t3:#536785;--t4:#2d4060;--teal:#00c9a7;--teal-l:#00e0bc;--teal-d:rgba(0,201,167,.10);--amber:#f5a623;--amber-l:#fbbf24;--amber-d:rgba(245,166,35,.10);--red:#e84545;--red-l:#f06060;--red-d:rgba(232,69,69,.09);--blue:#4d9fff;--blue-d:rgba(77,159,255,.09);--green:#38d47e;--green-d:rgba(56,212,126,.09);--purple:#a78bfa}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-base);color:var(--t1);font-family:DM Sans,sans-serif;min-height:100vh;transition:background .25s,color .25s;overflow-x:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:3px}.mono{font-family:IBM Plex Mono,monospace}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#0d1621;color:#e8f0f8;font-size:11.5px;font-weight:400;line-height:1.5;white-space:normal;width:max-content;max-width:240px;padding:7px 10px;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:9999}[data-tip]:hover:after{opacity:1}.topnav{justify-content:space-between;padding:0 24px;height:52px;background:var(--bg-surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:400;box-shadow:var(--shadow-sm)}.nav-brand,.topnav{display:flex;align-items:center}.nav-brand{gap:9px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--t1);text-decoration:none}.brand-dot{width:8px;height:8px;background:var(--teal);border-radius:50%;box-shadow:0 0 0 2px var(--teal-d);animation:pulse 2.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.4}}.nav-steps{gap:2px}.nav-steps,.sbtn{display:flex;align-items:center}.sbtn{gap:6px;padding:5px 11px;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--t4);font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;text-decoration:none}.sbtn:hover{color:var(--t2);background:var(--bg-elev)}.sbtn.active{background:var(--teal-d);border-color:rgba(0,111,90,.22);color:var(--teal)}[data-theme=dark] .sbtn.active{border-color:rgba(0,201,167,.22)}.sbtn.done{color:var(--teal)}.snum{width:16px;height:16px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);flex-shrink:0}.sbtn.active .snum{background:var(--teal);color:#fff;font-weight:700}.sbtn.done .snum{background:var(--teal-d);color:var(--teal)}.sdiv{width:16px;height:1px;background:var(--border);flex-shrink:0}.nav-right{display:flex;align-items:center;gap:8px}.nav-tag{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.07em;color:var(--t3);background:var(--bg-elev);border:1px solid var(--border);padding:3px 8px;border-radius:4px}.screen{padding:22px 28px;min-height:calc(100vh - 52px)}.scr-footer{margin-top:22px;padding-top:14px;border-top:1px solid var(--border);align-items:center}.phd,.scr-footer{display:flex;justify-content:space-between}.phd{align-items:flex-start;margin-bottom:18px}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.13em;color:var(--t3);text-transform:uppercase;margin-bottom:3px}.ptitle{font-size:19px;font-weight:700;color:var(--t1);letter-spacing:-.3px}.psub{color:var(--t2);margin-top:2px}.btn,.psub{font-size:13px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:5px;font-family:DM Sans,sans-serif;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-cta{background:var(--teal);color:#fff;font-weight:600;box-shadow:0 2px 6px var(--teal-d)}.btn-cta:hover:not(:disabled){background:var(--teal-l)}.btn-sec{background:var(--bg-surface);border-color:var(--border-hi);color:var(--t1);box-shadow:var(--shadow-sm)}.btn-sec:hover{border-color:var(--teal);color:var(--teal)}.btn-ghost{background:transparent;border-color:var(--border);color:var(--t2)}.btn-ghost:hover{background:var(--bg-elev);color:var(--t1)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600;font-family:IBM Plex Mono,monospace;letter-spacing:.03em;white-space:nowrap}.b-amber{background:var(--amber-d);color:var(--amber);border:1px solid var(--amber-d)}.b-red{background:var(--red-d);color:var(--red);border:1px solid var(--red-d)}.b-green{background:var(--green-d);color:var(--green);border:1px solid var(--green-d)}.b-teal{background:var(--teal-d);color:var(--teal);border:1px solid var(--teal-d)}.b-blue{background:var(--blue-d);color:var(--blue);border:1px solid var(--blue-d)}.b-muted{background:var(--bg-elev);color:var(--t2);border:1px solid var(--border)}.b-purple{background:rgba(95,63,191,.08);color:var(--purple);border:1px solid rgba(95,63,191,.15)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm)}.card-hd{padding:11px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg-elev)}.cht{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--t2);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.cbody{padding:16px}.srow{display:flex;gap:10px;margin-bottom:18px}.sc{flex:1 1;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:13px 15px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}.sc:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.sc-teal:before{background:var(--teal)}.sc-amber:before{background:var(--amber-l)}.sc-red:before{background:var(--red-l)}.sc-blue:before{background:var(--blue)}.sc .sl{font-size:9px;color:var(--t3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}.sc .sl,.sc .sv{font-family:IBM Plex Mono,monospace}.sc .sv{font-size:22px;font-weight:700;color:var(--t1);line-height:1}.sc .ss{font-size:11px;color:var(--t2);margin-top:4px}.pt{height:3px;background:var(--border);overflow:hidden;margin-top:7px}.pf,.pt{border-radius:2px}.pf{height:100%;transition:width .5s ease}.pf-t{background:var(--teal)}.pf-a{background:var(--amber-l)}.pf-r{background:var(--red-l)}.pf-b{background:var(--blue)}.effort-bar{background:linear-gradient(90deg,var(--red-d),var(--amber-d));border:1px solid var(--red-d);border-left:3px solid var(--red-l);border-radius:6px;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.effort-stats{display:flex;gap:28px}.es .ev{font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:700}.es .el{font-size:11px;color:var(--t2);margin-top:1px}.es-w .ev{color:var(--t1)}.es-r .ev{color:var(--red)}.es-m .ev{color:var(--t3)}.src-grid{display:grid;grid-template-columns:repeat(3,1fr);border-radius:8px;overflow:hidden}.src-grid.src-grid-2col{grid-template-columns:repeat(2,1fr)}.src-grid.src-grid-1col{grid-template-columns:1fr}.src-grid{border:1px solid var(--border);margin-bottom:14px;box-shadow:var(--shadow-sm)}.src-col{border-right:1px solid var(--border)}.src-col:last-child{border-right:none}.src-hd{padding:10px 13px;background:var(--bg-elev);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.src-hd-n{font-size:11px;font-weight:600;color:var(--t1)}.src-hd-c,.src-hd-n{font-family:IBM Plex Mono,monospace}.src-hd-c{font-size:10px;color:var(--t3)}.src-cols-hd{display:flex;padding:5px 13px;background:var(--bg-base);border-bottom:1px solid var(--border)}.src-col-label{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;flex:1 1}.src-col-label,.src-row{font-family:IBM Plex Mono,monospace}.src-row{display:flex;align-items:center;justify-content:space-between;padding:7px 13px;border-bottom:1px solid rgba(180,196,216,.3);font-size:11px;color:var(--t2)}[data-theme=dark] .src-row{border-bottom-color:rgba(26,42,64,.45)}.src-row:last-child{border-bottom:none}.src-row.r-id{color:var(--t1);font-weight:600;background:var(--bg-elev)}.src-row.r-sep{border-top:2px solid var(--border)}.iflag{width:7px;height:7px;border-radius:50%;flex-shrink:0}.if-ok{background:var(--teal);opacity:.4}.if-w{background:var(--amber-l);box-shadow:0 0 4px var(--amber-d)}.if-e{background:var(--red-l);box-shadow:0 0 4px var(--red-d)}.hw{color:var(--amber);font-weight:500}.he{color:var(--red);font-style:italic}.run-cta{background:linear-gradient(135deg,var(--teal-d),transparent);border:1px solid var(--teal-d);border-radius:8px;padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.rct .rt{font-size:15px;font-weight:600;color:var(--t1);margin-bottom:3px}.rct .rs{font-size:12px;color:var(--t2)}.issue-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.ibox{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:13px 15px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}.ibox:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.ib-a:before{background:var(--amber-l)}.ib-r:before{background:var(--red-l)}.ib-b:before{background:var(--blue)}.ib-g:before{background:var(--teal)}.ic{font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:700;line-height:1;margin-bottom:3px}.il{font-size:12px;color:var(--t1);font-weight:600;margin-bottom:2px}.id{font-size:11px;color:var(--t2)}.pipeline{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:18px;box-shadow:var(--shadow-sm)}.ps{flex:1 1;padding:14px 16px;border-right:1px solid var(--border);position:relative;background:var(--bg-card)}.ps:last-child{border-right:none}.ps-lbl{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}.ps-st{font-size:13px;font-weight:600;margin-bottom:3px}.ps-done .ps-st{color:var(--teal)}.ps-run .ps-st{color:var(--amber)}.ps-wait .ps-st{color:var(--t4)}.ps-det{font-size:11px;color:var(--t2)}.ps-done{background:color-mix(in srgb,var(--teal) 4%,var(--bg-card))}.ps-run{background:color-mix(in srgb,var(--amber-l) 5%,var(--bg-card))}.ps-done:after,.ps-run:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px}.ps-done:after{background:var(--teal)}.ps-run:after{background:var(--amber-l);animation:sh 1.3s ease-in-out infinite}@keyframes sh{0%,to{opacity:1}50%{opacity:.25}}.exc-kpi-row{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}.exc-kpi{flex:1 1;min-width:130px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:12px 16px;box-shadow:var(--shadow-sm)}.exc-kpi-label{font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.exc-kpi-label,.exc-kpi-value{font-family:IBM Plex Mono,monospace}.exc-kpi-value{font-size:22px;font-weight:700;line-height:1}.exc-kpi-sub{font-size:10px;color:var(--t3);margin-top:4px}.exc-kpi-track{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:8px}.exc-kpi-fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--teal-l));border-radius:2px;transition:width .4s ease}.eh-track{height:7px;background:var(--border);border-radius:4px;overflow:hidden;margin-bottom:5px}.eh-fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--teal-l));border-radius:4px}.exc-layout{display:grid;grid-template-columns:1.65fr 1fr;gap:14px;align-items:start}.exc-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm)}.exc-scroll{overflow-x:auto}.exc-filters{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;gap:6px;background:var(--bg-elev);flex-wrap:wrap}.exc-filters,.fc{align-items:center}.fc{padding:4px 11px;border-radius:4px;font-family:IBM Plex Mono,monospace;font-size:10px;border:1px solid var(--border);background:var(--bg-card);color:var(--t3);cursor:pointer;transition:all .13s;white-space:nowrap;display:inline-flex;gap:5px}.fc.on{border-color:var(--teal);color:var(--teal);background:var(--teal-d)}.fc-sp{flex:1 1}.exc-hd{display:grid;grid-template-columns:88px minmax(0,1.4fr) 112px 112px 82px 108px 96px 118px 82px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--bg-elev);gap:8px;min-width:980px;align-items:end}.ech{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:normal;line-height:1.4;word-break:break-word;overflow:hidden}.ech:hover{color:var(--t1)}.exc-row{display:grid;grid-template-columns:88px minmax(0,1.4fr) 112px 112px 82px 108px 96px 118px 82px;padding:11px 16px;border-bottom:1px solid rgba(180,196,216,.18);border-left:3px solid transparent;cursor:pointer;transition:background .1s;align-items:center;gap:8px;min-width:980px}[data-theme=dark] .exc-row{border-bottom-color:rgba(26,42,64,.35)}.exc-row:last-child{border-bottom:none}.exc-row:hover{background:var(--bg-hover)}.exc-row.exc-exc{border-left-color:var(--red)}.exc-row.exc-near{border-left-color:var(--amber)}.exc-row.exc-res,.exc-row.sel{border-left-color:var(--teal)}.exc-row.sel{background:var(--teal-d)}.eref{display:block;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edesc{font-size:12px;font-weight:500}.eamt,.edesc{display:block;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eamt{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.exc-delta-pos{color:var(--red)}.exc-delta-neg,.exc-delta-pos{display:block;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;white-space:nowrap;text-align:right}.exc-delta-neg{color:var(--teal)}.exc-delta-nil{display:block;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--t4);text-align:right}.detail-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden;position:sticky;top:64px;box-shadow:var(--shadow-md)}.dp-hd{padding:13px 16px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.dp-id{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--teal);margin-bottom:2px;font-weight:600}.dp-title{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:6px}.dp-sec{padding:13px 15px;border-bottom:1px solid var(--border)}.dp-sec:last-child{border-bottom:none}.dp-lbl{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.12em;margin-bottom:9px;display:flex;align-items:center;gap:5px}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-radius:5px;overflow:hidden}.diff-col{background:var(--bg-elev);padding:10px 11px}.diff-src{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:600}.df{margin-bottom:7px}.df-k{font-size:10px;color:var(--t3);margin-bottom:2px}.df-v{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--t1);font-weight:500}.df-v.chg{padding:1px 4px;border-radius:3px}.df-v.chg,.diff-delta{color:var(--amber);background:var(--amber-d)}.diff-delta{text-align:center;padding:7px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:700;border:1px solid var(--amber-d);border-radius:4px;margin-top:9px}.ai-panel{background:var(--teal-d);border:1px solid var(--teal-d);border-radius:5px;padding:11px}.ai-lbl{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--teal);text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px;display:flex;align-items:center;gap:5px;font-weight:600}.ai-dot{width:5px;height:5px;background:var(--teal);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}.ai-txt{font-size:12px;color:var(--t2);line-height:1.6}.ai-conf{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--teal);margin-top:6px;font-weight:500}.act-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.act{padding:10px 8px;border-radius:5px;border:1px solid;font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:all .13s;font-family:DM Sans,sans-serif}.act:disabled{opacity:.45;cursor:not-allowed}.act:hover:not(:disabled){filter:brightness(.92);transform:translateY(-1px)}[data-theme=dark] .act:hover:not(:disabled){filter:brightness(1.15)}.act-ok{background:var(--green-d);border-color:var(--green);color:var(--green)}.act-ov{background:var(--amber-d);border-color:var(--amber);color:var(--amber)}.act-es{background:var(--red-d);border-color:var(--red);color:var(--red)}.act-nt{background:var(--bg-elev);border-color:var(--border-hi);color:var(--t2)}.act-tip-wrap{position:relative}.act-tip{display:none;bottom:calc(100% + 7px);width:200px;background:var(--bg-card);border:1px solid var(--border-hi);border-radius:6px;padding:8px 10px;box-shadow:0 6px 20px rgba(0,0,0,.18);z-index:200;font-size:11px;color:var(--t2);line-height:1.5;gap:5px;align-items:flex-start;pointer-events:none}.act-tip,.act-tip:after{position:absolute;left:50%;transform:translateX(-50%)}.act-tip:after{content:"";top:100%;border:5px solid transparent;border-top:5px solid var(--border-hi)}.act-tip-wrap:hover .act-tip{display:flex}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:600;display:flex;align-items:center;justify-content:center}.modal-overlay.hidden{display:none}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;width:420px;box-shadow:var(--shadow-lg)}.modal-hd{padding:15px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:14px;font-weight:700;color:var(--t1)}.modal-body{padding:16px 18px}.modal-field{margin-bottom:13px}.modal-label{font-size:12px;font-weight:600;color:var(--t2);margin-bottom:5px;display:flex;align-items:center;gap:5px}.modal-input{width:100%;padding:9px 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:5px;font-family:DM Sans,sans-serif;font-size:13px;color:var(--t1);outline:none;transition:border-color .15s;resize:vertical;min-height:80px}.modal-input:focus{border-color:var(--teal)}.modal-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.report-id{background:var(--bg-card);border-radius:8px;border:1px solid var(--border);border-top:3px solid var(--teal);padding:18px 24px;margin-bottom:14px;display:flex;align-items:flex-start;justify-content:space-between;box-shadow:var(--shadow-sm)}.ri-org{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.14em;margin-bottom:4px}.ri-period{font-size:20px;font-weight:700;color:var(--t1);letter-spacing:-.3px;margin-bottom:2px}.ri-meta{font-size:11px;color:var(--t2)}.ri-kpis{display:flex;gap:28px}.ri-kpi{text-align:right}.ri-kpi .kv{font-family:IBM Plex Mono,monospace;font-size:22px;font-weight:700;line-height:1}.ri-kpi .kl{font-size:10px;color:var(--t3);margin-top:4px;text-transform:uppercase;letter-spacing:.08em}.rg{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;margin-bottom:16px}.dl{flex-direction:column}.dl,.dl-item{display:flex;gap:8px}.dl-item{align-items:center}.dl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dl-lbl{font-size:12px;color:var(--t2)}.dl-val{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:700;color:var(--t1);margin-left:auto}.var-hd{display:grid;grid-template-columns:1fr 100px 100px 88px 1fr;padding:8px 15px;border-bottom:1px solid var(--border);background:var(--bg-elev);gap:8px}.vth{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}.var-row{display:grid;grid-template-columns:1fr 100px 100px 88px 1fr;padding:10px 15px;border-bottom:1px solid rgba(180,196,216,.3);align-items:center;font-size:13px;gap:8px}[data-theme=dark] .var-row{border-bottom-color:rgba(26,42,64,.35)}.var-row:last-child{border-bottom:none}.var-row:hover{background:var(--bg-hover)}.va{color:var(--t1);font-weight:500}.vn{font-family:IBM Plex Mono,monospace;font-size:12px;text-align:right}.vdr,.vn{color:var(--t2)}.vdr{font-size:11px;background:var(--bg-elev);border-radius:3px;padding:2px 7px;display:inline-block;border:1px solid var(--border)}.dpv{color:var(--red)}.dnv,.dpv{font-weight:600;text-align:right;font-family:IBM Plex Mono,monospace;font-size:12px}.dnv{color:var(--green)}.al-hd{padding:11px 16px;border-bottom:1px solid var(--border);justify-content:space-between;background:var(--bg-elev)}.al-hd,.ts-seal{display:flex;align-items:center}.ts-seal{gap:6px;font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--teal);background:var(--teal-d);border:1px solid var(--teal-d);border-radius:4px;padding:3px 9px;font-weight:600}.ae{display:flex;align-items:flex-start;gap:13px;padding:12px 16px;border-bottom:1px solid rgba(180,196,216,.25)}[data-theme=dark] .ae{border-bottom-color:rgba(26,42,64,.3)}.ae:last-child{border-bottom:none}.ae-ic{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;border:1px solid;font-weight:700}.ic-ai{background:var(--teal-d);border-color:var(--teal-d);color:var(--teal)}.ic-hu{background:var(--blue-d);border-color:var(--blue-d);color:var(--blue)}.ae-body{flex:1 1}.ae-meta{display:flex;align-items:center;gap:9px;margin-bottom:4px;flex-wrap:wrap}.ae-ts{color:var(--t3)}.ae-ts,.ae-user{font-family:IBM Plex Mono,monospace;font-size:10px}.ae-user{color:var(--blue);font-weight:600}.ae-act{font-size:12px;color:var(--t2);line-height:1.55}.upload-area{border:2px dashed var(--border-hi);border-radius:8px;padding:30px 20px;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-elev)}.upload-area.drag-over,.upload-area:hover{border-color:var(--teal);background:var(--teal-d)}.upload-area.uploaded{border-color:var(--teal);border-style:solid}.ufile-row{justify-content:space-between;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;margin-top:8px;box-shadow:var(--shadow-sm)}.login-wrap,.ufile-row{display:flex;align-items:center}.login-wrap{min-height:100vh;justify-content:center;background:var(--bg-base);position:relative;overflow:hidden}.login-bg-circle{position:absolute;border-radius:50%;opacity:.04;pointer-events:none}[data-theme=dark] .login-bg-circle{opacity:.06}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;padding:42px 38px;width:400px;box-shadow:var(--shadow-lg);animation:fadeUp .35s ease;position:relative;z-index:1}.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:30px}.login-logo-dot{width:9px;height:9px;background:var(--teal);border-radius:50%;animation:pulse 2.5s ease-in-out infinite}.login-logo-name{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--t1)}.login-title{font-size:22px;font-weight:700;color:var(--t1);letter-spacing:-.4px;margin-bottom:4px}.login-sub{font-size:13px;color:var(--t2);margin-bottom:28px}.lf-label{font-size:12px;font-weight:600;color:var(--t2);margin-bottom:5px;display:block}.lf-input{width:100%;padding:10px 13px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;font-family:DM Sans,sans-serif;font-size:13px;color:var(--t1);outline:none;transition:border-color .15s;margin-bottom:13px}.lf-input:focus{border-color:var(--teal)}.lf-row{justify-content:space-between;margin-bottom:20px}.lf-check,.lf-row{display:flex;align-items:center}.lf-check{gap:6px;font-size:12px;color:var(--t2);cursor:pointer}.lf-check input{accent-color:var(--teal)}.lf-forgot{font-size:12px;color:var(--teal);cursor:pointer;background:none;border:none;font-family:DM Sans,sans-serif}.login-hint{font-size:11px;color:var(--t3);text-align:center;margin-top:16px;line-height:1.7;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;padding:10px 14px}.login-hint strong{color:var(--t2);font-weight:600}.login-theme-toggle{position:absolute;top:20px;right:20px;z-index:2}.theme-toggle{display:flex;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;padding:3px;cursor:pointer}.tt-opt{padding:4px 9px;border-radius:4px;font-size:11px;font-weight:500;color:var(--t3);transition:all .15s;-webkit-user-select:none;user-select:none}.tt-opt.on{background:var(--bg-surface);color:var(--t1);box-shadow:var(--shadow-sm)}.settings-btn{width:34px;height:34px;border-radius:7px;border:1px solid var(--border);background:var(--bg-elev);color:var(--t2);display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;transition:all .15s}.settings-btn:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-d)}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--teal);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;cursor:pointer;flex-shrink:0}.dash-page{min-height:calc(100vh - 52px);animation:fadeUp .28s ease}.dash-hero{background:var(--bg-surface);border-bottom:1px solid var(--border);padding:32px 40px 28px}.dash-greeting{font-size:11px;font-family:IBM Plex Mono,monospace;color:var(--t3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:5px}.dash-name{font-size:24px;font-weight:700;color:var(--t1);letter-spacing:-.4px;margin-bottom:3px}.dash-meta{font-size:13px;color:var(--t2)}.dash-kpis{display:flex;gap:10px;margin-top:22px}.dk{flex:1 1;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:12px 16px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.dk:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.dk-teal:before{background:var(--teal)}.dk-amber:before{background:var(--amber-l)}.dk-blue:before{background:var(--blue)}.dk-red:before{background:var(--red-l)}.dk .dkv{font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:700;color:var(--t1);line-height:1}.dk .dkl{font-size:11px;color:var(--t3);margin-top:3px}.dash-body{padding:28px 40px}.dash-action-title{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:14px;font-family:IBM Plex Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.action-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:700px;margin-bottom:32px}.action-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:24px 22px 22px;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.action-card:after{content:"→";position:absolute;bottom:18px;right:20px;font-size:18px;color:var(--t4);transition:all .2s}.action-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.action-card.ac-new{border-top:3px solid var(--teal)}.action-card.ac-hist{border-top:3px solid var(--blue)}.action-card:hover:after{color:var(--teal);transform:translateX(3px)}.action-card.ac-hist:hover:after{color:var(--blue)}.ac-icon{font-size:26px;margin-bottom:11px}.ac-title{font-size:15px;font-weight:700;color:var(--t1);margin-bottom:5px}.ac-desc{font-size:12px;color:var(--t2);line-height:1.65;max-width:220px}.dash-tbl-hd{display:grid;grid-template-columns:1.3fr 2fr 96px 82px 100px 90px 36px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--bg-elev);gap:10px;min-width:740px}.dash-tbl-th{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.dash-tbl-row{display:grid;grid-template-columns:1.3fr 2fr 96px 82px 100px 90px 36px;padding:13px 16px;border-bottom:1px solid rgba(180,196,216,.2);border-left:3px solid transparent;cursor:pointer;transition:background .1s;align-items:center;gap:10px;min-width:700px}[data-theme=dark] .dash-tbl-row{border-bottom-color:rgba(26,42,64,.3)}.dash-tbl-row:last-child{border-bottom:none}.dash-tbl-row:hover{background:var(--bg-hover)}.dash-tbl-row.dash-sel{background:var(--teal-d);border-left-color:var(--teal)}.recent-run-row{display:none}.hist-page{min-height:calc(100vh - 52px);padding:28px 32px;animation:fadeUp .28s ease}.run-hd{padding:9px 18px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.run-hd,.run-row{display:grid;grid-template-columns:170px 100px 80px 90px 110px 110px 1fr}.run-row{padding:13px 18px;border-bottom:1px solid rgba(180,196,216,.3);align-items:center;cursor:pointer;transition:background .12s}[data-theme=dark] .run-row{border-bottom-color:rgba(26,42,64,.35)}.run-row:hover{background:var(--bg-hover)}.run-row-sel{background:var(--teal-d)!important;border-left:3px solid var(--teal);padding-left:15px}.run-period{font-size:13px;font-weight:600;color:var(--t1)}.run-val{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--t2)}.run-good{color:var(--teal);font-weight:700}.run-warn{color:var(--amber);font-weight:700}.run-mini-bar{height:4px;background:var(--border);border-radius:2px;width:56px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:5px}.run-mini-fill{height:100%;border-radius:2px;background:var(--teal)}.rhh{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}.run-detail-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:22px 24px;margin-top:14px;box-shadow:var(--shadow-md);animation:fadeUp .22s ease}.diff-chip{display:inline-flex;align-items:center;gap:3px;font-family:IBM Plex Mono,monospace;font-size:10px}.diff-old{color:var(--red);text-decoration:line-through}.diff-arr{color:var(--t4)}.diff-new{color:var(--teal)}.rh-hd{padding:7px 14px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.rh-hd,.rh-row{display:grid;grid-template-columns:120px 70px 1fr 130px;gap:8px}.rh-row{padding:10px 14px;border-bottom:1px solid rgba(180,196,216,.3);align-items:start;font-size:12px;transition:background .1s}[data-theme=dark] .rh-row{border-bottom-color:rgba(26,42,64,.35)}.rh-row:hover{background:var(--bg-hover)}.rh-ts{color:var(--t3)}.rh-ts,.rh-user{font-family:IBM Plex Mono,monospace;font-size:10px}.rh-user{color:var(--blue);font-weight:500}.rh-change{color:var(--t1);font-weight:500;font-size:12px}.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:500;opacity:0;pointer-events:none;transition:opacity .25s}.drawer-overlay.open{opacity:1;pointer-events:all}.drawer{position:fixed;top:0;right:0;width:680px;max-width:95vw;height:100vh;background:var(--bg-surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:501}.drawer.open{transform:translateX(0)}.drawer-nav{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:52px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-elev)}.drawer-title{font-weight:700;color:var(--t1);gap:8px}.drawer-close,.drawer-title{font-size:14px;display:flex;align-items:center}.drawer-close{width:28px;height:28px;border-radius:5px;background:var(--bg-card);border:1px solid var(--border);justify-content:center;cursor:pointer;color:var(--t2)}.drawer-close:hover{color:var(--t1)}.drawer-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-elev)}.dtab{padding:10px 18px;font-size:13px;font-weight:500;color:var(--t3);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.dtab.on{color:var(--teal);border-bottom-color:var(--teal);background:var(--bg-surface)}.drawer-body{flex:1 1;overflow-y:auto;padding:20px}.drawer-section{margin-bottom:24px}.drawer-section-title{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:12px;display:flex;align-items:center;gap:6px}.conn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.conn-card{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:13px;box-shadow:var(--shadow-sm);transition:all .15s;position:relative}.conn-card:hover{border-color:var(--border-hi)}.conn-card.connected{border-color:rgba(0,111,90,.3)}[data-theme=dark] .conn-card.connected{border-color:rgba(0,201,167,.25)}.conn-icon{width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:15px;margin-bottom:8px}.conn-name{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:2px}.conn-meta{font-size:11px;color:var(--t3);margin-bottom:10px}.conn-dot{width:7px;height:7px;border-radius:50%;position:absolute;top:11px;right:11px}.cd-ok{background:var(--teal)}.cd-off,.toggle-sw{background:var(--border-hi)}.toggle-sw{width:34px;height:19px;border-radius:10px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0;display:inline-block}.toggle-sw.on{background:var(--teal)}.toggle-sw:after{content:"";position:absolute;width:13px;height:13px;background:#fff;border-radius:50%;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.toggle-sw.on:after{left:18px}.rule-item{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:12px 14px;display:flex;align-items:flex-start;gap:10px;box-shadow:var(--shadow-sm);margin-bottom:8px}.rule-item:last-child{margin-bottom:0}.rule-item.active-r{border-color:rgba(0,111,90,.25)}[data-theme=dark] .rule-item.active-r{border-color:rgba(0,201,167,.2)}.rule-num{width:22px;height:22px;border-radius:4px;background:var(--bg-elev);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);flex-shrink:0;font-weight:600}.rule-body{flex:1 1}.rule-name{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:2px;display:flex;align-items:center;gap:5px}.rule-desc{font-size:11px;color:var(--t2);line-height:1.5;margin-bottom:7px}.rule-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.rule-tag{font-family:IBM Plex Mono,monospace;font-size:9px;color:var(--t3);background:var(--bg-elev);border:1px solid var(--border);padding:1px 5px;border-radius:3px}.slider-wrap{display:flex;align-items:center;gap:9px;margin-top:6px}.slider-label{font-size:11px;color:var(--t3);white-space:nowrap}.slider{-webkit-appearance:none;height:4px;border-radius:2px;background:var(--border);outline:none;flex:1 1;cursor:pointer}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:var(--teal);cursor:pointer}.slider-val{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--teal);width:44px;text-align:right;font-weight:600}.drawer-sticky-bar{background:var(--bg-surface);border-top:1px solid var(--border);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 -4px 20px rgba(0,0,0,.07)}.upload-zone{border:2px dashed var(--border-hi);border-radius:7px;padding:28px 20px;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-elev)}.upload-zone:hover{border-color:var(--teal);background:var(--teal-d)}.file-item{justify-content:space-between;padding:9px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-sm);margin-top:7px}.fi-left,.file-item{display:flex;align-items:center}.fi-left{gap:9px}.fi-name{font-size:12px;font-weight:500;color:var(--t1)}.fi-meta{font-size:10px;color:var(--t3)}.sync-row{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;margin-bottom:8px}.sync-row:last-child{margin-bottom:0}.cr{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid rgba(180,196,216,.3)}[data-theme=dark] .cr{border-bottom-color:rgba(26,42,64,.45)}.cr:last-child{border-bottom:none}.cr-id{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--t3);width:68px}.cr-desc{flex:1 1;font-size:12px;color:var(--t2)}.cr-amt{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--t1);width:76px;text-align:right;font-weight:500}.cr-bar{height:3px;border-radius:2px;flex-shrink:0}.cr-lbl{font-family:IBM Plex Mono,monospace;font-size:10px;width:60px;text-align:right;font-weight:600}