.web-shell{--ui-ink:#17191e;--ui-muted:#626d80;--ui-line:#e1e6ed;--ui-yellow:#ffd600;--ui-dark:#202124;--ui-surface:#fff;--ui-ground:#f3f5f8;background:var(--ui-ground);color:var(--ui-ink);font-family:Segoe UI,Arial,sans-serif;font-size:15px;line-height:1.55}.web-shell *{box-sizing:border-box;min-width:0}.web-shell :is(h1,h2,h3,p,dd,dt,address,summary,a,label,.private-note){overflow-wrap:anywhere}.web-shell .icon{display:inline-block;width:22px;height:22px;flex:none;vertical-align:middle}.web-shell :focus-visible{outline:3px solid #986e00;outline-offset:4px}.web-shell h1{font-size:clamp(1.65rem,2.8vw,2.3rem);letter-spacing:-.035em;line-height:1.2;font-weight:750}.web-shell h2{font-size:1.3rem;font-weight:700;line-height:1.35}.web-shell h3{font-size:1.05rem;font-weight:650}.web-shell p{font-size:.97rem;line-height:1.65;color:var(--ui-muted)}.web-shell .card,.web-shell .ui-card{border:1px solid var(--ui-line);background:#fff;border-radius:12px;padding:clamp(20px,2.4vw,32px);box-shadow:0 2px 5px #23324803}.web-shell main>.card+.card,.web-shell main>.card+.student-grid,.web-shell main>.student-grid+.card,.web-shell form>.card+.card{margin-top:20px}.web-shell .card>:is(p,dl),.web-shell .card>h2+p{margin-top:12px}.web-shell .card>h2:not(:first-child){margin-top:24px}.web-shell :is(.page-heading,.ui-heading){display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.web-shell .page-heading p{margin-top:8px}.web-shell .actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}.web-shell .page-heading>.actions{margin-top:0}.web-shell .button,.web-shell .btn,.web-shell .portal-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:1px solid #e6c000;border-radius:7px;background:var(--ui-yellow);color:#17191e;padding:10px 17px;text-align:center;text-decoration:none;font-size:.88rem;font-weight:650;line-height:1.4;cursor:pointer;white-space:normal}.web-shell :is(.button,.btn,.portal-button):hover{background:#f1c900;border-color:#d6b300;color:#17191e}.web-shell .btn-dark,.web-shell .btn-dark:hover{background:var(--ui-dark);border-color:var(--ui-dark);color:#fff}.web-shell :is(.button-secondary,.btn-secondary){background:#fff;border-color:#c7cfdb;color:var(--ui-ink)}.web-shell :is(.button-secondary,.btn-secondary):hover{background:#fffbea;border-color:#d2b94d}.web-shell .btn-row{background:#fff;border-color:#d4dbe5}.web-shell .text-button,.web-shell .detail-link,.web-shell .back-link,.web-shell .portal-text-link{color:#363b44;text-decoration:underline;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.web-shell .back-link{margin-bottom:15px}.web-shell .back-link>.icon{transform:rotate(180deg)}.web-shell .form-stack{display:grid;gap:20px;margin-top:24px;max-width:800px}.web-shell .form-stack>.button{justify-self:start}.web-shell .field{display:grid;gap:7px;min-width:0}.web-shell .field label,.web-shell .field legend{color:#383f4b;font-size:.87rem;font-weight:650}.web-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){max-width:100%;min-height:44px;border:1px solid #b9c3d1;border-radius:6px;background:#fff;padding:10px 12px;color:var(--ui-ink);font:inherit;font-size:.92rem}.web-shell input[type=checkbox],.web-shell input[type=radio]{accent-color:#9a7600}.web-shell input[aria-invalid=true],.web-shell select[aria-invalid=true],.web-shell textarea[aria-invalid=true]{border-color:#b42318}.web-shell .field-error{color:#a2241a;font-size:.86rem}.web-shell .hint,.web-shell .subline,.web-shell .muted{font-size:.85rem;color:var(--ui-muted);line-height:1.6}.web-shell .eyebrow{color:#7b600c;font-size:.76rem;font-weight:700;letter-spacing:.08em}.web-shell .accent{background:var(--ui-yellow);height:4px;width:38px;margin-bottom:20px}.web-shell .notice{border-radius:9px;padding:16px 20px;margin-bottom:20px;font-size:.93rem;overflow-wrap:anywhere}.web-shell .notice a{text-decoration:underline}.web-shell .staff-filters,.web-shell .ui-filter{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:16px;align-items:end;margin-bottom:22px}.web-shell .staff-filters .actions{margin:0}.web-shell .student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:18px}.web-shell .student-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.web-shell .student-card>p{margin:0}.web-shell .student-card .button,.web-shell .student-card .detail-link{margin-top:auto}.web-shell .ui-badge,.web-shell .status,.web-shell .portal-type,.web-shell .portal-state{display:inline-flex;align-items:center;gap:6px;max-width:100%;border-radius:20px;padding:5px 10px;font-size:.77rem;line-height:1.4;font-weight:600;background:#edf0f5;color:#394454}.web-shell .ui-badge-warning,.web-shell .status.warning{background:#fff7d9;color:#735c00}.web-shell .ui-badge-positive{background:#e8f4ec;color:#22603a}.web-shell .pagination{margin-top:20px;font-size:.9rem}.web-shell .pagination a,.web-shell .pagination button{min-height:44px;min-width:36px}.web-shell .empty-state,.web-shell .ui-empty{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:42px 24px}.web-shell .ui-empty>.icon{width:54px;height:54px;padding:12px;background:#fff4cc;border-radius:50%}.web-shell .audit-entry{border-bottom:1px solid var(--ui-line);padding:18px 0}.web-shell .audit-entry:last-child{border-bottom:0}.web-shell .audit-entry h3{font-weight:650}.web-shell .audit-entry p{margin-top:8px}.web-shell .summary-grid{gap:15px}.web-shell .summary-grid>div{padding:10px 0;border-bottom:1px solid var(--ui-line)}.web-shell .summary-grid dt{font-size:.82rem;color:var(--ui-muted)}.web-shell .summary-grid dd{font-size:1rem;margin-top:5px}.web-shell .reference{overflow-wrap:anywhere;word-break:break-word}.web-shell .private-note{white-space:pre-wrap}.web-shell .password-field{display:flex;gap:8px;align-items:center}.web-shell .password-field input{flex:1;width:0;min-width:0}.web-shell .secret{overflow-wrap:anywhere}.web-shell .page-form .card{max-width:1100px}.web-shell .content.page-form{width:100%;max-width:1180px;margin-inline:auto}.web-shell .site-header{background:#fff;border-bottom:1px solid var(--ui-line);padding:16px max(24px,calc((100vw - 1440px)/2));gap:24px}.web-shell .brand{display:flex;align-items:center;gap:14px;color:#30343b}.web-shell .brand img{width:150px;height:auto;display:block}.web-shell .brand span{font-size:.8rem}.web-shell .navigation{gap:20px;align-items:center}.web-shell .navigation>a{min-height:44px;display:inline-flex;align-items:center;font-size:.9rem}.web-shell .guest-mobile-menu{display:none;position:relative}.web-shell .guest-mobile-menu summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.web-shell .guest-mobile-menu nav{position:absolute;right:0;top:48px;z-index:30;background:#fff;border:1px solid var(--ui-line);border-radius:9px;padding:12px;width:240px;box-shadow:0 12px 35px #0002}.web-shell .guest-mobile-menu nav a{display:flex;align-items:center;min-height:44px;padding:8px 12px}.web-shell .page{width:min(100% - 48px,1440px);margin:32px auto}.web-shell .page.page-form{max-width:600px}.web-shell .site-footer{margin-top:auto;background:var(--ui-dark);color:#ddd;padding:24px;text-align:center;font-size:.8rem}.web-shell .workspace{grid-template-columns:248px minmax(0,1fr)}.web-shell .identity img{background:transparent;padding:0;border-radius:0;width:198px}.web-shell .sidebar{background:linear-gradient(150deg,#252628,#1c1d1f);padding-top:30px}.web-shell .side-links a{font-size:.87rem;min-height:46px;padding:11px 12px}.web-shell .side-links a[aria-current=page]{background:var(--ui-yellow);color:#151515}.web-shell .nav-section{font-size:.68rem;letter-spacing:.09em;line-height:1.6}.web-shell .sidebar-bottom{font-size:.75rem}.web-shell .scope-card,.web-shell .scope-card strong{font-size:.76rem}.web-shell .account-name{font-size:.85rem}.web-shell .account-name small{font-size:.72rem}.web-shell .breadcrumbs{font-size:.84rem}.web-shell .logout{font-size:.8rem;min-height:44px}.web-shell .content{padding:32px 32px 0;max-width:none;width:100%}.web-shell .content-footer{font-size:.72rem;color:#687487}.web-shell .filter-grid{gap:16px}.web-shell .filter-grid label{font-size:.8rem}.web-shell .filter-card h2{font-size:.9rem}.web-shell .list-heading,.web-shell .list-meta,.web-shell .data-table{font-size:.85rem}.web-shell .data-table thead{font-size:.78rem}.web-shell .data-table td,.web-shell .data-table th{padding:16px}.web-shell .subline,.web-shell .data-table .status{font-size:.77rem}.web-shell .module-card h3{font-size:1rem}.web-shell .module-card p{font-size:.84rem;max-width:none;min-height:0}.web-shell .module-title,.web-shell .section-title{font-size:1rem}.web-shell .welcome-card p{font-size:.9rem;max-width:none}.web-shell .role-panel{font-size:.88rem}.web-shell .single-attendance select{font-size:.82rem;max-width:100%;min-height:44px}.web-shell .single-attendance .btn{font-size:.8rem;min-height:44px}.web-shell .batch-card p,.web-shell .selection-count{font-size:.8rem}.web-shell .account-dropdown a{font-size:.86rem;min-height:44px}.web-shell .ui-banner{display:flex;gap:24px;align-items:center;margin-bottom:24px;padding:28px 32px;border-radius:12px;color:#fff;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 90% 0,#4c4b43,transparent 65%),#202124}.web-shell .ui-banner:after{content:"";position:absolute;right:-35px;bottom:-115px;width:240px;height:200px;border:30px solid #ffd60077;transform:rotate(-25deg);border-radius:45%;z-index:-1}.web-shell .ui-banner>.icon{width:52px;height:52px}.web-shell .ui-banner h2{font-size:1.6rem;color:#fff}.web-shell .ui-banner h2>span,.web-shell .portal-hero h1>span{color:var(--ui-yellow)}.web-shell .ui-banner p{color:#eeeff1;margin-top:8px}.web-shell .profile-heading{display:flex;align-items:center;gap:15px;margin-bottom:6px}.web-shell .profile-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#fff4ce;color:#262729;font-size:1.3rem;flex:none}.web-shell .calendar-card{padding:20px;margin-top:18px;border-radius:9px;background:#fffae7}.web-shell .calendar-card>h3{font-size:.76rem;letter-spacing:.04em;margin-bottom:16px}.web-shell .calendar-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}.web-shell .calendar-pair>div{display:flex;gap:12px;align-items:center}.web-shell .calendar-pair dt{font-size:.78rem;color:#666d77}.web-shell .calendar-pair dd{font-size:1rem;font-weight:650}.web-shell .session-grid{display:grid;gap:16px;margin-top:20px}.web-shell .session-card{padding:22px;border:1px solid var(--ui-line);border-radius:10px;background:#fff}.web-shell .session-card>.page-heading{margin-bottom:12px}.web-shell .session-card .actions{border-top:1px solid var(--ui-line);padding-top:16px}.web-shell .portal-header{width:min(100% - 64px,1440px);border:0;padding-block:18px}.web-shell.portal{background:#fff}.web-shell .portal-brand,.web-shell .portal-brand img{width:172px}.web-shell .portal-brand>span{display:none}.web-shell .portal-nav{font-size:.88rem;gap:28px}.web-shell .portal-nav a:first-child{border-bottom:3px solid var(--ui-yellow)}.web-shell .portal-main{width:100%;margin:0;background:#fff}.web-shell .portal-hero{position:relative;isolation:isolate;padding:54px max(32px,calc((100vw - 1360px)/2));gap:32px;min-height:440px;background:radial-gradient(ellipse at 80% 0,#464740,transparent 65%),#202124;color:#fff;overflow:hidden}.web-shell .portal-hero:before{content:"";position:absolute;width:650px;height:500px;right:-290px;top:-170px;border:50px solid #ffd60080;border-radius:45%;transform:rotate(25deg);z-index:-1}.web-shell .portal-hero h1{max-width:15ch;font-size:clamp(2.4rem,4.5vw,4.4rem);font-weight:750;letter-spacing:-.045em}.web-shell .portal-hero .portal-kicker{color:#fff;font-size:.78rem}.web-shell .portal-kicker>span{background:var(--ui-yellow);width:25px;height:3px;border-radius:0}.web-shell .portal-hero .portal-intro{color:#eee;font-size:1.1rem;line-height:1.65;max-width:48ch}.web-shell .portal-hero .portal-note{color:#d6d7da}.web-shell .portal-actions{gap:14px;margin-top:24px}.web-shell .portal-secondary{border:1px solid #fff;color:#fff;border-radius:7px;padding:10px 24px;text-decoration:none;justify-content:center}.web-shell .portal-secondary:hover{background:#ffffff16}.web-shell .portal-hero-art{display:block;width:100%;height:auto;max-height:340px;object-fit:contain;filter:drop-shadow(0 18px 20px #0005)}.web-shell .portal-feature{background:transparent;border:1px solid #ffffff25;box-shadow:none;border-radius:9px;padding:16px 20px;margin-top:16px}.web-shell .portal-feature:before{display:none}.web-shell .portal-feature h2{font-size:1.1rem}.web-shell .portal-feature p{font-size:.85rem;margin-top:8px;color:#dce0e6}.web-shell .portal-feature .portal-button{margin-top:10px}.web-shell .portal-section{width:min(100% - 64px,1360px);margin:auto;padding-block:32px;border:0}.web-shell .portal-section-heading{margin-bottom:20px}.web-shell .portal h2{font-size:1.7rem}.web-shell .portal-exam-card{border-color:var(--ui-line);border-radius:11px;padding:24px}.web-shell .portal-exam-card h3{margin-top:15px}.web-shell .portal-type{background:#eef1f6;color:#303848}.web-shell .portal-how{display:block;width:min(100% - 64px,1360px);margin:12px auto 28px;padding:28px;background:#f3f5f8;border-radius:12px}.web-shell .portal-how>div{margin-bottom:24px}.web-shell .portal-how>div p{max-width:65ch}.web-shell .portal-how ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.web-shell .portal-how li{gap:12px}.web-shell .portal-step{background:#ffed95;border:0;color:#1f2329;flex:0 0 36px;height:36px}.web-shell .portal-branch-grid{gap:18px}.web-shell .portal-branch-grid article{border:1px solid var(--ui-line);border-radius:10px;padding:22px;position:relative}.web-shell .portal-branch-mark{color:#9d7900}.web-shell .portal-footer{background:#202124;padding:24px max(32px,calc((100vw - 1360px)/2));color:#eee}.web-shell .portal-footer p{font-size:.82rem;color:#bbb}@media(min-width:1550px){.web-shell .content{padding:36px 42px 0}}@media(max-width:1100px){.web-shell .workspace{grid-template-columns:220px minmax(0,1fr)}.web-shell .side-links a{font-size:.8rem}.web-shell .content{padding:24px 24px 0}.web-shell .portal-nav{gap:16px}.web-shell .portal-hero{grid-template-columns:1.2fr 1fr}.web-shell .portal-how ol{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:959px){.web-shell .workspace{display:block}.web-shell .sidebar{display:none}.web-shell .mobile-menu-panel{max-width:calc(100vw - 32px)}.web-shell .mobile-menu summary{min-width:44px;min-height:44px}.web-shell .mobile-brand img{width:108px;max-height:none}.web-shell .topbar{min-height:78px;padding:12px 20px}.web-shell .portal-header{width:calc(100% - 40px);gap:16px;flex-wrap:wrap}.web-shell .portal-account{margin-left:auto;gap:10px}.web-shell .portal-mobile-menu summary{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.web-shell .portal-mobile-menu nav a{min-height:44px;display:flex;align-items:center}}@media(max-width:640px){.web-shell .site-header>.navigation{display:none}.web-shell .guest-mobile-menu{display:block}.web-shell .content,.web-shell .content.page-form{padding:24px 16px 0}.web-shell .page-heading,.web-shell .ui-heading{display:flex;flex-direction:column;align-items:stretch;gap:16px}.web-shell .page-heading .actions{width:100%;max-width:none}.web-shell .page-heading .actions>.button,.web-shell .actions>.button{flex:1 1 auto}.web-shell .form-stack>.button{justify-self:stretch;width:100%}.web-shell .page{width:calc(100% - 32px);margin:24px auto}.web-shell .site-header{padding:12px 16px;flex-wrap:wrap;justify-content:space-between;gap:10px}.web-shell .brand img{width:120px}.web-shell .brand>span{display:none}.web-shell .navigation{gap:12px;font-size:.8rem;flex-wrap:wrap;justify-content:flex-start}.web-shell .navigation>a{font-size:.8rem}.web-shell .card,.web-shell .ui-card{padding:20px 16px}.web-shell .staff-filters{grid-template-columns:1fr}.web-shell .ui-banner{padding:24px 20px;gap:14px;align-items:flex-start}.web-shell .ui-banner>.icon{width:32px;height:32px}.web-shell .ui-banner h2{font-size:1.25rem}.web-shell .calendar-pair{grid-template-columns:1fr;gap:15px}.web-shell .calendar-pair>div+div{padding-top:15px;border-top:1px solid #e4ddc4}.web-shell .data-table th,.web-shell .data-table td{padding:12px 16px}.web-shell .ui-table{display:block}.web-shell .ui-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.web-shell .ui-table tbody,.web-shell .ui-table tr,.web-shell .ui-table td{display:block;width:100%;text-align:left}.web-shell .ui-table tr{padding:12px 0;border-bottom:1px solid var(--ui-line)}.web-shell .ui-table td{border:0;padding:8px 16px}.web-shell .ui-table td:before{content:attr(data-label);display:block;font-size:.75rem;font-weight:650;color:var(--ui-muted);margin-bottom:4px}.web-shell .session-card{padding:18px 16px}.web-shell .session-card .actions{gap:10px}.web-shell .portal-header{width:calc(100% - 32px);padding-block:12px;gap:8px;flex-wrap:nowrap;justify-content:space-between}.web-shell .portal-account{display:none}.web-shell .portal-mobile-menu{width:auto;margin-left:auto;padding:0}.web-shell .portal-mobile-menu nav{max-height:75svh;overflow:auto;right:0;left:auto;width:280px}.web-shell .portal-brand,.web-shell .portal-brand img{width:132px}.web-shell .portal-account{gap:8px;font-size:.75rem}.web-shell .portal-account .portal-button{padding:8px 12px;font-size:.76rem}.web-shell .portal-hero{grid-template-columns:1fr;padding:32px 20px 20px;gap:20px;min-height:0}.web-shell .portal-hero:before{right:-350px;top:auto;bottom:-200px}.web-shell .portal-hero h1{font-size:clamp(2.2rem,9vw,3rem);max-width:none}.web-shell .portal-hero .portal-intro{font-size:1rem}.web-shell .portal-actions{display:grid;grid-template-columns:1fr;gap:10px}.web-shell .portal-hero-art{max-height:250px}.web-shell .portal-feature{margin-top:0;padding:16px}.web-shell .portal-section{width:calc(100% - 32px);padding-block:24px}.web-shell .portal-section-heading{align-items:flex-start}.web-shell .portal-how{width:calc(100% - 32px);padding:24px 20px}.web-shell .portal-how ol{grid-template-columns:1fr;gap:20px}.web-shell .portal-branch-grid{grid-template-columns:1fr}.web-shell .portal-footer{padding:24px 20px;gap:16px;align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){.web-shell *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
