:root{--sidebar: #0b1f33;--sidebar-2: #12304a;--sidebar-text: #d7e3ef;--sidebar-muted: #8aa0b5;--accent: #2f80ed;--accent-soft: #e8f1fc;--bg: #eef2f6;--panel: #ffffff;--ink: #142033;--muted: #66758a;--line: #d9e1ea;--danger: #c0392b;--ok: #1e7a4d;--warn: #b7791f;--shadow: 0 1px 2px rgba(16, 24, 40, .06)}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:linear-gradient(180deg,var(--sidebar) 0%,var(--sidebar-2) 100%);color:var(--sidebar-text);display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.sidebar-brand{padding:20px 18px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand .mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--accent);color:#fff;font-weight:700;margin-bottom:10px}.sidebar-brand h1{margin:0;font-size:18px;letter-spacing:.2px}.sidebar-brand p{margin:4px 0 0;color:var(--sidebar-muted);font-size:12px;line-height:1.35}.sidebar-nav{padding:12px 10px;overflow:auto;flex:1}.nav-section{margin:10px 8px 6px;color:var(--sidebar-muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:4px;border-radius:8px;color:var(--sidebar-text);font-size:14px}.nav-link:hover{background:#ffffff0f}.nav-link.active{background:#2f80ed38;color:#fff;font-weight:600}.nav-link svg{width:18px;height:18px;opacity:.9}.sidebar-foot{padding:12px;border-top:1px solid rgba(255,255,255,.08)}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shortcut{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:10px;color:var(--sidebar-text);font-size:12px}.shortcut:hover{background:#ffffff1a}.shortcut strong{display:block;margin-bottom:2px;font-size:12px}.main{min-width:0;display:flex;flex-direction:column}.topbar{background:var(--panel);border-bottom:1px solid var(--line);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;z-index:5}.page-title h2{margin:0;font-size:18px}.page-title p{margin:2px 0 0;color:var(--muted);font-size:12px}.top-actions{display:flex;gap:8px;align-items:center}.chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600}.content{padding:18px 20px 28px;flex:1}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow)}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}.stat .label{color:var(--muted);font-size:12px}.stat .value{font-size:28px;font-weight:700;margin-top:6px;letter-spacing:-.02em}.btn{border:0;border-radius:8px;padding:9px 13px;background:var(--accent);color:#fff;cursor:pointer;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:6px}.btn:hover{filter:brightness(.95)}.btn.secondary{background:#edf1f6;color:var(--ink)}.btn.danger{background:var(--danger)}.btn.ghost{background:transparent;color:var(--sidebar-text);border:1px solid rgba(255,255,255,.15)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}input,select,textarea{border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit;background:#fff;color:var(--ink)}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);text-align:left;padding:11px 8px;font-size:13px}th{color:var(--muted);font-weight:600;background:#f8fafc}.error{color:var(--danger);margin:8px 0}.ok{color:var(--ok);margin:8px 0}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.muted{color:var(--muted);font-size:13px}.dropzone{border:1.5px dashed var(--line);border-radius:12px;padding:18px 16px;background:#f8fafc;text-align:center;transition:border-color .15s ease,background .15s ease}.dropzone-active{border-color:var(--accent);background:#eef5ff}.page-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:4px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(180deg,#081c1647,#081c1673),url(/login-bg.png) center / cover no-repeat fixed}.login-card{width:min(440px,94vw);background:#ffffffe0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);border-radius:22px;padding:34px 32px 26px;box-shadow:0 24px 60px #0a1e1847;display:flex;flex-direction:column;gap:14px}.login-brand{text-align:center;margin-bottom:6px}.login-mark{width:52px;height:52px;margin:0 auto 12px;border-radius:14px;background:#2f80ed;color:#fff;display:grid;place-items:center;font-size:24px;font-weight:700;box-shadow:0 8px 18px #2f80ed59}.login-brand h1{margin:0;font-size:30px;letter-spacing:-.03em;color:#142033}.login-brand h1 span{color:#2f9e44}.login-subtitle{margin:6px 0 0;color:#7a8799;font-size:13px}.login-divider{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 8px;color:#2f9e44}.login-divider span{display:block;height:1px;width:52px;background:#d5dde7}.login-tagline{margin:0;color:#8aa0b5;font-size:12px;letter-spacing:.04em}.login-field{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #d9e1ea;border-radius:12px;padding:0 12px;min-height:48px;color:#8aa0b5}.login-field:focus-within{border-color:#2f80ed;box-shadow:0 0 0 3px #2f80ed1f}.login-field input{border:0;outline:none;box-shadow:none;background:transparent;padding:12px 0;flex:1;min-width:0}.login-eye{border:0;background:transparent;color:#8aa0b5;cursor:pointer;display:inline-flex;padding:4px}.login-eye:hover{color:#142033}.login-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.login-remember{display:inline-flex;align-items:center;gap:8px;color:#66758a;cursor:pointer}.login-remember input{width:15px;height:15px;accent-color:#2f9e44}.login-forgot{border:0;background:transparent;color:#2f80ed;font:inherit;font-weight:600;cursor:pointer;padding:0}.login-forgot:hover{text-decoration:underline}.login-submit{border:0;border-radius:12px;min-height:48px;width:100%;color:#fff;font:inherit;font-weight:700;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(90deg,#1f7a3a,#52b788 45%,#95d5b2);box-shadow:0 10px 22px #1f7a3a47}.login-submit:hover{filter:brightness(1.03)}.login-submit:disabled{opacity:.7;cursor:wait}.login-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:6px;padding-top:14px;border-top:1px solid #e4ebf2}.login-features>div{display:flex;flex-direction:column;align-items:center;gap:6px;color:#2f9e44;font-size:11px;font-weight:600;text-align:center;padding:4px 6px;border-right:1px solid #e4ebf2}.login-features>div:last-child{border-right:0}@media(max-width:520px){.login-card{padding:28px 18px 20px}.login-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.login-features>div{border-right:0;padding:8px 4px}}.busy-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0b1f3373;display:grid;place-items:center;padding:20px}.busy-card{background:#fff;border-radius:14px;padding:28px 32px;width:min(360px,92vw);text-align:center;box-shadow:0 20px 50px #00000040}.busy-card h3{margin:14px 0 6px}.busy-card p{margin:0;color:var(--muted);font-size:13px}.busy-timer{margin-top:14px;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--accent)}.spinner{width:42px;height:42px;margin:0 auto;border:3px solid #d9e1ea;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.po-header-sticky{position:sticky;top:0;z-index:5;box-shadow:var(--shadow)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:0}.tab{border:0;background:transparent;padding:10px 14px;font:inherit;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.company-chip{font-size:12px;padding:6px 10px;border-radius:8px;background:#edf1f6;color:var(--ink);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-toggle{display:none;border:0;background:#edf1f6;border-radius:8px;padding:8px 10px}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;width:min(280px,86vw);z-index:20;transform:translate(-105%);transition:transform .2s ease}.sidebar.open{transform:translate(0)}.mobile-toggle{display:inline-flex}.grid-4,.form-grid{grid-template-columns:1fr}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:15}}.btn.outline{background:#fff;color:var(--accent);border:1px solid #c5d8f5}.btn.outline:hover{background:var(--accent-soft)}.dash{gap:14px}.dash-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.dash-greeting{display:flex;align-items:center;gap:8px;color:var(--accent)}.dash-greeting h3{margin:0;color:var(--ink);font-size:20px;letter-spacing:-.02em}.dash-hero-copy p{margin:6px 0 0;color:var(--muted);font-size:13px}.dash-hero-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dash-period{display:inline-flex;align-items:center;gap:6px;background:#f4f7fb;border:1px solid var(--line);border-radius:8px;padding:0 8px;color:var(--muted)}.dash-period select{border:0;background:transparent;padding:8px 4px;min-width:120px}.dash-kpi-grid,.dash-secondary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dash-kpi-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;font-weight:600}.dash-kpi-head svg{color:var(--accent);opacity:.9}.dash-kpi-value{font-size:30px;font-weight:700;letter-spacing:-.03em;margin-top:8px;line-height:1.1}.dash-kpi-row{display:flex;justify-content:space-between;gap:8px;align-items:center}.dash-trend{display:inline-block;margin-top:8px;font-size:12px;font-weight:600}.dash-trend.up{color:var(--ok)}.dash-trend.down{color:var(--danger)}.dash-warn-chip{display:inline-flex;align-items:center;gap:5px;margin-top:8px;background:#fff4e5;color:#b7791f;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.dash-donut-metric{position:relative;width:72px;height:72px;flex-shrink:0}.dash-donut-metric-label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--ink)}.dash-secondary-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:10px;font-size:12px;color:var(--muted)}.dash-secondary-top strong{color:var(--ink);font-size:13px;font-weight:700}.dash-progress{height:8px;background:#eef2f6;border-radius:999px;overflow:hidden}.dash-progress-fill{height:100%;border-radius:999px}.dash-progress-fill.tone-green{background:#27ae60}.dash-progress-fill.tone-orange{background:#f2994a}.dash-progress-fill.tone-blue{background:#2f80ed}.dash-progress-fill.tone-red{background:#eb5757}.dash-charts{display:grid;grid-template-columns:1.35fr 1fr;gap:12px}.dash-panel-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.dash-panel-head h3{margin:0;font-size:15px}.dash-panel-head p{margin:2px 0 0}.dash-dist{display:flex;align-items:center;gap:18px;min-height:200px}.dash-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;flex:1}.dash-legend li{display:flex;gap:10px;align-items:flex-start}.dash-legend .swatch{width:10px;height:10px;border-radius:999px;margin-top:5px;flex-shrink:0}.dash-legend strong{display:block;font-size:13px}.dash-bottom{display:grid;grid-template-columns:1.45fr 1fr;gap:12px}.dash-table-wrap{overflow:auto}.dash-link{border:0;background:transparent;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0}.dash-link:hover{text-decoration:underline}.dash-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;background:#edf1f6;color:var(--muted)}.dash-status.in-use{background:#e8f8ef;color:#1e7a4d}.dash-status.in-repair{background:#fdecea;color:#c0392b}.dash-status.in-stock{background:#e8f1fc;color:#2f80ed}.dash-status.pending{background:#fff4e5;color:#b7791f}.dash-renewals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.dash-renewals li{display:flex;gap:12px;align-items:center;padding:10px 8px;border-bottom:1px solid var(--line)}.dash-renewals li:last-child{border-bottom:0}.dash-renewal-mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:700;color:#fff;background:#2f80ed;flex-shrink:0}.dash-renewal-mark.kind-amc{background:#27ae60}.dash-renewal-mark.kind-warranty{background:#f2994a}.dash-renewal-body{flex:1;min-width:0}.dash-renewal-body strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-renewal-meta{text-align:right;font-size:12px;white-space:nowrap}.dash-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px;padding:4px 2px 0}@media(max-width:1100px){.dash-kpi-grid,.dash-secondary-grid,.dash-charts,.dash-bottom{grid-template-columns:1fr 1fr}}@media(max-width:720px){.dash-kpi-grid,.dash-secondary-grid,.dash-charts,.dash-bottom{grid-template-columns:1fr}}
