:root{--primary:#4f46e5;--secondary:#06b6d4;--dark:#111827;--light:#f8fafc;--success:#16a34a;--warning:#f59e0b;--danger:#dc2626;--muted:#64748b;--card:#ffffff}*{box-sizing:border-box}body{background:radial-gradient(circle at top left,#eef2ff 0,#ecfeff 34%,#f8fafc 100%);font-family:Inter,Arial,Helvetica,sans-serif;color:#1f2937;min-height:100vh}.app-shell{max-width:1480px}.app-nav{background:linear-gradient(90deg,var(--primary),var(--secondary));box-shadow:0 10px 30px rgba(79,70,229,.22)}.navbar-brand{letter-spacing:.2px}.login-card,.panel-card,.table-card{background:rgba(255,255,255,.96);border-radius:24px;box-shadow:0 18px 45px rgba(15,23,42,.10);border:1px solid rgba(226,232,240,.85);backdrop-filter:blur(8px);animation:fadeUp .45s ease both}.hero-title{font-size:2rem;font-weight:800;color:var(--dark)}.btn{border-radius:13px;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(15,23,42,.14)}.btn-primary{background:linear-gradient(90deg,var(--primary),var(--secondary));border:none}.btn-primary:hover{opacity:.94}.btn-soft{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe}.form-control,.form-select{border-radius:14px;border-color:#dbe4ef;padding:.72rem .9rem}.form-control:focus,.form-select:focus{border-color:#818cf8;box-shadow:0 0 0 .22rem rgba(99,102,241,.15)}.stat-card{border-radius:22px;padding:22px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 14px 34px rgba(79,70,229,.24);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-22px;top:-22px;width:95px;height:95px;border-radius:50%;background:rgba(255,255,255,.16)}.table-card{padding:20px}.table{margin-bottom:0}.table thead th{background:#f8fafc;color:#475569;font-size:.84rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e2e8f0}.table tbody tr{transition:background .15s ease,transform .15s ease}.table tbody tr:hover{background:#f8fafc}.badge{border-radius:999px;padding:.5em .78em}.badge-present{background:#dcfce7!important;color:#166534!important}.badge-absent{background:#fee2e2!important;color:#991b1b!important}.badge-pending{background:#fef3c7!important;color:#92400e!important}.badge-eligible{background:#dbeafe!important;color:#1d4ed8!important}.small-muted{font-size:.9rem;color:#6b7280}.app-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}.sidebar-col{transition:all .25s ease}.content-col{min-width:0}.sidebar-card{position:sticky;top:86px}.sidebar-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:#94a3b8;font-weight:800;margin:6px 12px 12px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;text-decoration:none;color:#374151;margin-bottom:8px;font-weight:700;white-space:nowrap;transition:all .18s ease}.sidebar-link i{font-size:1.1rem}.sidebar-link:hover,.sidebar-link.active{background:linear-gradient(90deg,#eef2ff,#ecfeff);color:#3730a3;transform:translateX(3px)}body.sidebar-collapsed .app-layout{grid-template-columns:86px minmax(0,1fr)}body.sidebar-collapsed .sidebar-card{padding-left:10px!important;padding-right:10px!important}body.sidebar-collapsed .sidebar-link span,body.sidebar-collapsed .sidebar-title{display:none}body.sidebar-collapsed .sidebar-link{justify-content:center}.quick-card{border-radius:22px;padding:20px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 12px 26px rgba(15,23,42,.08);height:100%;transition:transform .2s ease}.quick-card:hover{transform:translateY(-3px)}.icon-pill{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#eef2ff;color:#4338ca}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70px;border-radius:16px;background:#fff;text-decoration:none;color:#1f2937;border:1px solid #e5e7eb;box-shadow:0 8px 18px rgba(15,23,42,.06)}.calendar-day:hover,.calendar-day.active-date{background:#eef2ff;color:#3730a3;border-color:#4f46e5}.calendar-day span{font-weight:800;font-size:1.2rem}.calendar-day small{color:#6b7280}.attendance-status-card{border-radius:18px;padding:18px;border:1px solid #e5e7eb;background:#fff;height:100%}.present-card{background:#dcfce7;color:#166534}.absent-card{background:#fee2e2;color:#991b1b}.pending-card{background:#fef3c7;color:#92400e}.subject-box{border:1px solid #e2e8f0;border-radius:16px;padding:10px 12px;background:#f8fafc}.subject-box.mandatory{background:#eef2ff;border-color:#c7d2fe}.page-link{border-radius:10px!important;margin:0 2px;color:#4338ca}.page-item.active .page-link{background:linear-gradient(90deg,var(--primary),var(--secondary));border-color:transparent}.modal-content{border:0;border-radius:24px;box-shadow:0 24px 70px rgba(15,23,42,.22)}@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-width:992px){.app-layout{display:block}.sidebar-card{position:static}.sidebar-col{margin-bottom:18px}body.sidebar-collapsed .app-layout{display:block}body.sidebar-collapsed .sidebar-col{display:none}}@media(max-width:768px){.hero-title{font-size:1.55rem}.table-responsive{font-size:.9rem}.calendar-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:992px){body.sidebar-collapsed .row>.col-lg-3{flex:0 0 90px;max-width:90px;width:90px}body.sidebar-collapsed .row>.col-lg-9{flex:1 1 0;max-width:calc(100% - 90px);width:calc(100% - 90px)}}
