:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#fafafd;--ink:#17171d;--muted:#74747e;--subtle:#a0a0aa;--line:#e6e7eb;--dark:#17171d;--dark-2:#222229;--coral:#ff5f79;--coral-dark:#e54863;--coral-soft:#fff0f3;--green:#20a474;--green-soft:#eaf8f2;--blue:#4b7fe7;--blue-soft:#edf3ff;--amber:#e9a23b;--amber-soft:#fff5e3;--purple:#8c68df;--purple-soft:#f2edff;--red:#dc435e;--shadow:0 8px 30px rgba(28,28,35,.055);--sidebar:242px}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--ink);min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}
.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:36px;height:36px;border-radius:10px;padding:5px;display:grid;place-items:center;background:var(--dark);overflow:hidden}.brand-icon img{width:100%;height:100%;object-fit:contain}.brand-name{display:flex;flex-direction:column;gap:3px;line-height:1}.brand-name strong{font-size:16px;letter-spacing:-.3px}.brand-name b{color:var(--coral)}.brand-name small{font-size:12px;color:#93939d;letter-spacing:.35px}.brand-on-dark{position:absolute;top:36px;left:46px;z-index:3}.brand-on-dark .brand-icon{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14)}.brand-on-dark .brand-name strong{color:#fff}.brand-on-dark .brand-name small{color:#93939e}
.login{min-height:100vh;display:grid;grid-template-columns:minmax(480px,1.15fr) minmax(430px,.85fr);background:#fff}.login-brand{position:relative;overflow:hidden;min-height:720px;background:radial-gradient(circle at 55% 45%,#3a2837 0,#222029 33%,#101014 76%);color:#fff}.login-brand:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.02),transparent 55%)}.login-visual{position:absolute;inset:80px 20px 125px;display:grid;place-items:center}.visual-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle,black,transparent 70%)}.pulse{position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.pulse-a{width:310px;height:310px}.pulse-b{width:480px;height:480px}.pulse:before,.pulse:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 20px var(--coral)}.pulse-a:before{right:42px;top:43px}.pulse-b:after{left:55px;bottom:75px}.visual-core{position:relative;width:176px;height:176px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(17,17,21,.72);border:1px solid rgba(255,255,255,.15);box-shadow:0 30px 80px rgba(0,0,0,.38),inset 0 0 50px rgba(255,95,121,.12);backdrop-filter:blur(10px)}.visual-core img{width:70px;height:70px;object-fit:contain}.visual-core span{font-size:12px;letter-spacing:2.5px;line-height:1.5;color:#8d8d98;margin-top:7px;text-align:center}.float-stat{position:absolute;min-width:155px;padding:14px 16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);border-radius:12px;backdrop-filter:blur(14px);box-shadow:0 18px 42px rgba(0,0,0,.2)}.float-stat span{display:block;color:#9999a4;font-size:12px}.float-stat strong{display:block;font-size:21px;margin:6px 0 4px}.float-stat em{font-size:12px;color:#65d5aa;font-style:normal}.stat-a{transform:translate(-220px,-145px)}.stat-b{transform:translate(225px,-30px)}.stat-c{transform:translate(-185px,165px)}.login-quote{position:absolute;left:46px;bottom:42px;z-index:2}.login-quote h2{font-size:22px;margin:0 0 9px;letter-spacing:-.6px}.login-quote p{font-size:12px;color:#9999a4;margin:0}.login-form-wrap{display:grid;place-items:center;padding:48px}.login-card{width:min(390px,100%)}.mobile-brand{display:none}.overline{font-size:12px;letter-spacing:2.2px;font-weight:750;color:var(--coral)}.login-card h1{font-size:31px;margin:14px 0 8px;letter-spacing:-1px}.login-card>p{color:var(--muted);font-size:13px;margin:0 0 34px}.login-card label{display:block;font-size:12px;font-weight:650;margin:17px 0 8px}.input-wrap{height:48px;border:1px solid #dddde3;border-radius:9px;padding:0 13px;display:flex;align-items:center;transition:.2s}.input-wrap:focus-within{border-color:#7b7b85;box-shadow:0 0 0 3px rgba(24,24,29,.06)}.input-wrap>svg{width:17px;color:#91919b}.input-wrap input{flex:1;border:0;outline:0;padding:0 10px;background:transparent}.input-wrap button{border:0;background:none;padding:5px;color:#8a8a94}.input-wrap button svg{width:17px}.login-error{height:18px;color:var(--red);font-size:12px;padding-top:7px}.login-button{height:50px;width:100%;border:0;border-radius:9px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;gap:11px;font-size:13px;font-weight:650;margin-top:11px;transition:.2s}.login-button:hover{transform:translateY(-1px);background:#292930}.login-button span{color:var(--coral);font-size:19px}.security-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:#aaaab3;margin-top:22px}.security-note svg{width:14px}
.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--line);padding:22px 14px 16px;z-index:30;display:flex;flex-direction:column}.sidebar-brand{padding:0 10px 20px}.sidebar nav{overflow-y:auto;overflow-x:hidden;padding-right:2px}.nav-group{margin-top:8px}.nav-group-title{display:block;padding:10px 12px 7px;color:#acacb5;font-size:12px;font-weight:750;letter-spacing:1.1px}.nav-item{height:41px;width:100%;border:0;background:transparent;border-radius:8px;color:#777781;display:flex;align-items:center;gap:10px;padding:0 12px;text-align:left;font-size:12px;margin:2px 0}.nav-item svg{width:17px;flex:0 0 auto}.nav-item span{flex:1}.nav-item em{font-style:normal;font-size:12px;background:#f0f0f3;border-radius:8px;padding:2px 6px}.nav-item:hover{background:#f7f7f9;color:#2a2a31}.nav-item.active{background:var(--dark);color:#fff;font-weight:650;box-shadow:0 7px 17px rgba(20,20,25,.14)}.nav-item.active svg{color:var(--coral)}.nav-item.active em{background:#36363d}.sidebar-user{margin-top:auto;border-top:1px solid var(--line);padding:14px 7px 0;display:flex;align-items:center;gap:9px}.admin-avatar{width:33px;height:33px;border-radius:9px;background:var(--coral-soft);color:var(--coral-dark);display:grid;place-items:center;font-size:12px;font-weight:750}.sidebar-user>div:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.sidebar-user strong{font-size:12px}.sidebar-user span{font-size:12px;color:#9b9ba5}.sidebar-user button{border:0;background:none;color:#9999a3;padding:5px}.sidebar-user button svg{width:16px}.main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);padding:0 27px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.topbar-left{display:flex;align-items:center;gap:13px}.topbar-left p{font-size:12px;color:#a5a5af;margin:0 0 5px}.topbar-left h2{font-size:15px;margin:0}.menu-button{display:none;width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff}.menu-button svg{width:17px}.topbar-actions{display:flex;align-items:center;gap:9px}.environment{font-size:12px;color:#987126;background:#fff7e4;padding:7px 9px;border-radius:18px}.environment i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#e2a72f;margin-right:5px}.top-action{height:35px;border:1px solid var(--line);background:#fff;border-radius:8px;color:#777781;display:flex;align-items:center;gap:7px;padding:0 9px;font-size:12px}.top-action svg{width:15px}.top-action kbd{font-family:inherit;border:1px solid #e5e5e9;background:#f8f8fa;border-radius:4px;padding:1px 4px;font-size:12px;color:#aaaab3}.icon-button{position:relative;width:35px;height:35px;border:1px solid var(--line);background:#fff;border-radius:8px;display:grid;place-items:center;color:#73737d}.icon-button svg{width:16px}.icon-button i{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--coral);border:1px solid #fff;right:7px;top:7px}.page{max-width:1620px;margin:0 auto;padding:25px 27px 50px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.page-heading h1{font-size:23px;letter-spacing:-.75px;margin:0 0 6px}.page-heading p{font-size:12px;color:var(--muted);margin:0}.page-actions{display:flex;gap:8px}.button{height:36px;border-radius:8px;padding:0 13px;font-size:12px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:7px}.button svg{width:14px}.button.primary{border:1px solid var(--dark);background:var(--dark);color:#fff}.button.primary:hover{background:#292930}.button.secondary{border:1px solid var(--line);background:#fff;color:#64646e}.button.danger{border:1px solid #f4cad1;background:#fff3f5;color:#ca3d56}.button.ghost{border:0;background:transparent;color:var(--coral-dark)}
.global-filters{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 12px;display:flex;align-items:center;gap:8px;margin-bottom:14px;box-shadow:0 2px 0 rgba(20,20,25,.01)}.filter-segment{display:flex;background:#f4f4f7;padding:3px;border-radius:7px}.filter-segment button{height:29px;padding:0 10px;border:0;background:transparent;border-radius:5px;font-size:12px;color:#7d7d87}.filter-segment button.active{background:#fff;color:#25252c;font-weight:650;box-shadow:0 1px 5px rgba(20,20,25,.08)}.select{height:35px;border:1px solid var(--line);background:#fff;border-radius:7px;padding:0 28px 0 10px;color:#666670;font-size:12px}.filter-spacer{flex:1}.updated-at{font-size:12px;color:#aaaab3}.divider-v{width:1px;height:23px;background:var(--line)}
.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;margin-bottom:12px}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:15px;min-width:0;position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;width:60px;height:60px;border-radius:50%;background:var(--soft);right:-22px;top:-28px}.kpi-head{display:flex;align-items:center;justify-content:space-between;color:#777781;font-size:12px}.kpi-icon{width:29px;height:29px;border-radius:8px;background:var(--soft);color:var(--accent);display:grid;place-items:center}.kpi-icon svg{width:14px}.kpi-value{font-size:25px;letter-spacing:-.9px;font-weight:730;margin:12px 0 5px;white-space:nowrap}.kpi-foot{display:flex;align-items:center;gap:5px;color:#a0a0a9;font-size:12px}.delta{font-weight:700;color:var(--green)}.delta.negative{color:var(--red)}.spark{height:22px;margin-top:10px}.spark svg{width:100%;height:100%;overflow:visible}.spark path{fill:none;stroke:var(--accent);stroke-width:1.7}.spark .area{fill:var(--soft);stroke:none}
.grid-2{display:grid;grid-template-columns:1.55fr .85fr;gap:12px;margin-bottom:12px}.grid-2.equal{grid-template-columns:1fr 1fr}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 0 rgba(20,20,25,.012);overflow:hidden}.panel-head{padding:16px 17px 0;display:flex;align-items:flex-start;justify-content:space-between}.panel-head h3{font-size:13px;margin:0 0 4px}.panel-head p{font-size:12px;color:#9b9ba5;margin:0}.panel-actions{display:flex;align-items:center;gap:7px}.legend{display:flex;align-items:center;gap:11px;color:#888892;font-size:12px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:6px;height:6px;border-radius:50%}.text-action{border:0;background:none;color:var(--coral-dark);font-size:12px;font-weight:650}.chart{height:270px;padding:14px 12px 12px}.chart.small{height:220px}.chart svg{width:100%;height:100%;overflow:visible}.chart text{font-size:12px;fill:#9999a4}.chart .grid-line{stroke:#ececf0;stroke-width:1;stroke-dasharray:3 5}.chart .axis{stroke:#dedee4;stroke-width:1}.chart .line{fill:none;stroke-width:2}.chart .point{stroke-width:2;fill:#fff}.chart .bar{opacity:.9}.chart .bar:hover{opacity:1}.chart .area{opacity:.13}.panel-body{padding:15px 17px 17px}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:12px}.strip-item{padding:12px 15px;border-right:1px solid var(--line)}.strip-item:last-child{border:0}.strip-item span{font-size:12px;color:#9999a3;display:block}.strip-item strong{font-size:16px;display:block;margin-top:5px}.strip-item em{font-size:12px;color:var(--green);font-style:normal}
.funnel{display:flex;align-items:stretch;gap:5px;padding:20px 17px 18px}.funnel-step{flex:1;min-width:0;position:relative;padding:14px 10px;border-radius:8px;background:#f7f7f9;text-align:center}.funnel-step:after{content:"→";position:absolute;right:-7px;top:50%;transform:translateY(-50%);color:#b6b6bf;z-index:2}.funnel-step:last-child:after{display:none}.funnel-step span{display:block;font-size:12px;color:#8c8c96}.funnel-step strong{display:block;font-size:17px;margin:6px 0}.funnel-step em{font-size:12px;color:#9999a3;font-style:normal}.funnel-step.warning{background:#fff4e2}.funnel-step.good{background:#eaf8f2}.donut-wrap{display:flex;align-items:center;justify-content:center;gap:25px;padding:20px}.donut{width:135px;height:135px;border-radius:50%;display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:91px;height:91px;border-radius:50%;background:#fff}.donut-center{z-index:1;text-align:center}.donut-center strong{display:block;font-size:22px}.donut-center span{font-size:12px;color:#9999a4}.donut-legend{display:flex;flex-direction:column;gap:9px;min-width:130px}.donut-legend span{display:flex;align-items:center;gap:7px;font-size:12px;color:#777781}.donut-legend i{width:7px;height:7px;border-radius:2px}.donut-legend b{margin-left:auto;color:var(--ink)}
.retention-wrap{padding:15px 17px 17px;overflow-x:auto}.retention{width:100%;border-collapse:separate;border-spacing:3px}.retention th{font-size:12px;color:#9999a3;font-weight:600;padding:5px;min-width:50px}.retention td{height:31px;text-align:center;border-radius:5px;font-size:12px;color:#fff;background:color-mix(in srgb,var(--blue) calc(var(--heat)*1%),#eef2fa)}.retention td:first-child{background:transparent!important;color:#666670;text-align:left;white-space:nowrap}.alerts{padding:9px 17px 16px}.alert-row{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid #f0f0f3}.alert-row:last-child{border:0}.alert-dot{width:7px;height:7px;border-radius:50%;margin-top:4px}.alert-row strong{display:block;font-size:12px;margin-bottom:3px}.alert-row p{font-size:12px;color:#8f8f99;margin:0;line-height:1.5}.alert-row time{font-size:12px;color:#aaaab3}.severity-high{background:var(--red)}.severity-mid{background:var(--amber)}.severity-low{background:var(--blue)}
.toolbar{padding:11px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.search-field{height:35px;min-width:240px;flex:1;max-width:390px;border:1px solid var(--line);border-radius:7px;display:flex;align-items:center;padding:0 10px;background:#fff}.search-field svg{width:15px;color:#9999a3}.search-field input{border:0;outline:0;flex:1;padding:0 8px;font-size:12px;background:transparent}.toolbar-count{margin-left:auto;font-size:12px;color:#9999a3}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{height:38px;background:#fafafd;border-bottom:1px solid var(--line);text-align:left;padding:0 14px;font-size:12px;color:#9999a3;font-weight:650}.data-table td{height:53px;border-bottom:1px solid #f0f0f3;padding:0 14px;font-size:12px;color:#5f5f69}.data-table tbody tr{transition:.15s}.data-table tbody tr:hover{background:#fcfcfe}.data-table tbody tr:last-child td{border-bottom:0}.cell-main{color:#292930;font-weight:650}.cell-sub{font-size:12px;color:#a0a0aa;margin-top:3px}.avatar-cell{display:flex;align-items:center;gap:9px}.avatar{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#282832,#7a5364);font-size:12px;font-weight:700}.status{display:inline-flex;align-items:center;gap:5px;border-radius:7px;padding:5px 7px;font-size:12px;font-weight:650}.status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status.success{color:#21815f;background:var(--green-soft)}.status.failed,.status.danger{color:#cf4059;background:var(--coral-soft)}.status.pending{color:#a66d1c;background:var(--amber-soft)}.status.info{color:#3f6fc7;background:var(--blue-soft)}.status.neutral{color:#71717b;background:#f1f1f4}.grade{width:23px;height:23px;border-radius:7px;display:inline-grid;place-items:center;font-size:12px;font-weight:750}.grade.A{background:var(--green-soft);color:#1c7c59}.grade.B{background:var(--blue-soft);color:#3b6bc7}.grade.C{background:var(--amber-soft);color:#a56b18}.grade.D{background:var(--coral-soft);color:#ce4058}.row-button{border:0;background:none;color:#aaaab3;font-size:17px}.pagination{height:48px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:12px;color:#9999a3}.page-buttons{display:flex;gap:4px}.page-buttons button{width:27px;height:27px;border:1px solid var(--line);background:#fff;border-radius:6px;font-size:12px}.page-buttons button.active{background:var(--dark);color:#fff;border-color:var(--dark)}
.mini-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:12px}.mini-kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px}.mini-kpi span{font-size:12px;color:#888892}.mini-kpi strong{display:block;font-size:21px;margin:8px 0 4px}.mini-kpi em{font-style:normal;font-size:12px;color:var(--green)}.heat-legend{display:flex;align-items:center;gap:4px;font-size:12px;color:#9999a3}.heat-legend i{width:18px;height:7px;border-radius:2px}.rank-list{padding:10px 17px 16px}.rank-row{display:grid;grid-template-columns:22px 1fr 60px 60px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #f0f0f3;font-size:12px}.rank-row:last-child{border:0}.rank-num{width:20px;height:20px;border-radius:6px;background:#f1f1f4;display:grid;place-items:center;font-size:12px}.rank-row:first-child .rank-num{background:var(--coral-soft);color:var(--coral-dark)}.progress{height:5px;background:#eeeef2;border-radius:5px;overflow:hidden}.progress i{display:block;height:100%;background:var(--coral);border-radius:5px}
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.plan-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:17px;position:relative}.plan-card.recommended{border-color:#f1a3b1;box-shadow:0 0 0 2px #fff0f3}.recommend-tag{position:absolute;right:13px;top:13px;background:var(--coral-soft);color:var(--coral-dark);font-size:12px;padding:4px 6px;border-radius:6px}.plan-name{font-size:13px;font-weight:700}.plan-code{font-size:12px;color:#aaaab3;margin-top:4px}.plan-price{font-size:24px;font-weight:730;margin:16px 0}.plan-price small{font-size:12px;color:#9999a3;font-weight:500}.plan-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.plan-meta div{background:#f7f7f9;border-radius:7px;padding:8px}.plan-meta span{font-size:12px;color:#9999a3;display:block}.plan-meta strong{font-size:12px;margin-top:3px;display:block}.plan-features{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:7px}.plan-features span{font-size:12px;color:#666670}.plan-actions{display:flex;gap:7px;margin-top:16px}.plan-actions .button{flex:1}
.backdrop{position:fixed;inset:0;background:rgba(16,16,20,.42);backdrop-filter:blur(2px);z-index:50}.drawer{position:fixed;z-index:51;top:0;right:0;bottom:0;width:min(760px,100%);background:#fff;box-shadow:-24px 0 70px rgba(0,0,0,.16);transform:translateX(105%);transition:.27s;display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-head{height:73px;border-bottom:1px solid var(--line);padding:0 22px;display:flex;align-items:center;justify-content:space-between}.drawer-head span,.modal-head span{font-size:12px;letter-spacing:1.7px;color:var(--coral);font-weight:750}.drawer-head h2{font-size:18px;margin:4px 0 0}.drawer-head button,.modal-head button{width:31px;height:31px;border:1px solid var(--line);background:#fff;border-radius:7px;font-size:20px;color:#777781}.drawer-body{overflow-y:auto;padding:20px 22px 36px}.detail-hero{padding:18px;border-radius:11px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:space-between}.detail-hero h3{font-size:17px;margin:4px 0 8px}.detail-hero p{font-size:12px;color:#9696a0;margin:0}.detail-score{font-size:29px;font-weight:730}.detail-score small{font-size:12px;color:#888892}.detail-tabs{display:flex;border-bottom:1px solid var(--line);margin-top:18px}.detail-tabs button{border:0;background:none;padding:10px 12px;font-size:12px;color:#888892;border-bottom:2px solid transparent}.detail-tabs button.active{color:var(--ink);border-bottom-color:var(--coral);font-weight:650}.detail-section{margin-top:19px}.detail-section h4{font-size:12px;margin:0 0 10px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.detail-field{padding:11px;border:1px solid var(--line);border-radius:8px}.detail-field span{display:block;font-size:12px;color:#9999a3}.detail-field strong{display:block;font-size:12px;margin-top:5px}.timeline{position:relative;padding-left:18px}.timeline:before{content:"";position:absolute;left:4px;top:5px;bottom:5px;width:1px;background:var(--line)}.timeline-item{position:relative;padding:0 0 14px 8px}.timeline-item:before{content:"";position:absolute;left:-17px;top:3px;width:7px;height:7px;border-radius:50%;background:var(--coral);border:2px solid #fff;box-shadow:0 0 0 1px #f2a2b0}.timeline-item strong{display:block;font-size:12px}.timeline-item span{font-size:12px;color:#9999a3}.quality-dims{display:flex;flex-direction:column;gap:10px}.quality-row{display:grid;grid-template-columns:160px 1fr 50px;gap:10px;align-items:center;font-size:12px}.quality-track{height:6px;background:#eeeef2;border-radius:5px;overflow:hidden}.quality-track i{display:block;height:100%;background:var(--coral);border-radius:5px}.issue-card{padding:11px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px}.issue-card-head{display:flex;align-items:center;gap:7px}.issue-card-head b{font-size:12px}.priority{padding:3px 5px;border-radius:5px;font-size:12px;font-weight:700}.priority.p0{background:var(--coral-soft);color:var(--red)}.priority.p1{background:var(--amber-soft);color:#a56b18}.priority.p2{background:var(--blue-soft);color:#426fc4}.issue-card p{font-size:12px;color:#777781;line-height:1.6}.suggestion{padding:8px;background:#fff5f7;border-radius:6px;color:#8a4250;font-size:12px;line-height:1.5}
.modal-backdrop{position:fixed;inset:0;z-index:70;background:rgba(15,15,19,.48);display:grid;place-items:center;padding:20px}.modal{width:min(500px,100%);background:#fff;border-radius:12px;box-shadow:0 25px 80px rgba(0,0,0,.22)}.modal-head{padding:17px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{font-size:15px;margin:4px 0 0}.modal-body{padding:18px}.modal-body label{display:block;font-size:12px;font-weight:650;margin:0 0 6px}.modal-body input,.modal-body select,.modal-body textarea{width:100%;border:1px solid var(--line);border-radius:7px;padding:9px;font-size:12px;margin-bottom:12px;outline:0}.modal-body textarea{height:80px;resize:vertical}.modal-note{padding:10px;border-radius:7px;background:var(--amber-soft);color:#87611f;font-size:12px;line-height:1.5}.modal-actions{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:7px}.command{position:fixed;inset:0;z-index:80;background:rgba(15,15,19,.45);display:flex;justify-content:center;align-items:flex-start;padding-top:11vh}.command-box{width:min(570px,calc(100% - 30px));background:#fff;border-radius:12px;box-shadow:0 28px 90px rgba(0,0,0,.25);overflow:hidden}.command-input{height:55px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--line)}.command-input svg{width:18px;color:#888892}.command-input input{border:0;outline:0;flex:1;padding:0 10px;font-size:12px}.command-result{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:12px}.command-result:hover{background:#f7f7f9}.command-result svg{width:16px;color:#777781}.command-result span{flex:1}.command-result small{color:#aaaab3}.command-foot{border-top:1px solid var(--line);padding:9px 16px;font-size:12px;color:#aaaab3}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);z-index:100;background:#202027;color:#fff;border-radius:8px;padding:10px 16px;font-size:12px;opacity:0;pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}.empty{padding:55px;text-align:center}.empty svg{width:28px;color:#aaaab3}.empty strong{display:block;font-size:12px;margin:10px 0 5px}.empty span{font-size:12px;color:#9999a3}
@media(max-width:1280px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.plan-grid{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr}.grid-3>*:last-child{grid-column:1/3}.mini-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:900px){:root{--sidebar:220px}.sidebar{transform:translateX(-100%);transition:.24s;box-shadow:15px 0 40px rgba(0,0,0,.15)}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-button{display:grid;place-items:center}.topbar{padding:0 16px}.page{padding:20px 16px 45px}.grid-2,.grid-2.equal{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}.global-filters{flex-wrap:wrap}.filter-spacer{display:none}.updated-at{width:100%}.grid-3{grid-template-columns:1fr}.grid-3>*:last-child{grid-column:auto}.plan-grid{grid-template-columns:1fr 1fr}.login{grid-template-columns:1fr}.login-brand{display:none}.login-form-wrap{min-height:100vh;padding:28px}.mobile-brand{display:flex;margin-bottom:70px}}
@media(max-width:600px){.top-action span,.top-action kbd,.environment{display:none}.page-heading{gap:10px}.page-heading h1{font-size:20px}.page-actions .button.secondary{display:none}.kpi-grid,.mini-kpis,.plan-grid{grid-template-columns:1fr}.filter-segment{overflow-x:auto;width:100%}.grid-3>*:last-child{grid-column:auto}.metric-strip{grid-template-columns:1fr 1fr}.strip-item:nth-child(2){border-right:0}.funnel{overflow-x:auto}.funnel-step{min-width:105px}.toolbar{flex-wrap:wrap}.search-field{max-width:none;min-width:100%}.drawer{width:100%}.detail-grid{grid-template-columns:1fr}.quality-row{grid-template-columns:120px 1fr 45px}.login-form-wrap{padding:20px}.mobile-brand{margin-bottom:55px}}

