@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&display=swap");:root{--green-50:#ecfdf5;--green-100:#d1fae5;--green-200:#a7f3d0;--green-300:#6ee7b7;--green-400:#34d399;--green-500:#10b981;--green-600:#059669;--green-700:#047857;--green-800:#065f46;--green-900:#064e3b;--green-950:#022c22;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--amber-400:#fbbf24;--amber-500:#f59e0b;--red-50:#fef2f2;--red-100:#fee2e2;--red-200:#fecaca;--red-300:#fca5a5;--red-400:#f87171;--red-500:#ef4444;--red-600:#dc2626;--red-700:#b91c1c;--red-800:#991b1b;--red-900:#7f1d1d;--blue-400:#60a5fa;--blue-500:#3b82f6;--primary:var(--green-600);--primary-light:var(--green-50);--primary-dark:var(--green-800);--success:var(--green-500);--warning:var(--amber-500);--danger:var(--red-500);--info:var(--blue-500);--bg:#f3f6f8;--bg-card:#ffffff;--bg-sidebar:#0f172a;--text:#142132;--text-muted:#5f6b7a;--text-on-primary:#ffffff;--border:var(--gray-200);--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow:0 1px 3px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04);--shadow-green:0 4px 14px rgba(5,150,105,0.25);--radius-sm:6px;--radius:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--transition:0.2s cubic-bezier(0.4,0,0.2,1);--transition-slow:0.4s cubic-bezier(0.4,0,0.2,1);--font-sans:"Manrope",-apple-system,BlinkMacSystemFont,sans-serif;--font-display:"Sora","Manrope",sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html[data-scroll-behavior=smooth]{scroll-behavior:smooth}html{font-size:16px}body{font-family:var(--font-sans);color:var(--text);background:radial-gradient(circle at 12% 8%,#ffffff 0,var(--bg) 42%);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){outline:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.3;color:var(--gray-900)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.1rem}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-semibold{font-weight:600}.form-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.form-input,select.form-input,textarea.form-input{display:block;width:100%;padding:.65rem .875rem;font-size:.9rem;font-family:inherit;color:var(--text);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}select.form-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");padding-right:2rem}textarea.form-input{min-height:68px;line-height:1.5}.landing-page{min-height:100dvh;display:flex;flex-direction:column;background:linear-gradient(160deg,#022c22,#064e3b 30%,#059669 70%,#34d399);position:relative;overflow:hidden}.landing-page:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}.landing-header{padding:2rem 2rem 0;display:flex;justify-content:center;position:relative;z-index:2}.university-badge{background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-full);padding:.5rem 1.5rem;color:rgba(255,255,255,.9);font-size:.85rem;font-weight:500;letter-spacing:.05em;display:flex;align-items:center;gap:.5rem}.landing-hero{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;position:relative;z-index:2}.hero-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:800;color:white;margin-bottom:.25rem;letter-spacing:-.02em}.hero-title .accent{background:linear-gradient(135deg,var(--green-300),var(--amber-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:clamp(1rem,2.5vw,1.35rem);color:rgba(255,255,255,.8);font-weight:400;margin-bottom:.5rem}.hero-desc{font-size:.95rem;color:rgba(255,255,255,.6);max-width:520px;margin-bottom:3rem}.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;max-width:680px;width:100%}.role-card{background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);padding:2.5rem 2rem;text-align:center;transition:all var(--transition);cursor:pointer;position:relative;overflow:hidden}.role-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent 50%);opacity:0;transition:opacity var(--transition)}.role-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(0,0,0,.3);border-color:rgba(255,255,255,.3)}.role-card:hover:before{opacity:1}.role-icon{width:64px;height:64px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;font-size:1.75rem;color:white}.role-icon.student{background:linear-gradient(135deg,var(--green-500),var(--green-700))}.role-icon.coordinator{background:linear-gradient(135deg,var(--amber-400),var(--amber-500))}.role-card h3{color:white;font-size:1.15rem;margin-bottom:.5rem}.role-card p{color:rgba(255,255,255,.65);font-size:.875rem}.landing-footer{text-align:center;padding:1.5rem;color:rgba(255,255,255,.4);font-size:.8rem;position:relative;z-index:2}.auth-page{align-items:stretch;background:radial-gradient(circle at 10% 15%,#ecfdf5 0,#f1f5f9 45%,#e2e8f0 100%);overflow-x:hidden}.auth-page,.auth-split{min-height:100dvh;display:flex}.auth-split{width:100%}.auth-panel-left{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;position:relative;background:linear-gradient(150deg,#0f172a,#1f2937 45%,#14532d);overflow:hidden}.auth-panel-left:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Ccircle cx='40' cy='40' r='8'/%3E%3C/g%3E%3C/svg%3E");pointer-events:none}.auth-orb-1,.auth-orb-2{display:none}@keyframes orb-float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-30px,25px) scale(1.06)}66%{transform:translate(25px,-35px) scale(.94)}}.auth-panel-content{position:relative;z-index:2;text-align:center;max-width:420px}.auth-brand-logo{width:90px;height:90px;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:2px solid rgba(255,255,255,.2);border-radius:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 2rem;font-size:2.5rem;color:white;box-shadow:0 8px 32px rgba(0,0,0,.3),0 0 30px rgba(52,211,153,.2);animation:logo-glow 3s ease-in-out infinite alternate}@keyframes logo-glow{0%{box-shadow:0 8px 32px rgba(0,0,0,.3),0 0 20px rgba(52,211,153,.15)}to{box-shadow:0 8px 32px rgba(0,0,0,.3),0 0 45px rgba(52,211,153,.4)}}.auth-panel-content h1{font-family:var(--font-display);font-size:2.75rem;font-weight:800;color:white;letter-spacing:-.03em;margin-bottom:.5rem;text-shadow:0 2px 20px rgba(0,0,0,.3)}.auth-tagline{font-size:1rem;color:rgba(255,255,255,.65);margin-bottom:.25rem}.auth-uni{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:99px;padding:.4rem 1.1rem;font-size:.75rem;color:rgba(255,255,255,.85);font-weight:500;letter-spacing:.04em;margin-top:1.25rem}.auth-features{display:flex;flex-direction:column;gap:1rem;margin-top:2.75rem;text-align:left}.auth-feature-item{display:flex;align-items:center;gap:.85rem;color:rgba(255,255,255,.75);font-size:.875rem;font-weight:500}.auth-feature-icon{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:1.05rem;flex-shrink:0}.auth-feature-icon,.auth-panel-right{display:flex;align-items:center;justify-content:center}.auth-panel-right{width:480px;padding:2.5rem;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-left:none;position:relative;z-index:2}.auth-container{width:100%;max-width:400px;margin:0 auto}.auth-card{background:rgba(255,255,255,.92);border-radius:20px;border:1px solid rgba(15,23,42,.08);box-shadow:0 16px 40px rgba(15,23,42,.14);padding:1.75rem}.auth-card-title{font-family:var(--font-display);font-size:1.7rem;font-weight:800;color:#0f172a;margin-bottom:.35rem}.auth-card-sub{font-size:.85rem;color:#64748b;margin-bottom:2rem}.auth-card .form-label{color:#334155;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.auth-card .form-input{background:#ffffff;border:1.5px solid #d8e0ea;color:#0f172a;border-radius:12px;padding:.8rem .875rem;transition:all .2s}.auth-card .form-input:focus{border-color:var(--green-600);background:#ffffff;box-shadow:0 0 0 3px rgba(5,150,105,.12)}.auth-card .form-input::placeholder{color:#94a3b8}.auth-card .btn-primary{background:linear-gradient(135deg,#059669,#047857);border-radius:12px;font-size:.95rem;letter-spacing:.02em;box-shadow:0 4px 20px rgba(5,150,105,.4);padding:.9rem}.auth-card .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 6px 28px rgba(5,150,105,.55);transform:translateY(-2px)}.auth-bottom-link{text-align:center;margin-top:1.5rem;font-size:.85rem;color:#64748b;padding-top:1.25rem;border-top:1px solid #e2e8f0}.auth-bottom-link p{margin:0 0 .7rem;color:#64748b;font-weight:600}.auth-bottom-link a,.auth-bottom-link button{color:var(--green-400);font-weight:600;background:none;border:none;cursor:pointer;font-size:inherit;text-decoration:none}.auth-bottom-link a:hover,.auth-bottom-link button:hover{color:var(--green-300);text-decoration:underline}.auth-bottom-link .auth-signup-cta{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;min-height:48px;padding:.72rem 1.05rem;border-radius:12px;background:#047857!important;border:1px solid #047857;box-shadow:0 8px 18px rgba(6,95,70,.2);color:#ffffff!important;font-size:.9rem;font-weight:700;letter-spacing:.01em;text-decoration:none!important;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.auth-bottom-link .auth-signup-cta:hover{transform:translateY(-1px);border-color:#059669;background:#059669!important;box-shadow:0 12px 24px rgba(4,120,87,.28);color:#ffffff!important}.auth-card label{color:#334155!important}.auth-bottom-link .auth-signup-cta:focus-visible{outline:2px solid rgba(74,222,128,.9);outline-offset:2px}.auth-panel-right .auth-card .form-input{background:#ffffff;border:1.5px solid #d8e0ea;color:#0f172a}.auth-panel-right .auth-card .form-input::placeholder{color:#94a3b8}.auth-forgot-link{background:none;border:none;cursor:pointer;font-size:.78rem;color:#64748b;font-weight:500;transition:color .15s}.auth-forgot-link:hover{color:var(--green-400)}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{width:56px;height:56px;background:linear-gradient(135deg,var(--green-500),var(--green-700));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.5rem;color:white}.auth-header h2{margin-bottom:.25rem;color:white}.auth-header p{color:rgba(255,255,255,.4);font-size:.875rem}@media (max-width:860px){.auth-split{flex-direction:column}.auth-panel-left{min-height:240px;flex:none;padding:2rem}.auth-panel-left .auth-features{display:none}.auth-panel-right{width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.06);min-height:auto;padding:2rem}}@media (max-width:480px){.auth-panel-left{min-height:180px;padding:1.25rem}.auth-panel-left .auth-title{font-size:1.5rem}.auth-panel-right{padding:1.25rem}.auth-card{padding:1rem}}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:600;color:var(--gray-700);margin-bottom:.375rem}.form-input{width:100%;padding:.625rem .875rem;border:1.5px solid var(--border);border-radius:10px;font-size:.9375rem;color:var(--text);background:var(--bg-card);transition:all var(--transition);outline:none;font-family:inherit}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(5,150,105,.12)}.form-input::placeholder{color:var(--gray-400)}textarea.form-input{resize:vertical;min-height:100px}select.form-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px;padding-right:2.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem 1.15rem;border-radius:99px;font-size:.85rem;font-weight:600;letter-spacing:-.01em;border:none;transition:all .15s ease;white-space:nowrap;cursor:pointer}.btn:active:not(:disabled){transform:scale(.96)}.btn-primary{background:#1d1d1f;color:#ffffff;box-shadow:0 2px 8px rgba(0,0,0,.12)}.btn-primary:hover:not(:disabled){background:#000000;transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.18)}.btn-primary:active:not(:disabled){transform:scale(.96)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-secondary{background:rgba(0,0,0,.04);color:#1d1d1f;border:1px solid rgba(0,0,0,.08)}.btn-secondary:hover{background:rgba(0,0,0,.07);border-color:rgba(0,0,0,.12)}.btn-success{background:linear-gradient(135deg,var(--green-500),var(--green-600));color:white}.btn-success:hover{opacity:.9}.btn-danger{background:linear-gradient(135deg,var(--red-400),var(--red-500));color:white}.btn-danger:hover{opacity:.9}.btn-amber{background:linear-gradient(135deg,var(--amber-400),var(--amber-500));color:white}.btn-amber:hover{opacity:.9}.btn-outline{background:transparent;border:1.5px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary-light)}.btn-lg{padding:.875rem 1.75rem;font-size:1rem;border-radius:var(--radius-lg)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-block{width:100%}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.1rem}.dashboard-layout{display:flex;min-height:100dvh;position:relative}.sidebar{width:272px;background:#142515;color:white;padding:1rem 0;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform var(--transition-slow);border-right:1px solid rgba(148,163,184,.15)}.coordinator-sidebar .sidebar-link.active{background:rgba(251,191,36,.15);color:var(--amber-400);border-left-color:var(--amber-400)}.coordinator-sidebar .sidebar-link:hover{background:rgba(251,191,36,.08)}.mobile-toggle{display:none;position:fixed;top:1rem;left:1rem;width:44px;height:44px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:40;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.mobile-toggle:hover{background:var(--gray-50)}.sidebar-overlay{background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45;opacity:0;visibility:hidden;transition:all var(--transition-slow)}.sidebar-overlay.active{opacity:1;visibility:visible}.sidebar-brand{padding:0 1rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem}.sidebar-brand-mascot-wrapper{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 3px 8px rgba(16,185,129,.35))}.sidebar-brand-mascot{width:100%;height:100%;object-fit:contain;display:block}.sidebar-brand-name{color:#ffffff;letter-spacing:-.01em;line-height:1.1}.sidebar-brand-tag{color:rgba(255,255,255,.55);letter-spacing:.06em;font-weight:600}.sidebar-brand h3{color:white;font-size:1.15rem;display:flex;align-items:center;gap:.5rem}.sidebar-brand .brand-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--green-400),var(--green-600));border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.1rem}.sidebar-nav{flex:1 1;padding:.25rem .6rem;overflow-y:auto;overflow-x:hidden;min-height:0}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);color:rgba(255,255,255,.65);font-size:.9rem;font-weight:500;transition:all var(--transition);cursor:pointer;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:rgba(255,255,255,.08);color:white}.nav-item.active{background:rgba(16,185,129,.2);color:var(--green-300)}.nav-item .nav-icon{font-size:1.15rem;width:20px;display:flex;align-items:center;justify-content:center}.sidebar-footer{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1)}.user-info{gap:.75rem}.user-avatar,.user-info{display:flex;align-items:center}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--green-400),var(--green-600));justify-content:center;font-weight:700;font-size:.85rem}.user-info .name{font-size:.875rem;font-weight:600;color:white}.user-info .role{font-size:.7rem;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em}.main-content{flex:1 1;margin-left:272px;padding:clamp(1rem,2.5vw,2rem);min-height:100dvh;background:#f5f5f7;max-width:calc(100% - 272px);transition:all var(--transition-slow)}.main-content-inner{max-width:1400px;margin:0 auto}.student-mobile-account,.student-mobile-more,.student-mobile-nav{display:none}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.dashboard-topbar{align-items:center;flex-wrap:nowrap;gap:1rem;margin-bottom:1.25rem}.dashboard-header-copy{min-width:0;flex:1 1;display:flex;align-items:center;gap:.55rem}.dashboard-greeting-copy{min-width:0}.dashboard-subtitle{margin:0;font-size:.78rem}.student-notification-wrap{position:relative;flex:0 0 auto}.student-notification-button{position:relative;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--bg);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.student-notification-button.is-open,.student-notification-button:hover{background:var(--primary-light);border-color:var(--green-300)}.student-notification-button:active{transform:scale(.96)}.topbar h1{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:var(--gray-900)}.student-greeting{display:flex;align-items:center;gap:.55rem}.student-greeting-avatar{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border-radius:50%;background:var(--green-100);color:var(--primary-dark);font-size:1rem;text-decoration:none;box-shadow:0 2px 8px rgba(15,23,42,.1);border:0;padding:0;cursor:pointer}.student-greeting-avatar img{width:100%;height:100%;object-fit:cover}.dashboard-profile-menu{position:relative;display:none;flex:0 0 auto}.dashboard-profile-menu-panel{position:absolute;top:calc(100% + .5rem);left:0;z-index:1000;display:grid;min-width:9.5rem;gap:.15rem;padding:.35rem;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 28px rgba(15,23,42,.16)}.dashboard-profile-menu-panel a,.dashboard-profile-menu-panel button{display:flex;align-items:center;gap:.55rem;min-height:2.25rem;padding:.45rem .6rem;border:0;border-radius:8px;background:transparent;color:var(--gray-700);font:inherit;font-size:.72rem;font-weight:750;text-align:left;text-decoration:none;cursor:pointer}.dashboard-profile-menu-panel a:hover{background:var(--green-50);color:var(--primary-dark)}.dashboard-profile-menu-panel button:hover{background:#fef2f2;color:var(--red-600)}.topbar-right{display:flex;align-items:center;gap:1rem}.card{background:#ffffff;border-radius:18px;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 16px rgba(0,0,0,.03);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.card:hover{box-shadow:0 8px 24px rgba(0,0,0,.05)}.card-header{padding:.95rem 1.25rem;border-bottom:.5px solid rgba(0,0,0,.06);display:flex;align-items:center;justify-content:space-between}.card-body{padding:1.15rem 1.25rem}.card-footer{padding:.85rem 1.25rem;border-top:.5px solid rgba(0,0,0,.06);background:rgba(0,0,0,.02)}.module-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:2rem}.module-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);padding:1.5rem;transition:all var(--transition);cursor:pointer;position:relative;overflow:hidden}.module-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.module-card.consent:before{background:linear-gradient(90deg,var(--green-400),var(--green-600))}.module-card.time:before{background:linear-gradient(90deg,var(--blue-400),var(--blue-500))}.module-card.attendance:before{background:linear-gradient(90deg,var(--amber-400),var(--amber-500))}.module-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px rgba(5,150,105,.12),0 4px 12px rgba(0,0,0,.05)}.module-card-icon{width:52px;height:52px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:1rem}.module-card.consent .module-card-icon{background:var(--green-100);color:var(--green-600)}.module-card.time .module-card-icon{background:#dbeafe;color:var(--blue-500)}.module-card.attendance .module-card-icon{background:#fef3c7;color:var(--amber-500)}.module-card h3{font-size:1.05rem;margin-bottom:.35rem;color:var(--gray-900)}.module-card p{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem;line-height:1.5}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);padding:1.5rem;display:flex;align-items:flex-start;gap:1rem;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.stat-card:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green-400),var(--green-600));opacity:0;transition:opacity .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card:hover:after{opacity:1}.stat-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.stat-icon.green{background:var(--green-100);color:var(--green-600)}.stat-icon.blue{background:#dbeafe;color:var(--blue-500)}.stat-icon.amber{background:#fef3c7;color:var(--amber-500)}.stat-icon.red{background:#fee2e2;color:var(--red-500)}.stat-info h4{font-size:.8rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.15rem}.stat-info .stat-value{font-size:1.5rem;font-weight:800;color:var(--gray-900);font-family:var(--font-display)}.stat-info .stat-sub{font-size:.75rem;color:var(--text-muted)}.progress-container{margin:1rem 0}.progress-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.progress-header .label{font-size:.85rem;font-weight:600;color:var(--gray-700)}.progress-header .value{font-size:.85rem;color:var(--primary);font-weight:700}.progress-track{height:12px;background:var(--gray-100);overflow:hidden}.progress-fill,.progress-track{border-radius:var(--radius-full)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--green-400),var(--green-600));transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.circular-progress{position:relative;display:inline-flex;align-items:center;justify-content:center}.circular-progress svg{transform:rotate(-90deg)}.circular-progress .track{stroke:var(--gray-100)}.circular-progress .fill{stroke:var(--primary);stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}.circular-center{position:absolute;text-align:center}.circular-center .hours{font-size:1.75rem;font-weight:800;color:var(--gray-900);font-family:var(--font-display);line-height:1}.circular-center .label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-success{background:var(--green-100);color:var(--green-700)}.badge-warning{background:#fef3c7;color:#b45309}.badge-danger{background:#fee2e2;color:#dc2626}.badge-info{background:#dbeafe;color:#2563eb}.badge-neutral{background:var(--gray-100);color:var(--gray-600)}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border);-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:650px}.data-table th{background:var(--gray-50);padding:.875rem 1rem;text-align:left;font-weight:600;font-size:.8rem;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--gray-100);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#f7fafc}.consent-page{max-width:720px;margin:0 auto}.consent-text{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;max-height:400px;overflow-y:auto;margin-bottom:1.5rem;font-size:.9rem;line-height:1.8;color:var(--gray-700)}.consent-text h4{margin:1.25rem 0 .5rem;color:var(--gray-900)}.consent-text ul{padding-left:1.5rem;margin:.5rem 0}.consent-text li{margin-bottom:.35rem}.consent-checkbox{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.5rem;padding:1rem;background:var(--green-50);border-radius:var(--radius);border:1px solid var(--green-200)}.consent-checkbox input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary);margin-top:2px;flex-shrink:0}.consent-checkbox label{font-size:.9rem;font-weight:500;color:var(--gray-700);cursor:pointer}.consent-status{border:0!important;border-bottom:1px solid var(--green-300)!important;border-radius:0!important}.consent-document,.consent-status{overflow:hidden;background:transparent!important;box-shadow:none!important}.consent-document{border:0!important;border-radius:0!important}.consent-document-header{min-height:52px;padding-left:0!important;padding-right:0!important;background:transparent!important;border-bottom:1px solid var(--border)!important}.time-tracker{text-align:center;padding:2rem}.clock-display{font-family:var(--font-display);font-size:3rem;font-weight:800;color:var(--gray-900);margin-bottom:.25rem}.clock-date{color:var(--text-muted);font-size:.9rem;margin-bottom:2rem}.time-actions{gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.time-actions,.time-btn{display:flex;justify-content:center}.time-btn{padding:1rem 2.5rem;border-radius:var(--radius-lg);font-size:1.1rem;font-weight:700;border:none;transition:all var(--transition);align-items:center;gap:.75rem;min-width:180px}.time-btn.time-in{background:linear-gradient(135deg,var(--green-500),var(--green-700));color:white;box-shadow:0 4px 15px rgba(5,150,105,.3)}.time-btn.time-in:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px rgba(5,150,105,.4)}.time-btn.time-out{background:linear-gradient(135deg,var(--red-400),var(--red-500));color:white;box-shadow:0 4px 15px rgba(239,68,68,.3)}.time-btn.time-out:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px rgba(239,68,68,.4)}.time-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.location-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);padding:1.5rem;margin-top:1.5rem}.location-map{height:220px;background:var(--gray-100);border-radius:var(--radius);margin:1rem 0;overflow:hidden;position:relative}.location-info{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.location-info .loc-item{font-size:.85rem}.location-info .loc-label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.location-info .loc-value{font-weight:600;color:var(--gray-800)}.review-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1rem;transition:all var(--transition)}.review-card:hover{box-shadow:var(--shadow-md)}.review-header{justify-content:space-between;margin-bottom:1rem}.review-header,.review-student{display:flex;align-items:center}.review-student{gap:.75rem}.review-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;padding:1rem 0;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);margin-bottom:1rem}.review-detail .detail-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.review-detail .detail-value{font-weight:600;font-size:.9rem}.review-actions{display:flex;gap:.75rem;align-items:center}.review-actions .btn{flex:1 1}.filter-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:center}.filter-bar .search-input{flex:1 1;min-width:200px;position:relative}.filter-bar .search-input input{width:100%;padding:.625rem .875rem .625rem 2.5rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9rem;outline:none;transition:all var(--transition)}.filter-bar .search-input input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(5,150,105,.12)}.filter-bar .search-input .search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted);background:var(--bg-card);border-radius:var(--radius-lg);border:1px dashed var(--border)}.empty-state .empty-icon{font-size:3.5rem;margin-bottom:1.25rem;opacity:.5;line-height:1}.empty-state h3{color:var(--gray-600);margin-bottom:.5rem;font-size:1.1rem}.empty-state p{font-size:.9rem;max-width:320px;margin:0 auto}.alert{padding:1rem 1.25rem}.alert-success{background:var(--green-50);color:var(--green-800);border:1px solid var(--green-200)}.alert-warning{background:#fffbeb;border:1px solid #fde68a}.alert-danger{background:#fef2f2;border:1px solid #fecaca}.alert-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.alert-icon{font-size:1.25rem;margin-top:1px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade{animation:fadeIn .15s ease-out}.animate-slide{animation:slideIn .2s ease-out}.animate-scale{animation:scaleIn .15s ease-out}.animate-pulse{animation:pulse 2s infinite}.skeleton-pulse{background:linear-gradient(90deg,#eef2f5 25%,#e2e8ee 50%,#eef2f5 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.skeleton-card{background:var(--bg-card);border:1px solid #e1e7ed;border-radius:var(--radius-lg);padding:1.25rem;box-shadow:0 6px 18px rgba(15,23,42,.05)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.scroll-fade-right{position:relative}.scroll-fade-right:after{content:"";position:absolute;right:0;top:0;bottom:0;width:32px;background:linear-gradient(to right,transparent,var(--bg));pointer-events:none;opacity:1;transition:opacity .2s}@media (hover:hover){.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}}.hover-lift{transition:transform .2s,box-shadow .2s}.hover-lift:active{transform:translateY(0) scale(.98)}.responsive-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.responsive-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.responsive-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.responsive-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.responsive-flex-row{display:flex;gap:1rem;flex-wrap:wrap}.responsive-flex-row>*{flex:1 1;min-width:0}.responsive-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem;animation:fadeIn .2s ease}.responsive-modal-card{width:100%;max-height:90vh;overflow:auto;border-radius:var(--radius-lg);box-shadow:0 25px 50px rgba(0,0,0,.25)}@media (max-width:1024px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.mobile-toggle{display:flex}.sidebar-overlay{display:block}.main-content{margin-left:0!important;max-width:100%!important;padding:1.5rem}.map-layout{height:100dvh;max-height:100dvh;overflow:hidden}.map-layout .main-content.map-view{height:100%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:1rem;padding-bottom:1rem}.map-view .topbar{flex-direction:column;align-items:flex-start!important}.map-view .card{overflow:hidden}.map-view .card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.topbar{padding-left:3.5rem!important}.dashboard-topbar{padding-left:0!important;margin-bottom:1rem}.responsive-grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.dashboard-layout{height:100dvh;min-height:100dvh;overflow:hidden}@media (max-width:600px){.coordinator-attendance-calendar-card{min-width:0;overflow:hidden}.coordinator-attendance-calendar-header{align-items:flex-start!important;flex-direction:column;gap:.65rem}.coordinator-attendance-calendar-header h3{font-size:.92rem}.coordinator-attendance-calendar-controls{width:100%;justify-content:space-between;gap:.35rem!important}.coordinator-attendance-calendar-controls span{min-width:0!important;flex:1 1 auto;font-size:.78rem}.coordinator-attendance-calendar-controls .btn{min-width:2.25rem;padding-inline:.55rem}.coordinator-attendance-calendar-scroll{overflow-x:hidden!important}.coordinator-attendance-calendar-grid{min-width:0!important;width:100%;gap:.25rem!important}.coordinator-attendance-calendar-days>div{min-width:0;padding:.35rem .15rem!important}.coordinator-attendance-calendar-days>div>div:first-child{font-size:.78rem!important}.coordinator-attendance-summary-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.3rem!important}.coordinator-attendance-summary-stats>div{min-width:0;padding:.35rem .15rem!important}.coordinator-attendance-summary-stats>div>div:first-child{font-size:1rem!important}.coordinator-attendance-summary-stats>div>div:last-child{font-size:.55rem!important;white-space:nowrap}.coordinator-interns-filter-card{min-width:0;padding:.7rem!important}.coordinator-interns-topbar{flex-direction:row!important;align-items:center!important;gap:.45rem!important;margin-bottom:.65rem!important}.coordinator-interns-topbar>div:first-child{min-width:0;flex:1 1 auto}.coordinator-interns-topbar>div:last-child{flex:0 0 auto}.coordinator-interns-topbar h1{font-size:1.25rem!important}.coordinator-interns-topbar .btn{padding-inline:.7rem!important}.coordinator-interns-filter-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem!important}.coordinator-interns-filter-control{width:100%!important;min-width:0!important;max-width:none!important}.coordinator-interns-search{width:100%;min-width:0!important;max-width:none!important;grid-column:1/-1}.coordinator-interns-filter-control{height:2.75rem}.coordinator-attendance-record{min-width:0;overflow:hidden}.coordinator-attendance-record-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:start!important;gap:.5rem!important}.coordinator-attendance-record-main{min-width:0}.coordinator-attendance-record-main>div{overflow-wrap:anywhere}.coordinator-attendance-record-meta{min-width:0;white-space:nowrap}.coordinator-attendance-record-meta>div:nth-child(2){flex-wrap:wrap}.coordinator-attendance-record-eye{grid-column:3;grid-row:1}.coordinator-attendance-record-missing .coordinator-attendance-record-meta,.coordinator-attendance-record-submitted .coordinator-attendance-record-meta{grid-column:2/-1;display:flex;align-items:center;justify-content:space-between;gap:.5rem;text-align:left!important}.coordinator-attendance-record-meta>div{flex-shrink:0}}@media (min-width:500px) and (max-width:768px){.coordinator-interns-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.35rem!important}.coordinator-interns-stats .stat-card{min-width:0;min-height:72px;padding:.55rem .45rem!important;gap:.25rem!important}.coordinator-interns-stats .stat-icon{width:24px!important;height:24px!important;font-size:.8rem!important}.coordinator-interns-stats .stat-info h4{overflow:hidden;font-size:.58rem!important;text-overflow:ellipsis;white-space:nowrap}.coordinator-interns-stats .stat-value{font-size:1.15rem!important}.coordinator-interns-filter-row{grid-template-columns:minmax(0,1fr) repeat(4,minmax(0,auto))}.coordinator-interns-search{grid-column:1/-1}.coordinator-interns-filter-control{min-width:0!important;font-size:.72rem!important}}.sidebar{transform:translateX(-100%);width:min(292px,86vw)}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0!important;padding:4.25rem 1rem 1rem!important;height:calc(100dvh - 5.5rem - env(safe-area-inset-bottom));min-height:0!important;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-toggle{display:flex!important}.mobile-toggle-student{display:none!important}.main-content{padding-bottom:2rem!important;padding-top:3.5rem!important}.attendance-page{padding-left:.75rem!important;padding-right:.75rem!important}.attendance-page .topbar{margin-bottom:.65rem;gap:.4rem}.attendance-page .topbar h1{font-size:1.15rem;line-height:1.2}.attendance-page .topbar p{font-size:.72rem;line-height:1.35}.attendance-page>.alert,.attendance-page>.card{margin-bottom:.6rem!important;border-radius:14px}.attendance-page .card-header{min-height:0;padding:.7rem .85rem!important}.attendance-page .card-header h3{font-size:.95rem}.attendance-page .card-body{padding:.8rem .85rem!important}.attendance-page .responsive-grid-2,.attendance-page .responsive-grid-3{gap:.55rem!important}.attendance-page .form-group{margin-bottom:.75rem}.attendance-page .form-label{margin-bottom:.25rem;font-size:.68rem}.attendance-page .form-input{padding:.55rem .7rem;font-size:.82rem;border-radius:9px}.attendance-page textarea.form-input{min-height:58px}.attendance-page .btn-lg{padding:.7rem 1rem;font-size:.88rem}.attendance-page .card-body>.responsive-grid-3[style]{margin-top:.65rem!important}.dashboard-layout:has(.coordinator-sidebar),.dashboard-layout:has(.sidebar-admin){height:auto;min-height:100dvh;overflow:visible}.dashboard-layout:has(.coordinator-sidebar) .main-content,.dashboard-layout:has(.sidebar-admin) .main-content{height:auto;min-height:100dvh!important;overflow:visible;padding:4.25rem .85rem 1.5rem!important;background:#f5f5f7}.dashboard-layout:has(.coordinator-sidebar) .topbar,.dashboard-layout:has(.sidebar-admin) .topbar{padding-left:0!important;margin-bottom:.9rem;gap:.65rem;align-items:center}.dashboard-layout:has(.coordinator-sidebar) .topbar h1,.dashboard-layout:has(.sidebar-admin) .topbar h1{font-size:1.45rem!important;line-height:1.25}.dashboard-layout:has(.coordinator-sidebar) .topbar p,.dashboard-layout:has(.sidebar-admin) .topbar p{font-size:.88rem!important;line-height:1.4}.dashboard-layout:has(.coordinator-sidebar) .card,.dashboard-layout:has(.coordinator-sidebar) .stat-card,.dashboard-layout:has(.sidebar-admin) .card,.dashboard-layout:has(.sidebar-admin) .stat-card{border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}.dashboard-layout:has(.coordinator-sidebar) .card-header,.dashboard-layout:has(.sidebar-admin) .card-header{padding:.8rem .9rem!important}.dashboard-layout:has(.coordinator-sidebar) .card-header h3,.dashboard-layout:has(.sidebar-admin) .card-header h3{font-size:1.05rem}.dashboard-layout:has(.coordinator-sidebar) .card-body,.dashboard-layout:has(.sidebar-admin) .card-body{padding:.85rem .9rem!important}.dashboard-layout:has(.coordinator-sidebar) .stats-grid,.dashboard-layout:has(.sidebar-admin) .stats-grid{gap:.6rem;margin-bottom:.75rem}.dashboard-layout:has(.coordinator-sidebar) .stat-card,.dashboard-layout:has(.sidebar-admin) .stat-card{padding:.85rem!important;min-width:0}.dashboard-layout:has(.coordinator-sidebar) .stat-info h4,.dashboard-layout:has(.sidebar-admin) .stat-info h4{font-size:.82rem}.dashboard-layout:has(.coordinator-sidebar) .stat-info .stat-value,.dashboard-layout:has(.sidebar-admin) .stat-info .stat-value{font-size:1.65rem}.dashboard-layout:has(.coordinator-sidebar) .btn,.dashboard-layout:has(.coordinator-sidebar) .form-input,.dashboard-layout:has(.sidebar-admin) .btn,.dashboard-layout:has(.sidebar-admin) .form-input{min-height:48px;font-size:.95rem}.dashboard-layout:has(.coordinator-sidebar) .card-body[style*=overflowX],.dashboard-layout:has(.coordinator-sidebar) .table-container,.dashboard-layout:has(.sidebar-admin) .card-body[style*=overflowX],.dashboard-layout:has(.sidebar-admin) .table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.dashboard-layout:has(.coordinator-sidebar) .mobile-toggle,.dashboard-layout:has(.sidebar-admin) .mobile-toggle{top:.75rem;left:.75rem;width:42px;height:42px;border-radius:12px;background:#ffffff;border-color:rgba(15,23,42,.08);box-shadow:0 4px 14px rgba(15,23,42,.1)}.dashboard-layout:has(.coordinator-sidebar) .portal-header,.dashboard-layout:has(.sidebar-admin) .portal-header{display:flex;position:fixed;inset:0 0 auto;height:calc(64px + env(safe-area-inset-top, 0px));z-index:90;padding:env(safe-area-inset-top,0) 1rem 0}.dashboard-layout:has(.coordinator-sidebar) .portal-header-title,.dashboard-layout:has(.sidebar-admin) .portal-header-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.15rem;font-weight:800}.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions,.dashboard-layout:has(.sidebar-admin) .portal-header-actions{gap:.65rem}.dashboard-layout:has(.coordinator-sidebar) .portal-header-user,.dashboard-layout:has(.sidebar-admin) .portal-header-user{width:42px;height:42px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center}.dashboard-layout:has(.coordinator-sidebar) .mobile-toggle,.dashboard-layout:has(.sidebar-admin) .mobile-toggle{display:none!important}.dashboard-layout:has(.coordinator-sidebar) .sidebar-footer,.dashboard-layout:has(.sidebar-admin) .sidebar-footer{display:none}.student-mobile-account{position:fixed;top:.6rem;right:.75rem;z-index:1100;display:flex;align-items:center;gap:.3rem;padding:0}.student-mobile-account-trigger{display:inline-flex;align-items:center;gap:.35rem;width:2.35rem;height:2.35rem;justify-content:center;padding:.25rem;border:0;border-radius:50%;background:transparent;color:var(--gray-700);font:inherit;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 5px 14px rgba(15,23,42,.1)}.student-mobile-account-trigger:hover,.student-mobile-account-trigger[aria-expanded=true]{background:var(--green-100);color:var(--primary-dark)}.student-mobile-account-menu{position:absolute;top:calc(100% + .45rem);right:0;display:grid;min-width:9.5rem;gap:.15rem;padding:.35rem;background:rgba(255,255,255,.96);border:1px solid rgba(203,213,225,.8);border-radius:12px;box-shadow:0 12px 28px rgba(15,23,42,.16);animation:mobileMoreIn .18s ease-out both}.student-mobile-account-menu a,.student-mobile-account-menu button{display:flex;align-items:center;gap:.55rem;min-height:2.25rem;padding:.45rem .6rem;border:0;border-radius:8px;background:transparent;color:var(--gray-700);font:inherit;font-size:.72rem;font-weight:750;text-align:left;text-decoration:none;cursor:pointer}.student-mobile-account-menu a:hover{background:var(--green-50);color:var(--primary-dark)}.student-mobile-account-menu button:hover{background:#fef2f2;color:var(--red-600)}.student-mobile-account-menu svg{flex-shrink:0;font-size:1rem}.student-mobile-account-avatar{width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;background:var(--green-100);color:var(--primary-dark)}.student-mobile-account-avatar img{width:100%;height:100%;object-fit:cover}.student-mobile-nav{position:fixed;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:1100;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.15rem;padding:.3rem;background:#ffffff;border:1px solid rgba(255,255,255,.78);border-radius:16px;box-shadow:0 12px 30px rgba(15,23,42,.14),inset 0 1px 0 rgba(255,255,255,.8);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);transition:left .25s ease,right .25s ease,width .25s ease,grid-template-columns .25s ease}.student-mobile-nav-item{flex-direction:column;background:transparent;color:var(--gray-500);text-decoration:none;transition:color .2s ease,background .2s ease,transform .2s ease}.student-mobile-nav-expand,.student-mobile-nav-item{min-width:0;min-height:2.85rem;display:flex;align-items:center;justify-content:center;gap:.2rem;border:0;border-radius:11px;font:inherit;font-size:.62rem;font-weight:700;cursor:pointer}.student-mobile-nav-expand{flex:1 1;flex-direction:column;background:rgba(5,150,105,.14);color:var(--primary-dark)}.student-mobile-nav-expand svg{font-size:1.2rem}.student-mobile-nav.is-collapsed{left:.75rem;right:auto;width:4rem;grid-template-columns:1fr}.student-mobile-nav.is-collapsed .student-mobile-nav-item{display:none}.student-mobile-nav-item svg{font-size:1.2rem}.student-mobile-nav-item.active{background:rgba(5,150,105,.14);color:var(--primary-dark);box-shadow:inset 0 0 0 1px rgba(5,150,105,.12)}.student-mobile-nav-item:active{transform:scale(.94)}.student-mobile-more{position:fixed;right:.75rem;bottom:calc(4.9rem + env(safe-area-inset-bottom));z-index:1099;display:grid;min-width:10.5rem;padding:.4rem;gap:.15rem;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.85);border-radius:14px;box-shadow:0 14px 34px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.85);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);animation:mobileMoreIn .2s ease-out both}.student-mobile-more-item{display:flex;align-items:center;gap:.65rem;min-height:2.5rem;padding:.5rem .65rem;border:0;border-radius:9px;background:transparent;color:var(--gray-700);font:inherit;font-size:.75rem;font-weight:700;text-align:left;text-decoration:none;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.student-mobile-more-item.active,.student-mobile-more-item:hover{background:var(--green-50);color:var(--primary-dark)}.student-mobile-more-item svg{flex-shrink:0;font-size:1.05rem}.student-mobile-more-item:active{transform:scale(.97)}@keyframes mobileMoreIn{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.student-mobile-more,.student-mobile-more-item,.student-mobile-nav-item{animation:none!important;transition:none!important}}.mobile-chat-fab,.mobile-quick-fab{display:none!important}.topbar h1{font-size:1.1rem}.role-cards{max-width:360px}.module-cards,.role-cards{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.time-actions{flex-direction:column;align-items:center}.time-btn{width:100%;max-width:260px}.filter-bar{flex-direction:column}.card-body,.card-header{padding:1rem}.topbar{margin-bottom:1.25rem}.review-details{grid-template-columns:1fr 1fr}.location-info{grid-template-columns:1fr}.auth-card{padding:1.5rem}.consent-page{max-width:none}.consent-status .card-body{align-items:flex-start!important;padding:1rem 0!important;gap:.75rem!important}.consent-status .card-body>div:first-child{font-size:1.75rem!important;line-height:1}.consent-status h3{font-size:1rem}.consent-status p{font-size:.78rem!important;line-height:1.45}.consent-status button{padding:8px 12px!important;font-size:.76rem!important}.consent-document-header{padding:.85rem 0!important;font-size:.78rem}.consent-text{max-height:none;overflow:visible;border:0;border-radius:0;padding:1rem 0!important;margin-bottom:0;font-size:.86rem;line-height:1.65!important}.consent-text h3{margin-bottom:1.25rem!important;font-size:1rem!important}.consent-text h4{margin-top:1.5rem!important;margin-bottom:.65rem!important;font-size:.95rem}.consent-text p{text-indent:0!important;text-align:left!important}.consent-text ul{padding-left:1.25rem!important}.consent-checkbox{padding:.85rem;gap:.6rem}.consent-checkbox label{font-size:.8rem;line-height:1.45}.official-progress .card-body,.official-progress-body{flex-direction:column!important;align-items:center!important;padding:1.25rem 1rem!important;gap:1.25rem!important}.official-progress .circular-progress{margin:0 auto!important}.official-progress .circular-progress svg{width:120px;height:120px}.official-progress-stats{width:100%!important;min-width:0!important}.official-progress .stats-grid,.official-stats-grid{width:100%!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.6rem!important;margin-bottom:0!important}.official-progress .stat-card,.official-stat-card{min-width:0!important;padding:.75rem .4rem!important;text-align:center!important;border-radius:12px!important;background:#f8fafc!important;border:1px solid var(--border)!important}.official-progress .stat-info,.official-stat-card .stat-info{text-align:center!important;width:100%!important}.official-progress .stat-info h4,.official-stat-card .stat-info h4{font-size:.7rem!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.03em!important;color:var(--text-muted)!important;margin:0 0 .25rem!important;white-space:nowrap!important;overflow:visible!important}.official-progress .stat-value,.official-stat-card .stat-value{font-size:1.15rem!important;font-weight:800!important;line-height:1.2!important}.official-schedule .card-body{padding:1rem!important}.official-schedule-header{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:.75rem!important;padding:1rem!important}.official-schedule-title-row{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-width:0!important;gap:.5rem!important}.official-schedule-header h3{font-size:1rem!important;font-weight:700!important;margin:0!important}.official-schedule-header>button{width:100%!important;justify-content:center!important;padding:.6rem 1rem!important;font-size:.85rem!important;font-weight:600!important;border-radius:10px!important}.official-hte{padding:.8rem!important;gap:.65rem!important}.official-hte>div>div:first-child{font-size:.95rem!important}.official-day-row{align-items:flex-start!important;flex-wrap:wrap;gap:.45rem!important}.official-day-row>span:first-child{width:100%!important}.official-day-row>div{width:100%}.responsive-grid-2,.responsive-grid-3,.responsive-grid-4{grid-template-columns:1fr}.responsive-flex-row{flex-direction:column}.responsive-flex-row>*{flex:none;width:100%}.responsive-calendar-grid{font-size:.75rem}.responsive-modal-overlay{padding:.5rem;align-items:flex-end}.responsive-modal-card{max-height:95vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.clock-display{font-size:2.25rem}.circular-center .hours{font-size:1.35rem}.map-layout{height:100dvh;max-height:100dvh;overflow:hidden}.map-layout .main-content.map-view{height:100%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:.75rem;padding-bottom:.75rem}.map-view .topbar{flex-direction:column;align-items:flex-start!important}.map-view .card{overflow:hidden}.map-view .card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:640px){.main-content{margin-left:0!important;max-width:100%!important;padding:.85rem 1rem calc(88px + env(safe-area-inset-bottom))!important}.topbar{padding-left:0!important;flex-direction:column!important;align-items:stretch!important;flex-wrap:wrap!important;gap:.75rem;margin-bottom:1rem!important}.topbar h1{font-size:1.35rem!important;font-weight:800!important;letter-spacing:-.02em;color:#1d1d1f;min-width:0;overflow-wrap:anywhere}.dashboard-topbar{padding-left:0!important;gap:.6rem}.dashboard-header-copy{padding-right:.25rem}.student-greeting{gap:.45rem}.student-greeting-avatar{width:2rem;height:2rem}.dashboard-topbar .student-greeting{font-size:1.15rem!important}.dashboard-subtitle{font-size:.72rem;color:#86868b}.student-notification-wrap{margin-right:0}.dashboard-profile-menu{display:inline-flex}.dashboard-profile-menu-panel{right:0;left:auto}.student-notification-button{width:2.65rem;height:2.65rem;border-radius:10px}.topbar-right{width:auto;justify-content:flex-end;flex-shrink:0}.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:.55rem!important;margin-bottom:.85rem!important}.stat-card{padding:.8rem .85rem!important;border-radius:16px!important;min-height:88px;display:flex!important;flex-direction:column!important;justify-content:space-between!important;gap:.45rem!important;background:#ffffff!important;border:1px solid rgba(0,0,0,.06)!important;box-shadow:0 2px 10px rgba(0,0,0,.03)!important;transition:transform .12s ease!important}.stat-card:active{transform:scale(.97)!important}.stat-card .stat-icon{width:28px!important;height:28px!important;border-radius:8px!important;font-size:.95rem!important}.stat-card .stat-info{min-width:0}.stat-card .stat-info h4{font-size:.68rem!important;font-weight:600!important;color:#86868b!important;margin-bottom:2px!important}.stat-card .stat-value{font-size:1.35rem!important;font-weight:800!important;color:#1d1d1f!important;line-height:1.1!important;letter-spacing:-.02em!important}.card-body,.card-footer,.card-header{padding:.85rem 1rem!important}.card{border-radius:16px!important;border:1px solid rgba(0,0,0,.06)!important}.filter-bar{gap:.45rem!important;margin-bottom:.75rem!important;flex-direction:column!important;align-items:stretch!important}.filter-bar .search-input{width:100%!important;min-width:100%!important}.filter-bar input,.filter-bar select{font-size:.82rem!important;border-radius:12px!important;background:rgba(0,0,0,.04)!important;border:1px solid rgba(0,0,0,.08)!important}.data-table{font-size:.78rem}.table-container{border-radius:14px;border:1px solid rgba(0,0,0,.06);background:#ffffff;box-shadow:0 2px 10px rgba(0,0,0,.03);margin-left:0;margin-right:0;padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.consent-text{padding:1rem 0!important;max-height:none;overflow:visible}}@media (max-width:480px){.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:.5rem!important}h1{font-size:1.35rem}.card,.card-body,.card-footer,.card-header{padding:.85rem!important}.btn{font-size:.8rem;padding:.45rem .85rem;border-radius:99px}.mobile-toggle{top:.75rem;left:.75rem;width:40px;height:40px}.responsive-calendar-grid{font-size:.7rem;gap:1px}.time-btn{padding:.75rem 1.5rem;font-size:.95rem;min-width:150px}.empty-state{padding:2.5rem 1.5rem}.empty-state .empty-icon{font-size:2.5rem}.clock-display{font-size:2rem}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.w-full{width:100%}.text-center{text-align:center}.text-right{text-align:right}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:99}.sidebar-overlay.active{display:block}.leaflet-container{width:100%;height:100%;border-radius:var(--radius);z-index:0;position:relative}.geo-status{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600}.geo-status.verified{background:var(--green-100);color:var(--green-700)}.geo-status.pending{background:#fef3c7;color:#b45309}.geo-status.error{background:#fee2e2;color:#dc2626}.geo-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}.geo-status.verified .geo-dot{background:var(--green-500)}.geo-status.pending .geo-dot{background:var(--amber-500)}.geo-status.error .geo-dot{background:var(--red-500)}.alert{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:var(--radius);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.alert-icon{font-size:1.15rem;flex-shrink:0;margin-top:.1rem}.alert-warning{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);color:#92400e}.alert-danger{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.2);color:#991b1b}.alert-success{background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);color:#065f46}.sidebar-brand-name{font-family:var(--font-display);font-size:1.15rem;font-weight:800;color:white}.sidebar-brand-tag{font-size:.7rem;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em}.sidebar-link{display:flex;align-items:center;gap:.7rem;padding:.72rem .85rem;margin:.15rem 0;border-radius:var(--radius);color:rgba(255,255,255,.7);font-size:.86rem;font-weight:500;transition:all var(--transition);cursor:pointer;text-decoration:none;position:relative;border-left:3px solid transparent}.sidebar-link:hover{background:rgba(255,255,255,.08);color:white}.sidebar-link.active{background:rgba(16,185,129,.14);color:var(--green-300);font-weight:600;border-left-color:var(--green-400)}.sidebar-user{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.sidebar-user-link{padding:.5rem;border-radius:var(--radius);transition:background var(--transition)}.sidebar-user-link:hover{background:rgba(255,255,255,.06)}.sidebar-signout{width:100%;text-align:left;background:transparent;border:none;color:var(--red-400)}.sidebar-brand-icon{font-size:1.75rem;color:var(--green-400)}.mobile-toggle-admin,.sidebar-admin .sidebar-brand-icon{color:var(--blue-400)}.sidebar-avatar-admin{background:linear-gradient(135deg,#3b82f6,#2563eb)}.sidebar-avatar-coordinator{background:linear-gradient(135deg,var(--amber-400),var(--amber-500))}.sidebar-avatar,.sidebar-avatar-student{background:linear-gradient(135deg,var(--green-400),var(--green-600))}.sidebar-avatar{width:36px;height:36px;border-radius:50%!important;overflow:hidden!important;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;color:white;flex-shrink:0}.sidebar-user-info{overflow:hidden}.sidebar-user-name{font-size:.875rem;font-weight:600;color:white;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:.7rem;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em}.input{width:100%;padding:.625rem .875rem;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9375rem;color:var(--text);background:var(--bg-card);transition:all var(--transition);outline:none;font-family:inherit}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(5,150,105,.12)}.card{padding:1.5rem}.card:has(.card-body){padding:0}.card:has(.card-header){padding:0}.spinner{width:44px;height:44px;border:3px solid var(--green-100);border-top-color:var(--primary);border-radius:50%;animation:spin .7s cubic-bezier(.5,0,.5,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}:root{--color-primary:var(--primary);--color-accent:var(--green-400);--color-success:var(--green-600);--color-error:var(--red-500);--color-bg:var(--bg);--color-text-dim:var(--text-muted)}.toast-container{position:fixed;top:1.25rem;right:1.25rem;z-index:9999;display:flex;flex-direction:column;gap:.6rem;pointer-events:none;max-width:400px}.toast-item{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.1rem;border-radius:12px;background:white;box-shadow:0 12px 32px -6px rgba(0,0,0,.16),0 4px 10px rgba(0,0,0,.05);font-size:.88rem;font-weight:600;color:#1f2937;width:min(400px,calc(100vw - 2rem));transform-origin:top right;transition:all .25s cubic-bezier(.175,.885,.32,1.275);border:1px solid rgba(0,0,0,.06);pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none}.toast-item:hover{box-shadow:0 14px 36px -4px rgba(0,0,0,.22),0 6px 14px rgba(0,0,0,.08)}.toast-enter{animation:toastIn .35s cubic-bezier(.175,.885,.32,1.275) forwards}.toast-exit{animation:toastOut .25s cubic-bezier(.55,.085,.68,.53) forwards}@keyframes toastIn{0%{opacity:0;transform:translateX(40px) scale(.92)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateX(0) scale(1)}to{opacity:0;transform:translateX(40px) scale(.92)}}.toast-success{border-left:4px solid #10b981}.toast-error{border-left:4px solid #ef4444}.toast-warning{border-left:4px solid #f59e0b}.toast-info{border-left:4px solid #3b82f6}.toast-icon{font-size:1.15rem;display:inline-flex;flex:0 0 auto}.toast-msg{line-height:1.35;flex:1 1;word-break:break-word}.toast-close-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:.25rem;border-radius:6px;flex:0 0 auto;transition:all .15s ease}.toast-close-btn:hover{background:#f1f5f9;color:#475569}.announcement-engagement{margin-top:1rem;border-top:1px solid #e2e8f0;padding-top:.75rem}.announcement-engagement-bar{display:flex;align-items:center;gap:1rem;color:#64748b;font-size:.76rem}.announcement-reply-count,.announcement-view-count{display:inline-flex;align-items:center;gap:.3rem}.announcement-view-count{border:none;background:transparent;color:#2563eb;cursor:pointer;padding:.2rem 0;font:inherit;font-weight:700}.announcement-view-count:hover{color:#1d4ed8;text-decoration:underline}.announcement-replies{display:grid;gap:.65rem;max-height:220px;overflow-y:auto;margin-top:.75rem}.announcement-reply,.announcement-viewer{display:flex;align-items:flex-start;gap:.6rem}.announcement-reply-avatar{width:30px;height:30px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;border-radius:50%;background:#e0f2fe;color:#0369a1;font-size:.72rem;font-weight:800}.announcement-reply-avatar img{width:100%;height:100%;object-fit:cover}.announcement-reply-content{min-width:0;flex:1 1;padding:.45rem .65rem;border-radius:10px;background:#f8fafc}.announcement-reply-meta,.announcement-viewer div:last-child{display:flex;align-items:center;gap:.45rem;color:#64748b;font-size:.68rem}.announcement-reply-meta strong,.announcement-viewer strong{color:#1e293b;font-size:.75rem}.announcement-reply-content p{margin:.15rem 0 0;color:#334155;font-size:.78rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.announcement-empty{padding:.6rem 0;color:#94a3b8;font-size:.75rem}.announcement-reply-form{display:flex;gap:.45rem;margin-top:.7rem}.announcement-reply-form input{min-width:0;flex:1 1;padding:.55rem .7rem;border:1px solid #dbe3ec;border-radius:9px;outline:none;color:#1e293b;font:inherit;font-size:.78rem}.announcement-reply-form input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.14)}.announcement-reply-form button{width:34px;border:none;border-radius:9px;background:#2563eb;color:white;cursor:pointer}.announcement-reply-form button:disabled{cursor:not-allowed;opacity:.45}.announcement-viewers-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(15,23,42,.45)}.announcement-viewers-modal{width:min(390px,100%);max-height:70vh;overflow:hidden;border-radius:16px;background:white;box-shadow:0 20px 60px rgba(15,23,42,.2)}.announcement-viewers-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid #e2e8f0;color:#1e293b}.announcement-viewers-header button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#64748b;cursor:pointer}.announcement-viewers-list{display:grid;gap:.8rem;max-height:calc(70vh - 60px);overflow-y:auto;padding:1rem}@media (max-width:640px){.toast-container{top:.75rem!important;right:.75rem!important;left:auto!important;max-width:min(340px,calc(100vw - 1.5rem))!important;align-items:flex-end;pointer-events:none!important}.toast-item{width:auto;max-width:min(340px,calc(100vw - 1.5rem));padding:.65rem .85rem;font-size:.82rem;border-radius:10px;box-shadow:0 8px 24px -4px rgba(0,0,0,.2),0 2px 6px rgba(0,0,0,.08)}}.global-loading-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--green-50) 0,var(--bg) 100%);z-index:9999;gap:1.5rem}.spinner-ring{width:52px;height:52px;border:3px solid var(--green-100);border-top-color:var(--green-600);border-radius:50%;animation:spin .8s cubic-bezier(.5,0,.5,1) infinite}.loading-text{font-family:var(--font-display);font-weight:700;color:var(--green-800);font-size:1rem;letter-spacing:.08em;text-transform:uppercase;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);border-width:0}.sr-only,.truncate{overflow:hidden;white-space:nowrap}.truncate{text-overflow:ellipsis}.line-clamp-2{line-clamp:2;-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{line-clamp:3;-webkit-line-clamp:3}.at-backdrop{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.18);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:atFadeIn .2s ease}.at-fab{position:fixed;z-index:10000;width:52px;height:52px;border-radius:50%;border:2px solid rgba(255,255,255,.6);background:var(--at-accent,var(--primary));box-shadow:0 4px 20px rgba(0,0,0,.2),0 0 0 0 rgba(99,102,241,.3);cursor:grab;padding:0;display:flex;align-items:center;justify-content:center;transition:opacity .4s ease,transform .2s ease,box-shadow .2s ease;touch-action:none;-webkit-user-select:none;user-select:none}.at-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px rgba(0,0,0,.25),0 0 0 6px rgba(99,102,241,.12)}.at-fab-dragging,.at-fab:active{cursor:grabbing;transform:scale(1.12)}.at-fab-open{background:var(--red-500,#ef4444);border-color:rgba(255,255,255,.7)}.at-fab-idle{opacity:.35}.at-fab-idle:hover{opacity:1}.at-fab-inner{display:flex;align-items:center;justify-content:center;color:#fff;animation:atFadeIn .15s ease}.at-menu{position:fixed;z-index:9999;width:240px;background:var(--bg,#fff);border-radius:16px;border:1px solid var(--border,#e2e8f0);box-shadow:0 12px 40px rgba(0,0,0,.15),0 4px 12px rgba(0,0,0,.08);animation:atSlideUp .25s cubic-bezier(.16,1,.3,1);overflow:hidden}.at-menu-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem .5rem;border-bottom:1px solid var(--border,#e2e8f0)}.at-menu-title{font-size:.8rem;font-weight:800;color:var(--text,#1e293b);letter-spacing:.02em;text-transform:uppercase}.at-menu-close{width:28px;height:28px;border-radius:8px;border:none;background:var(--bg-hover,#f1f5f9);color:var(--text-muted,#64748b);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.at-menu-close:hover{background:var(--red-50,#fef2f2);color:var(--red-500,#ef4444)}.at-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:.6rem}.at-menu-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:.55rem .25rem;border-radius:12px;border:none;background:transparent;cursor:pointer;transition:background .15s,transform .15s}.at-menu-item:hover{background:var(--bg-hover,#f1f5f9);transform:scale(1.05)}.at-menu-item:active{transform:scale(.95)}.at-menu-item.at-active{background:var(--bg-hover,#f1f5f9)}.at-menu-item.at-active .at-item-icon{box-shadow:0 0 0 2px var(--primary,#6366f1)}.at-item-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:transform .15s}.at-item-label{font-size:.62rem;font-weight:700;color:var(--text,#1e293b);text-align:center;line-height:1.2;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes atFadeIn{0%{opacity:0}to{opacity:1}}@keyframes atSlideUp{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:600px){.at-menu{width:210px}.at-fab{width:46px;height:46px}.at-item-icon{width:36px;height:36px}}@media print{.at-backdrop,.at-fab,.at-menu,.chatbot-fab,.chatbot-window{display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;position:absolute!important;clip:rect(0,0,0,0)!important}}.portal-header,.portal-mobile-dock,.portal-mobile-more,.portal-mobile-nav{display:none}@media (min-width:1025px){.dashboard-layout:has(.coordinator-sidebar),.dashboard-layout:has(.sidebar-admin){background:#f5f6f4}.dashboard-layout:has(.coordinator-sidebar) .sidebar,.dashboard-layout:has(.sidebar-admin) .sidebar{width:274px;padding:1rem 0 0;background:#142515;border-right:1px solid rgba(255,255,255,.06)}.dashboard-layout:has(.coordinator-sidebar) .main-content,.dashboard-layout:has(.sidebar-admin) .main-content{margin-left:274px;max-width:calc(100% - 274px);min-height:100dvh;padding:5.75rem 1.5rem 2.25rem;background:#f5f6f4}.dashboard-layout:has(.sidebar.is-collapsed) .sidebar{transform:translateX(-100%)}.dashboard-layout:has(.sidebar.is-collapsed) .portal-header{left:0}.dashboard-layout:has(.sidebar.is-collapsed) .main-content{margin-left:0;max-width:100%}.dashboard-layout:has(.coordinator-sidebar) .main-content-inner,.dashboard-layout:has(.sidebar-admin) .main-content-inner{max-width:none}.dashboard-layout:has(.coordinator-sidebar) .dashboard-notification-anchor,.dashboard-layout:has(.sidebar-admin) .dashboard-notification-anchor{position:relative!important;top:auto!important;right:auto!important;z-index:auto!important}.portal-header{position:fixed;top:0;right:0;left:274px;z-index:90;height:62px;display:flex;align-items:center;gap:.75rem;padding:0 1.75rem;background:rgba(255,255,255,.82);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.07);transition:left .25s ease}.dashboard-layout:not(:has(.sidebar.is-collapsed)) .portal-header .portal-header-logo,.dashboard-layout:not(:has(.sidebar.is-collapsed)) .portal-header .portal-header-title{display:none!important}.dashboard-layout:has(.sidebar.is-collapsed) .portal-header .portal-header-logo{display:block!important;width:28px;height:28px;object-fit:contain}.dashboard-layout:has(.sidebar.is-collapsed) .portal-header .portal-header-title{display:block!important;color:#1d1d1f;font-size:.86rem;font-weight:700;letter-spacing:-.01em}.portal-header-menu,.portal-header-signout{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.08);border-radius:9px;background:rgba(0,0,0,.03);color:#1d1d1f;cursor:pointer;transition:all .15s ease}.portal-header-menu:hover,.portal-header-signout:hover{background:rgba(0,0,0,.07);color:#000}.portal-header-user{cursor:pointer;text-decoration:none;transition:opacity .15s ease;display:flex;align-items:center;gap:.5rem;padding:.3rem .65rem;border-radius:99px;background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.06);color:#1d1d1f;font-size:.78rem;font-weight:600}.portal-header-user:hover{background:rgba(0,0,0,.06)}.portal-header-actions{display:flex;align-items:center;gap:.65rem;margin-left:auto}.portal-header-user small{display:inline-block;padding:.1rem .45rem;border-radius:99px;background:rgba(0,0,0,.06);color:#6e6e73;font-size:.65rem;font-weight:600}.portal-header-signout{color:#e11d48;border-color:rgba(225,29,72,.2);background:rgba(225,29,72,.04)}.portal-header-signout:hover{background:rgba(225,29,72,.1);color:#be123c}.dashboard-layout:has(.coordinator-sidebar) .sidebar-brand,.dashboard-layout:has(.sidebar-admin) .sidebar-brand{padding:0 1.1rem 1.1rem;margin-bottom:.9rem}.dashboard-layout:has(.coordinator-sidebar) .sidebar-nav,.dashboard-layout:has(.sidebar-admin) .sidebar-nav{overflow:visible}.dashboard-layout:has(.coordinator-sidebar) .sidebar-footer,.dashboard-layout:has(.sidebar-admin) .sidebar-footer{display:none}.dashboard-layout:has(.coordinator-sidebar) .sidebar-footer .sidebar-signout,.dashboard-layout:has(.coordinator-sidebar) .sidebar-footer .sidebar-user,.dashboard-layout:has(.sidebar-admin) .sidebar-footer .sidebar-signout,.dashboard-layout:has(.sidebar-admin) .sidebar-footer .sidebar-user{display:none}.dashboard-layout:has(.coordinator-sidebar) .sidebar-link,.dashboard-layout:has(.sidebar-admin) .sidebar-link{margin:0 .75rem .2rem;padding:.72rem .85rem;border-left:3px solid transparent;border-radius:8px;color:rgba(226,238,222,.68)}.dashboard-layout:has(.coordinator-sidebar) .sidebar-link.active,.dashboard-layout:has(.sidebar-admin) .sidebar-link.active{background:rgba(111,166,35,.18);border-left-color:#8cc43f;color:#d5ebba}.dashboard-layout:has(.coordinator-sidebar) .sidebar-link:hover,.dashboard-layout:has(.sidebar-admin) .sidebar-link:hover{background:rgba(111,166,35,.11);color:#f3f8ed}.dashboard-layout:has(.coordinator-sidebar) .card,.dashboard-layout:has(.coordinator-sidebar) .stat-card,.dashboard-layout:has(.sidebar-admin) .card,.dashboard-layout:has(.sidebar-admin) .stat-card{border:1px solid #e0e6dc;border-radius:11px;box-shadow:0 2px 8px rgba(31,48,28,.05)}.dashboard-layout:has(.coordinator-sidebar) .topbar,.dashboard-layout:has(.sidebar-admin) .topbar{margin-bottom:1.25rem}.dashboard-layout:has(.coordinator-sidebar) .portal-quick-links,.dashboard-layout:has(.sidebar-admin) .portal-quick-links{flex-wrap:nowrap;overflow:visible!important;padding-bottom:0!important}.dashboard-layout:has(.coordinator-sidebar) .portal-quick-links>a,.dashboard-layout:has(.sidebar-admin) .portal-quick-links>a{flex:1 1;min-width:0;justify-content:center;padding-left:.45rem!important;padding-right:.45rem!important}}@media (max-width:768px){.dashboard-layout:has(.coordinator-sidebar) .portal-header,.dashboard-layout:has(.sidebar-admin) .portal-header{position:fixed;inset:0 0 auto;z-index:90;display:flex;height:calc(64px + env(safe-area-inset-top, 0px));padding:env(safe-area-inset-top,0) 1rem 0}.dashboard-layout:has(.coordinator-sidebar) .portal-header-title,.dashboard-layout:has(.sidebar-admin) .portal-header-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.15rem;font-weight:800}.dashboard-layout:has(.coordinator-sidebar) .portal-header-user,.dashboard-layout:has(.sidebar-admin) .portal-header-user{width:42px;height:42px;border-radius:99px}.dashboard-layout:has(.coordinator-sidebar) .mobile-toggle,.dashboard-layout:has(.coordinator-sidebar) .sidebar-footer,.dashboard-layout:has(.sidebar-admin) .mobile-toggle,.dashboard-layout:has(.sidebar-admin) .sidebar-footer{display:none!important}}@media (min-width:1025px){.dashboard-layout:has(.sidebar-student) .sidebar{width:274px;padding:1rem 0 0;background:#142515;border-right:1px solid rgba(255,255,255,.06)}.dashboard-layout:has(.sidebar-student) .main-content{margin-left:274px;max-width:calc(100% - 274px);min-height:100dvh;padding:5.75rem 1.5rem 2.25rem;background:#f5f6f4}.dashboard-layout:has(.sidebar-student) .portal-header{position:fixed;top:0;right:0;left:274px;z-index:90;height:62px;display:flex;align-items:center;gap:.75rem;padding:0 1.75rem;background:rgba(255,255,255,.82);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.07);transition:left .25s ease}.dashboard-layout:has(.sidebar-student) .portal-header-menu,.dashboard-layout:has(.sidebar-student) .portal-header-signout{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.08);border-radius:9px;background:rgba(0,0,0,.03);color:#1d1d1f;cursor:pointer;transition:all .15s ease}.dashboard-layout:has(.sidebar-student) .portal-header-menu:hover,.dashboard-layout:has(.sidebar-student) .portal-header-signout:hover{background:rgba(0,0,0,.07);color:#000}.dashboard-layout:has(.sidebar-student) .portal-header-title{color:#1d1d1f;font-size:.86rem;font-weight:700;letter-spacing:-.01em}.dashboard-layout:has(.sidebar-student) .portal-header-actions{display:flex;align-items:center;gap:.65rem;margin-left:auto}.dashboard-layout:has(.sidebar-student) .portal-header-user{cursor:pointer;text-decoration:none;transition:all .15s ease;display:inline-flex;flex-direction:row;align-items:center;gap:.5rem;padding:.3rem .65rem;border-radius:99px;background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.06);color:#1d1d1f;font-size:.78rem;font-weight:600;height:34px;box-sizing:border-box;max-width:none}.dashboard-layout:has(.sidebar-student) .portal-header-user:hover{background:rgba(0,0,0,.06)}.dashboard-layout:has(.sidebar-student) .portal-header-user small{display:inline-flex;align-items:center;padding:.12rem .45rem;border-radius:99px;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;font-size:.65rem;font-weight:700;line-height:1;margin:0}.dashboard-layout:has(.sidebar-student) .sidebar-nav{overflow:visible}.dashboard-layout:has(.sidebar-student) .sidebar-footer{display:none}.dashboard-layout:has(.sidebar-student) .sidebar-link{margin:0 .75rem .2rem;padding:.72rem .85rem;border-left:3px solid transparent;border-radius:8px}.dashboard-layout:has(.sidebar-student) .sidebar-link.active{background:rgba(111,166,35,.18);border-left-color:#8cc43f;color:#d5ebba}.dashboard-layout:has(.sidebar-student) .main-content-inner{max-width:none}.dashboard-layout:has(.sidebar.is-collapsed) .sidebar{transform:translateX(-100%)}.dashboard-layout:has(.sidebar.is-collapsed) .portal-header{left:0}.dashboard-layout:has(.sidebar-student):has(.sidebar.is-collapsed) .main-content{margin-left:0;max-width:100%}}@media (max-width:768px){.dashboard-layout:has(.portal-header) .portal-header{display:flex!important;flex-wrap:nowrap;align-items:center;gap:.85rem;height:calc(72px + env(safe-area-inset-top, 0px))!important;padding:env(safe-area-inset-top,0) 1.15rem 0!important;background:rgba(255,255,255,.98)!important;backdrop-filter:blur(20px) saturate(180%)!important;-webkit-backdrop-filter:blur(20px) saturate(180%)!important;border-bottom:1px solid rgba(0,0,0,.08)!important;box-shadow:0 2px 16px rgba(15,23,42,.06)!important}.dashboard-layout:has(.portal-header) .portal-header-title{font-size:0!important;display:flex;align-items:center}.dashboard-layout:has(.portal-header) .portal-header-title:after{content:"AIMS";font-size:1.38rem!important;font-weight:900!important;color:#0f172a!important;letter-spacing:-.025em!important}.dashboard-layout:has(.portal-header) .portal-header-menu,.dashboard-layout:has(.portal-header) .portal-header-signout{width:48px!important;height:48px!important;flex:0 0 48px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid rgba(0,0,0,.09)!important;border-radius:14px!important;background:rgba(0,0,0,.04)!important;color:#1d1d1f!important;transition:all .15s ease!important}.dashboard-layout:has(.portal-header) .portal-header-menu:hover,.dashboard-layout:has(.portal-header) .portal-header-signout:hover{background:rgba(0,0,0,.08)!important;color:#000000!important}.dashboard-layout:has(.portal-header) .portal-header-menu svg,.dashboard-layout:has(.portal-header) .portal-header-signout svg{width:26px!important;height:26px!important;font-size:26px!important}.dashboard-layout:has(.portal-header) .portal-header-title{flex:1 1 auto}.dashboard-layout:has(.portal-header) .portal-header-logo{width:46px!important;height:46px!important;flex:0 0 46px!important;display:block!important;object-fit:contain}.dashboard-layout:has(.portal-header) .portal-header-actions{display:flex!important;align-items:center!important;flex:0 0 auto!important;gap:.75rem!important;margin-left:auto!important}.dashboard-layout:has(.portal-header) .portal-header-bell,.dashboard-layout:has(.portal-header) .portal-header-bell-wrap{width:48px!important;height:48px!important;flex-shrink:0!important;border-radius:99px!important}.dashboard-layout:has(.portal-header) .portal-header-bell svg,.dashboard-layout:has(.portal-header) .portal-header-bell-icon{width:26px!important;height:26px!important;font-size:26px!important}.dashboard-layout:has(.portal-header) .portal-header-bell-badge{min-width:21px!important;height:21px!important;font-size:.76rem!important;font-weight:800!important;top:-3px!important;right:-3px!important}.dashboard-layout:has(.portal-header) .portal-header-user{width:48px!important;height:48px!important;flex-shrink:0!important;border-radius:99px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:rgba(0,0,0,.04)!important;border:1px solid rgba(0,0,0,.08)!important;box-sizing:border-box!important;text-decoration:none!important;cursor:pointer!important}.dashboard-layout:has(.portal-header) .portal-header-user-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:26px!important;color:#1d1d1f!important;margin:0!important;width:auto!important;height:auto!important}.dashboard-layout:has(.portal-header) .portal-header-user svg{width:26px!important;height:26px!important;font-size:26px!important}.dashboard-layout:has(.portal-header) .portal-header-user small,.dashboard-layout:has(.portal-header) .portal-header-user-badge,.dashboard-layout:has(.portal-header) .portal-header-user-name,.dashboard-layout:has(.portal-header) .portal-header-user>span:not(.portal-header-user-icon){display:none!important}.dashboard-layout:has(.portal-header) .portal-header-signout{width:48px!important;height:48px!important;flex-shrink:0!important;padding:0!important;border-radius:14px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}.dashboard-layout:has(.coordinator-sidebar) .portal-quick-links,.dashboard-layout:has(.sidebar-admin) .portal-quick-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;overflow:visible!important;padding-bottom:0!important}.dashboard-layout:has(.coordinator-sidebar) .portal-quick-links>a,.dashboard-layout:has(.sidebar-admin) .portal-quick-links>a{min-width:0;width:100%;justify-content:center;padding:.7rem .5rem!important;font-size:.85rem!important;min-height:46px!important}.portal-management-topbar>div:first-child{flex:1 1 100%;min-width:100%}.portal-management-topbar>div:last-child{width:100%;justify-content:flex-start}.portal-management-topbar h1{overflow-wrap:normal;word-break:normal}.dashboard-layout:has(.portal-header) .portal-header-menu,.dashboard-layout:has(.portal-header) .sidebar,.dashboard-layout:has(.portal-header) .sidebar-overlay{display:none!important}.dashboard-layout:has(.portal-header) .main-content{min-width:0;overflow-x:hidden;padding-top:calc(72px + env(safe-area-inset-top, 0px) + .85rem)!important;padding-bottom:calc(140px + env(safe-area-inset-bottom, 0px))!important}.portal-mobile-dock{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom, 0px));width:calc(100% - 24px);max-width:440px;z-index:1100;display:flex!important;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}.portal-mobile-dock-bar{width:100%;gap:10px}.portal-mobile-dock-bar,.portal-mobile-dock-pill{display:flex;align-items:center;justify-content:space-between}.portal-mobile-dock-pill{flex:1 1;height:64px;background:rgba(24,28,26,.58);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border:1px solid rgba(255,255,255,.22);border-radius:9999px;box-shadow:0 12px 30px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.22);padding:5px 8px;pointer-events:auto;gap:4px}.portal-mobile-dock-item{flex:1 1;min-width:0;text-decoration:none;cursor:pointer;background:transparent;border:none;padding:2px}.dock-item-inner,.portal-mobile-dock-item{height:100%;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:all .2s cubic-bezier(.4,0,.2,1)}.dock-item-inner{flex-direction:column;gap:3px;width:100%;padding:4px 6px}.portal-mobile-dock-item .dock-icon{font-size:1.45rem!important;width:24px!important;height:24px!important;color:#e4e4e7;transition:all .2s ease;flex-shrink:0}.portal-mobile-dock-item .dock-label{font-size:.68rem;font-weight:600;color:#a1a1aa;line-height:1;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;transition:all .2s ease}.portal-mobile-dock-item.active .dock-item-inner{background:rgba(0,0,0,.55);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 2px 8px rgba(0,0,0,.3)}.portal-mobile-dock-item.active .dock-icon{color:#22c55e!important;transform:scale(1.08)}.portal-mobile-dock-item.active .dock-label{color:#22c55e!important;font-weight:700}.portal-mobile-dock-item:active{transform:scale(.93)}.portal-mobile-dock-fab{width:62px;height:62px;min-width:62px;border-radius:50%;background:rgba(24,28,26,.58);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 30px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#ffffff;pointer-events:auto;transition:all .25s cubic-bezier(.4,0,.2,1);padding:0}.portal-mobile-dock-fab .dock-fab-icon{font-size:1.75rem!important;width:28px!important;height:28px!important;transition:transform .25s cubic-bezier(.4,0,.2,1),color .2s ease}.portal-mobile-dock-fab:hover{background:rgba(36,42,39,.68);border-color:rgba(255,255,255,.3);transform:scale(1.03)}.portal-mobile-dock-fab:active{transform:scale(.92)}.portal-mobile-dock-fab.active{border-color:rgba(34,197,94,.6);color:#22c55e;background:rgba(0,0,0,.55)}.portal-mobile-dock-fab.is-open .dock-fab-icon{transform:rotate(45deg);color:#22c55e}.portal-mobile-more-backdrop{position:fixed;inset:0;z-index:1090;display:block;width:100%;height:100%;padding:0;border:0;background:rgba(22,63,50,.16);backdrop-filter:blur(5px) saturate(.88);-webkit-backdrop-filter:blur(5px) saturate(.88);cursor:default;animation:fadeIn .18s ease both}@keyframes dockPopoverExpand{0%{opacity:0;transform:scale(.7) translateY(24px)}to{opacity:1;transform:scale(1) translateY(0)}}.portal-mobile-dock-popover{pointer-events:auto;width:320px;max-width:calc(100vw - 32px);max-height:65vh;overflow-y:auto;background:rgba(24,28,26,.62);backdrop-filter:blur(26px) saturate(180%);-webkit-backdrop-filter:blur(26px) saturate(180%);border:1px solid rgba(255,255,255,.22);border-radius:24px;box-shadow:0 20px 44px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.2);padding:14px;transform-origin:bottom right;animation:dockPopoverExpand .22s cubic-bezier(.16,1,.3,1)}.dock-popover-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.6rem;border-bottom:1px solid rgba(255,255,255,.08)}.dock-popover-title{font-size:1.05rem;font-weight:700;color:#ffffff;line-height:1.2}.dock-popover-sub{font-size:.75rem;color:#a1a1aa;margin-top:2px}.dock-popover-close{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:.85rem;color:#e4e4e7;cursor:pointer;transition:all .15s ease}.dock-popover-close:hover{background:rgba(255,255,255,.16);color:#ffffff}.dock-popover-list{display:flex;flex-direction:column;gap:.4rem}.dock-popover-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-radius:14px;text-decoration:none;color:#f4f4f5;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);transition:all .15s ease}.dock-popover-item:active,.dock-popover-item:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.14)}.dock-popover-item.active{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.45);color:#22c55e}.dock-popover-icon{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;color:#e4e4e7;flex-shrink:0;transition:all .15s ease}.dock-popover-icon svg{font-size:20px!important;width:20px!important;height:20px!important}.dock-popover-item.active .dock-popover-icon{background:#22c55e;color:#000000}.dock-popover-label{font-size:.9rem;font-weight:600;color:#ffffff}.dock-popover-item.active .dock-popover-label{color:#22c55e}.dock-popover-desc{font-size:.74rem;color:#a1a1aa;margin-top:1px}.dock-popover-footer{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid rgba(255,255,255,.08)}.dock-popover-footer-btn{flex:1 1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;text-decoration:none;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:#e4e4e7;cursor:pointer;transition:all .15s ease}.dock-popover-footer-btn:hover{background:rgba(255,255,255,.12);color:#ffffff}.dock-popover-footer-signout{color:#f87171!important;background:rgba(239,68,68,.08)!important;border-color:rgba(239,68,68,.2)!important}.dock-popover-footer-signout:hover{background:rgba(239,68,68,.16)!important;color:#fca5a5!important}.dashboard-layout:has(.sidebar-student) .portal-header{position:fixed;inset:0 0 auto;z-index:90;display:flex;height:calc(64px + env(safe-area-inset-top, 0px));padding:env(safe-area-inset-top,0) 1rem 0}.dashboard-layout:has(.sidebar-student) .portal-header-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.15rem;font-weight:800}.dashboard-layout:has(.sidebar-student) .portal-header-actions{gap:.65rem}.dashboard-layout:has(.sidebar-student) .mobile-toggle,.dashboard-layout:has(.sidebar-student) .sidebar-footer{display:none!important}}.profile-picture-picker{display:flex;align-items:center;gap:1rem;padding:1rem;margin-bottom:1.25rem;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:rgba(255,255,255,.04)}.profile-picture-preview{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;background:rgba(52,211,153,.12);color:var(--green-400);border:2px solid rgba(52,211,153,.3)}.profile-picture-preview img{width:100%;height:100%;object-fit:cover}.profile-picture-title{color:white;font-size:.88rem;font-weight:700}.profile-picture-help,.profile-picture-title span{color:rgba(255,255,255,.45);font-size:.73rem;font-weight:400}.profile-picture-help{margin:.2rem 0 .6rem;line-height:1.4}.profile-picture-button{display:inline-flex;padding:.45rem .7rem;font-size:.75rem}.profile-picture-remove{margin-left:.5rem;padding:.45rem 0;border:none;background:transparent;color:#f87171;font:inherit;font-size:.75rem}.profile-photo-card{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.5rem;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:0 8px 22px rgba(15,23,42,.06)}.profile-photo-large{width:96px;height:96px;border-radius:50%;overflow:hidden;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:var(--green-50);color:var(--primary);border:3px solid var(--green-200)}.profile-photo-large img{width:100%;height:100%;object-fit:cover}.profile-photo-copy{min-width:0}.profile-photo-copy h2{font-size:1rem;margin-bottom:.2rem}.profile-photo-copy p{color:var(--text-muted);font-size:.8rem;line-height:1.5;margin-bottom:.65rem}.sidebar-avatar-photo{width:100%;height:100%;border-radius:50%!important;object-fit:cover!important;display:block}.avatar,.profile-avatar,.student-avatar,.user-avatar{border-radius:50%!important;overflow:hidden!important;aspect-ratio:1/1}.avatar img,.profile-avatar img,.student-avatar img,.user-avatar img{width:100%;height:100%;border-radius:50%!important;object-fit:cover!important;display:block}@media (max-width:520px){.profile-photo-card,.profile-picture-picker{align-items:flex-start}.profile-picture-picker{flex-direction:column}.profile-photo-card{gap:.85rem}.profile-photo-large{width:72px;height:72px;border-radius:50%!important}}.aims-boot-screen-white{position:fixed;inset:0;z-index:9999999;display:flex;align-items:center;justify-content:center;background-color:#ffffff;overflow:hidden;-webkit-user-select:none;user-select:none;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),filter .4s cubic-bezier(.4,0,.2,1);opacity:1;transform:scale(1);filter:blur(0)}.aims-boot-screen-white.aims-boot-exit-white{opacity:0;transform:scale(1.02);filter:blur(4px);pointer-events:none}.aims-boot-center-content{position:relative;z-index:10;flex-direction:column;max-width:380px;width:90%;text-align:center}.aims-boot-center-content,.aims-boot-logo-box{display:flex;align-items:center;justify-content:center}.aims-boot-logo-box{width:132px;height:132px;margin-bottom:1.25rem;filter:drop-shadow(0 14px 28px rgba(5,150,105,.25));animation:bootLogoFloat 3s ease-in-out infinite alternate}.aims-boot-logo-img{width:100%;height:100%;object-fit:contain;display:block}.aims-boot-title-row{margin-bottom:2rem}.aims-boot-brand-heading{font-family:var(--font-display);font-size:1.85rem;font-weight:900;letter-spacing:-.03em;color:#0f172a;margin:0 0 .25rem;line-height:1.15}.aims-boot-brand-accent{color:#059669}.aims-boot-brand-sub{font-size:.82rem;color:#64748b;font-weight:500;margin:0;letter-spacing:-.01em}.aims-boot-loading-section{width:100%;max-width:320px}.aims-boot-white-progress-track{width:100%;height:7px;border-radius:99px;background:#f1f5f9;border:1px solid #e2e8f0;overflow:hidden;position:relative;margin-bottom:.75rem}.aims-boot-white-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#059669,#10b981);box-shadow:0 0 10px rgba(16,185,129,.45);transition:width .08s linear;position:relative}.aims-boot-white-progress-glow{position:absolute;top:0;right:0;width:12px;height:100%;background:rgba(255,255,255,.8);border-radius:99px;filter:blur(1px)}.aims-boot-white-status-row{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;color:#475569;font-weight:600}.aims-boot-text-row{display:flex;align-items:center;gap:.45rem}.aims-boot-spinner-icon{width:8px;height:8px;border-radius:50%;background:#059669;box-shadow:0 0 8px #059669;animation:bootDotPulse 1.2s ease-in-out infinite}.aims-boot-loading-label{color:#334155;font-weight:600}.aims-boot-animated-dots{display:inline-flex;gap:1px}.aims-boot-animated-dots .aims-dot{display:inline-block;font-weight:800;font-size:1rem;line-height:.8;color:#059669;animation:bootDotHop 1.4s ease-in-out infinite}.aims-boot-animated-dots .aims-dot.dot-1{animation-delay:0s}.aims-boot-animated-dots .aims-dot.dot-2{animation-delay:.2s}.aims-boot-animated-dots .aims-dot.dot-3{animation-delay:.4s}.aims-boot-white-percent{font-family:var(--font-display);font-weight:700;color:#059669;font-feature-settings:"tnum"}@keyframes bootLogoFloat{0%{transform:translateY(0) scale(1)}to{transform:translateY(-6px) scale(1.02)}}@keyframes bootDotHop{0%,to{transform:translateY(0);opacity:.3}50%{transform:translateY(-3px);opacity:1}}@keyframes bootDotPulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}}.dashboard-layout:has(.portal-header) .main-content{width:100%}.dashboard-layout:has(.portal-header) .btn,.dashboard-layout:has(.portal-header) .card,.dashboard-layout:has(.portal-header) .form-input,.dashboard-layout:has(.portal-header) .stat-card{transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease}.dashboard-layout:has(.portal-header) .form-input:focus{box-shadow:0 0 0 3px rgba(5,150,105,.14)}.dashboard-layout:has(.portal-header) .responsive-modal-card{max-height:min(90dvh,760px);border-radius:16px}@media (max-width:768px){.dashboard-layout:has(.portal-header) .portal-header-title{font-size:0!important}.dashboard-layout:has(.portal-header) .portal-header-title:after{content:"AIMS";font-size:1.2rem!important;font-weight:800!important;color:#1a381e!important;letter-spacing:-.02em!important}.dashboard-layout:has(.portal-header) .main-content{width:100%;padding-left:max(.85rem,env(safe-area-inset-left))!important;padding-right:max(.85rem,env(safe-area-inset-right))!important}.dashboard-layout:has(.portal-header) .form-input,.dashboard-layout:has(.portal-header) select,.dashboard-layout:has(.portal-header) textarea{min-height:48px!important;font-size:.95rem!important;padding:.65rem .85rem!important;border-radius:11px!important}.dashboard-layout:has(.portal-header) .btn{min-height:48px!important;font-size:.95rem!important;font-weight:600!important;padding:.7rem 1.25rem!important;border-radius:12px!important}.dashboard-layout:has(.portal-header) .card,.dashboard-layout:has(.portal-header) .stat-card{border-radius:16px}.dashboard-layout:has(.portal-header) .responsive-modal-overlay{align-items:flex-end;padding:.75rem .75rem max(.75rem,env(safe-area-inset-bottom))}.dashboard-layout:has(.portal-header) .responsive-modal-card{max-height:calc(100dvh - 1.5rem);border-radius:18px}.dashboard-layout:has(.portal-header) .admin-dash-title,.dashboard-layout:has(.portal-header) .attendance-page .topbar h1,.dashboard-layout:has(.portal-header) .greeting-text,.dashboard-layout:has(.portal-header) .main-content h1,.dashboard-layout:has(.portal-header) .page-title,.dashboard-layout:has(.portal-header) .student-hero-name,.dashboard-layout:has(.portal-header) .topbar h1{font-size:clamp(1.6rem,5.8vw,2.1rem)!important;font-weight:800!important;line-height:1.2!important;letter-spacing:-.03em!important}.dashboard-layout:has(.portal-header) .main-content h2{font-size:1.35rem!important;font-weight:800!important;line-height:1.25!important}.dashboard-layout:has(.portal-header) .admin-dash-period-title,.dashboard-layout:has(.portal-header) .card-header h2,.dashboard-layout:has(.portal-header) .card-header h3,.dashboard-layout:has(.portal-header) .card-title,.dashboard-layout:has(.portal-header) .ios-progress-title,.dashboard-layout:has(.portal-header) .main-content h3,.dashboard-layout:has(.portal-header) .section-title{font-size:1.22rem!important;font-weight:700!important;line-height:1.3!important}.dashboard-layout:has(.portal-header) .admin-dash-subtitle,.dashboard-layout:has(.portal-header) .attendance-page .topbar p,.dashboard-layout:has(.portal-header) .content-header p,.dashboard-layout:has(.portal-header) .page-subtitle,.dashboard-layout:has(.portal-header) .student-hero-sub,.dashboard-layout:has(.portal-header) .topbar p{font-size:.96rem!important;font-weight:500!important;line-height:1.45!important;color:#64748b!important}.dashboard-layout:has(.portal-header) .card-header p,.dashboard-layout:has(.portal-header) .card-subtitle{font-size:.88rem!important;color:#64748b!important}.dashboard-layout:has(.portal-header) .admin-dash-period-tag,.dashboard-layout:has(.portal-header) .ios-progress-tag{font-size:.82rem!important;font-weight:700!important;letter-spacing:.04em!important}.dashboard-layout:has(.portal-header) .card-body p,.dashboard-layout:has(.portal-header) .main-content .text-muted,.dashboard-layout:has(.portal-header) .main-content .text-secondary,.dashboard-layout:has(.portal-header) .main-content p{font-size:.96rem!important;line-height:1.55!important}.dashboard-layout:has(.portal-header) .main-content small{font-size:.8rem!important}.dashboard-layout:has(.portal-header) .admin-dash-kpi-label,.dashboard-layout:has(.portal-header) .ios-stat-label,.dashboard-layout:has(.portal-header) .stat-card-title,.dashboard-layout:has(.portal-header) .stat-info h4,.dashboard-layout:has(.portal-header) .stat-label{font-size:.84rem!important;font-weight:600!important;color:#64748b!important}.dashboard-layout:has(.portal-header) .admin-dash-kpi-val,.dashboard-layout:has(.portal-header) .ios-stat-value,.dashboard-layout:has(.portal-header) .stat-card-value,.dashboard-layout:has(.portal-header) .stat-info .stat-value,.dashboard-layout:has(.portal-header) .stat-value{font-size:1.75rem!important;font-weight:800!important;line-height:1.15!important}.dashboard-layout:has(.portal-header) .stat-card-desc,.dashboard-layout:has(.portal-header) .stat-desc,.dashboard-layout:has(.portal-header) .stat-helper{font-size:.8rem!important}.dashboard-layout:has(.portal-header) .form-label{font-size:.88rem!important;font-weight:600!important;margin-bottom:.35rem!important}.dashboard-layout:has(.portal-header) .btn-lg{min-height:54px!important;font-size:1.05rem!important;padding:.85rem 1.4rem!important;border-radius:14px!important}.dashboard-layout:has(.portal-header) .btn-sm{min-height:42px!important;font-size:.88rem!important;padding:.55rem .95rem!important;border-radius:12px!important}.dashboard-layout:has(.portal-header) .ios-filter-pill{min-height:52px!important;font-size:.96rem!important;font-weight:700!important;padding:.75rem 1.15rem!important;border-radius:14px!important;gap:.65rem!important}.dashboard-layout:has(.portal-header) .ios-filter-pill svg{font-size:1.25rem!important;width:22px!important;height:22px!important}.dashboard-layout:has(.portal-header) .admin-dash-period-days-badge,.dashboard-layout:has(.portal-header) .badge,.dashboard-layout:has(.portal-header) .pill,.dashboard-layout:has(.portal-header) .status-badge,.dashboard-layout:has(.portal-header) .student-term-chip{font-size:.78rem!important;font-weight:700!important;padding:.22rem .65rem!important}.dashboard-layout:has(.portal-header) table th{font-size:.82rem!important;font-weight:700!important;padding:.7rem .75rem!important}.dashboard-layout:has(.portal-header) table td{font-size:.88rem!important;padding:.75rem!important}}@media (prefers-reduced-motion:reduce){.dashboard-layout:has(.portal-header) *,.portal-mobile-more,.portal-mobile-nav{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width:768px){.student-dashboard-quick-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem!important;overflow:visible!important;padding-bottom:0!important}.student-dashboard-quick-links>a{min-width:0;width:100%;justify-content:center;padding:.75rem .65rem!important;font-size:.86rem!important;min-height:48px!important;border-radius:12px!important}.student-dashboard-quick-links>a svg{font-size:1.25rem!important;width:20px!important;height:20px!important}}.admin-dash-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.85rem;margin-bottom:1.15rem;padding:.2rem 0}.admin-dash-title{font-size:1.55rem;font-weight:800;letter-spacing:-.03em;margin:0;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.admin-dash-subtitle{font-size:.8rem;color:#86868b;margin:.15rem 0 0;font-weight:500}.admin-dash-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.admin-dash-period-card{background:#ffffff;border-radius:20px;padding:1.25rem 1.4rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px -2px rgba(0,0,0,.04);margin-bottom:1rem}.admin-dash-period-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;gap:.5rem}.admin-dash-period-tag{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#86868b}.admin-dash-period-title{font-size:1.15rem;font-weight:700;color:#1d1d1f;letter-spacing:-.02em}.admin-dash-period-badge-group{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.admin-dash-period-days-badge{border-radius:99px;border:1px solid rgba(0,0,0,.06)}.admin-dash-period-days-badge,.admin-dash-period-edit-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;font-size:.72rem;font-weight:600;background:rgba(0,0,0,.04);color:#1d1d1f}.admin-dash-period-edit-btn{border-radius:99px;border:1px solid rgba(0,0,0,.08);cursor:pointer;transition:all .15s ease}@media (max-width:680px){.admin-dash-kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:.55rem}.admin-dash-kpi-card{padding:.8rem .85rem;min-height:98px;border-radius:16px}}.portal-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin-bottom:1rem}@media (min-width:769px){.portal-kpi-grid{grid-template-columns:repeat(4,1fr);gap:1rem}}.portal-kpi-card{background:#ffffff;border-radius:18px;padding:.95rem 1.05rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 16px rgba(0,0,0,.03);text-decoration:none;color:inherit;display:flex;flex-direction:column;justify-content:space-between;min-height:104px;transition:transform .12s ease,box-shadow .15s ease}.portal-kpi-card:active{transform:scale(.97)}@media (max-width:680px){.portal-kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:.55rem}.portal-kpi-card{padding:.8rem .85rem;min-height:96px;border-radius:16px}}.ios-progress-banner{background:#ffffff;border-radius:20px;padding:1.25rem 1.4rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px -2px rgba(0,0,0,.04);margin-bottom:1rem}.ios-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.ios-progress-tag{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#86868b}.ios-progress-title{font-size:1.15rem;font-weight:700;color:#1d1d1f;letter-spacing:-.02em}.ios-progress-row{display:flex;align-items:center;gap:.75rem;margin:.65rem 0 .35rem}.ios-progress-meter-val{font-size:1.45rem;font-weight:800;color:#1d1d1f;letter-spacing:-.03em;line-height:1}.ios-progress-meter-track{flex:1 1;height:8px;background:rgba(0,0,0,.06);border-radius:99px;overflow:hidden}.ios-progress-meter-fill{height:100%;border-radius:99px;background:#1d1d1f;transition:width 1s cubic-bezier(.4,0,.2,1)}.ios-progress-dates{display:flex;justify-content:space-between;font-size:.7rem;color:#86868b;font-weight:500;padding-bottom:.75rem;border-bottom:1px solid rgba(0,0,0,.05)}.ios-progress-dates strong{color:#1d1d1f}.ios-progress-pillars{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;padding:.75rem .25rem .1rem;text-align:center}.ios-progress-pillar .pillar-num{font-size:1.35rem;font-weight:800;color:#1d1d1f;letter-spacing:-.02em;line-height:1.1}.ios-progress-pillar .pillar-num small{font-size:.72rem;font-weight:500;color:#86868b;margin-left:2px}.ios-progress-pillar .pillar-lbl{font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#86868b;margin-top:3px}.ios-progress-pillar-divider{width:1px;height:30px;background:rgba(0,0,0,.08)}@media (max-width:680px){.ios-progress-banner{padding:1rem 1.1rem;border-radius:18px}.ios-progress-title{font-size:1.05rem}.ios-progress-pillar .pillar-num{font-size:1.25rem}}.ios-grouped-list{background:#ffffff;border-radius:18px;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 16px rgba(0,0,0,.03);overflow:hidden;margin-bottom:1rem}.ios-grouped-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.1rem;border-bottom:.5px solid rgba(0,0,0,.06)}.ios-grouped-header h3{font-size:.92rem;font-weight:700;color:#1d1d1f;margin:0;display:flex;align-items:center;gap:.5rem}.ios-grouped-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.1rem;border-bottom:.5px solid rgba(0,0,0,.04);text-decoration:none;color:inherit;transition:background .12s ease}.ios-grouped-row:last-child{border-bottom:none}.ios-grouped-row:active{background:rgba(0,0,0,.03)}.ios-filter-pills{display:flex;gap:.45rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.35rem;margin-bottom:.85rem}.ios-filter-pills::-webkit-scrollbar{display:none}.ios-filter-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .85rem;border-radius:99px;background:#ffffff;border:1px solid rgba(0,0,0,.08);font-size:.76rem;font-weight:600;color:#1d1d1f;white-space:nowrap;cursor:pointer;transition:all .12s ease;box-shadow:0 1px 3px rgba(0,0,0,.03)}.ios-filter-pill.active{background:#1d1d1f;color:#ffffff;border-color:#1d1d1f}.ios-filter-pill:active{transform:scale(.96)}.ios-search-bar{display:flex;align-items:center;gap:.5rem;background:rgba(0,0,0,.05);border-radius:12px;padding:.48rem .85rem;margin-bottom:.85rem;border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.ios-search-bar:focus-within{background:#ffffff;border-color:rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.04)}.ios-search-bar input{border:none;background:transparent;outline:none;font-size:.85rem;color:#1d1d1f;width:100%}.ios-search-bar input::placeholder{color:#86868b}.admin-dash-period-progress-row{display:flex;align-items:center;gap:.75rem;margin:.75rem 0 .35rem}.admin-dash-period-meter-val{font-size:1.45rem;font-weight:800;color:#1d1d1f;letter-spacing:-.03em;line-height:1}.admin-dash-period-meter-track{flex:1 1;height:8px;background:rgba(0,0,0,.06);border-radius:99px;overflow:hidden}.admin-dash-period-meter-fill{height:100%;border-radius:99px;background:#1d1d1f;transition:width 1s cubic-bezier(.4,0,.2,1)}.admin-dash-period-dates{display:flex;justify-content:space-between;font-size:.7rem;color:#86868b;font-weight:500;padding-bottom:.75rem;border-bottom:1px solid rgba(0,0,0,.05)}.admin-dash-period-dates strong{color:#1d1d1f}.admin-dash-period-pillars{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;padding:.75rem .25rem .1rem;text-align:center}.admin-dash-period-pillar .pillar-num{font-size:1.35rem;font-weight:800;color:#1d1d1f;letter-spacing:-.02em;line-height:1.1}.admin-dash-period-pillar .pillar-num small{font-size:.72rem;font-weight:500;color:#86868b;margin-left:2px}.admin-dash-period-pillar .pillar-lbl{font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#86868b;margin-top:3px}.admin-dash-period-pillar-divider{width:1px;height:30px;background:rgba(0,0,0,.08)}.admin-dash-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin-bottom:1rem}.admin-dash-kpi-card{background:#ffffff;border-radius:18px;padding:.9rem 1rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 16px rgba(0,0,0,.03);text-decoration:none;color:inherit;display:flex;flex-direction:column;justify-content:space-between;min-height:104px;transition:transform .12s ease}.admin-dash-kpi-card:active{transform:scale(.97)}.kpi-card-top{justify-content:space-between;margin-bottom:.35rem}.kpi-card-icon,.kpi-card-top{display:flex;align-items:center}.kpi-card-icon{width:32px;height:32px;border-radius:9px;background:rgba(0,0,0,.04);color:#1d1d1f;justify-content:center;font-size:1.15rem}.kpi-card-badge{font-size:.62rem;font-weight:600;padding:.15rem .45rem;border-radius:99px;background:rgba(0,0,0,.04);color:#86868b}.kpi-card-val{font-size:1.65rem;font-weight:800;color:#1d1d1f;letter-spacing:-.03em;line-height:1}.kpi-card-title{font-size:.8rem;font-weight:700;color:#1d1d1f;margin-top:.25rem}.kpi-card-sub{font-size:.66rem;color:#86868b;font-weight:500}.admin-dash-list-group{background:#ffffff;border-radius:18px;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 16px rgba(0,0,0,.03);overflow:hidden;margin-bottom:1rem}.admin-dash-list-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.1rem;border-bottom:.5px solid rgba(0,0,0,.06)}.admin-dash-list-header h3{font-size:.92rem;font-weight:700;color:#1d1d1f;margin:0;display:flex;align-items:center;gap:.5rem}.admin-dash-list-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.1rem;border-bottom:.5px solid rgba(0,0,0,.04);transition:background .12s ease}.admin-dash-list-row:last-child{border-bottom:none}.admin-dash-list-row:active{background:rgba(0,0,0,.03)}@media (max-width:680px){.admin-dash-header{margin-bottom:.85rem}.admin-dash-title{font-size:clamp(1.6rem,5.8vw,2.1rem)!important;font-weight:800!important;letter-spacing:-.03em!important}.admin-dash-subtitle{font-size:.95rem!important;font-weight:500!important}.admin-dash-map-link{display:none!important}.admin-dash-period-card{padding:1rem 1.1rem;border-radius:18px}.admin-dash-period-title{font-size:1.05rem}.admin-dash-period-pillars{padding:.65rem .1rem 0}.admin-dash-period-pillar .pillar-num{font-size:1.25rem}.admin-dash-kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:.55rem}.admin-dash-kpi-card{padding:.8rem .85rem;min-height:98px;border-radius:16px}}.portal-header-bell{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:99px;background:rgba(0,0,0,.04);border:1px solid rgba(0,0,0,.08);color:#1e293b;cursor:pointer;position:relative;transition:all .18s ease;flex-shrink:0}.portal-header-bell:hover{background:rgba(16,185,129,.12);color:#059669;border-color:rgba(16,185,129,.35);transform:scale(1.05)}.portal-header-bell.active{background:#ecfdf5;color:#059669;border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.15)}.portal-header-bell-icon.has-unread{color:#059669}.portal-header-bell-badge{position:absolute;top:-2px;right:-2px;min-width:17px;height:17px;border-radius:99px;padding:0 4px;background:#ef4444;color:#ffffff;font-size:.62rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:0 2px 6px rgba(239,68,68,.4);animation:pulseBellBadge 2s ease-in-out infinite}@keyframes pulseBellBadge{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes notificationPanelExpand{0%{opacity:0;transform:scale(.92) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}.portal-header-ann-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-width:calc(100vw - 24px);background:rgba(255,255,255,.98);backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);border-radius:20px;border:1px solid rgba(0,0,0,.08);box-shadow:0 20px 45px -5px rgba(0,0,0,.16),0 8px 16px -2px rgba(0,0,0,.06);z-index:1000;overflow:hidden;animation:notificationPanelExpand .2s cubic-bezier(.16,1,.3,1) forwards}.portal-header-ann-backdrop{display:none}.portal-header-ann-layer{display:contents}.portal-header-ann-layer[hidden]{display:none!important}@media (max-width:768px){.portal-header-ann-backdrop{display:block!important;position:fixed!important;inset:0!important;background:rgba(0,0,0,.45)!important;backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important;z-index:99998!important;animation:fadeIn .15s ease forwards!important}.portal-header-ann-panel{position:fixed!important;top:56px!important;left:0!important;right:0!important;bottom:auto!important;width:100%!important;max-width:100%!important;max-height:calc(100vh - 56px - 82px)!important;background:#ffffff!important;z-index:99999!important;border-radius:0 0 20px 20px!important;box-shadow:0 16px 48px -6px rgba(0,0,0,.3),0 0 0 1px rgba(0,0,0,.04)!important;transform-origin:top center!important;animation:notifSlideDown .25s cubic-bezier(.16,1,.3,1) forwards!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.portal-header-ann-body{max-height:calc(100vh - 56px - 82px - 56px)!important;flex:1 1 auto!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}}@keyframes notifSlideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.ann-close-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(0,0,0,.05);border:none;color:#64748b;cursor:pointer;transition:all .15s ease}.ann-close-btn:hover{background:rgba(0,0,0,.1);color:#0f172a;transform:scale(1.05)}@keyframes centerModalPop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.portal-header-ann-header{padding:.85rem 1.1rem;border-bottom:1px solid rgba(0,0,0,.06);display:flex;align-items:center;justify-content:space-between;background:#ffffff}.ann-bell-tag-icon{width:24px;height:24px;border-radius:7px;background:#ecfdf5;color:#059669;display:flex;align-items:center;justify-content:center}.ann-unread-pill{font-weight:800;border-radius:99px;background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.ann-count-pill,.ann-unread-pill{font-size:.65rem;padding:.15rem .55rem}.ann-count-pill{font-weight:700;border-radius:99px;background:#f1f5f9;color:#475569}.ann-mark-all-btn{background:transparent;border:none;font-size:.72rem;font-weight:700;color:#059669;cursor:pointer;padding:.2rem .4rem;border-radius:6px;transition:opacity .15s}.ann-mark-all-btn:hover{opacity:.75}.portal-header-ann-body{max-height:290px}.ann-item-row{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.04);display:flex;gap:.65rem;align-items:flex-start;transition:background .12s;text-decoration:none;color:inherit}.ann-item-row:hover{background:#f8fafc}.ann-item-row.unread{background:#f0fdf4}.ann-item-row.unread:hover{background:#e6f9ed}.ann-unread-dot{border-radius:50%;background:#059669;flex-shrink:0;margin-top:7px}.ann-item-icon{width:28px;height:28px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#f1f5f9;color:#64748b;margin-top:1px}.ann-item-icon.pinned{background:#fef3c7;color:#d97706}.ann-item-title{font-size:.82rem;color:#0f172a;font-weight:600;white-space:nowrap}.ann-item-row.unread .ann-item-title{font-weight:800;color:#047857}.ann-item-meta{display:flex;align-items:center;font-size:.68rem;color:#64748b;margin-top:.1rem}.ann-scope-tag{font-size:.62rem;font-weight:700;padding:1px 6px;border-radius:99px}.ann-scope-tag.admin{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.ann-scope-tag.faculty{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.ann-item-arrow{color:#94a3b8;flex-shrink:0;margin-top:5px}.student-hero-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem;padding:1.2rem 1.45rem;background:linear-gradient(135deg,#ffffff,#ecfdf5);border-radius:20px;border:1px solid rgba(16,185,129,.22);box-shadow:0 8px 24px -4px rgba(5,150,105,.08),0 2px 8px rgba(0,0,0,.02)}.student-hero-content{flex:1 1;min-width:220px}.student-hero-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;color:#047857;background:#ffffff;padding:.22rem .75rem;border-radius:99px;margin-bottom:.4rem;border:1px solid rgba(16,185,129,.3);box-shadow:0 1px 4px rgba(0,0,0,.03)}.student-pulse-dot{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.25)}.student-hero-name{margin:0;font-size:clamp(1.4rem,5vw,1.8rem);font-weight:800;color:#0f172a;letter-spacing:-.025em;line-height:1.2}.student-hero-sub{margin:.25rem 0 0;font-size:.8rem;color:#64748b;font-weight:500}.student-hero-meta{display:flex;align-items:center;gap:.5rem}.student-term-chip{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700;color:#047857;background:#ffffff;padding:.45rem .9rem;border-radius:99px;border:1px solid rgba(16,185,129,.28);box-shadow:0 2px 8px rgba(5,150,105,.08)}@media (min-width:769px){.portal-header-user{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:.5rem!important;padding:.3rem .65rem!important;border-radius:99px!important;background:rgba(0,0,0,.03)!important;border:1px solid rgba(0,0,0,.06)!important;color:#1d1d1f!important;font-size:.78rem!important;font-weight:600!important;height:34px!important;box-sizing:border-box!important;max-width:none!important;transition:all .15s ease!important;text-decoration:none!important;flex-shrink:0!important}.portal-header-user:hover{background:rgba(0,0,0,.06)!important;border-color:rgba(0,0,0,.1)!important;color:#1d1d1f!important}.portal-header-user-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;color:#4b5563!important;flex-shrink:0!important}.portal-header-user-name{display:inline-block!important;font-size:.78rem!important;font-weight:600!important;color:#1d1d1f!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:180px!important;line-height:1!important}.portal-header-user small,.portal-header-user-badge{display:inline-flex!important;align-items:center!important;padding:.12rem .45rem!important;border-radius:99px!important;background:rgba(0,0,0,.05)!important;color:#1d1d1f!important;font-size:.65rem!important;font-weight:700!important;line-height:1!important;margin:0!important}.portal-header-student .portal-header-user:hover{background:#ecfdf5!important;border-color:#a7f3d0!important}.portal-header-student .portal-header-user-badge{background:#ecfdf5!important;color:#047857!important;border:1px solid #a7f3d0!important}}.quick-smart-clock-card{background:#ffffff;border-radius:16px;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden;margin-bottom:.75rem}.quick-smart-clock-card:before{display:none!important}.qsc-card-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;background:#1e293b;color:#f8fafc}.qsc-clock-display{display:flex;align-items:baseline;gap:.3rem}.qsc-clock-time{font-size:1.35rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:#ffffff}.qsc-clock-ampm{font-size:.72rem;font-weight:700;color:#94a3b8;text-transform:uppercase}.qsc-window-tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:700;color:#94a3b8;background:rgba(255,255,255,.08);padding:.2rem .6rem;border-radius:99px;border:1px solid rgba(255,255,255,.1)}.qsc-window-dot{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 6px rgba(74,222,128,.6)}.qsc-card-body{padding:.75rem .9rem .65rem}.qsc-controls-row{display:flex;gap:.35rem;margin-bottom:.55rem;flex-wrap:wrap}.qsc-select{appearance:none;-webkit-appearance:none;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:.35rem 1.4rem .35rem .55rem;font-size:.72rem;font-weight:700;color:#334155;cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath fill='%2364748b' d='M0 0l4 4 4-4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .4rem center;transition:all .15s ease}.qsc-select:hover:not(:disabled){border-color:#cbd5e1;background:#e2e8f0}.qsc-select:disabled{opacity:.5;cursor:not-allowed}.qsc-timeline{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.7rem .5rem .6rem;margin-bottom:.55rem;position:relative}.qsc-timeline-track{position:absolute;top:28px;height:3px;background:#e2e8f0;z-index:0;border-radius:2px}.qsc-timeline-fill{height:100%;background:#3b82f6;border-radius:2px;transition:width .3s ease}.qsc-timeline-row{display:grid;position:relative;text-align:center;z-index:1}.qsc-punch-col{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}.qsc-punch-label{font-size:.6rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.qsc-punch-node{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.qsc-punch-node.done{background:#3b82f6;color:#ffffff;box-shadow:0 2px 8px rgba(59,130,246,.35)}.qsc-punch-node.current{background:#ffffff;border:2.5px solid #3b82f6;color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}.qsc-punch-pulse{width:7px;height:7px;border-radius:50%;background:#3b82f6;animation:pulse-dot 1.5s infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.qsc-punch-node.pending{background:#e2e8f0;border:1.5px solid #cbd5e1}.qsc-punch-empty{width:5px;height:5px;border-radius:50%;background:#cbd5e1}.qsc-punch-time{font-size:.7rem;font-weight:700;line-height:1.1;white-space:nowrap}.qsc-punch-time.recorded{color:#1e293b}.qsc-punch-time.empty{color:#94a3b8}.qsc-punch-meta{display:inline-flex;align-items:center;gap:3px;font-size:.58rem;font-weight:700;color:#64748b}.qsc-outside-dot{width:5px;height:5px;border-radius:50%;background:#f59e0b;box-shadow:0 0 4px rgba(245,158,11,.6);display:inline-block}.qsc-notice{display:flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;padding:.45rem .8rem;font-size:.76rem;font-weight:700;margin-bottom:.4rem}.qsc-notice.warning{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.qsc-notice.success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.qsc-notice.locked{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.qsc-notice.outside{background:#fffbeb;color:#b45309;border:1px solid #fde68a;font-size:.68rem;margin-top:.3rem}.qsc-action-area{margin:.4rem 0}.qsc-action-btn{width:100%;height:44px;background:#1e293b;color:#ffffff;border:none;border-radius:12px;font-size:.88rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;box-shadow:0 2px 8px rgba(30,41,59,.2);transition:all .15s ease}.qsc-action-btn:hover:not(:disabled){background:#334155;transform:translateY(-1px);box-shadow:0 4px 12px rgba(30,41,59,.3)}.qsc-action-btn:active:not(:disabled){transform:translateY(0)}.qsc-action-btn:disabled{opacity:.6;cursor:not-allowed}.qsc-action-btn.danger{background:#dc2626;box-shadow:0 2px 8px rgba(220,38,38,.25)}.qsc-action-btn.danger:hover:not(:disabled){background:#b91c1c}.qsc-footer{margin-top:.45rem}.qsc-progress-bar{height:3px;background:#e2e8f0;border-radius:99px;overflow:hidden}.qsc-progress-fill{height:100%;background:#3b82f6;transition:width .3s ease}.qsc-footer-labels{display:flex;justify-content:space-between;align-items:center;margin-top:.3rem;font-size:.68rem;color:#94a3b8;font-weight:600}.qsc-log-link{color:#3b82f6;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:3px}.qsc-log-link:hover{color:#1d4ed8;text-decoration:underline}.live-map-shell{position:fixed;z-index:30;top:62px;right:0;bottom:0;left:274px;width:auto;height:calc(100dvh - 62px);margin:0;border-radius:0;background:var(--gray-100)}.live-map-state-overlay{position:absolute;z-index:900;top:50%;left:50%;display:flex;max-width:min(24rem,calc(100% - 2rem));flex-direction:column;align-items:center;gap:.45rem;padding:1rem 1.25rem;border:1px solid rgba(255,255,255,.8);border-radius:var(--radius-lg);color:var(--gray-700);background:rgba(255,255,255,.92);box-shadow:var(--shadow-xl);text-align:center;pointer-events:none;transform:translate(-50%,-50%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.live-map-state-overlay p{margin:0;font-size:.875rem;font-weight:800}.live-map-state-overlay small{color:var(--text-muted);font-size:.75rem}.live-map-empty-overlay>svg{color:var(--primary);font-size:1.75rem}.live-map-empty-overlay{left:calc(50% + 10rem)}.live-map-overlay{position:absolute;z-index:1001;top:max(.75rem,env(safe-area-inset-top));left:max(.75rem,env(safe-area-inset-left));width:calc(100% - 1.5rem);pointer-events:none}.live-map-overlay>*{pointer-events:auto}.live-map-dropdown,.live-map-legend{border:1px solid rgba(255,255,255,.72);background:rgba(255,255,255,.94);box-shadow:var(--shadow-xl);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.live-map-toolbar{position:relative;display:flex;align-items:center;gap:.75rem;width:100%;overflow:visible}.live-map-toolbar-heading{display:flex;align-items:center;gap:.625rem;width:fit-content;max-width:100%;min-width:0;flex:0 0 auto;margin-bottom:0;padding:.5rem .75rem;border:1px solid rgba(255,255,255,.78);border-radius:var(--radius-lg);background:rgba(255,255,255,.94);box-shadow:var(--shadow-xl);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.live-map-toolbar-icon{width:2.25rem;height:2.25rem;flex:0 0 2.25rem;display:grid;place-items:center;border-radius:.75rem;color:var(--text-on-primary);background:linear-gradient(135deg,var(--primary),var(--primary-dark));font-size:1.25rem}.live-map-toolbar h1{color:var(--gray-900);font-size:1rem;line-height:1.2}.live-map-toolbar p{margin-top:.2rem;color:var(--text-muted);font-size:.75rem;font-weight:600}.live-map-action{display:inline-flex;min-width:5.5rem;min-height:2.75rem;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:.75rem;color:var(--gray-700);background:var(--bg-card);box-shadow:var(--shadow-md);font:inherit;font-size:.8rem;font-weight:700;white-space:nowrap;transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.live-map-toolbar-actions{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:nowrap;min-width:0}.live-map-menu-button>span{max-width:10rem;overflow:hidden;text-overflow:ellipsis}.live-map-menu-button>svg:last-child{flex:0 0 auto;transition:transform var(--transition)}.live-map-menu-button>svg:last-child.is-open{transform:rotate(180deg)}.live-map-action:hover:not(:disabled){border-color:var(--green-300);background:var(--primary-light);color:var(--primary-dark)}.live-map-action:active:not(:disabled),.live-map-person:active{transform:scale(.98)}.live-map-action:disabled{cursor:wait;opacity:.6}.live-map-search-wrap{position:relative;min-width:0}.live-map-search-wrap>svg{position:absolute;z-index:1;top:50%;left:.75rem;color:var(--text-muted);transform:translateY(-50%);pointer-events:none}.live-map-search-wrap .form-input{min-height:2.75rem;padding-left:2.25rem;background:rgba(255,255,255,.92)}.live-map-hte-select{min-height:2.75rem;font-size:.8rem;background-color:rgba(255,255,255,.92)}.live-map-dropdown{position:absolute;z-index:1002;top:calc(100% + .5rem);left:0;width:min(22rem,calc(100vw - 2rem));max-height:calc(100dvh - 10rem);padding:.875rem;overflow:auto;border-radius:var(--radius-lg)}.live-map-dropdown-field{display:grid;gap:.45rem;color:var(--gray-700);font-size:.78rem;font-weight:800}.live-map-dropdown-field .form-input{min-height:2.75rem;background-color:rgba(255,255,255,.96)}.live-map-dropdown-field+.live-map-dropdown-field{margin-top:.75rem}.live-map-people-panel{max-height:none;overflow:visible}.live-map-people-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.625rem}.live-map-people-panel-header>div{display:flex;align-items:center;gap:.45rem;min-width:0}.live-map-people-panel-header strong{overflow:hidden;color:var(--gray-900);font-size:.875rem;text-overflow:ellipsis;white-space:nowrap}.live-map-people-panel-header span{display:inline-grid;min-width:1.5rem;height:1.5rem;padding:0 .35rem;place-items:center;border-radius:var(--radius-full);color:var(--primary-dark);background:var(--primary-light);font-size:.7rem;font-weight:800}.live-map-people-panel-header button{min-height:2.25rem;flex:0 0 auto;padding:.35rem .55rem;border:0;border-radius:.5rem;color:var(--primary-dark);background:var(--primary-light);font:inherit;font-size:.72rem;font-weight:800}.live-map-people-search{margin:0 0 .625rem}.live-map-people-list{max-height:min(21rem,calc(100dvh - 19rem));overflow-y:auto;border-top:1px solid var(--border)}.live-map-people-list>p{padding:1rem;color:var(--text-muted);font-size:.82rem;text-align:center}.live-map-person{display:flex;width:100%;min-height:3.5rem;align-items:center;gap:.625rem;padding:.5rem .25rem;border:0;border-bottom:1px solid var(--border);color:var(--text);background:transparent;font:inherit;text-align:left;transition:background var(--transition),color var(--transition),transform var(--transition)}.live-map-person.is-selected,.live-map-person:hover{color:var(--primary-dark);background:var(--primary-light)}.live-map-person-avatar{display:grid;width:2rem;height:2rem;flex:0 0 2rem;place-items:center;border-radius:50%;color:var(--gray-700);background:var(--gray-200);font-size:.75rem;font-weight:800}.live-map-person.is-selected .live-map-person-avatar{color:var(--text-on-primary);background:var(--primary)}.live-map-person-copy{display:grid;min-width:0;flex:1 1;gap:.1rem}.live-map-person-copy small,.live-map-person-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-map-person-copy strong{font-size:.8rem}.live-map-person-copy small{color:var(--text-muted);font-size:.7rem}.live-map-person .has-location{color:var(--primary)}.live-map-person .no-location{color:var(--gray-300)}.live-map-legend{width:fit-content;max-width:100%;gap:.5rem .75rem;margin-top:.625rem;padding:.5rem .75rem;border-radius:var(--radius);font-weight:700}.live-map-legend span{display:inline-flex;align-items:center;gap:.3rem}.live-map-legend i{width:.65rem;height:.65rem;border:1px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.1)}.live-map-canvas--fullscreen .leaflet-top.leaflet-left{top:auto;right:max(.75rem,env(safe-area-inset-right));bottom:max(.75rem,env(safe-area-inset-bottom));left:auto}.live-map-history{position:absolute;z-index:1000;top:14rem;bottom:.75rem;left:max(.75rem,env(safe-area-inset-left));display:flex;width:min(20rem,calc(100% - 1.5rem));min-height:0;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.82);border-radius:1rem;background:rgba(255,255,255,.96);box-shadow:0 12px 36px rgba(15,23,42,.16);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.live-map-history.is-empty{bottom:auto;height:13rem}.live-map-history-header{display:flex;min-height:4.25rem;align-items:center;justify-content:space-between;gap:.5rem;padding:.7rem .85rem;border-bottom:1px solid var(--border)}.live-map-history-heading{display:flex;min-width:0;align-items:center;gap:.6rem}.live-map-history-icon{display:grid;width:2.25rem;height:2.25rem;flex:0 0 2.25rem;place-items:center;border-radius:.75rem;color:var(--primary-dark);background:var(--primary-light);font-size:1.15rem}.live-map-history-heading h2{margin:0;color:var(--gray-900);font-size:.9rem;line-height:1.2}.live-map-history-heading p{margin:.2rem 0 0;color:var(--text-muted);font-size:.7rem;font-weight:600}.live-map-history-clear{display:grid;width:2.25rem;height:2.25rem;flex:0 0 2.25rem;place-items:center;border:0;border-radius:.7rem;color:var(--gray-600);background:var(--gray-100);font-size:1.1rem}.live-map-history-clear:hover{color:var(--gray-900);background:var(--gray-200)}.live-map-history-list{min-height:0;flex:1 1;overflow-y:auto;overscroll-behavior:contain}.live-map-history-person+.live-map-history-person{border-top:1px solid var(--border)}.live-map-history-person-button{display:flex;width:100%;min-height:3.5rem;align-items:center;gap:.6rem;padding:.55rem .8rem;border:0;color:var(--gray-800);background:transparent;font:inherit;text-align:left}.live-map-history-person-button.is-selected,.live-map-history-person-button:hover{color:var(--primary-dark);background:var(--primary-light)}.live-map-history-avatar{display:grid;width:2rem;height:2rem;flex:0 0 2rem;place-items:center;border-radius:50%;color:var(--gray-700);background:var(--gray-200);font-size:.75rem;font-weight:800}.live-map-history-person-button.is-selected .live-map-history-avatar{color:white;background:var(--primary)}.live-map-history-event-copy,.live-map-history-person-copy{display:grid;min-width:0;flex:1 1;gap:.12rem}.live-map-history-event-copy small,.live-map-history-event-copy strong,.live-map-history-person-copy small,.live-map-history-person-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-map-history-person-copy strong{font-size:.78rem}.live-map-history-person-copy small{color:var(--text-muted);font-size:.67rem}.live-map-history-count{display:grid;min-width:1.5rem;height:1.5rem;padding:0 .3rem;place-items:center;border-radius:999px;color:var(--primary-dark);background:var(--primary-light);font-size:.67rem;font-weight:800}.live-map-history-events{display:grid;padding:0 .65rem .6rem 1.45rem}.live-map-history-event{display:flex;min-width:0;min-height:2.65rem;align-items:center;gap:.5rem;padding:.35rem .4rem;border:0;border-left:1px solid var(--gray-200);color:var(--gray-700);background:transparent;font:inherit;text-align:left}.live-map-history-event:not(:disabled):hover{border-radius:0 .5rem .5rem 0;color:var(--primary-dark);background:var(--primary-light)}.live-map-history-event:disabled{cursor:default;opacity:.6}.live-map-history-event-dot{width:.45rem;height:.45rem;flex:0 0 0.45rem;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.live-map-history-event-copy strong{color:var(--gray-800);font-size:.7rem}.live-map-history-event-copy small{color:var(--text-muted);font-size:.63rem}.live-map-history-event time{flex:0 0 auto;color:var(--gray-600);font-size:.62rem;font-weight:700}.live-map-history-empty{display:grid;min-height:7rem;align-content:center;justify-items:center;gap:.45rem;padding:1rem;color:var(--text-muted);text-align:center}.live-map-history-empty>svg{color:var(--primary);font-size:1.5rem}.live-map-history-empty strong{color:var(--gray-800);font-size:.8rem}.live-map-history-empty span{font-size:.7rem}@media (min-width:1025px){.map-layout:has(.sidebar.is-collapsed) .live-map-shell{left:0}}@media (max-width:1024px){.live-map-shell{left:0;top:0;height:100dvh}.live-map-overlay{top:max(.75rem,env(safe-area-inset-top))}.live-map-toolbar{gap:0}.live-map-toolbar-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);margin:-1px;padding:0;border:0}.live-map-toolbar-actions{justify-content:stretch}.live-map-action,.live-map-history-control{flex:1 1;min-width:0}.live-map-action{min-height:2.4rem;padding:.25rem}.live-map-button-label,.live-map-menu-button>svg:last-child{display:none}.live-map-history-toggle{width:100%;min-width:0;min-height:2.4rem;padding:.25rem}.live-map-history-toggle>small,.live-map-history-toggle>span,.live-map-history-toggle>svg:last-child{display:none}}@media (max-width:760px){.live-map-overlay{top:max(.5rem,env(safe-area-inset-top));left:max(.5rem,env(safe-area-inset-left));width:calc(100% - 1rem)}.live-map-toolbar{gap:0}.live-map-toolbar-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);margin:-1px;padding:0;border:0}.live-map-toolbar-actions{display:flex;width:100%;justify-content:stretch;flex-wrap:nowrap;gap:.35rem}.live-map-action{min-height:2.4rem;width:auto;flex:1 1;min-width:0;padding:.25rem;border-radius:.62rem;box-shadow:0 3px 10px rgba(15,23,42,.12)}.live-map-button-label,.live-map-menu-button>svg:last-child{display:none}.live-map-action>svg:first-child{width:1.1rem;height:1.1rem}.live-map-history{top:calc(100% + .5rem);bottom:auto;right:0;left:auto;width:min(18rem,calc(100vw - 1rem));height:min(18rem,40vh);border-radius:.85rem}.live-map-history.is-empty{height:auto}.live-map-history-header{min-height:3.7rem;padding:.55rem .65rem}.live-map-history-icon{width:1.9rem;height:1.9rem;flex-basis:1.9rem;font-size:1rem}.live-map-history-heading h2{font-size:.78rem}.live-map-history-heading p{font-size:.63rem}.live-map-history-person-button{min-height:3rem;gap:.45rem;padding:.45rem .55rem}.live-map-history-avatar{width:1.7rem;height:1.7rem;flex-basis:1.7rem;font-size:.68rem}.live-map-history-person-copy strong{font-size:.68rem}.live-map-history-person-copy small{font-size:.59rem}.live-map-history-count{min-width:1.25rem;height:1.25rem;font-size:.6rem}.live-map-history-events{padding:0 .35rem .4rem .9rem}.live-map-history-event{min-height:2.25rem;gap:.35rem;padding:.25rem}.live-map-history-event-copy strong{font-size:.61rem}.live-map-history-event time,.live-map-history-event-copy small{font-size:.56rem}.live-map-empty-overlay,.live-map-legend{display:none}.live-map-dropdown{width:100%;max-height:calc(100dvh - 11rem)}.live-map-people-list{max-height:calc(100dvh - 15rem)}}@media (max-width:420px){.live-map-toolbar-heading{gap:.5rem;padding:.4rem .6rem}.live-map-toolbar-icon{width:2rem;height:2rem;flex-basis:2rem;font-size:1rem}.live-map-toolbar h1{font-size:.88rem}.live-map-toolbar p{font-size:.68rem}.live-map-toolbar-actions{gap:.3rem}.live-map-action{min-height:2.25rem;padding:.2rem;font-size:.68rem}.live-map-legend{font-size:.65rem}}@media (max-width:768px){.live-map-shell{top:calc(72px + env(safe-area-inset-top, 0px));height:calc(100dvh - 72px - env(safe-area-inset-top, 0px))}.dashboard-layout:has(.portal-header) .live-map-toolbar h1{font-size:.9rem!important;line-height:1.2!important;letter-spacing:-.01em!important}.dashboard-layout:has(.portal-header) .live-map-history-heading h2{font-size:.78rem!important;line-height:1.2!important}}@media (max-width:640px){.qsc-card-header{padding:.6rem .85rem}.qsc-clock-time{font-size:1.2rem}.qsc-card-body{padding:.65rem .75rem .55rem}.qsc-controls-row{gap:.3rem}.qsc-select{font-size:.7rem;padding:.3rem 1.3rem .3rem .5rem}.qsc-timeline{padding:.6rem .4rem .5rem}.qsc-action-btn{height:44px;font-size:.86rem}}.live-map-canvas--fullscreen{height:calc(100% - 3.25rem)!important}.live-map-legend{position:absolute;z-index:1002;right:0;bottom:0;left:0;display:flex;width:100%;max-width:none;min-height:3.25rem;align-items:center;justify-content:center;gap:.45rem 1rem;margin:0;padding:.45rem 1rem;border:0;border-top:1px solid rgba(15,23,42,.1);border-radius:0;color:var(--gray-700);background:rgba(255,255,255,.97);box-shadow:0 -4px 18px rgba(15,23,42,.08);font-size:.7rem;flex-wrap:wrap;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.live-map-history-control{position:relative;z-index:1004;flex:0 0 auto;pointer-events:auto}.live-map-history-toggle{display:inline-flex;min-width:7rem;min-height:2.75rem;align-items:center;justify-content:center;gap:.45rem;padding:.45rem .7rem;border:1px solid rgba(255,255,255,.86);border-radius:.8rem;color:var(--gray-800);background:rgba(255,255,255,.97);box-shadow:var(--shadow-md);font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;pointer-events:auto;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.live-map-history-toggle:hover,.live-map-history-toggle[aria-expanded=true]{border-color:var(--green-300);color:var(--primary-dark);background:var(--primary-light)}.live-map-history-toggle>svg:first-child{color:var(--primary);font-size:1.05rem}.live-map-history-toggle>svg:last-child{transition:transform var(--transition)}.live-map-history-toggle>svg:last-child.is-open{transform:rotate(180deg)}.live-map-history-toggle small{display:grid;min-width:1.3rem;height:1.3rem;padding:0 .25rem;place-items:center;border-radius:99px;color:var(--primary-dark);background:var(--primary-light);font-size:.65rem;font-weight:800}.live-map-history-control .live-map-history{position:absolute;z-index:1005;top:calc(100% + .5rem);right:0;bottom:auto;left:auto;width:min(22rem,calc(100vw - 2rem));height:min(36rem,calc(100dvh - 15rem))}.live-map-history-control .live-map-history.is-empty{height:13rem}.live-map-history[hidden]{display:none}.live-map-history-control .live-map-history{pointer-events:auto}.live-map-history-header-actions{display:flex;flex:0 0 auto;align-items:center;gap:.4rem}.live-map-history-clear{width:auto;min-height:2.25rem;padding:.35rem .55rem;border-radius:.55rem;color:var(--primary-dark);background:var(--primary-light);font:inherit;font-size:.68rem;font-weight:800;white-space:nowrap}.live-map-history-close{display:grid;width:2.25rem;height:2.25rem;flex:0 0 2.25rem;place-items:center;border:0;border-radius:.65rem;color:var(--gray-700);background:var(--gray-100);font-size:1.1rem;cursor:pointer}.live-map-history-close:hover{color:var(--gray-900);background:var(--gray-200)}.live-map-history-clear:focus-visible,.live-map-history-close:focus-visible,.live-map-history-event:focus-visible,.live-map-history-person-button:focus-visible,.live-map-history-toggle:focus-visible{outline:3px solid var(--primary);outline-offset:2px}@media (max-width:768px){.live-map-shell{top:calc(72px + env(safe-area-inset-top, 0px));right:0;bottom:calc(6rem + env(safe-area-inset-bottom, 0px));left:0;height:auto}.live-map-canvas--fullscreen{height:calc(100% - 3.5rem)!important}.live-map-legend{min-height:3.5rem;justify-content:flex-start;gap:.35rem .7rem;padding:.35rem .6rem;font-size:.64rem}.live-map-history-control{min-width:0;flex:1 1}.live-map-history-toggle{width:100%;min-width:0;min-height:2.4rem;gap:.35rem;padding:.25rem;border-radius:.7rem;font-size:.72rem}.live-map-history-toggle>small,.live-map-history-toggle>span,.live-map-history-toggle>svg:last-child{display:none}.live-map-history-toggle>svg:first-child{font-size:1.1rem}.live-map-history-control .live-map-history{top:calc(100% + .5rem);width:min(18rem,calc(72vw - env(safe-area-inset-right)));height:min(34rem,calc(100dvh - 22rem));border-radius:.85rem}.live-map-history-control .live-map-history.is-empty{height:13rem}.live-map-legend{display:flex}}@media (max-width:420px){.live-map-legend{gap:.3rem .55rem;font-size:.6rem}}.student-leader-page{display:flex;width:min(100%,84rem);flex-direction:column;gap:1rem;margin:0 auto;padding:clamp(1rem,2vw,1.75rem)}.student-leader-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.student-leader-eyebrow,.student-leader-hte{display:inline-flex;align-items:center;gap:.4rem}.student-leader-eyebrow{margin-bottom:.35rem;color:var(--primary-dark);font-size:.73rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.student-leader-header h1{color:var(--gray-900);font-size:clamp(1.45rem,2vw,1.9rem);line-height:1.2}.student-leader-header p{max-width:45rem;margin:.35rem 0 .65rem;color:var(--text-muted);font-size:.88rem;line-height:1.5}.student-leader-hte{color:var(--gray-700);font-size:.82rem;font-weight:800}.student-leader-hte svg{color:var(--primary)}.student-leader-header-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:.5rem;padding-top:.5rem}.student-leader-header-actions button{min-height:2.75rem;gap:.4rem}.student-leader-live-line{display:flex;min-height:2.6rem;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);color:var(--gray-700);background:var(--bg-card);font-size:.76rem;font-weight:700}.student-leader-live-dot{width:.55rem;height:.55rem;flex:0 0 0.55rem;border-radius:50%;background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)}.student-leader-refresh-time{margin-left:auto;color:var(--text-muted);font-size:.72rem;font-weight:600}.student-leader-hint{margin:-.6rem 0 0;color:var(--text-muted);font-size:.74rem}.student-leader-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.7rem}.student-leader-stat{display:flex;min-width:0;min-height:6rem;align-items:center;gap:.7rem;padding:.85rem}.student-leader-stat-icon{display:grid;width:2.6rem;height:2.6rem;flex:0 0 2.6rem;place-items:center;border-radius:.8rem;font-size:1.2rem}.student-leader-stat-icon.is-green{color:#087f5b;background:#e7f7ef}.student-leader-stat-icon.is-blue{color:#2563eb;background:#eff6ff}.student-leader-stat-icon.is-amber{color:#b45309;background:#fffbeb}.student-leader-stat-icon.is-red{color:#b91c1c;background:#fef2f2}.student-leader-stat-icon.is-purple{color:#6d28d9;background:#f5f3ff}.student-leader-stat>div{display:flex;min-width:0;flex-direction:column;gap:.15rem}.student-leader-stat>div>span{color:var(--text-muted);font-size:.7rem;font-weight:700}.student-leader-stat>div>strong{color:var(--gray-900);font-size:1.25rem;line-height:1.15}.student-leader-panel{overflow:hidden}.student-leader-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--border)}.student-leader-panel-heading h2{color:var(--gray-900);font-size:.98rem}.student-leader-panel-heading p{margin-top:.25rem;color:var(--text-muted);font-size:.74rem;line-height:1.4}.student-leader-panel-heading>span{flex:0 0 auto;color:var(--text-muted);font-size:.72rem;font-weight:700}.student-leader-student-list{display:flex;flex-direction:column}.student-leader-student-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(130px,.8fr) minmax(110px,1fr) minmax(130px,.9fr) minmax(120px,.9fr);align-items:center;gap:.8rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--border)}.student-leader-student-row:last-child{border-bottom:0}.student-leader-student-identity{display:flex;min-width:0;align-items:center;gap:.65rem}.student-leader-avatar{display:grid;width:2.45rem;height:2.45rem;flex:0 0 2.45rem;place-items:center;border-radius:50%;color:var(--primary-dark);background:var(--primary-light);font-size:.75rem;font-weight:800}.student-leader-last-activity,.student-leader-progress-copy,.student-leader-student-identity>div{display:flex;min-width:0;flex-direction:column;gap:.2rem}.student-leader-last-activity strong,.student-leader-student-identity strong{overflow:hidden;color:var(--gray-900);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.student-leader-last-activity>span,.student-leader-progress-copy>span,.student-leader-student-identity span:not(.student-leader-avatar){color:var(--text-muted);font-size:.68rem}.student-leader-progress-copy strong{color:var(--gray-900);font-size:.77rem;white-space:nowrap}.student-leader-progress-copy strong span{color:var(--text-muted);font-weight:600}.student-leader-progress-track{height:.55rem;overflow:hidden;border-radius:99px;background:var(--gray-100)}.student-leader-progress-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#36b37e);transition:width .22s ease}.student-leader-status{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;color:var(--text-muted);font-size:.69rem;font-weight:700}.student-leader-status.is-checked-in{color:#087f5b}.student-leader-status.is-completed{color:#2563eb}.student-leader-status>span{padding:.15rem .35rem;border-radius:99px;color:#92400e;background:#fffbeb;font-size:.6rem}.student-leader-status>span:last-child{color:#b91c1c;background:#fef2f2}.student-leader-activity-panel{margin-bottom:1rem}.student-leader-event-list{display:flex;flex-direction:column}.student-leader-event-row{display:flex;min-width:0;align-items:center;gap:.75rem;padding:.75rem 1.1rem;border-bottom:1px solid var(--border)}.student-leader-event-row:last-child{border-bottom:0}.student-leader-event-icon{display:grid;width:2.25rem;height:2.25rem;flex:0 0 2.25rem;place-items:center;border-radius:50%}.student-leader-event-icon.is-in{color:#087f5b;background:#e7f7ef}.student-leader-event-icon.is-out{color:#2563eb;background:#eff6ff}.student-leader-event-main{display:flex;min-width:9rem;flex:1 1 auto;flex-direction:column;gap:.2rem}.student-leader-event-main strong{overflow:hidden;color:var(--gray-900);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.student-leader-event-main>span{color:var(--text-muted);font-size:.7rem}.student-leader-event-badges{display:flex;flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;gap:.3rem}.student-leader-badge{display:inline-flex;min-height:1.65rem;align-items:center;gap:.25rem;padding:.15rem .45rem;border:1px solid transparent;border-radius:99px;font-size:.62rem;font-weight:800;white-space:nowrap}.student-leader-badge svg{font-size:.75rem}.student-leader-badge.is-success{color:#087f5b;background:#e7f7ef;border-color:#b8ead2}.student-leader-badge.is-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.student-leader-badge.is-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.student-leader-badge.is-muted{color:var(--gray-700);background:var(--gray-50);border-color:var(--border)}.student-leader-new-activity{padding:.75rem .9rem;border:1px solid #a7f3d0;border-radius:var(--radius);background:#f0fdf4}.student-leader-new-activity-heading{display:flex;align-items:center;gap:.4rem;color:#065f46;font-size:.78rem;font-weight:800}.student-leader-new-activity-heading button{min-height:2.25rem;margin-left:auto;padding:.3rem .5rem;border:0;border-radius:.5rem;color:#065f46;background:transparent;font:inherit;font-size:.7rem;cursor:pointer}.student-leader-new-activity-heading button:hover{background:#dcfce7}.student-leader-new-activity-item{display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin-top:.45rem;color:#14532d;font-size:.72rem}.student-leader-error{display:flex;align-items:center;gap:.75rem;padding:1rem;color:#991b1b}.student-leader-error>svg{flex:0 0 auto;font-size:1.2rem}.student-leader-error>div{flex:1 1 auto}.student-leader-error p{margin-top:.2rem;font-size:.76rem}.student-leader-empty,.student-leader-no-events{display:flex;min-height:7rem;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.25rem;color:var(--text-muted);text-align:center}.student-leader-empty>svg,.student-leader-no-events>svg{color:var(--primary);font-size:1.4rem}.student-leader-empty h2{color:var(--gray-800);font-size:.9rem}.student-leader-empty p{max-width:34rem;font-size:.75rem;line-height:1.5}.student-leader-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;padding:.4rem;border:1px solid var(--border);border-radius:1rem;background:var(--bg-card)}.student-leader-tabs a{display:flex;min-width:0;min-height:2.75rem;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .7rem;border:1px solid transparent;border-radius:.7rem;color:var(--gray-700);font-size:.77rem;font-weight:750;text-align:center;text-decoration:none;transition:background-color .14s ease,color .14s ease,border-color .14s ease}.student-leader-tabs a:hover{color:var(--primary-dark);background:var(--gray-50)}.student-leader-tabs a:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.student-leader-tabs a.is-active{color:var(--primary-dark);border-color:rgba(8,127,91,.18);background:var(--primary-light)}.student-leader-tabs a svg{flex:0 0 auto;font-size:1rem}.student-leader-map-controls{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;padding:.8rem}.student-leader-history-filters label,.student-leader-map-controls label{display:flex;min-width:min(100%,13rem);flex-direction:column;gap:.35rem;color:var(--gray-700);font-size:.72rem;font-weight:750}.student-leader-map-controls label{flex:1 1 13rem}.student-leader-map-controls label>svg{display:none}.student-leader-history-filters input,.student-leader-history-filters select,.student-leader-map-controls input,.student-leader-map-controls select{width:100%;min-height:2.75rem;padding:.55rem .7rem;border:1px solid var(--border);border-radius:.65rem;color:var(--gray-900);background:var(--bg-card);font:inherit;font-size:.82rem}.student-leader-history-filters input:focus-visible,.student-leader-history-filters select:focus-visible,.student-leader-map-controls input:focus-visible,.student-leader-map-controls select:focus-visible{outline:3px solid rgba(8,127,91,.35);outline-offset:1px}.student-leader-history-count,.student-leader-map-point-count{display:inline-flex;min-height:2.75rem;align-items:center;padding:0 .75rem;border-radius:.65rem;color:var(--primary-dark);background:var(--primary-light);font-size:.76rem;font-weight:800;white-space:nowrap}.student-leader-map-card{position:relative;min-height:26rem;height:min(68vh,52rem);overflow:hidden;padding:0}.student-leader-map-canvas{width:100%;height:100%;min-height:26rem;border-radius:inherit}.student-leader-map-empty{position:absolute;z-index:500;top:1rem;left:50%;display:flex;width:min(calc(100% - 2rem),25rem);flex-direction:column;align-items:center;gap:.35rem;padding:.8rem 1rem;transform:translateX(-50%);border:1px solid var(--border);border-radius:.85rem;color:var(--gray-700);background:var(--bg-card);box-shadow:0 8px 25px rgba(15,23,42,.12);text-align:center;pointer-events:none}.student-leader-map-empty svg{color:var(--primary);font-size:1.15rem}.student-leader-map-empty strong{color:var(--gray-900);font-size:.82rem}.student-leader-map-empty span{font-size:.7rem;line-height:1.4}.student-leader-map-state{position:absolute;z-index:600;top:50%;left:50%;display:flex;max-width:calc(100% - 2rem);align-items:center;gap:.5rem;padding:.8rem 1rem;transform:translate(-50%,-50%);border:1px solid var(--border);border-radius:.75rem;color:var(--gray-800);background:var(--bg-card);box-shadow:0 8px 25px rgba(15,23,42,.14);font-size:.8rem}.student-leader-map-state.is-error{color:#991b1b}.student-leader-map-state .btn{min-height:2.5rem;white-space:nowrap}.student-leader-map-legend{display:flex;min-height:2.65rem;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.55rem .85rem;border:1px solid var(--border);border-radius:.75rem;color:var(--gray-700);background:var(--bg-card);font-size:.7rem;font-weight:700}.student-leader-map-legend span{display:inline-flex;align-items:center;gap:.35rem}.student-leader-map-legend i{width:.65rem;height:.65rem;border-radius:50%;background:#059669}.student-leader-map-legend i.is-outside{background:#dc2626}.student-leader-map-legend i.is-geofence{width:.8rem;height:.8rem;border:2px solid #07875b;background:transparent}.student-leader-map-updated{margin-left:auto;color:var(--text-muted);font-weight:600}.student-leader-history-filters{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;padding:.8rem}.student-leader-history-filters label{flex:1 1 10rem}.student-leader-history-count{margin-left:auto}.student-leader-history-list{display:grid;gap:.65rem}.student-leader-history-record{overflow:hidden}.student-leader-history-record>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.student-leader-history-record>header>div,.student-leader-history-total{display:flex;min-width:0;flex-direction:column;gap:.2rem}.student-leader-history-record>header strong{color:var(--gray-900);font-size:.82rem}.student-leader-history-record>header span{color:var(--text-muted);font-size:.7rem}.student-leader-history-total{align-items:flex-end;flex:0 0 auto}.student-leader-history-total strong{color:var(--primary-dark)!important;font-size:.9rem!important}.student-leader-history-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;padding:.75rem 1rem}.student-leader-history-times>div{display:flex;min-width:0;flex-direction:column;gap:.2rem}.student-leader-history-times span{color:var(--text-muted);font-size:.65rem}.student-leader-history-times strong{color:var(--gray-900);font-size:.8rem}.student-leader-history-locations{display:flex;flex-wrap:wrap;gap:.4rem .75rem;padding:0 1rem .8rem}.student-leader-history-locations>span{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.student-leader-history-locations>span>strong{color:var(--gray-700);font-size:.66rem}.student-leader-notification-date{color:var(--text-muted);font-size:.67rem}@media (max-width:1040px){.student-leader-student-row{grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) minmax(125px,1fr)}.student-leader-progress-track{grid-column:2}.student-leader-status{grid-column:3;grid-row:1/span 2}.student-leader-last-activity{grid-column:1}}@media (max-width:680px){.student-leader-page{width:100%;min-width:0;gap:.75rem;padding:.8rem 0 1rem;overflow-x:hidden}.student-leader-header{flex-direction:column;gap:.65rem}.student-leader-header-actions{width:100%;min-width:0;justify-content:stretch;padding-top:0}.student-leader-header-actions button{min-width:0;flex:1 1;justify-content:center;padding-inline:.5rem;font-size:.74rem;white-space:normal}.student-leader-live-line{flex-wrap:wrap;font-size:.7rem}.student-leader-refresh-time{font-size:.67rem}.student-leader-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.student-leader-stat{min-height:5.3rem;gap:.5rem;padding:.65rem}.student-leader-stat-icon{width:2.15rem;height:2.15rem;flex-basis:2.15rem;border-radius:.65rem;font-size:1rem}.student-leader-stat>div>span{font-size:.63rem}.student-leader-stat>div>strong{font-size:1.05rem}.student-leader-panel-heading{align-items:flex-start;gap:.5rem;padding:.8rem}.student-leader-panel-heading>div{min-width:0}.student-leader-panel-heading h2{font-size:.88rem}.student-leader-panel-heading p{font-size:.68rem}.student-leader-panel-heading>span{min-width:0;font-size:.65rem;text-align:right;white-space:normal}.student-leader-student-row{grid-template-columns:minmax(0,1fr) auto;gap:.5rem .65rem;padding:.75rem .8rem}.student-leader-student-identity{grid-column:1/-1}.student-leader-progress-copy{grid-column:1}.student-leader-progress-track{grid-column:1/-1;grid-row:auto}.student-leader-status{grid-column:2;grid-row:2;justify-content:flex-end;text-align:right}.student-leader-last-activity{grid-column:1/-1}.student-leader-event-row{align-items:flex-start;flex-wrap:wrap;gap:.5rem;padding:.7rem .8rem}.student-leader-event-main{min-width:0;flex:1 1}.student-leader-event-badges{max-width:100%;padding-left:2.75rem;justify-content:flex-start}.student-leader-error{min-width:0;flex-wrap:wrap}.student-leader-error>div{flex-basis:calc(100% - 2.5rem)}.student-leader-error .btn{margin-left:2rem}.student-leader-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.35rem}.student-leader-tabs a{min-height:2.65rem;justify-content:flex-start;padding:.5rem .6rem;font-size:.72rem}.student-leader-map-controls{align-items:stretch;gap:.55rem}.student-leader-history-filters label,.student-leader-map-controls label{min-width:100%;flex-basis:100%}.student-leader-map-point-count{min-height:2.4rem}.student-leader-map-card{height:58vh;min-height:23rem}.student-leader-map-canvas{min-height:23rem}.student-leader-map-updated{width:100%;margin-left:0}.student-leader-history-filters{align-items:stretch;gap:.55rem}.student-leader-history-filters label:last-of-type{min-width:100%}.student-leader-history-count{min-height:2.35rem;margin-left:0}.student-leader-history-times{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:.7rem;padding-inline:.8rem}.student-leader-history-locations{padding-inline:.8rem}.student-leader-history-record>header{flex-wrap:wrap}.student-leader-history-record>header>div:first-child{min-width:0;flex:1 1 12rem}.student-leader-history-total{max-width:100%;align-items:flex-start;text-align:left}.student-leader-map-state{max-width:calc(100% - 1.5rem);flex-wrap:wrap}.student-leader-map-state .btn{white-space:normal}}@media (prefers-reduced-motion:reduce){.student-leader-progress-track>span,.student-leader-tabs a{transition:none}}.student-leader-page{width:min(100%,76rem);gap:.9rem;padding:clamp(.75rem,1.5vw,1.25rem) clamp(.25rem,1vw,.75rem) 2rem}.student-leader-page .card{border:1px solid #dfe7e2;border-radius:16px;box-shadow:0 1px 2px rgba(23,46,39,.04),0 6px 18px -10px rgba(23,46,39,.12)}.student-leader-header{padding:18px 20px;border:solid #065a42;border-width:1px 1px 5px;border-radius:18px;background:linear-gradient(160deg,#0a8662,#087455 55%,#06614a);box-shadow:0 14px 24px -12px rgba(4,71,52,.6)}.student-leader-header .student-leader-eyebrow,.student-leader-header .student-leader-hte,.student-leader-header .student-leader-hte svg,.student-leader-header h1,.student-leader-header p{color:#ffffff}.student-leader-header p{opacity:.88}.student-leader-header .student-leader-hte{padding:3px 12px;border-radius:99px;background:rgba(255,255,255,.16)}.student-leader-header-actions .btn{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.14);color:#ffffff;box-shadow:none}.student-leader-header-actions .btn:hover:not(:disabled){border-color:rgba(255,255,255,.65);background:rgba(255,255,255,.24)}.student-leader-tabs{gap:.3rem;padding:.3rem;border-color:#dfe7e2;border-radius:14px;box-shadow:0 4px 14px -12px rgba(23,46,39,.35)}.student-leader-tabs a{min-height:2.9rem;border-radius:10px}.student-leader-tabs a.is-active{color:#065a42;border-color:#bfe0d0;background:#e8f4ee;box-shadow:inset 0 0 0 1px rgba(8,116,85,.04)}.student-leader-live-line{border-radius:14px;border-color:#dfe7e2;background:#f7faf8}.student-leader-stat{border-radius:14px;box-shadow:none}.student-leader-panel-heading{background:#f7faf8}.student-leader-history-filters,.student-leader-map-controls{border-color:#dfe7e2;background:#f7faf8}.student-leader-history-filters label,.student-leader-map-controls label{color:#596c64;letter-spacing:.02em;text-transform:uppercase}.student-leader-history-filters input,.student-leader-history-filters select,.student-leader-map-controls input,.student-leader-map-controls select{border-color:#dfe7e2;border-radius:10px;background:#ffffff}.student-leader-history-filters input:focus-visible,.student-leader-history-filters select:focus-visible,.student-leader-map-controls input:focus-visible,.student-leader-map-controls select:focus-visible{outline:3px solid rgba(8,116,85,.16);border-color:#087455}.student-leader-history-count,.student-leader-map-point-count{border:1px solid #bfe0d0;background:#e8f4ee}.student-leader-history-locations,.student-leader-history-record>header,.student-leader-history-times{background:#ffffff}.student-leader-event-row:hover,.student-leader-student-row:hover{background:#f7faf8}@media (max-width:720px){.student-leader-page{width:100%;padding:.5rem 0 1.5rem}.student-leader-header{padding:16px;border-radius:16px}.student-leader-header-actions .btn{border-color:#bfe0d0;background:#e8f4ee;color:#065a42}.student-leader-header-actions .btn:hover:not(:disabled){border-color:#087455;background:#d7ecdf}.student-leader-tabs{border-radius:12px}.student-leader-history-filters,.student-leader-map-controls{padding:.75rem;border-radius:14px}}.coordinator-interns-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}.coordinator-interns-filter-row{grid-template-columns:minmax(0,1fr) repeat(4,minmax(0,auto))!important}.coordinator-interns-search{grid-column:1/-1}@media (max-width:480px){.coordinator-interns-filter-row,.coordinator-interns-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (max-width:768px){.coordinator-interns-topbar{flex-direction:row!important;align-items:center!important;gap:.5rem!important;margin-bottom:.6rem!important}.coordinator-interns-topbar>div:first-child{min-width:0;flex:1 1 auto}.coordinator-interns-topbar>div:last-child{flex:0 0 auto}.coordinator-interns-topbar h1{font-size:1.25rem!important}.coordinator-interns-topbar .btn{padding:.4rem .7rem!important}.coordinator-interns-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.3rem!important;margin-bottom:.6rem!important}.coordinator-interns-stats .stat-card{min-height:68px;padding:.45rem .3rem!important;gap:.2rem!important}.coordinator-interns-stats .stat-icon{width:22px!important;height:22px!important;font-size:.75rem!important}.coordinator-interns-stats .stat-info h4{overflow:hidden;font-size:.5rem!important;text-overflow:ellipsis;white-space:nowrap}.coordinator-interns-stats .stat-value{font-size:1rem!important}.coordinator-interns-filter-card{margin-bottom:.6rem!important}}@media (max-width:420px){.coordinator-interns-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (max-width:768px){.dashboard-layout:has(.sidebar-student) .portal-mobile-dock{width:calc(100% - 28px);max-width:460px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));gap:0}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-bar{gap:9px}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-pill{height:62px;padding:5px;gap:3px;background:rgba(22,63,50,.96);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 24px rgba(20,48,37,.22)}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-item{flex:1 1;min-width:0;padding:2px}.dashboard-layout:has(.sidebar-student) .dock-item-inner{gap:3px;padding:4px 2px}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-item .dock-icon{width:21px!important;height:21px!important;font-size:21px!important;color:#d4e0d7}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-item .dock-label{display:block;max-width:100%;color:#e0e8e2;font-size:9.5px;line-height:1.1;letter-spacing:-.1px;text-align:center;white-space:nowrap;overflow:visible;text-overflow:clip}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-item.active .dock-item-inner{background:#dff1e3;box-shadow:none}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-item.active .dock-icon,.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-item.active .dock-label{color:#164834!important}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-fab{width:56px;height:56px;min-width:56px;background:#163f32;border:1px solid rgba(255,255,255,.22);box-shadow:0 8px 24px rgba(20,48,37,.25)}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-fab.active{background:#dff1e3;color:#164834;border-color:#b9d9c1}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-menu{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(82px + env(safe-area-inset-bottom, 0px));z-index:1150;display:flex;flex-direction:column;align-items:flex-end;gap:8px;width:max-content;max-width:calc(100vw - 28px);max-height:calc(100dvh - 190px);overflow-y:auto;padding:4px 2px;pointer-events:auto;scrollbar-width:none}.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-menu::-webkit-scrollbar{display:none}.dashboard-layout:has(.sidebar-student) .dock-flyout-item{display:inline-flex;align-items:center;justify-content:flex-end;gap:9px;min-height:48px;padding:0;border:0;background:transparent;color:#163f32;text-decoration:none;font:inherit;cursor:pointer;opacity:1;transform:translateY(0) scale(1);animation:studentDockRise .26s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--flyout-delay,0s)}.dashboard-layout:has(.sidebar-student) .dock-flyout-label{padding:8px 12px;border:1px solid #e1e9e2;border-radius:999px;background:rgba(255,255,255,.97);box-shadow:0 4px 14px rgba(16,43,31,.12);color:#203b2c;font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap}.dashboard-layout:has(.sidebar-student) .dock-flyout-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 46px;border:1px solid #dce7dc;border-radius:50%;background:#fff;box-shadow:0 5px 16px rgba(16,43,31,.14);color:#176342}.dashboard-layout:has(.sidebar-student) .dock-flyout-item.active .dock-flyout-icon{border-color:#b6d7bd;background:#e3f2e5}.dashboard-layout:has(.sidebar-student) .dock-flyout-item:focus-visible,.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-fab:focus-visible,.dashboard-layout:has(.sidebar-student) .portal-mobile-dock-item:focus-visible{outline:3px solid #88b99b;outline-offset:3px}}@keyframes studentDockRise{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.dashboard-layout:has(.sidebar-student) .dock-flyout-item{animation-duration:1ms;animation-delay:0s!important}}.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell,.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell-wrap,.dashboard-layout:has(.sidebar-student) .portal-header-actions>.portal-header-signout,.dashboard-layout:has(.sidebar-student) .portal-header-actions>.portal-header-user{width:44px!important;height:44px!important;min-width:44px!important;flex:0 0 44px!important;border:1px solid #dce8de!important;border-radius:50%!important;background:#f5f8f5!important;color:#234c38!important;box-shadow:none!important;transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease!important}.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell,.dashboard-layout:has(.sidebar-student) .portal-header-actions>.portal-header-signout{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;cursor:pointer}.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell:hover,.dashboard-layout:has(.sidebar-student) .portal-header-actions>.portal-header-signout:hover,.dashboard-layout:has(.sidebar-student) .portal-header-actions>.portal-header-user:hover{background:#e8f2e9!important;border-color:#bfd7c4!important;color:#164834!important;transform:translateY(-1px)}.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell.active{background:#164834!important;border-color:#164834!important;color:#fff!important;box-shadow:0 0 0 4px rgba(22,72,52,.12)!important}.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell svg,.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell-icon,.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-user-icon svg,.dashboard-layout:has(.sidebar-student) .portal-header-actions>.portal-header-signout svg{width:20px!important;height:20px!important;font-size:20px!important}.dashboard-layout:has(.sidebar-student) .portal-header-actions .portal-header-bell-badge{top:-3px!important;right:-3px!important;min-width:18px!important;height:18px!important;padding:0 4px!important;border:2px solid #fff!important;background:#b86a2d!important;color:#fff!important;box-shadow:0 1px 4px rgba(79,48,24,.2)!important;animation:none!important}.portal-header-ann-panel{width:360px;max-height:min(520px,calc(100dvh - 100px));border:1px solid #dce8de;border-radius:18px;background:#fff;box-shadow:0 20px 48px rgba(23,48,35,.18),0 2px 8px rgba(23,48,35,.06);transform-origin:top right;animation:notificationPanelExpand .18s cubic-bezier(.2,.75,.25,1) both}.portal-header-ann-header{gap:12px;padding:14px 16px;border-bottom-color:#e8eee9;background:#fff}.ann-header-title-wrap{display:flex;min-width:0;align-items:center;gap:10px}.ann-bell-tag-icon{width:36px;height:36px;flex:0 0 36px;border:1px solid #d5e7d9;border-radius:12px;background:#edf6ee;color:#286445}.ann-heading{display:grid;gap:2px;min-width:0}.ann-heading-title{color:#183c2b;font-size:.94rem;font-weight:750;line-height:1.2}.ann-heading-subtitle{color:#718078;font-size:.7rem;line-height:1.2;white-space:nowrap}.ann-unread-pill{justify-content:center;min-width:22px;height:22px;padding:0 6px;border:1px solid #cce2d0;background:#edf6ee;font-size:.68rem}.ann-mark-all-btn,.ann-unread-pill{display:inline-flex;align-items:center;color:#286445}.ann-mark-all-btn{min-height:32px;padding:0 9px;border:1px solid #d8e8db;border-radius:9px;background:#f3f8f3;font-size:.7rem;white-space:nowrap}.ann-mark-all-btn:hover{background:#e8f2e9;opacity:1}.ann-close-btn{width:32px;height:32px;flex:0 0 32px;background:transparent;color:#65756b}.ann-close-btn:hover{background:#edf4ee;color:#183c2b;transform:none}.portal-header-ann-body{max-height:440px;overflow-y:auto;overscroll-behavior:contain}.ann-item-row{position:relative;gap:10px;align-items:center;padding:13px 16px;border-bottom-color:#edf1ed;transition:background-color .14s ease}.ann-item-row.unread,.ann-item-row.unread:hover,.ann-item-row:hover{background:#f3f8f3}.ann-close-btn:focus-visible,.ann-item-row:focus-visible,.ann-mark-all-btn:focus-visible{outline:3px solid #9dc6a6;outline-offset:-3px}.ann-item-icon{width:34px;height:34px;flex:0 0 34px;margin:0;border:1px solid #e4ebe5;border-radius:11px;background:#f5f7f5;color:#607168}.ann-item-icon.pinned{border-color:#efe3c0;background:#faf5e8;color:#9b7425}.ann-item-title{display:-webkit-box;overflow:hidden;white-space:normal;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#24392d;font-size:.8rem;line-height:1.35}.ann-item-row.unread .ann-item-title{color:#183c2b;font-weight:750}.ann-item-meta{flex-wrap:wrap;gap:5px;margin-top:5px;color:#77847c;font-size:.66rem}.ann-scope-tag.admin,.ann-scope-tag.faculty{border:1px solid #dce8de;background:#f1f6f1;color:#526a5a}.ann-unread-dot{width:7px;height:7px;flex:0 0 7px;margin-top:0;background:#4b9161}.ann-item-arrow{margin:0;color:#a0aca4}.ann-empty-state{display:grid;justify-items:center;gap:6px;padding:30px 18px 34px;color:#718078;font-size:.76rem;text-align:center}.ann-empty-state strong{color:#244433;font-size:.86rem}.ann-empty-icon{display:grid;width:46px;height:46px;margin-bottom:4px;place-items:center;border:1px solid #dce8de;border-radius:15px;background:#f1f7f2;color:#578066}.ann-loading-list{display:grid;padding:4px 0}.ann-loading-row{display:flex;align-items:center;gap:10px;min-height:62px;padding:10px 16px;border-bottom:1px solid #edf1ed}.ann-loading-row>span{width:34px;height:34px;flex:0 0 34px;border-radius:11px;background:#edf3ee}.ann-loading-row>div{display:grid;flex:1 1;gap:7px}.ann-loading-row i{display:block;width:78%;height:8px;border-radius:8px;background:#edf3ee;animation:annSkeletonPulse 1.2s ease-in-out infinite alternate}.ann-loading-row i+i{width:42%;height:6px;animation-delay:.12s}@keyframes annSkeletonPulse{0%{opacity:.55}to{opacity:1}}@media (max-width:768px){.dashboard-layout:has(.sidebar-student) .portal-header-actions{gap:8px!important}.portal-header-ann-backdrop{background:rgba(19,42,30,.2)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.portal-header-ann-panel{top:calc(72px + env(safe-area-inset-top, 0px))!important;right:12px!important;left:auto!important;bottom:auto!important;width:min(360px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 92px - env(safe-area-inset-top, 0px))!important;border:1px solid #dce8de!important;border-radius:18px!important;box-shadow:0 18px 44px rgba(23,48,35,.2)!important;animation:notificationPanelExpand .18s cubic-bezier(.2,.75,.25,1) both!important}.portal-header-ann-header{padding:13px 14px}.portal-header-ann-body{max-height:none!important;flex:1 1 auto!important}}@media (prefers-reduced-motion:reduce){.ann-loading-row i,.portal-header-ann-panel{animation-duration:1ms!important}}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)){--portal-bg:#f5f7f5;--portal-surface:#ffffff;--portal-ink:#172e27;--portal-muted:#596c64;--portal-green:#087455;--portal-green-dark:#065a42;--portal-green-soft:#e8f4ee;--portal-border:#dfe7e2;--portal-shadow:0 1px 2px rgba(23,46,39,0.04),0 6px 18px -10px rgba(23,46,39,0.12);background:var(--portal-bg);color:var(--portal-ink)}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .sidebar{background:#142f25;border-right-color:rgba(223,231,226,.12)}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header{background:rgba(255,255,255,.94);border-bottom-color:var(--portal-border);box-shadow:0 2px 12px rgba(23,46,39,.035)}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions .portal-header-bell,:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions .portal-header-bell-wrap{width:44px!important;height:44px!important;min-width:44px!important;flex:0 0 44px!important;border-radius:50%!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions .portal-header-bell{border:1px solid var(--portal-border)!important;background:#f5f8f5!important;color:#234c38!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions .portal-header-bell.active{border-color:#164834!important;background:#164834!important;color:#ffffff!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions>.portal-header-signout{width:44px!important;height:44px!important;min-width:44px!important;flex:0 0 44px!important;border:1px solid var(--portal-border)!important;border-radius:50%!important;background:#f5f8f5!important;color:#234c38!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions>.portal-header-user{border-color:var(--portal-border)!important;background:#f5f8f5!important;color:var(--portal-ink)!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions :is(.portal-header-user-icon,.portal-header-user-icon svg){color:var(--portal-green-dark)!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions .portal-header-user-badge{border:1px solid #cfe2d4!important;background:var(--portal-green-soft)!important;color:var(--portal-green-dark)!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions .portal-header-bell:hover,:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions>.portal-header-signout:hover,:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions>.portal-header-user:hover{border-color:#bfd7c4!important;background:#e8f2e9!important;color:#164834!important;transform:translateY(-1px)}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions :is(.portal-header-bell-icon,.portal-header-user-icon svg,.portal-header-signout svg){width:20px!important;height:20px!important;font-size:20px!important}:is(.dashboard-layout:has(.sidebar-student),.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .main-content{background:var(--portal-bg)!important;color:var(--portal-ink)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .topbar{align-items:center;gap:12px;margin-bottom:20px}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .topbar h1{color:var(--portal-ink);font-family:var(--font-display),sans-serif;font-size:clamp(1.35rem,2vw,1.8rem);font-weight:750;letter-spacing:-.035em;line-height:1.2}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .topbar p{color:var(--portal-muted);font-size:.84rem;line-height:1.5}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.card,.stat-card,.portal-kpi-card,.admin-dash-kpi-card,.admin-dash-surface-card,.ios-progress-banner,.ios-grouped-list,.admin-dash-period-card){border:1px solid var(--portal-border)!important;border-radius:16px!important;box-shadow:var(--portal-shadow)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.stat-card,.portal-kpi-card,.admin-dash-kpi-card,.admin-dash-surface-card,.ios-progress-banner,.ios-grouped-list,.admin-dash-period-card){background:var(--portal-surface)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.admin-dash-kpi-card,.admin-dash-surface-card,.portal-kpi-card){color:var(--portal-ink)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.admin-dash-kpi-card,.portal-kpi-card):hover{border-color:#c6ddcd!important;box-shadow:0 8px 24px rgba(23,46,39,.09)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .kpi-card-icon{border-color:#d6e8db!important;background:var(--portal-green-soft)!important;color:var(--portal-green)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.kpi-card-val,.portal-kpi-card strong){color:var(--portal-green-dark)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.kpi-card-title,.kpi-card-sub,.portal-kpi-card span){color:var(--portal-muted)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .card-header{border-bottom:1px solid var(--portal-border);background:#fbfdfb}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.card-header h3,.ios-grouped-header h3){color:var(--portal-ink)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.admin-dash-title,.ios-progress-title,.admin-dash-period-title){color:var(--portal-ink)!important;font-family:var(--font-display),sans-serif;letter-spacing:-.035em}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.admin-dash-subtitle,.admin-dash-period-tag,.ios-progress-tag,.ios-progress-dates,.ios-progress-pillar .pillar-lbl,.admin-dash-period-pillar .pillar-lbl){color:var(--portal-muted)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.admin-dash-period-days-badge,.admin-dash-period-edit-btn,.ios-filter-pill,.ios-search-bar){border-color:var(--portal-border);background:#f4f8f5;color:var(--portal-ink)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.admin-dash-period-edit-btn:hover,.ios-filter-pill:hover,.ios-search-bar:focus-within){border-color:#b8d6c1;background:var(--portal-green-soft);color:var(--portal-green-dark)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .ios-filter-pill.active{border-color:var(--portal-green)!important;background:var(--portal-green)!important;color:#ffffff!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.ios-progress-meter-fill,.admin-dash-period-meter-fill){background:var(--portal-green)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.ios-progress-meter-track,.admin-dash-period-meter-track){background:#e6eee9}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-kpi-card [style*="font-size: 1.65rem"]{color:var(--portal-green)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-kpi-card [style*="font-size: 0.8rem"]{color:var(--portal-ink)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-kpi-card [style*="font-size: 0.66rem"]{color:var(--portal-muted)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-kpi-card>div:first-child>div:first-child{background:var(--portal-green-soft)!important;color:var(--portal-green)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .admin-dash-actions>a:not(.admin-dash-post-btn){border-color:var(--portal-border)!important;background:var(--portal-green-soft)!important;color:var(--portal-green-dark)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .admin-dash-actions>.admin-dash-post-btn{border:1px solid var(--portal-green)!important;background:var(--portal-green)!important;color:#ffffff!important;box-shadow:0 4px 12px rgba(8,116,85,.16)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .form-input{min-height:44px;border-color:var(--portal-border)!important;border-radius:10px;background:#ffffff;color:var(--portal-ink)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .form-input:focus{border-color:var(--portal-green)!important;box-shadow:0 0 0 3px rgba(8,116,85,.14)!important;outline:none}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .btn{min-height:40px;border-radius:10px;font-family:inherit;font-weight:650;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.btn-primary,.btn-success){border-color:var(--portal-green)!important;background:var(--portal-green)!important;color:#ffffff!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.table-container,.card-body[style*=overflowX]){border-color:var(--portal-border);border-radius:12px;-webkit-overflow-scrolling:touch}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) table thead{background:#f4f8f5}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) table th{color:#52685b;font-size:.72rem;font-weight:700;letter-spacing:.035em}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) table tbody tr:hover{background:#f6faf7}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid rgba(8,116,85,.48);outline-offset:2px}@media (max-width:768px){.portal-mobile-dock{width:calc(100% - 28px)!important;max-width:460px!important;bottom:calc(12px + env(safe-area-inset-bottom, 0px))!important;gap:0!important;align-items:flex-end!important}.portal-mobile-dock-bar{gap:9px!important}.portal-mobile-dock-pill{height:62px!important;padding:5px!important;gap:3px!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:999px!important;background:rgba(22,63,50,.97)!important;box-shadow:0 8px 24px rgba(20,48,37,.22)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.portal-mobile-dock-item{flex:1 1!important;min-width:0!important;padding:2px!important}.dock-item-inner{gap:3px!important;padding:4px 2px!important}.portal-mobile-dock-item .dock-icon{width:21px!important;height:21px!important;color:#d4e0d7!important;font-size:21px!important}.portal-mobile-dock-item .dock-label{display:block!important;max-width:100%!important;overflow:visible!important;color:#e0e8e2!important;font-size:clamp(8.8px,2.45vw,9.5px)!important;font-weight:600!important;line-height:1.1!important;letter-spacing:-.1px!important;text-align:center!important;text-overflow:clip!important;white-space:nowrap!important}.portal-mobile-dock-item.active .dock-item-inner{background:#dff1e3!important;box-shadow:none!important}.portal-mobile-dock-item.active .dock-icon,.portal-mobile-dock-item.active .dock-label{color:#164834!important}.portal-mobile-dock-fab{width:56px!important;height:56px!important;min-width:56px!important;border:1px solid rgba(255,255,255,.22)!important;background:#163f32!important;color:#ffffff!important;box-shadow:0 8px 24px rgba(20,48,37,.25)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.portal-mobile-dock-fab.active,.portal-mobile-dock-fab.is-open{border-color:#b9d9c1!important;background:#dff1e3!important;color:#164834!important}.portal-mobile-dock-fab.is-open .dock-fab-icon{color:#164834!important}.portal-mobile-dock-menu{position:fixed!important;right:max(14px,env(safe-area-inset-right,0px))!important;bottom:calc(82px + env(safe-area-inset-bottom, 0px))!important;z-index:1150!important;display:flex!important;width:max-content!important;max-width:calc(100vw - 28px)!important;max-height:calc(100dvh - 190px)!important;flex-direction:column!important;align-items:flex-end!important;gap:8px!important;overflow-y:auto!important;padding:4px 2px!important;pointer-events:auto!important;scrollbar-width:none}.portal-mobile-dock-menu::-webkit-scrollbar{display:none}.dock-flyout-item{display:inline-flex!important;min-height:48px!important;align-items:center!important;justify-content:flex-end!important;gap:9px!important;padding:0!important;border:0!important;background:transparent!important;color:#163f32!important;font:inherit;text-decoration:none;cursor:pointer;opacity:1;transform:translateY(0) scale(1);animation:studentDockRise .26s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--flyout-delay,0s)}.dock-flyout-label{padding:8px 12px;border:1px solid #e1e9e2;border-radius:999px;background:rgba(255,255,255,.97);box-shadow:0 4px 14px rgba(16,43,31,.12);color:#203b2c;font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap}.dock-flyout-icon{display:inline-flex;width:46px;height:46px;flex:0 0 46px;align-items:center;justify-content:center;border:1px solid #dce7dc;border-radius:50%;background:#fff;box-shadow:0 5px 16px rgba(16,43,31,.14);color:#176342}.dock-flyout-item.active .dock-flyout-icon{border-color:#b6d7bd;background:#e3f2e5}.dock-flyout-item:focus-visible,.portal-mobile-dock-fab:focus-visible,.portal-mobile-dock-item:focus-visible{outline:3px solid #88b99b;outline-offset:3px}.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions,.dashboard-layout:has(.sidebar-admin) .portal-header-actions{gap:8px!important}.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions>.portal-header-signout,.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions>.portal-header-user,.dashboard-layout:has(.sidebar-admin) .portal-header-actions>.portal-header-signout,.dashboard-layout:has(.sidebar-admin) .portal-header-actions>.portal-header-user{width:44px!important;height:44px!important;min-width:44px!important;flex:0 0 44px!important;border:1px solid #dce8de!important;border-radius:50%!important;background:#f5f8f5!important;color:#234c38!important;box-shadow:none!important}.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions>.portal-header-signout,.dashboard-layout:has(.sidebar-admin) .portal-header-actions>.portal-header-signout{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions>.portal-header-signout:hover,.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions>.portal-header-user:hover,.dashboard-layout:has(.sidebar-admin) .portal-header-actions>.portal-header-signout:hover,.dashboard-layout:has(.sidebar-admin) .portal-header-actions>.portal-header-user:hover{border-color:#bfd7c4!important;background:#e8f2e9!important;color:#164834!important}.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions>.portal-header-signout svg,.dashboard-layout:has(.coordinator-sidebar) .portal-header-actions>.portal-header-user-icon svg,.dashboard-layout:has(.sidebar-admin) .portal-header-actions>.portal-header-signout svg,.dashboard-layout:has(.sidebar-admin) .portal-header-actions>.portal-header-user-icon svg{width:20px!important;height:20px!important}.dashboard-layout:has(.coordinator-sidebar) .main-content,.dashboard-layout:has(.sidebar-admin) .main-content{padding-left:.85rem!important;padding-right:.85rem!important;padding-bottom:calc(140px + env(safe-area-inset-bottom, 0px))!important}.dashboard-layout:has(.coordinator-sidebar) .topbar,.dashboard-layout:has(.sidebar-admin) .topbar{margin-bottom:14px}}@media (prefers-reduced-motion:reduce){.dock-flyout-item,.portal-mobile-dock-fab,.portal-mobile-dock-item{animation-duration:1ms!important;transition-duration:1ms!important}}@media (max-width:768px){:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)){width:100%;min-width:0;min-height:100dvh;overflow-x:clip;background:var(--portal-bg)}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header{height:calc(72px + env(safe-area-inset-top, 0px));gap:.65rem;padding-right:.85rem;padding-left:.85rem}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-logo{width:40px!important;height:40px!important;flex:0 0 40px!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions{gap:.45rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-header-actions>:is(.portal-header-user,.portal-header-signout){width:42px!important;height:42px!important;min-width:42px!important;flex:0 0 42px!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .main-content{width:100%;max-width:100%!important;min-width:0;min-height:100dvh!important;height:auto!important;margin:0!important;overflow-x:clip!important;overflow-y:visible!important;padding:calc(82px + env(safe-area-inset-top, 0px)) 1rem calc(124px + env(safe-area-inset-bottom, 0px))!important;background:var(--portal-bg)!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .main-content-inner{width:100%;max-width:none!important;min-width:0;margin:0}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.topbar,.dashboard-topbar,.admin-dash-header,.coordinator-interns-topbar,.portal-management-topbar){min-width:0;margin-bottom:1rem!important;padding-left:0!important;gap:.7rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.topbar h1,.admin-dash-title,.coordinator-interns-topbar h1){max-width:100%;font-size:clamp(1.25rem,5vw,1.55rem)!important;line-height:1.22!important;letter-spacing:-.035em;overflow-wrap:anywhere}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.topbar p,.admin-dash-subtitle){font-size:.8rem!important;line-height:1.45!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.topbar-right,.admin-dash-actions,.admin-dash-header>:last-child){max-width:100%;flex-wrap:wrap;gap:.5rem}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.card,.stat-card,.portal-kpi-card,.admin-dash-kpi-card,.admin-dash-surface-card,.admin-dash-period-card){min-width:0;max-width:100%;margin-bottom:.75rem;border-radius:16px!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.card-header,.card-body){min-width:0;padding:.9rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .card-header{flex-wrap:wrap;gap:.65rem}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .card-header h3{font-size:.95rem;line-height:1.35}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.stats-grid,.admin-dash-kpi-grid,.portal-kpi-grid,.coordinator-interns-stats){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.65rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.responsive-grid-2,.responsive-grid-3,.responsive-grid-4,.admin-dash-grid,.admin-dash-columns){grid-template-columns:minmax(0,1fr)!important;gap:.75rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.stat-card,.portal-kpi-card,.admin-dash-kpi-card){padding:.85rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.stat-info,.stat-info h4,.stat-value,.kpi-card-val,.kpi-card-title,.kpi-card-sub){min-width:0;overflow-wrap:anywhere}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.filter-bar,.filter-row,.filter-controls,.coordinator-interns-filter-row){min-width:0;flex-wrap:wrap!important;gap:.55rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .filter-bar>*{min-width:0;flex:1 1 140px}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.form-input,select.form-input,textarea.form-input,.filter-bar input,.filter-bar select){width:100%;min-width:0;min-height:44px;font-size:16px!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.btn,.btn-primary,.btn-secondary,.btn-success){min-height:42px;max-width:100%;white-space:normal;line-height:1.25}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.table-container,.card-body[style*=overflowX],.card-body:has(>table),.table-responsive){max-width:100%;overflow-x:auto!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.table-container,.table-responsive,.card-body:has(>table)) table{min-width:620px}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.table-container,.table-responsive) table td,:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.table-container,.table-responsive) table th{padding:.65rem .7rem;vertical-align:top}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .responsive-modal-overlay{align-items:flex-end;padding:.65rem .65rem calc(.65rem + env(safe-area-inset-bottom, 0px))}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .responsive-modal-card{max-height:calc(100dvh - 1.3rem - env(safe-area-inset-top, 0px));border-radius:20px 20px 16px 16px}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .portal-quick-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-layout:has(.coordinator-sidebar) .coordinator-attendance-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.5rem!important}.dashboard-layout:has(.coordinator-sidebar) .coordinator-attendance-summary-stats>div{min-height:62px;padding:.55rem!important}.dashboard-layout:has(.coordinator-sidebar) .coordinator-attendance-summary-stats>div>div:last-child{font-size:.68rem!important;white-space:normal}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .map-view .topbar{padding-top:0}}@media (max-width:380px){:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) .main-content{padding-right:.75rem!important;padding-left:.75rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.stats-grid,.admin-dash-kpi-grid,.portal-kpi-grid,.coordinator-interns-stats){gap:.45rem!important}:is(.dashboard-layout:has(.sidebar-admin),.dashboard-layout:has(.coordinator-sidebar)) :is(.stat-card,.portal-kpi-card,.admin-dash-kpi-card){padding:.7rem!important}}.coordinator-setup-page{--portal-bg:#f5f7f5;--portal-surface:#ffffff;--portal-ink:#172e27;--portal-muted:#596c64;--portal-green:#087455;--portal-green-dark:#065a42;--portal-green-soft:#e8f4ee;--portal-border:#dfe7e2;--portal-shadow:0 1px 2px rgba(23,46,39,0.04),0 6px 18px -10px rgba(23,46,39,0.12);background:var(--portal-bg)!important;color:var(--portal-ink)}.coordinator-setup-page>div[style*="position: fixed"]{display:none}.coordinator-setup-page h1{color:var(--portal-ink)!important}.coordinator-setup-page>div[style*="max-width: 580px"]>div:first-child p{color:var(--portal-muted)!important}.coordinator-setup-card{border:1px solid var(--portal-border)!important;background:#fff!important;box-shadow:var(--portal-shadow);color:var(--portal-ink)}.coordinator-setup-card label,.coordinator-setup-card p{color:var(--portal-muted)!important}.coordinator-setup-card input,.coordinator-setup-card select,.coordinator-setup-card textarea{border-color:var(--portal-border)!important;border-radius:11px!important;background-color:#fff!important;color:var(--portal-ink)!important}.coordinator-setup-card input:focus,.coordinator-setup-card select:focus,.coordinator-setup-card textarea:focus{border-color:var(--portal-green)!important;box-shadow:0 0 0 3px rgba(8,116,85,.13)!important;outline:none}.coordinator-setup-card .coordinator-setup-note{border-color:#d6e8db!important;background:var(--portal-green-soft)!important;color:var(--portal-muted)!important}.coordinator-setup-card .coordinator-setup-note svg,.coordinator-setup-card .coordinator-setup-question-label{color:var(--portal-green)!important}.coordinator-setup-card .coordinator-setup-question{border-color:var(--portal-border)!important;background:#fbfdfb!important}.coordinator-setup-card .coordinator-setup-primary{background:linear-gradient(135deg,#087455,#065a42)!important;color:#ffffff!important;box-shadow:0 4px 14px rgba(8,116,85,.17)!important}.coordinator-setup-card .coordinator-setup-primary:disabled{background:#e5ece7!important;color:#7a8880!important;box-shadow:none!important}.coordinator-setup-card .coordinator-setup-secondary{border:1px solid var(--portal-border)!important;background:#f7faf7!important;color:var(--portal-ink)!important}.coordinator-setup-card .coordinator-setup-add-question{border-color:#c8dfcf!important;background:var(--portal-green-soft)!important;color:var(--portal-green-dark)!important}.coordinator-setup-step-connector{background:#b8d6c1!important}.coordinator-setup-step:first-child .coordinator-setup-step-connector:first-child,.coordinator-setup-step:last-child .coordinator-setup-step-connector:last-child{background:transparent!important}.coordinator-setup-step-number{border-color:#d4e4d7!important;background:#f2f7f3!important;color:#65766c!important}.coordinator-setup-step-number.is-active{border-color:#8fbea0!important;background:#e8f4ee!important;color:#087455!important}.coordinator-setup-step-number.is-done{border-color:#087455!important;background:#087455!important;color:#ffffff!important}.coordinator-setup-step-label{color:#687970!important}.coordinator-setup-step-label.is-active,.coordinator-setup-step-label.is-done{color:#087455!important}@media (max-width:640px){.coordinator-setup-page{align-items:flex-start!important;min-height:100dvh;overflow-y:auto!important;padding:calc(1rem + env(safe-area-inset-top, 0px)) .85rem calc(1.25rem + env(safe-area-inset-bottom, 0px))!important}.coordinator-setup-page>div[style*="max-width: 580px"]{width:100%!important;max-width:580px!important}.coordinator-setup-page>div[style*="max-width: 580px"]>div:first-child{margin-bottom:1.25rem!important}.coordinator-setup-page>div[style*="max-width: 580px"]>div:first-child h1{font-size:1.5rem!important}.coordinator-setup-page>div[style*="max-width: 580px"]>div:first-child p{font-size:.82rem!important}.coordinator-setup-card{padding:1rem!important;border-radius:16px!important}.coordinator-setup-card input,.coordinator-setup-card select,.coordinator-setup-card textarea{min-height:44px;font-size:16px!important}}@media (max-width:380px){.dashboard-layout:has(.sidebar-student) .portal-header{gap:.4rem;padding-right:.65rem!important;padding-left:.65rem!important}.dashboard-layout:has(.sidebar-student) .portal-header-logo{width:36px!important;height:36px!important;flex-basis:36px!important}.dashboard-layout:has(.sidebar-student) .portal-header-actions{gap:.25rem!important}.dashboard-layout:has(.sidebar-student) .portal-header-actions :is(.portal-header-bell-wrap,.portal-header-bell,.portal-header-user,.portal-header-signout){width:38px!important;min-width:38px!important;height:38px!important;flex-basis:38px!important}}