:root{--ink:#161522;--ink-soft:#555363;--surface:#ffffff;--surface-soft:#f5f5f1;--surface-dark:#20202a;--line:#e8e7e1;--lime:#c8f169;--lime-strong:#a9dc35;--violet:#7470f7;--violet-soft:#eeedff;--coral:#ff8068;--amber:#f3bd4b;--blue:#5bbce5;--shadow:0 18px 60px rgba(30,29,43,0.08);--radius-lg:28px;--radius-md:20px;--radius-sm:13px}*{box-sizing:border-box}body,html{background:var(--surface-soft)}body{margin:0;color:var(--ink);font-family:Inter,SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;padding:24px 18px;color:#f8f8fa;background:#1d1d26;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:2px 8px 26px;font-weight:760;letter-spacing:-.025em}.brand-mark{width:37px;height:37px;display:grid;place-items:center;color:var(--ink);background:var(--lime);border-radius:12px 12px 12px 4px}.brand small{display:block;margin-top:2px;color:#9997a5;font-weight:650;letter-spacing:.11em}.brand small,.nav-label{font-size:10px;text-transform:uppercase}.nav-label{padding:15px 12px 8px;color:#777582;font-weight:750;letter-spacing:.13em}.nav{display:grid;grid-gap:5px;gap:5px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 13px;color:#aaa8b4;border-radius:13px;font-size:14px;font-weight:620;transition:.18s ease}.nav-link:hover{color:white;background:#292934}.nav-link.active{color:white;background:#30303b;box-shadow:inset 3px 0 var(--lime)}.nav-link.active svg{color:var(--lime)}.sidebar-foot{margin-top:auto}.user-card{padding:14px;border:1px solid #34343f;border-radius:16px;background:#25252f}.user-card strong{display:block;font-size:13px}.user-card span{color:#8e8c9a;font-size:11px}.logout{margin-top:12px;width:100%;padding:9px;color:#aba9b4;background:transparent;border:0;border-top:1px solid #393843;cursor:pointer;text-align:left}.main{min-width:0}.topbar{height:78px;padding:0 34px;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(245,245,241,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:-webkit-sticky;position:sticky;top:0;z-index:15}.topbar,.topbar-title{display:flex;align-items:center}.topbar-title{gap:12px}.eyebrow{margin:0 0 5px;color:#8d8a98;font-size:10px;font-weight:760;letter-spacing:.12em;text-transform:uppercase}.topbar h2{margin:0;font-size:17px;letter-spacing:-.02em}.live-dot{width:7px;height:7px;background:#8bd341;border-radius:50%;box-shadow:0 0 0 5px rgba(139,211,65,.13)}.top-actions{display:flex;gap:10px;align-items:center}.icon-button{width:39px;height:39px;border:1px solid var(--line);border-radius:12px;background:white;color:#5e5b68;display:grid;place-items:center}.page{padding:30px 34px 48px;max-width:1640px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 24px}.page-head h1{margin:0;font-size:clamp(27px,2.4vw,39px);line-height:1.04;letter-spacing:-.05em;font-weight:770}.page-head p{max-width:690px;margin:10px 0 0;color:var(--ink-soft);font-size:14px;line-height:1.55}.month-control{display:flex;align-items:center;gap:4px;padding:5px;background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 30px rgba(20,20,30,.04)}.month-control a{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#777481}.month-control a:hover{background:var(--surface-soft)}.month-label{min-width:124px;text-align:center;font-size:12px;font-weight:700}.grid{display:grid;grid-gap:18px;gap:18px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr)}.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--surface);border:1px solid rgba(225,224,218,.85);border-radius:var(--radius-md);box-shadow:0 9px 35px rgba(38,36,48,.045)}.card-pad{padding:22px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.card-title{margin:0;font-size:15px;font-weight:730;letter-spacing:-.02em}.card-subtitle{margin:5px 0 0;color:#8d8997;font-size:11px;line-height:1.45}.card-action{color:var(--violet);font-size:11px;font-weight:720}.kpi{position:relative;overflow:hidden;min-height:148px;padding:20px}.kpi:after{content:"";position:absolute;right:-28px;bottom:-45px;width:118px;height:118px;border-radius:50%;background:rgba(116,112,247,.06)}.kpi-label{color:#7d7a88;font-size:11px;font-weight:670}.kpi-value{margin-top:15px;font-size:clamp(25px,2.3vw,34px);font-weight:780;letter-spacing:-.05em}.kpi-meta{margin-top:10px;display:flex;gap:7px;color:#85818f;font-size:10px}.delta,.kpi-meta{align-items:center}.delta{display:inline-flex;gap:3px;padding:4px 7px;border-radius:999px;font-weight:750}.delta.up{color:#4f791b;background:#edf8db}.delta.down{color:#b7513e;background:#fff0ed}.kpi.dark{color:white;background:#24242e;border-color:#24242e}.kpi.dark .kpi-label,.kpi.dark .kpi-meta{color:#9e9ca8}.kpi.dark:after{background:rgba(200,241,105,.08)}.kpi-accent{position:absolute;right:18px;top:18px;width:38px;height:38px;display:grid;place-items:center;color:var(--ink);background:var(--lime);border-radius:12px}.section-gap{margin-top:18px}.chart-wrap{width:100%;height:270px}.legend-row{gap:16px;flex-wrap:wrap}.legend-item,.legend-row{display:flex;align-items:center}.legend-item{gap:6px;color:#7d7987;font-size:10px}.legend-dot{width:7px;height:7px;border-radius:50%}.bottleneck{padding:22px;color:white;background:linear-gradient(150deg,#24242e,#2c2a3c);border:0}.bottleneck-top{display:flex;justify-content:space-between;align-items:flex-start}.bottleneck-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;color:#fec8bd;background:rgba(255,128,104,.12);border:1px solid rgba(255,128,104,.19);border-radius:999px;font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.bottleneck h3{margin:22px 0 4px;font-size:29px;letter-spacing:-.04em}.bottleneck p{margin:0;color:#aaa7b5;font-size:12px}.ring{width:74px;height:74px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--coral) var(--progress),#3c3a47 0);position:relative}.ring:after{content:"";position:absolute;inset:7px;background:#292837;border-radius:50%}.ring span{position:relative;z-index:1;font-size:14px;font-weight:760}.bottleneck-foot{margin-top:23px;padding-top:16px;border-top:1px solid #3c3a48;color:#b9b6c2;font-size:10px;line-height:1.5}.role-list{display:grid;grid-gap:11px;gap:11px}.role-row{padding:13px 14px;border:1px solid var(--line);border-radius:15px}.role-top{justify-content:space-between;gap:12px}.role-name,.role-top{display:flex;align-items:center}.role-name{gap:9px;min-width:0}.role-color{width:9px;height:9px;flex:0 0 auto;border-radius:50%}.role-name strong{display:block;font-size:12px}.role-name small{display:block;margin-top:2px;color:#94909d;font-size:9px}.role-percent{font-size:13px;font-weight:760}.progress{height:6px;margin-top:10px;overflow:hidden;background:#efeee9;border-radius:99px}.progress>span{display:block;width:min(var(--progress),100%);height:100%;background:var(--bar,var(--violet));border-radius:inherit;transition:width .3s ease}.progress.critical>span{background:var(--coral)}.progress.warning>span{background:var(--amber)}.progress.free>span{background:var(--blue)}.offer-list{display:grid;grid-gap:10px;gap:10px}.offer{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;padding:13px;background:#f8f8f4;border-radius:15px}.offer-icon{width:40px;height:40px;display:grid;place-items:center;background:var(--lime);border-radius:12px}.offer strong{display:block;font-size:12px}.offer small{display:block;margin-top:3px;color:#8a8793;font-size:9px}.offer-value{text-align:right}.offer-value strong{font-size:12px}.offer-value span{color:#629321;font-size:9px;font-weight:700}.offer.blocked .offer-icon{color:#9e5e52;background:#ffe5df}.offer.blocked .offer-value span{color:#b36556}.risk-card{padding:21px}.risk-value{font-size:25px;font-weight:770;letter-spacing:-.04em}.mini-stat{margin-top:15px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#7d7987;font-size:10px}.quality-score{display:flex;align-items:center;gap:16px}.score-bubble{width:62px;height:62px;display:grid;place-items:center;color:var(--ink);background:var(--lime);border-radius:20px;font-size:19px;font-weight:800}.quality-issues{margin:16px 0 0;padding:0;list-style:none;display:grid;grid-gap:7px;gap:7px}.quality-issues li{display:flex;gap:7px;color:#777481;font-size:10px;line-height:1.4}.quality-issues li.error{color:#a75041}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{padding:11px 18px;color:#9894a0;background:#fafaf7;text-align:left;font-size:9px;font-weight:760;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.table td,.table th{border-bottom:1px solid var(--line)}.table td{padding:15px 18px;font-size:11px;vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table-main{font-size:12px;font-weight:700}.table-sub{margin-top:3px;color:#8c8995;font-size:9px}.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;color:#5b5870;background:var(--violet-soft);font-size:9px;font-weight:700}.badge.green{color:#557b25;background:#eef8df}.badge.red{color:#a55748;background:#fff0ed}.button{min-height:39px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;color:white;background:var(--ink);font-size:11px;font-weight:720;cursor:pointer;transition:.18s ease}.button:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(25,24,35,.14)}.button:disabled{opacity:.55;cursor:wait;transform:none}.button.primary{color:var(--ink);background:var(--lime)}.button.secondary{color:var(--ink);background:white;border:1px solid var(--line)}.button.danger{background:var(--coral)}.button.small{min-height:31px;padding:0 11px;font-size:9px;border-radius:9px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.field{display:grid;grid-gap:6px;gap:6px}.field.full{grid-column:1/-1}.field label{color:#74717e;font-size:10px;font-weight:700}.input,.select,.textarea{width:100%;min-height:42px;padding:0 12px;color:var(--ink);background:#fbfbf8;border:1px solid var(--line);border-radius:11px;outline:0;transition:.15s ease}.textarea{min-height:84px;padding-top:11px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:#a7a3fa;box-shadow:0 0 0 3px rgba(116,112,247,.1);background:white}.form-actions{display:flex;gap:9px;align-items:center;margin-top:17px}.form-note{color:#8b8794;font-size:10px;line-height:1.5}.error-text{color:#b55746;font-size:10px}.success-text{color:#587e27;font-size:10px}.tabs{display:flex;gap:5px;padding:5px;width:-moz-fit-content;width:fit-content;margin-bottom:18px;background:#ecece7;border-radius:13px}.tab{padding:9px 13px;border:0;border-radius:9px;color:#76727f;background:transparent;font-size:10px;font-weight:700;cursor:pointer}.tab.active{color:var(--ink);background:white;box-shadow:0 4px 13px rgba(20,20,30,.07)}.scenario-layout{display:grid;grid-template-columns:minmax(300px,.65fr) minmax(0,1.35fr);grid-gap:18px;gap:18px}.scenario-empty{min-height:390px;display:grid;place-items:center;text-align:center;color:#8c8995}.scenario-empty svg{color:#c2bfca;margin-bottom:10px}.verdict{padding:18px;border-radius:16px;background:#eff8df;color:#527323}.verdict.warning{color:#8a6619;background:#fff7df}.verdict.critical{color:#9c5043;background:#fff0ed}.verdict strong{display:block;font-size:13px}.verdict span{display:block;margin-top:4px;font-size:10px}.comparison{margin-top:18px;display:grid;grid-gap:12px;gap:12px}.comparison-row{padding:14px;border:1px solid var(--line);border-radius:14px}.comparison-values{display:flex;justify-content:space-between;margin-top:9px;color:#777481;font-size:10px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#1d1d26}.login-visual{padding:54px;display:flex;flex-direction:column;justify-content:space-between;color:white;position:relative;overflow:hidden}.login-visual:before{content:"";position:absolute;width:540px;height:540px;border:1px solid #3d3c48;border-radius:50%;right:-110px;bottom:-190px;box-shadow:0 0 0 90px rgba(255,255,255,.014),0 0 0 180px rgba(255,255,255,.011)}.login-visual h1{max-width:650px;margin:0;font-size:clamp(45px,6vw,82px);line-height:.94;letter-spacing:-.07em;position:relative}.login-visual h1 em{color:var(--lime);font-style:normal}.login-visual p{max-width:500px;color:#aaa8b4;font-size:14px;line-height:1.6;position:relative}.login-panel{margin:16px;padding:40px;background:#f7f7f3;border-radius:28px;display:grid;place-items:center}.login-box{width:min(390px,100%)}.login-box h2{margin:0;font-size:30px;letter-spacing:-.045em}.login-box>p{margin:9px 0 28px;color:#7f7b88;font-size:12px;line-height:1.5}.login-box .field{margin-bottom:13px}.login-box .button{width:100%;margin-top:7px;min-height:45px}.mobile-menu{display:none}@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-layout,.two-col{grid-template-columns:1fr}.three-col{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:auto 10px 10px;height:auto;padding:7px;border-radius:17px;flex-direction:row;box-shadow:0 14px 44px rgba(15,14,22,.25)}.brand,.nav-label,.sidebar-foot{display:none}.nav{width:100%;display:flex;justify-content:space-around}.nav-link{width:48px;height:45px;padding:0;justify-content:center}.nav-link span{display:none}.topbar{height:66px;padding:0 18px}.page{padding:24px 16px 92px}.page-head{align-items:flex-start;flex-direction:column}.form-grid,.kpi-grid,.login-page,.three-col{grid-template-columns:1fr}.login-page{background:#f7f7f3}.login-visual{display:none}.login-panel{margin:0;min-height:100vh;border-radius:0;padding:25px}}