:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#18213a;background:#f5f7fc;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:310px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a8afff;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:24px;letter-spacing:-.7px}h2{font-size:21px;letter-spacing:-.5px}h3{font-size:16px}p{color:#718099;font-size:13px;line-height:1.65}code{font-family:Consolas,monospace;color:#535fe3;font-size:.92em}button.primary{background:#635cf2;color:#fff;border:1px solid #635cf2;box-shadow:0 3px 9px #645bfa25}button.primary:hover{background:#4a48d3}button.outline{background:#fff;color:#394466;border:1px solid #dfe4ef}button.outline:hover{border-color:#827bf9}button.primary,button.outline{border-radius:10px;padding:11px 17px;font-weight:650;font-size:12px;min-height:42px}.full{width:100%}.muted{opacity:.55}
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:#101a30;color:#eef0ff;padding:25px 15px 18px;display:flex;flex-direction:column;z-index:5}.logo{display:flex;align-items:center;gap:10px;padding:2px 10px 33px;font-size:19px;font-weight:850;letter-spacing:-.7px;line-height:1.1}.logo small{display:block;font-size:8px;letter-spacing:1.55px;color:#8f9bb7;margin-top:6px}.brand-mark{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#8a8afc,#5149db);font-size:25px;font-weight:900;color:white;box-shadow:0 7px 23px #675bff38}.brand-mark.large{width:56px;height:56px;font-size:34px;margin:0 auto 18px}.side-label{padding:10px 13px;margin:0 0 6px;font-size:9px;color:#71809c;font-weight:800;letter-spacing:1.6px}.nav-btn{display:flex;width:100%;align-items:center;text-align:left;gap:15px;padding:12px 14px;margin-bottom:3px;min-height:44px;background:transparent;color:#9aa7c1;border:0;border-radius:10px;font-size:12px;font-weight:640}.nav-btn span{font-size:18px;width:23px;text-align:center}.nav-btn.active{background:#635ef12d;color:#e9e6ff;box-shadow:inset 3px 0 0 #8c83ff}.nav-btn:hover{background:#ffffff15;color:white}.side-footer{margin-top:auto;border-top:1px solid #ffffff13;color:#bcc6de;padding:19px 12px;font-size:11px;line-height:1.8}.side-footer small{color:#7785a4}.dot{display:inline-block;width:7px;height:7px;background:#26c69a;border-radius:50%;margin-right:5px}
.workspace{margin-left:244px;min-height:100vh}.topbar{background:#fff;border-bottom:1px solid #e7eaf3;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:23px 32px;position:sticky;top:0;z-index:3}.head-left{display:flex;align-items:center;gap:12px}.head-left h1{margin:2px 0 0}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:750;color:#9da5b9}.top-actions{display:flex;align-items:center;gap:10px}.top-actions select{border:1px solid #e1e5ef;border-radius:9px;padding:10px 12px;color:#45516c;font-size:11px;background:#fff;max-width:140px}.live-chip{white-space:nowrap;background:#e9fbf4;color:#18996b;font-size:10px;font-weight:750;border-radius:7px;padding:9px 11px}.icon-btn{border:1px solid #e3e6ef;background:#fff;border-radius:10px;min-width:38px;height:39px;font-size:18px;color:#54617d}.mobile-only{display:none}
.content{padding:28px 32px 45px;max-width:1600px;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.intro h2{margin-bottom:5px}.intro p{margin:0}.source-stamp{font-size:10px;background:#eef0ff;border:1px solid #e4e3ff;color:#5e5cca;border-radius:8px;padding:9px 12px;font-weight:700;white-space:nowrap}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi{background:#fff;border:1px solid #e8ebf2;border-radius:15px;padding:21px 21px 19px;box-shadow:0 6px 22px #18306a08}.kpi .top{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;color:#8290a8;font-weight:650;margin-bottom:15px}.kpi .kicon{font-size:17px;display:grid;place-items:center;background:#f0efff;border-radius:8px;width:32px;height:32px;color:#6963f1}.kpi strong{font-size:26px;letter-spacing:-.7px;color:#19233e;display:block;white-space:nowrap}.kpi small{color:#9aa6b9;font-size:10px;display:block;margin-top:7px}.two-col{display:grid;grid-template-columns:1.55fr 1fr;gap:17px;margin-bottom:17px}.panel{background:#fff;border:1px solid #e8ebf2;border-radius:15px;padding:22px;margin-bottom:17px;box-shadow:0 6px 22px #18306a06}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:16px}.panel-heading h3{margin:0 0 5px}.panel-heading p{margin:0}.panel-pill{background:#f5f7fc;padding:7px 9px;border-radius:7px;color:#8591a8;font-size:10px}.chart-wrap{height:260px;display:flex;align-items:center;justify-content:center}.chart-wrap svg{width:100%;height:100%;overflow:visible}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;text-align:center;color:#8b98ab;font-size:12px;line-height:1.6;padding:16px}.empty strong{color:#34405c;margin-bottom:6px}.source-list{min-height:255px}.source-line{margin-bottom:17px}.source-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px;gap:12px}.source-label strong{font-weight:650}.progress{height:8px;background:#f0f1f8;border-radius:10px;overflow:hidden}.progress span{display:block;background:linear-gradient(90deg,#6159e9,#9e87f8);height:100%;border-radius:10px}
.table-wrap{width:100%;overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:11px}.table-wrap th{color:#9ca7bc;font-weight:800;font-size:10px;letter-spacing:.4px;background:#fafbff;padding:12px;border-bottom:1px solid #edf0f6}.table-wrap td{color:#43506c;padding:13px 12px;border-bottom:1px solid #f0f2f7}.table-wrap tr:last-child td{border:0}.tag{font-size:10px;padding:6px 9px;border-radius:6px;background:#f0efff;color:#5f5ae6;font-weight:700}.tag.good{background:#e9f9ee;color:#26966e}.tag.warn{background:#fff4e7;color:#c68838}.tag.bad{background:#fdeef1;color:#ce596a}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.report-grid .panel{min-height:145px}.report-grid h3{color:#7684a1}.report-grid strong{font-size:25px}.integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:16px}.integration{border:1px solid #e8eaf3;border-radius:14px;padding:20px;background:#fff}.integration h3{margin:12px 0 4px}.integration p{min-height:42px}.integration .glyph{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#edebff;color:#625ce7;font-size:21px;font-weight:850}.integration .status{font-size:10px;font-weight:750;color:#9b7385}.integration .status.ready{color:#188d68}.settings-panel{max-width:920px}.settings-panel h3:not(:first-child){margin-top:27px}.code-box,.secret-box{border-radius:10px;background:#151e32;color:#d8deff;padding:17px;overflow:auto;white-space:pre-wrap;word-break:break-all;font:11px/1.8 Consolas,monospace}.secret-box{margin-top:14px}.action-row{display:flex;align-items:center;gap:12px;margin-top:13px}.message{font-size:11px;margin:8px 0;color:#be5362}textarea,input{border:1px solid #dfe4ee;border-radius:9px;background:#fff;color:#293552;padding:12px;max-width:100%}textarea{width:100%;resize:vertical;font:12px/1.7 Consolas,monospace;margin:8px 0 10px}.main-footer{padding:0 32px 22px;text-align:right;color:#a2adc0;font-size:10px}.page[hidden],#shell[hidden],#auth[hidden],[hidden]{display:none!important}
.auth-backdrop{position:fixed;inset:0;background:radial-gradient(circle at 70% 30%,#252b69,#0c1326 63%);z-index:20;display:grid;place-items:center;padding:22px}.auth-panel{background:white;border-radius:22px;width:100%;max-width:410px;padding:34px 33px;box-shadow:0 22px 80px #05081555;text-align:center}.auth-panel h1{margin:0 0 7px}.auth-panel p{margin-bottom:21px}.auth-panel label{display:block;text-align:left;font-size:11px;font-weight:750;color:#4d5975;margin-bottom:14px}.auth-panel input{display:block;margin-top:6px;width:100%}.auth-panel .message{margin:12px 0 0}.toast{position:fixed;bottom:24px;right:25px;z-index:30;background:#1e2944;color:white;border-radius:12px;padding:14px 18px;max-width:350px;font-size:12px;box-shadow:0 9px 35px #0d153b33}.mobile-bottom{display:none}
@media(max-width:1200px){.sidebar{width:215px}.workspace{margin-left:215px}.topbar,.content{padding-left:22px;padding-right:22px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:245px}.sidebar.open{transform:none}.workspace{margin-left:0}.mobile-only{display:block}.two-col{grid-template-columns:1fr}.content{padding:24px 18px}.topbar{padding:17px 18px}.source-stamp{display:none}.chart-wrap{height:220px}.top-actions{gap:6px}}@media(max-width:580px){body{padding-bottom:67px}.topbar{align-items:flex-start}.head-left h1{font-size:18px}.eyebrow{font-size:8px}.top-actions select{padding:8px;max-width:112px;font-size:10px}.live-chip{display:none}.top-actions #install-btn{display:none}.top-actions .icon-btn{min-width:34px}.intro h2{font-size:18px}.intro .primary{font-size:11px;padding:9px}.intro p{font-size:11px}.kpi-grid{gap:9px}.kpi{padding:15px}.kpi strong{font-size:20px}.kpi .top{font-size:10px;margin-bottom:8px}.panel{padding:17px}.integration-grid,.report-grid{grid-template-columns:1fr}.source-line{margin-bottom:13px}.main-footer{display:none}.mobile-bottom{position:fixed;z-index:4;bottom:0;inset-inline:0;background:#fff;display:flex;justify-content:space-around;box-shadow:0 -4px 20px #182b501c;padding:8px env(safe-area-inset-right) calc(8px + env(safe-area-inset-bottom)) env(safe-area-inset-left)}.mobile-bottom button{flex:1;border:0;background:none;color:#66728d;font-size:11px;font-weight:700;min-height:44px}.mobile-bottom button.active{color:#625aea}.toast{bottom:83px;right:10px;left:10px}.chart-wrap{height:180px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:0.01ms!important;animation-duration:0.01ms!important}}
