:root{--sbis-page-bg: #f8fafc;--sbis-card-bg: #ffffff;--sbis-text: #0f172a;--sbis-text-mute: #64748b;--sbis-border: #e2e8f0;--sbis-brand: #1d4ed8}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--sbis-page-bg);color:var(--sbis-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px;border:2px solid var(--sbis-page-bg)}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.overdue-row{background:#fef2f2!important}.warning-row{background:#fffbeb!important}.partial-row{background:#fff7ed!important}.overdue-row:hover,.warning-row:hover,.partial-row:hover{filter:brightness(.97)}.ant-table-thead>tr>th{position:sticky!important;top:0;z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ant-card{border-color:var(--sbis-border)!important}.ant-table-tbody>tr{transition:background-color .12s ease}.sbis-kpi{border:1px solid var(--sbis-border);border-radius:10px;background:#fff;padding:16px 20px;transition:transform .15s,box-shadow .15s}.sbis-kpi:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0f172a0f}.sbis-kpi__label{font-size:12px;color:var(--sbis-text-mute);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.sbis-kpi__value{font-size:24px;font-weight:700;margin-top:4px}.sbis-kpi__hint{font-size:12px;color:var(--sbis-text-mute);margin-top:2px}.sbis-logo{display:flex;align-items:center;gap:12px;padding:20px 20px 18px;color:#fff;border-bottom:1px solid rgba(148,163,184,.08);background:linear-gradient(180deg,rgba(59,130,246,.08),transparent)}.sbis-logo__mark{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;letter-spacing:.5px;box-shadow:0 4px 12px #1d4ed873,inset 0 1px #fff3;flex-shrink:0}.sbis-logo__text{font-weight:700;font-size:16px;line-height:1.1;letter-spacing:-.2px}.sbis-logo__sub{font-size:11px;color:#94a3b8b3;margin-top:3px}.sbis-sider{display:flex;flex-direction:column;height:100vh;overflow:hidden}.sbis-sider__menu{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:12px}.sbis-sider__menu::-webkit-scrollbar{width:4px}.sbis-sider__menu::-webkit-scrollbar-track{background:transparent}.sbis-sider__menu::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:2px}.sbis-section{padding:14px 20px 6px;font-size:10px;font-weight:700;letter-spacing:1.2px;color:#94a3b88c;text-transform:uppercase;-webkit-user-select:none;user-select:none}.sbis-section--collapsed{padding:14px 0 6px;text-align:center;font-size:9px;letter-spacing:.6px}.sbis-section--collapsed:after{content:"";display:block;width:24px;height:1px;background:#94a3b826;margin:6px auto 0}.sbis-sider__footer{border-top:1px solid rgba(148,163,184,.08);padding:14px 20px;background:#0f172a80}.sbis-sider__footer--collapsed{padding:14px 8px;text-align:center}.sbis-sider__footer-row{display:flex;align-items:center;gap:10px;color:#cbd5e1d9;font-size:12px}.sbis-sider__footer-dot{width:8px;height:8px;border-radius:50%;background:#10b981;flex-shrink:0;box-shadow:0 0 0 3px #10b9812e}.sbis-sider__footer-dot.is-down{background:#dc2626;box-shadow:0 0 0 3px #dc262633;animation:sbis-pulse 1.5s ease-in-out infinite}.sbis-sider__footer-version{margin-top:8px;font-size:10px;color:#94a3b880;letter-spacing:.3px}.ant-menu-dark .ant-menu-item:hover{transition:background-color .15s ease,padding-left .15s ease!important}.ant-menu-dark .ant-menu-item-selected{box-shadow:inset 3px 0 #60a5fa}.ant-menu-dark.ant-menu-inline-collapsed .ant-menu-item-selected{box-shadow:none}.sbis-login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}@media (max-width: 900px){.sbis-login{grid-template-columns:1fr}}.sbis-login__brand{background:linear-gradient(135deg,#1e3a8a,#1d4ed8,#2563eb);color:#fff;padding:64px 56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.sbis-login__brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.1),transparent 40%),radial-gradient(circle at 80% 80%,rgba(14,165,233,.2),transparent 40%);pointer-events:none}.sbis-login__brand>*{position:relative}.sbis-login__title{font-size:32px;font-weight:700;line-height:1.2;margin:24px 0 12px}.sbis-login__lede{font-size:16px;color:#ffffffd9;max-width:420px;line-height:1.5}.sbis-login__features{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:14px}.sbis-login__features li{display:flex;align-items:center;gap:12px;color:#ffffffe6;font-size:14px}.sbis-login__check{width:22px;height:22px;border-radius:50%;background:#ffffff2e;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sbis-login__form-pane{display:flex;align-items:center;justify-content:center;padding:48px}.sbis-login__form{width:100%;max-width:380px}.sbis-login__hint{background:#f1f5f9;border-radius:8px;padding:12px 14px;font-size:12px;color:#475569;margin-top:16px}.sbis-login__hint code{background:#e2e8f0;padding:1px 6px;border-radius:4px;font-size:11px}.sbis-page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.sbis-page-header h2{margin:0 0 4px;font-size:22px;font-weight:600;color:var(--sbis-text)}.sbis-page-header p{margin:0;color:var(--sbis-text-mute);font-size:13px}.sbis-conn-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:500;line-height:1;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;-webkit-user-select:none;user-select:none}.sbis-conn-pill.is-down{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.sbis-conn-pill__dot{width:8px;height:8px;border-radius:50%;background:#10b981;flex-shrink:0}.sbis-conn-pill.is-down .sbis-conn-pill__dot{background:#dc2626;animation:sbis-pulse 1.5s ease-in-out infinite}@keyframes sbis-pulse{0%,to{opacity:1}50%{opacity:.4}}
