:root{--bg:#f5f7fb;--surface:#fff;--surface-2:#f8fafc;--text:#152033;--muted:#667085;--border:#e5e9f0;--primary:#2563eb;--primary-dark:#1d4ed8;--danger:#b42318;--success:#027a48;--shadow:0 18px 55px rgba(15,23,42,.08);--radius:18px;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.5}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border:0;border-radius:12px;font-weight:700;cursor:pointer;transition:.2s ease}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-secondary{background:#eef2f7;color:var(--text)}.btn-block{width:100%}.field{display:grid;gap:8px;margin-bottom:18px}.field label{font-weight:700;font-size:.92rem}.field input{width:100%;height:50px;border:1px solid var(--border);border-radius:12px;padding:0 14px;background:#fff;color:var(--text);outline:0;transition:.2s}.field input:focus{border-color:#8db3ff;box-shadow:0 0 0 4px rgba(37,99,235,.1)}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:800;color:var(--primary)}.flash{padding:12px 14px;border-radius:12px;margin-bottom:18px;font-size:.9rem}.flash-error{background:#fef3f2;color:var(--danger);border:1px solid #fecdca}.flash-success{background:#ecfdf3;color:var(--success);border:1px solid #abefc6}.flash-warning{background:#fffaeb;color:#b54708;border:1px solid #fedf89}.flash-info{background:#eff8ff;color:#175cd3;border:1px solid #b2ddff}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:1rem}.brand-mark{width:42px;height:42px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(37,99,235,.2)}.text-button{border:0;background:none;color:var(--primary);font-weight:700;cursor:pointer;padding:8px}.muted-link{font-size:.8rem;color:var(--muted);pointer-events:none}.secondary-action{text-align:center;margin-top:14px}.auth-body{min-height:100vh;background:radial-gradient(circle at top left,rgba(37,99,235,.1),transparent 34%),var(--bg);display:flex}.auth-shell{width:min(100%,560px);margin:auto;padding:28px 18px}.auth-card{background:var(--surface);border:1px solid rgba(229,233,240,.9);border-radius:24px;box-shadow:var(--shadow);padding:34px}.auth-footer{display:flex;justify-content:space-between;gap:14px;padding:16px 4px;color:var(--muted);font-size:.75rem}.auth-intro{margin:30px 0 26px}.auth-intro h1{font-size:clamp(2rem,5vw,2.7rem);line-height:1.08;margin:7px 0 10px}.auth-intro p{color:var(--muted);margin:0}.auth-form{margin-top:8px}.field-label-row{display:flex;align-items:center;justify-content:space-between}.password-wrap{position:relative}.password-wrap input{padding-right:70px}.password-toggle{position:absolute;right:7px;top:7px;height:36px;border:0;background:#f2f4f7;border-radius:9px;padding:0 10px;color:#344054;font-weight:700;cursor:pointer}.auth-note{color:var(--muted);font-size:.78rem;text-align:center;margin:18px 0 0}.tenant-list{display:grid;gap:10px}.tenant-option{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:15px;padding:14px;cursor:pointer;transition:.2s}.tenant-option:hover{border-color:#9dbcf9;background:#f8fbff}.tenant-option input{accent-color:var(--primary)}.tenant-option-body{display:grid;gap:2px;flex:1}.tenant-option-body small{color:var(--muted);font-size:.78rem}.tenant-arrow{color:var(--primary);font-weight:800}.logout-form{text-align:right;margin-top:18px}.dashboard-shell{min-height:100vh;display:flex}.sidebar{width:250px;flex:0 0 250px;background:#111827;color:#dbe3ef;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar-brand{display:flex;gap:11px;align-items:center;padding:8px 8px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand strong{display:block;color:#fff;font-size:.88rem}.sidebar-brand small{color:#9ca9bc;font-size:.72rem}.sidebar .brand-mark{width:36px;height:36px;border-radius:10px}.sidebar-nav{display:grid;gap:4px;padding-top:18px}.nav-label{font-size:.67rem;text-transform:uppercase;letter-spacing:.12em;color:#7e8ca3;font-weight:800;padding:18px 11px 7px}.nav-item{display:flex;gap:12px;align-items:center;padding:10px 11px;border-radius:10px;color:#aeb9ca;font-size:.86rem}.nav-item span:first-child{width:18px;text-align:center}.nav-item:hover,.nav-item.active{background:#1d2939;color:#fff}.main-area{min-width:0;flex:1}.topbar{min-height:76px;padding:14px 28px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.92);backdrop-filter:blur(10px);display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:5}.menu-toggle{display:none;border:1px solid var(--border);background:#fff;border-radius:10px;width:42px;height:42px;cursor:pointer}.topbar-title{flex:1}.topbar-title h1{margin:0;font-size:1.2rem}.topbar-title .eyebrow{font-size:.6rem}.topbar-actions{display:flex;align-items:center;gap:16px}.tenant-chip{font-size:.7rem;font-weight:800;background:#eef4ff;color:#175cd3;padding:7px 9px;border-radius:999px}.user-menu{display:flex;align-items:center;gap:9px}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e0eaff;color:#175cd3;font-weight:800}.user-name{font-size:.82rem;font-weight:700}.content{padding:28px;max-width:1500px;margin:0 auto}.dashboard-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;padding:20px 28px 28px}.welcome-panel{display:flex;justify-content:space-between;gap:22px;padding:26px;border-radius:20px;background:linear-gradient(135deg,#172554,#1e3a8a);color:#fff;margin-bottom:20px;box-shadow:0 18px 45px rgba(30,58,138,.18)}.welcome-panel h2{font-size:clamp(1.5rem,3vw,2.2rem);margin:4px 0 8px}.welcome-panel p{margin:0;color:#dbeafe;max-width:700px}.academic-badge{min-width:190px;align-self:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:14px}.academic-badge span,.academic-badge strong{display:block}.academic-badge span{font-size:.7rem;color:#bfdbfe}.academic-badge strong{margin-top:4px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;display:flex;gap:13px;align-items:center}.stat-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eef4ff;color:#175cd3;font-weight:800}.stat-card small{display:block;color:var(--muted);font-size:.75rem}.stat-card strong{display:block;font-size:1.5rem;line-height:1.2;margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-bottom:16px}.panel{background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-heading h3{margin:3px 0 0;font-size:1.05rem}.panel-count{background:#f2f4f7;color:#475467;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800}.event-list,.role-list{display:grid}.event-row,.role-row{display:flex;gap:12px;padding:12px 0;border-top:1px solid #eef1f5}.event-row:first-child,.role-row:first-child{border-top:0}.event-date{width:46px;height:46px;border-radius:11px;background:#f2f4f7;display:grid;place-items:center;align-content:center}.event-date strong{font-size:.95rem;line-height:1}.event-date small{font-size:.65rem;color:var(--muted);text-transform:uppercase}.event-row>div:last-child,.role-row>div{display:grid;align-content:center}.event-row strong,.role-row strong{font-size:.84rem}.event-row span,.role-row small{font-size:.73rem;color:var(--muted)}.role-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;margin:8px 3px 0}.empty-state{padding:20px 0;color:var(--muted)}.empty-state strong{color:var(--text);display:block}.empty-state p{margin:4px 0 0;font-size:.8rem}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quick-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;transition:.2s}.quick-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,23,42,.07);border-color:#c6d7fb}.quick-card span{font-size:.7rem;color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.quick-card strong{display:block;margin:7px 0 5px;font-size:.9rem}.quick-card small{display:block;color:var(--muted);font-size:.75rem}
@media(max-width:1050px){.stat-grid,.quick-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.sidebar{width:230px;flex-basis:230px}}
@media(max-width:760px){.sidebar{position:fixed;left:-270px;top:0;z-index:20;width:250px;height:100vh;transition:left .2s ease;box-shadow:20px 0 50px rgba(0,0,0,.2)}.sidebar.open{left:0}.menu-toggle{display:block}.topbar{padding:12px 16px}.user-name,.tenant-chip{display:none}.content{padding:18px 16px}.welcome-panel{display:block}.academic-badge{margin-top:18px}.stat-grid{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:1fr 1fr}.dashboard-footer{padding:16px}.auth-card{padding:26px 20px}.auth-footer{font-size:.68rem}}
@media(max-width:480px){.stat-grid,.quick-grid{grid-template-columns:1fr}.auth-shell{padding:12px}.auth-card{border-radius:18px;padding:24px 17px}.auth-footer{flex-direction:column;text-align:center}.topbar-title h1{font-size:1.05rem}.content{padding:14px}.welcome-panel{padding:20px}.panel{padding:16px}}
