#app{min-height:100vh}.login{max-width:460px;margin:8vh auto;background:var(--surface);padding:32px;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{padding:20px;background:#111827;color:white;position:sticky;top:0;height:100vh;overflow:auto}.brand{font-size:20px;font-weight:800;margin-bottom:22px}.nav-group{margin:18px 0 8px;color:#9ca3af;font-size:12px;text-transform:uppercase}.nav-link{display:block;width:100%;text-align:left;border:0;background:transparent;color:#d1d5db;padding:10px 12px;border-radius:9px;cursor:pointer}.nav-link:hover,.nav-link.active{background:#263247;color:white}.main{padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-title{font-size:26px;margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.kpi strong{display:block;font-size:28px;margin-top:8px}.muted{color:var(--muted)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:white}.btn{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;background:var(--accent);color:white}.btn.secondary{background:var(--surface-2);color:var(--text)}.btn.danger{background:var(--danger)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-size:12px}.notice{padding:12px 14px;border-radius:10px;margin-bottom:16px}.notice.error{background:#fee4e2;color:var(--danger)}.notice.success{background:#d1fadf;color:var(--success)}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:var(--surface-2);font-size:12px}.json{white-space:pre-wrap;font:12px ui-monospace,monospace;background:#111827;color:#d1fae5;padding:14px;border-radius:10px;overflow:auto}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{height:auto;position:static}.main{padding:18px}}
