:root { --blue:#0b5cab; --blue2:#0f7ad8; --bg:#eef3f9; --white:#fff; --text:#1e2a3a; --muted:#5f6b7b; }
*{box-sizing:border-box;font-family:Inter,Segoe UI,Arial,sans-serif}
body{margin:0;background:var(--bg);color:var(--text)}
.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{background:linear-gradient(180deg,var(--blue),#0a4f96);color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.brand{font-weight:700;font-size:1.2rem;letter-spacing:.2px}
.menu{display:flex;flex-direction:column;gap:8px}
.menu a{color:#fff;text-decoration:none;padding:10px 12px;border-radius:8px;opacity:.92}
.menu a:hover{background:rgba(255,255,255,.15);opacity:1}
.logout-link{margin-top:auto;color:#fff;text-decoration:none;padding:10px 12px;border:1px solid rgba(255,255,255,.35);border-radius:8px;text-align:center}
.container{padding:24px 30px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.card{background:#fff;border-radius:12px;padding:18px;box-shadow:0 4px 18px rgba(0,0,0,.06)}
.card ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.card ul li{display:flex;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid #eef2f7}
.dashboard-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}
.kicker{margin:0;color:var(--blue2);font-size:.82rem;font-weight:600;text-transform:uppercase}
.subtitle{margin:.4rem 0 0;color:var(--muted)}
.big-number{background:#eef6ff;padding:14px 18px;border-radius:10px;text-align:right}
.big-number span{display:block;color:var(--muted);font-size:.8rem}
.big-number strong{font-size:2rem;color:var(--blue)}
.big-number small{display:block;color:var(--muted);font-size:.86rem;margin-top:4px}
.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(rgba(11,92,171,.72),rgba(11,92,171,.72)),url('https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1400&q=80') center/cover no-repeat}
.login-card{background:rgba(255,255,255,.95);padding:28px;border-radius:16px;width:min(420px,90vw);box-shadow:0 16px 50px rgba(0,0,0,.2)}
input,select,textarea,button{width:100%;padding:10px;border-radius:8px;border:1px solid #ccd8e6;margin:4px 0 12px}
button,.btn{background:var(--blue);color:#fff;border:none;cursor:pointer;padding:11px 14px;border-radius:10px;text-decoration:none;display:inline-block;width:auto}
.ghost{background:#e9f1fb;color:var(--blue)}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.op-form h2{margin-top:20px;background:#eaf3fe;padding:8px 12px;border-radius:8px}
.filters,.actions-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.filters select,.filters input{width:auto;min-width:180px;flex:1 1 180px;margin:0}
.filters button{margin:0;white-space:nowrap}
.import-card h2{margin-top:0}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden}
th,td{padding:10px;border-bottom:1px solid #eef2f7;text-align:left;vertical-align:top}
.icon-btn{font-size:1.05rem;line-height:1}
.actions-inline{display:flex;gap:8px}
.actions-inline form{margin:0}
.chart-card canvas{max-height:280px}
.errors{border-left:4px solid #d93025}
.error-tag{color:#d93025;font-weight:700}
.ok-tag{color:#137333;font-weight:700}
.unresolved-field{border:2px solid #d93025 !important;background:#fff1f1}
@media (max-width: 980px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.container{padding:20px}}
