@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
*{box-sizing:border-box} html,body{margin:0;padding:0;font-family:Inter,system-ui,sans-serif;background:linear-gradient(180deg,#f6f9ff 0%,#eef4ff 100%);color:#112240}
a{color:var(--primary);text-decoration:none} a:hover{text-decoration:underline}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:280px;background:linear-gradient(180deg,var(--sidebar) 0%,#111827 100%);color:#fff;padding:28px 18px;position:sticky;top:0;height:100vh}
.brand-block{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.brand-block.centered{justify-content:center}
.brand-logo,.brand-mark{width:52px;height:52px;border-radius:16px;object-fit:cover}
.brand-mark{display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:800;box-shadow:0 20px 40px rgba(36,89,255,.35)}
.brand-title{font-weight:700;font-size:1.02rem}
.brand-subtitle{font-size:.82rem;color:#c7d2fe}
.nav-stack{display:grid;gap:8px}
.nav-stack a{padding:12px 14px;border-radius:14px;color:#e5eefb;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.nav-stack a:hover{background:rgba(255,255,255,.08);text-decoration:none}
.content{flex:1;padding:28px}
.glass{background:rgba(255,255,255,.78);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.65);box-shadow:0 18px 40px rgba(31,41,55,.08)}
.topbar{display:flex;justify-content:space-between;gap:16px;padding:18px 22px;border-radius:24px;margin-bottom:22px}
.topbar h1{margin:0 0 6px;font-size:1.65rem}
.muted{color:#667085}
.user-chip{padding:10px 14px;border-radius:999px;background:#fff;border:1px solid #dbe4ff}
.top-actions{display:flex;align-items:center;gap:12px}
.grid{display:grid;gap:20px}.grid.two{grid-template-columns:1.05fr 1fr}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}
.card{background:#fff;border:1px solid #e7eefc;border-radius:24px;padding:22px;box-shadow:0 18px 40px rgba(31,41,55,.06)}
.card h3,.card h4{margin-top:0}
.stat .label{font-size:.85rem;color:#667085}.stat .value{font-size:2rem;font-weight:800;margin-top:8px;color:#111827}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 10px;border-bottom:1px solid #edf2ff;text-align:left;vertical-align:top}.table thead th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:#667085}
.table.compact th,.table.compact td{padding:9px 8px;font-size:.93rem}
.stack-form{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
label{display:grid;gap:7px;font-size:.92rem;font-weight:600;color:#344054}
input,select,textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid #d6def2;background:#fff;font:inherit;color:inherit}
textarea{min-height:96px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:14px;border:none;cursor:pointer;font-weight:700}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 16px 30px rgba(36,89,255,.25)}
.btn-outline{background:#fff;border:1px solid #d8e3ff;color:var(--primary)}
.btn-danger{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff}
.alert{padding:14px 16px;border-radius:16px;margin:0 0 18px 0}.alert.success{background:#e8fff3;color:#0f7a41;border:1px solid #b6f0d1}.alert.danger{background:#fff0f0;color:#b42318;border:1px solid #f8c6c6}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef4ff;color:var(--primary);font-size:.8rem;font-weight:700}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}
.inline-form{display:flex;align-items:center;gap:10px}.inline-form.wrap{flex-wrap:wrap}
.repeat-group{display:grid;gap:10px}
.footer{padding:22px 2px 8px;text-align:center}
.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,rgba(36,89,255,.2),transparent 30%),linear-gradient(180deg,#f5f8ff,#eef4ff)}
.login-card{width:min(520px,92vw);padding:28px;border-radius:32px}
@media (max-width: 1200px){.grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 900px){.app-shell{display:block}.sidebar{position:relative;width:auto;height:auto}.grid.two,.form-grid{grid-template-columns:1fr}.content{padding:16px}.topbar{flex-direction:column}.grid.cards{grid-template-columns:1fr}}
