:root{--bg:#f4f6f9;--panel:#ffffff;--text:#1f2937;--muted:#6b7280;--line:#e5e7eb;--brand:#0f766e;--brand2:#115e59;--accent:#f59e0b;--danger:#dc2626}
*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
.layout{display:flex;min-height:100vh}.sidebar{width:250px;background:#111827;color:#e5e7eb;padding:18px 14px;position:fixed;top:0;bottom:0;left:0;overflow:auto}
.brand{font-size:18px;font-weight:700;margin-bottom:16px}.sub{font-size:12px;color:#93c5fd;margin-bottom:14px}
.menu a{display:block;color:#d1d5db;text-decoration:none;padding:10px 12px;border-radius:8px;margin-bottom:6px}.menu a:hover,.menu a.active{background:#1f2937;color:#fff}
.main{margin-left:250px;flex:1}.topbar{background:var(--panel);border-bottom:1px solid var(--line);padding:14px 20px;display:flex;justify-content:space-between;align-items:center}
.content{padding:20px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}
.kpi{font-size:28px;font-weight:700}.muted{color:var(--muted)}
.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;overflow:auto}
table{border-collapse:collapse;width:100%}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{background:#f9fafb}
.btn{background:var(--brand);color:#fff;border:0;padding:9px 12px;border-radius:8px;cursor:pointer}.btn:hover{background:var(--brand2)}
.input{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:8px}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.alert{padding:10px 12px;border-radius:8px;background:#fee2e2;color:#991b1b;margin:10px 0}
.login-bg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a,#0f766e)}.login-card{width:min(420px,92vw);background:#fff;border-radius:14px;padding:22px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.login-title{margin:0 0 4px 0}.login-sub{margin:0 0 14px 0;color:#6b7280}
.badge{display:inline-block;padding:3px 8px;border-radius:999px;background:#ecfeff;color:#0f766e;font-size:12px}
@media (max-width:900px){.sidebar{position:static;width:100%;height:auto}.main{margin-left:0}.grid{grid-template-columns:1fr}.row{grid-template-columns:1fr}}
