@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,Noto Sans SC,sans-serif;color:#172033;background:#f4f6fa;font-synthesis:none;--primary:#4f6ff1;--dark:#121a2b;--border:#e4e8f0;--muted:#7b8498}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.muted{color:var(--muted)}.eyebrow{color:#8290ad;font-size:11px;font-weight:700;letter-spacing:.16em;margin-bottom:8px}.logo-mark{display:grid;place-items:center;width:50px;height:50px;background:linear-gradient(145deg,#657ff6,#8f68ed);border-radius:15px;color:#fff;font-weight:700;font-size:24px;box-shadow:0 15px 30px #3f56bb45}.logo-mark.small{width:38px;height:38px;border-radius:11px;font-size:18px}.primary,.secondary{border-radius:9px;border:1px solid transparent;padding:10px 16px;font-weight:600;transition:.2s}.primary{color:#fff;background:var(--primary);box-shadow:0 5px 12px #4f6ff134}.primary:hover{background:#405fdc;transform:translateY(-1px)}.primary:disabled{opacity:.6;cursor:wait}.primary.large{width:100%;padding:13px}.secondary{color:#40506d;background:#fff;border-color:var(--border)}.secondary:hover{border-color:#b9c4d8;background:#f8f9fc}.link,.danger-link{border:0;background:none;font-weight:600;color:var(--primary);padding:5px}.danger-link{color:#d4475a}.error-message{color:#c2354a!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#fff}.login-brand{position:relative;overflow:hidden;padding:8vh 9vw;display:flex;flex-direction:column;justify-content:space-between;color:#dfe6ff;background:radial-gradient(circle at 80% 15%,#3e4f7c 0,transparent 36%),linear-gradient(145deg,#131c31,#202e50)}.login-brand:after{content:"";position:absolute;width:430px;height:430px;border:1px solid #ffffff18;border-radius:50%;right:-160px;bottom:-120px;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff05}.login-brand h1{color:#fff;max-width:600px;font-size:clamp(40px,5vw,74px);line-height:1.08;letter-spacing:-.04em;margin-bottom:24px}.login-brand p:not(.eyebrow){max-width:570px;line-height:1.8;color:#aebbd5;font-size:17px}.brand-features{display:flex;gap:10px;z-index:1}.brand-features span{border:1px solid #ffffff20;border-radius:99px;padding:8px 14px;color:#c9d2e8;font-size:13px;background:#ffffff09}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(400px,100%);display:flex;flex-direction:column;gap:22px}.login-card h2{font-size:30px;margin-bottom:8px}label{display:flex;flex-direction:column;gap:8px;color:#4a556c;font-size:13px;font-weight:600}input,select,textarea{border:1px solid #dce2ec;border-radius:9px;padding:11px 12px;color:#253149;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#6d83ea;box-shadow:0 0 0 3px #5976f013}.login-hint{color:#9aa2b2;text-align:center;font-size:12px}.app-shell{min-height:100vh;display:flex}.sidebar{width:238px;position:fixed;inset:0 auto 0 0;z-index:10;display:flex;flex-direction:column;background:var(--dark);color:#c7cfdf}.sidebar-brand{height:76px;display:flex;align-items:center;gap:12px;padding:0 22px;border-bottom:1px solid #ffffff0d}.sidebar-brand b{display:block;color:#fff;font-size:15px}.sidebar-brand small{display:block;color:#6f7b95;margin-top:2px;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.sidebar nav{padding:20px 12px;flex:1}.sidebar nav p{color:#59657e;font-size:10px;letter-spacing:.12em;font-weight:700;margin:18px 12px 7px}.sidebar nav button{width:100%;border:0;border-radius:8px;background:none;color:#909bb0;text-align:left;padding:11px 12px;display:flex;gap:12px;align-items:center;font-size:13px;margin:3px 0}.sidebar nav button span{width:20px;text-align:center;font-size:17px}.sidebar nav button:hover{color:#e3e8f2;background:#ffffff08}.sidebar nav button.active{color:#fff;background:linear-gradient(90deg,#526de4,#5966c6);box-shadow:0 7px 20px #080d1c44}.sidebar-foot{padding:15px 17px;border-top:1px solid #ffffff0d;display:flex;align-items:center;gap:10px}.avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:10px;background:#2e3a54;font-size:12px}.sidebar-foot div:nth-child(2){flex:1}.sidebar-foot b,.sidebar-foot small{display:block;font-size:11px}.sidebar-foot small{color:#69758c;margin-top:2px}.sidebar-foot button{color:#68748b;border:0;background:none;font-size:18px}.content-shell{margin-left:238px;width:calc(100% - 238px)}.topbar{height:76px;position:sticky;top:0;z-index:5;padding:0 34px;display:flex;align-items:center;justify-content:flex-end;gap:20px;border-bottom:1px solid var(--border);background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar>div:first-child{margin-right:auto;font-size:12px;color:#6e788d}.health-dot{width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:7px;background:#30bb83;box-shadow:0 0 0 4px #30bb8315}.topbar label{flex-direction:row;align-items:center;color:#8a93a4}.topbar select{padding:8px 34px 8px 10px;font-size:12px}.app-key{font-family:monospace;border-left:1px solid var(--border);padding-left:20px;color:#8a93a4;font-size:11px}.page-content{padding:36px 40px 60px;max-width:1500px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.page-head h1{font-size:27px;letter-spacing:-.02em;margin-bottom:7px}.page-head .muted{font-size:13px;margin-bottom:0}.card,.loading-card{border:1px solid var(--border);border-radius:13px;background:#fff;box-shadow:0 3px 12px #26375d08}.loading-card{padding:50px;text-align:center;color:var(--muted)}.notice{padding:13px 16px;margin-bottom:18px;border-radius:9px;border:1px solid #efc8cf;background:#fff4f6}.widget-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.kpi-card{min-height:145px;padding:22px;display:flex;flex-direction:column;align-items:flex-start}.card-kicker{color:#7b8498;font-size:12px;font-weight:600}.kpi-card strong{margin:13px 0 12px;font-size:34px;line-height:1;color:#182137;letter-spacing:-.03em}.positive{color:#2caa77;font-size:10px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.chart-card,.platform-card,.table-card{padding:22px}.card-title{display:flex;justify-content:space-between;margin-bottom:18px}.card-title h3{font-size:15px;margin-bottom:5px}.card-title p{color:#9aa3b3;font-size:11px;margin-bottom:0}.tag,.size-tag{font-size:10px;border:1px solid var(--border);border-radius:99px;color:#7f899c;padding:5px 9px;height:max-content;background:#f8f9fb}.chart-wrap{height:245px}.chart-wrap svg{width:100%;height:220px;overflow:visible}.chart-grid{stroke:#e8ebf1;stroke-width:.35}.chart-line{fill:none;stroke:#5573ed;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.chart-labels{display:flex;justify-content:space-between;color:#a0a8b6;font-size:10px}.bar-row{margin:20px 0}.bar-row>div:first-child{display:flex;justify-content:space-between;text-transform:capitalize;font-size:12px;margin-bottom:7px}.bar-row b{color:#4d5870}.bar-track{height:7px;border-radius:99px;background:#eff2f7;overflow:hidden}.bar-track i{display:block;height:100%;min-width:3%;border-radius:99px;background:linear-gradient(90deg,#607bed,#8a6fe9)}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{color:#8d96a8;font-weight:600;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}td{color:#4d5870;padding:14px 12px;border-bottom:1px solid #edf0f5;white-space:nowrap}tr:last-child td{border:0}.plugin-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#6c7fee;margin-right:8px}.empty{color:#9ca4b2;text-align:center;padding:30px}.copy-key{border:0;border-radius:6px;padding:5px 7px;background:#f0f3f8;color:#59647a;font:11px monospace}.status{border-radius:99px;padding:4px 8px;font-size:9px;font-weight:700;letter-spacing:.04em}.status.published{color:#14855b;background:#e7f8f1}.status.draft{color:#916a09;background:#fff5d8}.status.disabled,.status.archived{color:#7c8492;background:#edf0f4}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:25px;background:#10172794;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(520px,100%);max-height:90vh;overflow:auto;padding:26px;border-radius:15px;background:#fff;box-shadow:0 30px 80px #080b1544;display:flex;flex-direction:column;gap:18px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{font-size:21px;margin-bottom:0}.icon-btn{border:0;background:#f1f3f7;width:31px;height:31px;border-radius:8px;color:#687287;font-size:20px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--border);padding-top:18px}.switch-row{flex-direction:row;justify-content:space-between;align-items:center;border:1px solid var(--border);border-radius:10px;padding:13px}.switch-row b,.switch-row small{display:block}.switch-row small{color:#9aa3b3;font-weight:400;margin-top:4px}.switch-row input{width:18px;height:18px}.upload-btn{position:relative}.upload-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.security-note{display:flex;gap:12px;align-items:center;color:#5b6680;border:1px solid #dce3ff;background:#f4f6ff;padding:12px 16px;border-radius:10px;margin-bottom:18px;font-size:12px}.security-note b{color:#5269c4;white-space:nowrap}.plugin-list{display:flex;flex-direction:column;gap:12px}.plugin-card{padding:18px 20px;display:flex;gap:17px;align-items:center}.plugin-icon{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#edf1ff,#e8e4ff);color:#596fd1;font-weight:700}.plugin-main{min-width:0;flex:1}.plugin-title{display:flex;gap:9px;align-items:center}.plugin-title h3{font-size:14px;margin-bottom:0}.plugin-main code{color:#6f7b92;font-size:10px}.plugin-main p{color:#848da0;font-size:11px;margin:6px 0 8px}.plugin-meta{display:flex;gap:15px;color:#a1a8b5;font-size:10px}.plugin-actions{display:flex;gap:8px}.plugin-actions button{font-size:11px;padding:8px 11px}.code-modal{width:min(860px,100%)}.code-editor{min-height:420px;resize:vertical;background:#151d2d;border-color:#151d2d;color:#d8e1f1;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;-moz-tab-size:2;tab-size:2}.metrics-editor{min-height:280px}.editor-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.editor-tabs button{border:0;background:none;color:#8a93a4;font-size:12px;padding:7px 10px;border-bottom:2px solid transparent}.editor-tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.empty-state{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#929bac;border:1px dashed #d7dce6;border-radius:13px;background:#fafbfc;text-align:center}.empty-state>div{font-size:35px;color:#a8b3ca}.empty-state h3{color:#566176;margin:10px 0 6px}.empty-state p{font-size:12px}.builder-layout{display:grid;grid-template-columns:230px 1fr;gap:18px;align-items:start}.component-palette{padding:18px;position:sticky;top:96px}.component-palette h3{font-size:14px;margin-bottom:5px}.component-palette>p{font-size:11px}.component-palette>button{width:100%;display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:9px;background:#fff;color:#4e5a72;padding:11px;margin-top:8px;text-align:left}.component-palette>button:hover{border-color:#8da0ee;background:#f7f8ff}.component-palette>button>span{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#edf0fb;color:#6074d2;font-size:11px;font-weight:700}.component-palette button div{flex:1}.component-palette button b,.component-palette button small{display:block}.component-palette button b{font-size:11px}.component-palette button small{color:#a1a8b6;font-size:9px;margin-top:2px}.component-palette button i{font-style:normal;color:#8b96aa}.builder-canvas{border-radius:13px;border:1px solid var(--border);background:#eef1f6;padding:14px;min-height:470px}.canvas-head{display:flex;justify-content:space-between;color:#68738a;font-size:11px;padding:4px 5px 14px}.canvas-head small{color:#a0a8b6}.widget-editor{display:grid;grid-template-columns:24px 60px minmax(130px,1fr) minmax(130px,1fr) auto auto;gap:12px;align-items:end;padding:14px;border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:9px;box-shadow:0 2px 7px #2332540a}.drag-handle{color:#b3bac7;align-self:center}.widget-symbol{height:38px;display:grid;place-items:center;align-self:end;border-radius:8px;color:#6375c9;background:#eef1fc;font-size:9px;font-weight:700}.widget-editor input,.widget-editor select{padding:8px 10px;font-size:11px}.widget-editor label{gap:5px;font-size:10px}.size-tag{align-self:center}.row-actions{display:flex;align-self:center}.row-actions button{border:0;background:none;color:#7d879a;padding:5px}.row-actions .delete{color:#d35a6a;font-size:17px}.builder-canvas .empty-state{background:#ffffff80}.toast{position:fixed;right:30px;bottom:30px;z-index:60;background:#e8f8f1;border:1px solid #c0ead8;color:#16865d;padding:11px 17px;border-radius:9px;box-shadow:0 9px 30px #1c2d4c20;font-size:12px}@media (max-width:1000px){.widget-grid{grid-template-columns:repeat(2,1fr)}.span-3{grid-column:span 2}.builder-layout{grid-template-columns:1fr}.component-palette{position:static}.widget-editor{grid-template-columns:24px 55px 1fr 1fr}.size-tag,.row-actions{grid-column:auto}}@media (max-width:760px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}.sidebar{width:70px}.sidebar-brand>div:not(.logo-mark),.sidebar nav p,.sidebar nav button:not(.active) span+*,.sidebar-foot>*:not(.avatar){display:none}.sidebar nav button{justify-content:center}.sidebar nav button{font-size:0}.sidebar nav button span{font-size:18px}.content-shell{margin-left:70px;width:calc(100% - 70px)}.topbar{padding:0 15px}.topbar>div:first-child,.app-key,.topbar label{display:none}.page-content{padding:25px 16px}.widget-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}.page-head{align-items:center}.page-head h1{font-size:23px}.plugin-card{align-items:flex-start;flex-wrap:wrap}.plugin-actions{width:100%;justify-content:flex-end}.widget-editor{grid-template-columns:20px 45px 1fr}.widget-editor label:nth-of-type(2){grid-column:3}}
