:root{--bg:#f3f6fa;--line:#e4e9ef;--primary:#2563eb;--dark:#111827;--muted:#7b8494}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#eef2f7,#f8fafc);color:#172033;font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif}.app{min-height:100vh;display:flex}.sidebar{width:260px;flex:0 0 260px;background:var(--dark);color:#fff;padding:20px 14px;height:100vh;position:sticky;top:0;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center}.brand b,.brand small,.mini-user b,.mini-user small{display:block}.brand small,.mini-user small{font-size:.72rem;color:#9ca3af}.brand-icon{width:40px;height:40px;border-radius:12px;background:var(--primary);display:grid;place-items:center}.nav-cap{font-size:.65rem;letter-spacing:.13em;font-weight:800;color:#687386;padding:0 12px 7px}.nav-link{color:#aeb7c6;border-radius:10px;padding:10px 12px;display:flex;gap:12px;align-items:center;margin:2px 0}.nav-link:hover{background:#1f2937;color:#fff}.nav-link.active{background:var(--primary);color:#fff}.sidebar-bottom{margin-top:auto}.mini-user{display:flex;gap:10px;align-items:center;padding:10px 4px 12px}.avatar{width:38px;height:38px;border-radius:50%;background:#dbeafe;color:#1d4ed8;display:grid;place-items:center;font-weight:800}.main{flex:1;min-width:0}.topbar{height:62px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px}.content{padding:30px;max-width:1500px;margin:auto}.heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:25px}.heading h1{font-size:2rem;font-weight:800;margin:2px 0}.heading p{margin:0;color:var(--muted)}.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.14em;color:var(--primary)}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 7px 25px rgba(15,23,42,.045);overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:1rem;font-weight:800;margin:0}.panel-head p{font-size:.78rem;color:var(--muted);margin:4px 0 0}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;align-items:center;gap:13px;box-shadow:0 7px 24px rgba(15,23,42,.04)}.stat i{width:44px;height:44px;border-radius:13px;background:#eff6ff;color:var(--primary);display:grid;place-items:center}.stat small,.stat strong{display:block}.stat small{color:var(--muted);font-size:.75rem}.stat strong{font-size:1.35rem}.table-modern{margin:0}.table-modern th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#7b8494;padding:13px 16px;border-bottom:1px solid var(--line)}.table-modern td{padding:13px 16px;border-color:#eef1f4}.form-control,.form-select{border-radius:10px;border-color:#dbe1e8}.btn{border-radius:10px;font-weight:650}.btn-primary{background:var(--primary);border-color:var(--primary)}.event-card,.template-card{height:100%;padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px}.event-card h3,.template-card h3{font-size:1rem;font-weight:800;margin:10px 0 5px}.event-card p,.template-card p{font-size:.8rem;color:var(--muted)}.board-row{display:flex;gap:12px;align-items:center;padding:15px 20px;border-bottom:1px solid #eef1f4}.board-row b,.board-row span,.board-row small{display:block}.board-row span{font-size:.8rem}.board-row small{font-size:.75rem;color:var(--muted)}.finance-box{padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px}.finance-box small,.finance-box strong{display:block}.finance-box small{color:var(--muted)}.finance-box strong{font-size:1.4rem}.login-page{min-height:100vh;display:grid;place-items:center}.login-card{width:min(430px,calc(100% - 30px));background:#fff;border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:0 25px 70px rgba(15,23,42,.1)}.permission{padding:12px 0;border-bottom:1px solid var(--line)}#calendar,#eventCalendar{padding:18px}@media(max-width:991px){.sidebar{position:fixed;left:-270px;z-index:20;transition:.2s}.sidebar.open{left:0}.content{padding:20px}.heading{align-items:start;flex-direction:column}.topbar{padding:0 18px}}
