:root{--fz-navy:#073b6b;--fz-deep:#082b54;--fz-blue:#087fae;--fz-cyan:#17a0c2;--fz-soft:#eef7fb;--fz-bg:#f7f9fc;--fz-white:#ffffff;--fz-text:#12324a;--fz-muted:#6d7f8d;--fz-border:#d6e8f2;--fz-danger:#b42318;--fz-warning:#b36b00;--fz-success:#167451}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--fz-bg);color:var(--fz-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.fz-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.fz-sidebar{background:linear-gradient(180deg,var(--fz-deep),var(--fz-navy));color:#fff;padding:22px 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.fz-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.fz-brand img{width:54px;height:54px;border-radius:16px;object-fit:cover;background:#fff}.fz-brand-title{font-weight:800;letter-spacing:.03em}.fz-brand-sub{font-size:12px;opacity:.72}.fz-nav{display:grid;grid-gap:8px;gap:8px}.fz-nav a{padding:11px 12px;border-radius:10px;opacity:.9}.fz-nav a:hover{background:rgba(255,255,255,.09);opacity:1}.fz-main{padding:28px 32px}.fz-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.fz-search{width:min(620px,60vw);border:1px solid var(--fz-border);background:#fff;padding:12px 14px;border-radius:12px;outline:none}.fz-search:focus{border-color:var(--fz-cyan);box-shadow:0 0 0 3px rgba(23,160,194,.12)}.fz-chip{background:#fff;border:1px solid var(--fz-border);padding:9px 12px;border-radius:999px;font-size:13px}.fz-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.fz-card{background:#fff;border:1px solid var(--fz-border);border-radius:16px;padding:18px;box-shadow:0 7px 20px rgba(7,59,107,.05)}.fz-card h3{margin:0 0 8px;font-size:13px;color:var(--fz-muted);text-transform:uppercase;letter-spacing:.06em}.fz-kpi{font-size:28px;font-weight:800;color:var(--fz-navy)}.fz-section{margin-top:24px}.fz-section h2{font-size:18px;margin:0 0 12px;color:var(--fz-deep)}.fz-table{background:#fff;border:1px solid var(--fz-border);border-radius:16px;overflow:hidden}.fz-row{display:grid;grid-template-columns:1.2fr 1fr .8fr .8fr;grid-gap:10px;gap:10px;padding:13px 16px;border-bottom:1px solid var(--fz-border);align-items:center}.fz-row:last-child{border-bottom:0}.fz-row.header{background:var(--fz-soft);text-transform:uppercase;color:var(--fz-muted)}.fz-row.header,.fz-status{font-size:12px;font-weight:700}.fz-status{border-radius:999px;padding:5px 8px;width:max-content}.ok{background:#e8f7f1;color:var(--fz-success)}.warn{background:#fff3df;color:var(--fz-warning)}.danger{background:#fdecea;color:var(--fz-danger)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,#edf9ff 0,#f7f9fc 48%,#eef4f8 100%)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--fz-border);border-radius:24px;padding:30px;box-shadow:0 20px 60px rgba(7,59,107,.12)}.login-logo{display:block;width:155px;height:155px;object-fit:cover;border-radius:30px;margin:0 auto 16px}.login-card h1{text-align:center;margin:0;color:var(--fz-deep)}.login-card p{text-align:center;color:var(--fz-muted);margin:6px 0 24px}.field{display:grid;grid-gap:7px;gap:7px;margin-bottom:14px}.field label{font-size:13px;font-weight:700}.field input{border:1px solid var(--fz-border);border-radius:12px;padding:12px 13px;outline:none}.field input:focus{border-color:var(--fz-cyan);box-shadow:0 0 0 3px rgba(23,160,194,.12)}.primary{width:100%;border:0;border-radius:12px;padding:13px 14px;background:linear-gradient(90deg,var(--fz-navy),var(--fz-cyan));color:#fff;font-weight:800;cursor:pointer}.login-note{font-size:12px!important;line-height:1.5;margin-top:16px!important}@media(max-width:980px){.fz-shell{grid-template-columns:1fr}.fz-sidebar{display:none}.fz-grid{grid-template-columns:repeat(2,1fr)}.fz-main{padding:20px}.fz-search{width:65vw}}@media(max-width:620px){.fz-grid{grid-template-columns:1fr}.fz-row{grid-template-columns:1fr 1fr}.fz-row.header{display:none}}