:root{--paper:#faf9f5;--paper-2:#f8f9fa;--surface:#fff;--ink:#1a1a18;--muted:#57564f;--faint:#8a887f;--line:#e7e5dc;--line-soft:#efeee7;--brand:#f37521;--brand-bg:#fff8f0;--brand-hover:#ff9a4d;--brand-active:#cc5612;--brand-deep:var(--brand-active);--brand-soft:var(--brand-bg);--brand-wash:#f375211f;--blue:var(--brand);--blue-soft:var(--brand-soft);--green:#cc5612;--green-soft:#fff8f0;--gold:var(--brand);--red:#d86161;--white:#ffffffdb;--shadow:0 18px 50px #1a1a1814;--shadow-sm:0 10px 28px #1a1a180f;--radius:14px;--font-display:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-home:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-body)}.toast-viewport{z-index:10000;pointer-events:none;gap:.75rem;width:min(24rem,100vw - 2rem);display:grid;position:fixed;top:1rem;right:1rem}.app-toast{color:#fff;pointer-events:auto;border:1px solid #0000;border-radius:1rem;grid-template-columns:2.25rem minmax(0,1fr) 1.75rem;align-items:start;gap:.75rem;padding:.85rem;animation:.22s ease-out both toast-enter;display:grid;overflow:hidden;box-shadow:0 18px 45px #1a1a1833}.app-toast.success{background:linear-gradient(135deg,#27865b,#35a56f);border-color:#49be7e73}.app-toast.error{background:linear-gradient(135deg,#b53f46,#d95b61);border-color:#ffa4a466}.app-toast.warning{background:linear-gradient(135deg,#c4611c,#e98032);border-color:#ffd09973}.app-toast-icon{background:#ffffff2e;border-radius:.7rem;place-items:center;width:2.25rem;height:2.25rem;font-size:1.05rem;font-weight:950;display:grid}.app-toast strong,.app-toast p{margin:0;display:block}.app-toast strong{font-size:.92rem}.app-toast p{color:#ffffffe6;margin-top:.18rem;font-size:.82rem;line-height:1.42}.app-toast button{color:#ffffffd6;background:0 0;border:0;padding:.1rem;font-size:1.2rem;line-height:1}@keyframes toast-enter{0%{opacity:0;transform:translate(1rem,-.35rem)scale(.98)}to{opacity:1;transform:translate(0,0)scale(1)}}@media (width<=600px){.toast-viewport{width:calc(100vw - 1.3rem);top:.65rem;right:.65rem}}html{scrollbar-gutter:stable;overflow-y:scroll}.class-detail-hero{min-height:16.5rem;margin-top:-3.2rem;padding:0 0 1.4rem;position:relative}.class-detail-title-row{align-items:center;gap:1.35rem;width:fit-content;margin-bottom:2.2rem;margin-left:-4.2rem;display:flex}.class-detail-title-mark{width:2.55rem;height:2.55rem}.class-detail-title-mark img{object-fit:contain;image-rendering:auto;width:100%;height:100%}.class-detail-title-row h1{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(1.85rem,2.7vw,2.35rem)}.class-detail-title-trail{color:var(--muted);white-space:nowrap;font-size:1rem;font-weight:800}.class-detail-summary{grid-template-columns:15.5rem minmax(20rem,1fr) minmax(23rem,38vw);align-items:center;gap:2.2rem;display:grid}.class-avatar-placeholder{background:linear-gradient(135deg, var(--brand-hover), var(--brand-bg));border-radius:1.35rem;height:10.5rem;position:relative;overflow:hidden;box-shadow:0 18px 45px #6841261f}.class-detail-copy h1{font-family:var(--font-display);color:var(--ink);letter-spacing:-.05em;margin:0 0 .65rem;font-size:clamp(2.3rem,5vw,2.3rem);line-height:.95}.class-detail-copy p{color:var(--muted);margin:0 0 1.25rem;font-size:1.05rem}.class-hero-meta{color:var(--muted);flex-wrap:wrap;gap:1rem;font-weight:500;display:flex}.class-detail-visual{pointer-events:none;width:min(42rem,50vw);height:22rem;position:absolute;bottom:0;right:0}.class-detail-visual img{object-fit:contain;object-position:right bottom;filter:drop-shadow(0 22px 36px #50627b1f);width:100%;height:100%}.class-detail-tabs{border:1px solid var(--line-soft);border-radius:var(--radius) var(--radius) 0 0;background:var(--surface);box-shadow:var(--shadow-sm);border-bottom:0;grid-template-columns:repeat(5,minmax(0,1fr));padding:.85rem 2rem 0;display:grid;overflow:hidden}.class-detail-tabs button{color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;gap:.55rem;padding:1rem 1rem 1.3rem;font-size:1rem;font-weight:800;display:inline-flex;position:relative}.class-detail-tab-icon{width:1.18rem;height:1.18rem;color:var(--brand);flex:none}.class-detail-tabs button.active{color:var(--ink)}.class-detail-tabs button:hover .class-detail-tab-icon,.class-detail-tabs button.active .class-detail-tab-icon{color:var(--brand-active)}.class-detail-tabs button.active:after{content:"";background:var(--gold);height:2px;position:absolute;bottom:0;left:18%;right:18%}.detail-panel{border:1px solid var(--line-soft);border-radius:0 0 var(--radius) var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);margin-top:.5rem;padding:2rem}.class-overview-layout{grid-template-columns:minmax(0,1.08fr) minmax(22rem,.92fr);gap:1rem;display:grid}.overview-main-card{box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffc7;border:1px solid #8597ab1f;border-radius:1.35rem;position:relative;overflow:hidden}.overview-basic-card,.overview-description-card,.overview-materials-card,.overview-notice-card{padding:1.55rem}.overview-card-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.overview-card-heading h2,.overview-description-card h2,.overview-notice-card h2{color:var(--ink);font-family:var(--font-body);margin:0;font-size:1.15rem;font-weight:900}.overview-edit-button,.overview-ghost-button{color:var(--ink);background:#ffffffbd;border:1px solid #8597ab21;border-radius:999px;align-items:center;gap:.45rem;padding:.65rem .9rem;font-weight:800;display:inline-flex;box-shadow:0 10px 26px #50627b14}.overview-edit-button svg,.overview-ghost-button svg,.overview-info-list svg,.overview-material-list svg,.overview-notice-icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1.05rem;height:1.05rem}.overview-edit-button svg,.overview-info-list dt,.overview-notice-icon{color:var(--brand)}.overview-info-list{gap:0;margin:0;display:grid}.overview-info-list div{border-bottom:1px solid #8597ab24;grid-template-columns:2.55rem minmax(0,1fr);align-items:center;gap:.7rem;padding:.78rem 0;display:grid}.overview-info-list div:last-child{border-bottom:0}.overview-info-list dt{background:#f3752117;border-radius:999px;place-items:center;width:2.1rem;height:2.1rem;display:grid}.overview-info-list dd{grid-template-columns:minmax(8rem,.75fr) minmax(0,1fr);align-items:center;gap:1rem;margin:0;display:grid}.overview-info-list span,.overview-description-card p,.overview-material-list p,.overview-notice-card p,.overview-notice-card small{color:var(--muted)}.overview-info-list strong{color:#40516d;font-weight:700}.overview-side-stack{gap:1rem;display:grid}.overview-session-card{padding:1.25rem}.overview-session-card .overview-card-heading span{color:#f37521;background:#f375211f;border-radius:999px;place-items:center;min-width:2rem;height:2rem;font-weight:900;display:inline-grid}.class-session-timeline{gap:1rem;max-height:34rem;margin:0;padding:.4rem 0 .2rem 2.9rem;list-style:none;display:grid;position:relative;overflow:auto}.class-session-timeline li{position:relative}.class-session-timeline li:before,.class-session-timeline li:after{content:"";border-radius:999px;width:2px;position:absolute;top:0;bottom:-1rem;left:-1.65rem}.class-session-timeline li:before{background:#9aa8b76b}.class-session-timeline li:after{opacity:0;background:#f37521}.class-session-timeline li.completed:after{opacity:1}.class-session-timeline li:last-child:before,.class-session-timeline li:last-child:after{bottom:0}.class-session-index{z-index:1;color:#fff;background:#9aa8b7;border-radius:999px;place-items:center;width:2.15rem;height:2.15rem;font-weight:900;display:grid;position:absolute;top:.95rem;left:-2.55rem;box-shadow:0 8px 18px #50627b29}.class-session-timeline li.completed .class-session-index{background:#f37521}.class-session-box{background:#ffffffe0;border:1px solid #8597ab2e;border-radius:.85rem;gap:.35rem;padding:1rem 1rem .85rem;display:grid;position:relative;box-shadow:0 10px 24px #50627b14}.class-session-timeline li.completed .class-session-box{background:linear-gradient(#fff8f0f5,#ffffffe6);border-color:#f3752157}.class-session-title-row{flex-wrap:wrap;align-items:center;gap:.45rem .65rem;display:flex}.class-session-title-row span{color:#2f7f52;background:#37a56d14;border:1px solid #37a56d38;border-radius:.45rem;padding:.18rem .6rem;font-size:.78rem;font-weight:800}.class-session-title-row strong{color:#f37521;font-size:1rem;font-weight:900}.class-session-lesson{color:#40516d;font-weight:900}.class-session-lesson span{color:var(--muted);font-weight:800}.class-session-lesson strong{color:#40516d}.class-session-box p{color:#40516d;margin:0;line-height:1.45}.class-session-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem .9rem;font-size:.9rem;font-weight:700;display:flex}.class-session-empty{color:var(--muted);margin:0}.overview-description-card{min-height:13.8rem}.overview-description-card p{max-width:32rem;margin:1.6rem 0 0;line-height:1.85}.overview-quote-mark{color:#f3752126;font-family:var(--font-display);font-size:6rem;line-height:1;position:absolute;bottom:.35rem;right:1.45rem}.overview-material-list{margin:0;padding:0;list-style:none;display:grid}.overview-material-list li{border-bottom:1px solid #8597ab24;grid-template-columns:3rem minmax(0,1fr) 2.5rem 2.5rem;align-items:center;gap:.9rem;padding:1rem 0;display:grid}.overview-material-list li:last-child{border-bottom:0}.overview-material-list strong{color:var(--ink)}.overview-material-list p{flex-wrap:wrap;gap:1.2rem;margin:.38rem 0 0;display:flex}.overview-material-list button,.overview-notice-card>button{width:2.35rem;height:2.35rem;color:var(--ink);background:#ffffffb8;border:1px solid #8597ab1f;border-radius:999px;place-items:center;display:grid}.overview-file-icon{color:#fff;border-radius:.65rem;place-items:center;width:2.7rem;height:3rem;font-size:.62rem;font-weight:900;display:grid}.overview-file-icon.pdf{background:linear-gradient(135deg,#f6b3a6,#e76755)}.overview-file-icon.ppt{background:linear-gradient(135deg,#b8d7f4,#5897d6)}.overview-file-icon.zip{background:linear-gradient(135deg,#cfe8bd,#7fba5f)}.overview-notice-card{grid-template-columns:3.4rem minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.overview-notice-icon{background:#f3752117;border-radius:999px;place-items:center;width:3.4rem;height:3.4rem;display:grid}.overview-notice-card p{margin:.45rem 0 .35rem}.detail-panel-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.detail-panel-heading h2{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.9rem;line-height:1}.detail-panel-heading span{color:var(--muted)}.detail-panel-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.3rem;display:flex}.detail-tools{align-items:center;gap:.8rem;display:flex}.attendance-toolbar{align-items:flex-start;margin-bottom:.65rem}.attendance-toolbar .detail-panel-heading{flex:none;min-height:3.25rem;padding-top:.55rem}.attendance-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.8rem;display:flex}.attendance-view-toggle{border:1px solid var(--line);background:#ffffffb3;border-radius:999px;gap:.25rem;padding:.28rem;display:inline-flex}.attendance-view-toggle button{min-height:2.7rem;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.65rem 1rem;font-size:.78rem;font-weight:800;line-height:1.15;display:inline-flex}.attendance-view-toggle svg{width:1.2rem;height:1.2rem}.attendance-view-toggle button.active{color:#fff;background:var(--brand);box-shadow:0 10px 24px #f375212e}.attendance-date-filter{border:1px solid var(--line);color:var(--muted);background:#ffffffb3;border-radius:999px;align-items:center;gap:.5rem;padding:.28rem .45rem;font-size:.8rem;font-weight:800;display:flex}.attendance-date-filter>span{white-space:nowrap}.attendance-session-select{min-width:min(32rem,100%);color:var(--muted);align-items:center;gap:.85rem;font-size:.84rem;font-weight:800;display:flex}.attendance-session-select>span{white-space:nowrap}.attendance-session-select .soft-select{min-width:20rem}.attendance-meta{color:var(--muted);flex-wrap:wrap;gap:.45rem 1.15rem;margin:0 0 1rem;font-size:.9rem;display:flex}.attendance-meta span+span{border-left:1px solid var(--line);padding-left:1.15rem}.attendance-meta strong{color:var(--ink);font-weight:900}.attendance-lock-notice{border-left:3px solid var(--red);color:#9b3d3d;margin:0 0 1rem;padding-left:.85rem;font-weight:800}.attendance-session-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.2rem;display:grid}.attendance-session-card{text-align:left;background:#ffffffb8;border:1px solid #8597ab24;border-radius:1.25rem;gap:.55rem;min-height:10.5rem;padding:1.15rem;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;box-shadow:0 14px 34px #50627b14}.attendance-session-card:hover,.attendance-session-card.active{box-shadow:var(--shadow-sm);border-color:#f3752161;transform:translateY(-4px)}.attendance-session-card strong{color:var(--ink);font-size:1.18rem}.attendance-session-card span:not(.badge){color:var(--muted)}.attendance-card-date{font-weight:800}.attendance-card-detail{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1.25rem}.attendance-modal-content{min-width:min(64rem,100vw - 5rem)}.attendance-modal-content .primary-button{margin-top:1rem}.attendance-extra-form+.primary-button,.attendance-modal-content .attendance-extra-form+.primary-button,.score-modal .modal-footer .primary-button{color:#fff;background:linear-gradient(135deg,#f37521,#ff4f17);box-shadow:0 14px 30px #f375213d}.attendance-extra-form{border-top:1px solid #8597ab24;gap:1rem;margin:1.25rem 0 1rem;padding-top:1.25rem;display:grid}.attendance-extra-top{grid-template-columns:minmax(16rem,1fr) minmax(18rem,.85fr);align-items:end;gap:1.2rem;display:grid}.attendance-assistant-check,.attendance-advisor-info,.attendance-textarea-field{color:var(--ink);gap:.55rem;font-weight:800;display:grid}.attendance-assistant-check span:last-child{color:var(--ink);align-items:center;gap:.45rem;font-weight:600;display:inline-flex}.attendance-advisor-info strong{color:#40516d;background:#ffffffb8;border:1px solid #8597ab29;border-radius:.95rem;align-items:center;min-height:2.85rem;padding:.72rem .95rem;font-weight:800;display:flex;box-shadow:0 10px 22px #50627b0f}.attendance-textarea-field strong{color:var(--red)}.attendance-textarea-field textarea{resize:vertical;width:100%;min-height:4.8rem;color:var(--ink);font:inherit;background:#ffffffc7;border:1px solid #8597ab47;border-radius:.75rem;padding:.85rem;font-weight:500}.attendance-textarea-field textarea::placeholder{color:#60708a7a}.attendance-textarea-field textarea[aria-invalid=true]{border-color:var(--red);box-shadow:0 0 0 3px #dc35451a}.attendance-field-error{color:var(--red);font-size:.8rem;font-weight:700}.attendance-overview-wrap{background:#fff;border:1px solid #8597ab1f;border-radius:1.1rem;max-height:min(68vh,42rem);margin-top:1rem;overflow:auto}.attendance-overview-table{border-collapse:collapse;width:100%;min-width:52rem}.attendance-overview-table th,.attendance-overview-table td{text-align:center;vertical-align:middle;border-bottom:1px solid #8597ab1f;padding:.9rem}.attendance-overview-table thead th{z-index:3;position:sticky;top:0}.attendance-overview-table th:nth-child(-n+3),.attendance-overview-table td:nth-child(-n+3){text-align:left;background:#fff;position:sticky}.attendance-overview-table th:first-child,.attendance-overview-table td:first-child{text-align:center;min-width:4.5rem;left:0}.attendance-overview-table th:nth-child(2),.attendance-overview-table td:nth-child(2){min-width:13rem;left:4.5rem}.attendance-overview-table th:nth-child(3),.attendance-overview-table td:nth-child(3){min-width:11rem;left:17.5rem}.attendance-overview-table td:nth-child(-n+3){z-index:2}.attendance-overview-table thead th:nth-child(-n+3){z-index:4}.attendance-overview-table th{color:var(--muted);background:#f7f1ea;font-size:.82rem;font-weight:800}.attendance-overview-table thead th:nth-child(-n+3){background:#f7f1ea}.attendance-overview-table th span,.attendance-overview-table th small{white-space:nowrap;display:block}.attendance-overview-table th small{color:#50627bb8;margin-top:.25rem;font-weight:700}.attendance-overview-table td:nth-child(2){color:var(--ink);font-weight:800}.attendance-overview-icons{justify-content:center;align-items:center;gap:.4rem;display:inline-flex;position:relative}.attendance-comment-info{color:#356b9b;cursor:help;background:#edf6ff;border-radius:999px;outline:none;justify-content:center;align-items:center;width:1.55rem;height:1.55rem;display:inline-flex;position:relative}.attendance-comment-info.empty{color:#8795a8;background:#f1f4f7}.attendance-comment-info>svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1.05rem;height:1.05rem}.attendance-comment-tooltip{z-index:8;color:#fff;text-align:left;white-space:normal;opacity:0;pointer-events:none;background:#334155;border-radius:.65rem;width:max-content;max-width:min(18rem,70vw);padding:.6rem .75rem;font-size:.75rem;font-weight:600;line-height:1.4;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + .55rem);left:50%;transform:translate(-50%,.25rem);box-shadow:0 10px 25px #1e293b38}.attendance-comment-tooltip:after{content:"";border:.32rem solid #0000;border-top-color:#334155;position:absolute;top:100%;left:50%;transform:translate(-50%)}.attendance-comment-info:hover .attendance-comment-tooltip,.attendance-comment-info:focus .attendance-comment-tooltip{opacity:1;transform:translate(-50%)}.attendance-status-icon,.attendance-uniform-icon{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;border-radius:999px;width:1.55rem;height:1.55rem;padding:.28rem}.attendance-status-icon.present{color:var(--green);background:var(--green-soft)}.attendance-status-icon.absent{color:var(--red);background:#fff0f0}.attendance-uniform-icon.active{color:var(--brand-active);background:#f375211a}.attendance-uniform-icon.missing{color:#60708a85;background:#60708a1a}.student-search{min-width:18rem}.class-info-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1.5rem 0 0;display:grid}.class-info-grid div{background:#ffffffb8;border-radius:1.1rem;padding:1.15rem;box-shadow:0 12px 30px #50627b12}.soft-data-table{background:#ffffffad;border:1px solid #8597ab1f;border-radius:1rem;overflow:hidden}.soft-data-table th{color:#12213a94;text-transform:none;letter-spacing:0;background:#eee8de94;font-size:.82rem;font-weight:600}.soft-data-table td{color:#40516d;height:4.2rem}.student-table td:nth-child(2),.attendance-table td:nth-child(2){color:var(--ink);font-weight:700}.student-name-with-flags,.students-mobile-copy strong{align-items:center;gap:.35rem;display:inline-flex}.student-commitment-icon{width:1rem;height:1rem;color:var(--brand);flex:none}.student-order-cell{width:4rem;color:var(--muted);text-align:center;font-weight:800}.student-sort-heading{color:inherit;font:inherit;font-weight:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;display:inline-flex}.student-sort-heading span:last-child{color:#f3752185;font-size:.8rem}.student-sort-heading.active,.student-sort-heading.active span:last-child{color:var(--brand-active)}.student-avatar-wrap{vertical-align:middle;align-items:center;margin-right:.8rem;display:inline-flex;position:relative}.student-avatar{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));border-radius:999px;place-items:center;width:2.6rem;height:2.6rem;font-size:.82rem;font-weight:900;display:grid;box-shadow:0 10px 22px #50627b21}.student-profile{background:#ffffffb3;border:1px solid #8597ab1f;border-radius:1.2rem;align-items:center;gap:1rem;padding:1rem;display:flex}.student-profile h3,.student-profile p,.student-calendar-heading h3{margin:0}.student-profile p{color:var(--muted);margin-top:.25rem}.student-calendar-heading{justify-content:space-between;align-items:center;gap:1rem;margin:1.2rem 0 .8rem;display:flex}.student-calendar-heading span{color:var(--muted);font-size:.88rem;font-weight:700}.student-calendar-list{gap:.8rem;display:grid}.student-calendar-item{background:#ffffffb8;border:1px solid #8597ab1f;border-radius:1rem;grid-template-columns:minmax(9rem,auto) 1fr auto;align-items:center;gap:1rem;padding:.95rem;display:grid}.student-calendar-item time{color:var(--blue);font-weight:900}.student-calendar-item strong{color:var(--ink)}.student-calendar-item p{color:var(--muted);margin:.18rem 0 0;font-size:.88rem}.student-avatar-preview{z-index:30;color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));opacity:0;pointer-events:none;border:.35rem solid #fff;border-radius:1.35rem;place-items:center;width:8rem;height:8rem;font-size:2rem;font-weight:900;transition:opacity .16s,transform .16s;display:grid;position:absolute;bottom:calc(100% + .8rem);left:50%;transform:translate(-50%,.6rem)scale(.92);box-shadow:0 24px 70px #1a263a3d}.student-avatar-preview.is-floating{z-index:9999;opacity:1;position:fixed;bottom:auto;transform:none}.student-avatar-wrap:hover .student-avatar-preview{opacity:1;transform:translate(-50%)scale(1)}.student-avatar-wrap:hover .student-avatar-preview.is-floating{opacity:1;transform:none}.avatar-preview-table-wrap,.student-table,.attendance-table,.student-table tbody,.attendance-table tbody,.student-table tr,.attendance-table tr,.student-table td,.attendance-table td{overflow:visible}.student-table td,.attendance-table td{position:relative}.student-table .student-avatar-wrap,.attendance-table .student-avatar-wrap{z-index:2}.student-table .student-avatar-wrap:hover,.attendance-table .student-avatar-wrap:hover{z-index:60}.student-more{color:var(--muted);background:0 0;border:0;font-size:1.2rem;font-weight:900}.soft-select-field{max-width:28rem}.attendance-table input[type=text],.attendance-table input:not([type]){box-sizing:border-box;width:100%;min-width:0}.attendance-table th:first-child,.attendance-table td:first-child{width:3.2rem}.attendance-table th:nth-child(2),.attendance-table td:nth-child(2){width:17rem}.attendance-table th:nth-child(3),.attendance-table td:nth-child(3){width:6.2rem}.attendance-table th:nth-child(4),.attendance-table td:nth-child(4),.attendance-table th:nth-child(5),.attendance-table td:nth-child(5),.attendance-table th:nth-child(6),.attendance-table td:nth-child(6){width:5.1rem}.attendance-table th:nth-child(7),.attendance-table td:nth-child(7){width:7.7rem}.attendance-table th:nth-child(8),.attendance-table td:nth-child(8){width:9rem}.attendance-table th:nth-child(9),.attendance-table td:nth-child(9){width:9.6rem}.test-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.3rem;display:grid}.test-soft-card{text-align:left;background:#ffffffb8;border:1px solid #8597ab1f;border-radius:1.25rem;gap:.45rem;min-height:11rem;padding:1.2rem;display:grid;box-shadow:0 14px 34px #50627b14}.test-icon{width:3rem;height:3rem;color:var(--green);background:var(--green-soft);border-radius:.9rem;place-items:center;display:grid}.test-soft-card strong{color:var(--ink);font-size:1.05rem}.test-soft-card span:not(.test-icon),.test-soft-card small{color:var(--muted)}.test-card-meta{grid-template-columns:minmax(7rem,auto) 1fr;align-items:baseline;gap:.45rem;font-size:.86rem;display:grid}.test-card-meta b{color:#12213a9e;font-weight:700}.test-card-meta em{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-style:normal;overflow:hidden}.score-basic-section,.score-student-section{gap:1rem;display:grid}.score-student-section{margin-top:1rem}.score-section-title{color:var(--ink);background:#ffffffb8;border:1px solid #8597ab29;border-radius:1rem;padding:.9rem 1rem;font-weight:800}.score-section-title.accent{color:var(--brand-active);background:#f3752114}.score-info-grid{grid-template-columns:repeat(3,minmax(13rem,max-content));align-items:end;gap:1rem 1.4rem;display:grid}.score-info-grid div,.score-info-grid label,.score-description-field{color:var(--ink);gap:.55rem;font-weight:800;display:grid}.score-info-grid span,.score-description-field span{color:var(--ink);font-weight:700}.score-info-grid span strong,.score-description-field span strong{color:var(--red)}.score-info-grid div strong{color:var(--ink);font-weight:900}.score-info-grid .soft-select,.score-info-grid .soft-date-picker{max-width:100%}.score-description-field textarea,.score-student-comment textarea,.score-skill-card textarea,.score-skill-card input{width:100%;color:var(--ink);font:inherit;background:#ffffffd6;border:1px solid #8597ab4d;border-radius:.75rem;padding:.58rem .7rem}.score-info-grid-month{color:var(--muted);gap:.35rem;font-size:.82rem;font-weight:800;display:grid}.score-info-grid-month input,.test-date-filter input,.evaluation-rating-grid input{color:var(--ink);font:inherit;background:#ffffffd6;border:1px solid #8597ab4d;border-radius:.75rem;padding:.58rem .7rem}.localized-month-input{display:block;position:relative}.localized-month-input input{color:#0000;caret-color:#0000;width:100%;min-width:13rem}.localized-month-input input::-webkit-datetime-edit{color:#0000}.localized-month-value{color:var(--ink);pointer-events:none;align-items:center;display:flex;position:absolute;inset:0 2.2rem 0 .7rem}.test-date-filter label{color:var(--muted);gap:.3rem;font-size:.8rem;font-weight:800;display:grid}.evaluation-student-card{gap:1rem;padding:1rem}.evaluation-table-wrap{background:#fff;border:1px solid #4ca4b533;border-radius:.85rem;margin-top:.75rem;overflow-x:auto;box-shadow:0 10px 28px #50627b0f}.evaluation-table{border-collapse:collapse;width:100%;min-width:1380px;color:var(--muted);font-size:.82rem}.evaluation-table.compact{min-width:760px}.evaluation-table th{color:#526b74;text-align:left;white-space:nowrap;background:#d8f4f8;padding:.58rem .65rem;font-size:.78rem;font-weight:800}.evaluation-table td{vertical-align:middle;white-space:nowrap;border-bottom:1px solid #8597ab1f;height:3.35rem;padding:.4rem .65rem}.evaluation-table tbody tr:last-child td{border-bottom:0}.evaluation-table tbody tr:hover td{background:#d8f4f838}.evaluation-table th:first-child,.evaluation-table td:first-child{text-align:center;width:2.5rem}.evaluation-table th:nth-child(2),.evaluation-table td:nth-child(2){width:8.5rem}.evaluation-table th:nth-child(3),.evaluation-table td:nth-child(3){width:11rem}.evaluation-table th:nth-child(4),.evaluation-table td:nth-child(4){width:8rem}.evaluation-table th:last-child,.evaluation-table td:last-child{width:15rem}.evaluation-table.compact th:nth-child(3),.evaluation-table.compact td:nth-child(3){width:13rem}.evaluation-table.compact th:last-child,.evaluation-table.compact td:last-child{width:22rem}.evaluation-order,.evaluation-code{color:#71808d}.evaluation-name{color:var(--ink);font-weight:750}.required-mark{color:#f44336;margin-right:.12rem}.rating-stars{gap:.08rem;display:inline-flex}.rating-stars button{color:#c9d0d6;cursor:pointer;background:0 0;border:0;width:1.15rem;height:1.45rem;padding:0;font-size:1rem;line-height:1;transition:color .15s,transform .15s}.rating-stars button:hover,.rating-stars button:focus-visible,.rating-stars button.active{color:#f59b23}.rating-stars button:hover,.rating-stars button:focus-visible{outline:none;transform:scale(1.18)}.evaluation-comment{width:100%;min-height:2.25rem;max-height:4.5rem;color:var(--ink);font:inherit;resize:vertical;background:#fff;border:1px solid #8597ab52;border-radius:.45rem;padding:.38rem .5rem}.evaluation-comment:focus{border-color:#59b9ca;outline:2px solid #59b9ca24}@media (width<=820px){.evaluation-table-wrap{border-radius:.65rem;margin-inline:-.35rem}.evaluation-table{min-width:1280px;font-size:.78rem}}.evaluation-student-heading{align-items:center;gap:.75rem;display:flex}.score-student-order{width:2rem;height:2rem;color:var(--brand-active);background:#f375211a;border-radius:.7rem;place-items:center;font-size:.82rem;font-weight:900;display:grid}.evaluation-student-heading>span:last-child{gap:.12rem;display:grid}.evaluation-student-heading strong{color:var(--ink);font-weight:900}.evaluation-student-heading small{color:var(--muted);font-weight:800}.evaluation-rating-grid{grid-template-columns:repeat(6,minmax(5.5rem,1fr));gap:.75rem;display:grid}.evaluation-rating-grid label{color:var(--muted);gap:.35rem;font-size:.78rem;font-weight:800;display:grid}.evaluation-save-note{color:var(--muted);font-size:.86rem;font-weight:800}.evaluation-save-actions{justify-content:flex-end;margin-top:1rem;display:flex}.evaluation-save-button,.evaluation-save-button:not(:disabled){color:#fff;background:linear-gradient(135deg,#f37521,#ff4f17);box-shadow:0 14px 30px #f375213d}.evaluation-save-button:disabled{opacity:.62}@media (width<=820px){.evaluation-rating-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.score-description-field textarea{resize:vertical;min-height:4.8rem}.score-student-list{gap:.7rem;display:grid}.score-student-card{background:#ffffffb8;border:1px solid #8597ab21;border-radius:1.15rem;display:grid;overflow:hidden;box-shadow:0 12px 30px #50627b12}.score-student-summary{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:3rem minmax(8rem,.75fr) minmax(13rem,1fr) minmax(10rem,.9fr) 5rem 2rem;align-items:center;gap:.8rem;padding:1rem;display:grid}.score-student-summary:hover,.score-student-summary[aria-expanded=true]{background:#f375210f}.score-student-summary>span{gap:.18rem;min-width:0;display:grid}.score-student-summary small{color:var(--muted);font-size:.74rem;font-weight:800}.score-student-summary strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.score-expand-mark{color:var(--brand);text-align:right;font-size:1.2rem}.score-student-detail{gap:1rem;padding:0 1rem 1rem;display:grid}.score-student-comment{color:var(--muted);gap:.45rem;font-size:.84rem;font-weight:800;display:grid}.score-student-comment textarea,.score-skill-card textarea{resize:vertical;min-height:2.6rem}.score-skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.score-skill-card{background:#ffffffa8;border:1px solid #8597ab1f;border-radius:1rem;gap:.8rem;padding:1rem;display:grid}.score-skill-card>div{justify-content:flex-start;align-items:center;gap:.75rem;display:flex}.score-skill-card strong{color:var(--ink)}.score-skill-card>div span,.score-skill-card label span{color:var(--muted);font-size:.82rem;font-weight:800}.score-skill-card label{gap:.4rem;display:grid}.score-modal .modal-header{background:radial-gradient(circle at 62% 0,#f375212e,#0000 18rem),linear-gradient(90deg,#fff8f0fa,#fff1e3e6);border-bottom:1px solid #f3752124;min-height:5rem;position:relative;overflow:hidden}.score-modal .modal-header:before{content:"✓";color:#fff;background:var(--brand);border-radius:.8rem;place-items:center;width:2.65rem;height:2.65rem;font-size:1.35rem;font-weight:900;display:grid}.modal-title-copy h2{margin:0}.modal-title-copy p{color:var(--muted);margin:.25rem 0 0;font-size:.86rem;font-weight:600}.score-modal .modal-title-copy{z-index:1;margin-right:auto;position:relative}.score-modal .icon-button{z-index:1;position:relative}.score-modal .modal-body{background:#fffaf5}.score-panel-card{background:#ffffffdb;border:1px solid #8597ab21;border-radius:1rem;padding:1rem;box-shadow:0 14px 34px #50627b12}.score-modal .score-section-title{color:var(--ink);background:#ffecddb8;border:0;border-radius:1rem 1rem 0 0;align-items:center;gap:.55rem;margin:-1rem -1rem 1rem;display:flex}.score-modal .score-section-title>span{color:var(--brand)}.score-modal .score-section-title small{color:var(--muted);font-weight:700}.score-modal .score-section-title button{color:var(--brand-active);background:#fff;border:1px solid #f3752159;border-radius:999px;margin-left:auto;padding:.55rem .85rem;font-weight:800}.score-modal .score-info-grid{grid-template-columns:minmax(10rem,.8fr) minmax(14rem,1fr) minmax(13rem,.9fr) minmax(12rem,.9fr)}.score-modal .score-info-grid label,.score-modal .score-description-field{min-width:0}.score-modal .score-info-grid input,.score-modal .score-description-field textarea,.score-modal .score-student-summary textarea,.score-modal .score-skill-card input,.score-modal .score-skill-card textarea{background:#ffffffeb;border:1px solid #8597ab2e;border-radius:.7rem;padding-block:.45rem;box-shadow:inset 0 1px #fffc}.score-modal .score-skill-card textarea{min-height:2rem}.score-modal .score-info-grid input[readonly],.score-modal .score-skill-card input[readonly]{color:var(--ink);background:#ffffffeb}.score-grader-field{grid-column:span 1}.score-modal .score-description-field{grid-column:span 3}.score-modal .score-description-field textarea{min-height:2.75rem}.score-student-header,.score-modal .score-student-summary{grid-template-columns:4rem minmax(8rem,.78fr) minmax(13rem,1.1fr) 6.5rem minmax(18rem,1.35fr) 2.5rem;align-items:center;gap:.85rem;display:grid}.score-student-header{color:var(--muted);background:#fff8f0f2;padding:.55rem .85rem;font-size:.78rem;font-weight:900}.score-modal .score-student-card{box-shadow:none;background:#fff;border-width:0 0 1px;border-radius:0}.score-modal .score-student-list{background:#fff;border:1px solid #8597ab1f;border-radius:1rem;gap:0;overflow:hidden}.score-modal .score-student-summary{background:#fff;padding:.52rem .85rem}.score-modal .score-student-summary[aria-expanded=true]{background:#fff8f0b3}.score-modal .score-student-summary button{color:#40516d;text-align:left;font:inherit;background:0 0;border:0;padding:0;font-weight:800}.score-student-name-cell{align-items:center;gap:.2rem;min-width:0;display:inline-flex}.score-student-name-cell span{gap:.15rem;min-width:0;display:grid}.score-student-name-cell small{color:var(--muted);font-weight:700}.score-total-preview{color:#fff;text-align:center;background:linear-gradient(135deg,#f37521,#ff4f17);border-radius:999px;justify-self:start;min-width:4.2rem;padding:.42rem .7rem;font-size:.9rem;font-weight:900}.score-total-preview.empty{color:#6f7783;background:#f0f2f5}.score-modal .score-student-summary textarea{resize:vertical;min-height:1.95rem}.score-modal .score-expand-mark{color:var(--ink);text-align:center}.score-modal .score-student-summary[aria-expanded=true] .score-expand-mark{transform:rotate(180deg)}.score-modal .score-student-detail{background:#fff8f073;padding:0 .85rem .75rem 5.7rem}.score-total-row{color:var(--muted);background:#fff8f0b8;grid-template-columns:minmax(6.4rem,.3fr) minmax(4rem,.3fr) minmax(7rem,.2fr) minmax(16rem,1.35fr);align-items:center;gap:.65rem;padding:.65rem .75rem;font-size:.82rem;display:grid}.score-total-row strong{color:var(--ink)}.score-modal .score-skill-grid{background:#fff;grid-template-columns:1fr;gap:0;overflow:hidden}.score-skill-table{background:#fff;border:1px solid #f3752124;border-radius:.9rem;overflow:hidden}.score-skill-table-head{color:var(--muted);background:#ffecddb8;grid-template-columns:minmax(6.4rem,.3fr) minmax(4rem,.3fr) minmax(7rem,.2fr) minmax(16rem,1.35fr);gap:.65rem;padding:.6rem .75rem;font-size:.82rem;font-weight:900;display:grid}.score-modal .score-skill-card{background:#fff;border:0;border-bottom:1px solid #8597ab1a;border-radius:0;grid-template-columns:minmax(6.4rem,.3fr) minmax(4rem,.3fr) minmax(7rem,.2fr) minmax(16rem,1.35fr);align-items:center;gap:.65rem;padding:.55rem .75rem}.score-modal .score-skill-card:last-child{border-bottom:0}.score-skill-name{align-items:center;gap:.6rem;display:inline-flex}.score-skill-icon{width:2rem;height:2rem;color:var(--brand);background:#f375211a;border-radius:.55rem;place-items:center;font-weight:900;display:grid}.score-modal .score-skill-card .score-weight-value{color:var(--ink);font-weight:900}.score-skill-icon.skill-listening{color:#7b4fe8;background:#7b4fe81a}.score-skill-icon.skill-reading{color:#4dbb88;background:#4dbb881f}.score-skill-icon.skill-writing{color:#5b8def;background:#5b8def1f}.score-modal .modal-footer{background:#fffaf5f5;justify-content:flex-end;gap:.65rem}.score-modal .modal-footer .score-footer-warning{color:var(--brand-active);font-weight:800}.unsaved-footer-warning{color:var(--brand-active);margin-right:auto;font-weight:800}.attendance-discard-footer{z-index:5;border-radius:0 0 var(--radius) var(--radius);background:#fffaf5fa;border-top:1px solid #f3752133;justify-content:flex-end;align-items:center;gap:.65rem;margin:1.25rem -2rem -2rem;padding:.9rem 1.25rem;display:flex;position:sticky;bottom:0;box-shadow:0 -10px 28px #50627b14}.score-discard-button{color:#fff;background:#b53f46;border:1px solid #b53f4647;border-radius:.75rem;padding:.7rem 1rem;font-weight:900}.score-discard-button:hover{background:#98343a}@media (width<=700px){.attendance-discard-footer{flex-direction:column;align-items:stretch;margin-inline:-1rem;padding:.85rem 1rem}.attendance-discard-footer .unsaved-footer-warning{margin-right:0}}.score-modal .modal-footer>span{margin-right:auto}.score-modal .modal-footer .ghost-button{color:var(--ink);box-shadow:none;background:#fff;border:1px solid #12213a24}@media (width<=980px){.class-detail-hero{margin-top:0}.class-detail-summary{grid-template-columns:12rem 1fr}.class-overview-layout{grid-template-columns:1fr}.overview-notice-card{grid-column:auto}.class-detail-visual{display:none}.class-info-grid,.attendance-session-grid,.test-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-panel-toolbar{flex-direction:column;align-items:stretch}.attendance-session-select{flex-direction:column;align-items:stretch;gap:.45rem}.attendance-session-select .soft-select{min-width:100%}.attendance-toolbar-actions{justify-content:flex-start;align-items:stretch}.attendance-date-filter{width:fit-content}.attendance-extra-top{grid-template-columns:1fr}.detail-tools{flex-wrap:wrap}.score-info-grid,.score-student-summary{grid-template-columns:1fr 1fr}}@media (width<=560px){.class-detail-summary,.class-info-grid,.attendance-session-grid,.test-grid{grid-template-columns:1fr}.attendance-view-toggle{width:fit-content}.attendance-date-filter{border-radius:1rem;flex-wrap:wrap;align-items:flex-start;width:100%}.attendance-modal-content{min-width:0}.class-detail-tabs{grid-template-columns:repeat(5,minmax(0,1fr));padding-inline:.75rem}.detail-panel{padding:1rem}.student-search{min-width:100%}.student-calendar-item{grid-template-columns:1fr;align-items:stretch}.overview-basic-card,.overview-description-card,.overview-materials-card,.overview-notice-card{padding:1rem}.overview-info-list dd,.overview-material-list li,.overview-notice-card{grid-template-columns:1fr}.overview-info-list div{grid-template-columns:2.3rem 1fr}.overview-material-list li{align-items:start}.score-info-grid,.score-student-summary{grid-template-columns:1fr}.attendance-meta{display:grid}.attendance-meta span+span{border-left:0;padding-left:0}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:focus{outline-color:#f3752159}:focus:not(:focus-visible){outline:none}body{min-width:320px;color:var(--ink);background:radial-gradient(circle at 14% 10%, #f3752114, transparent 24rem), var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.portal-shell{min-height:100vh;position:relative;overflow-x:hidden}.portal-shell:after{content:"";pointer-events:none;opacity:.22;filter:blur(.2px);background:radial-gradient(circle at 74% 34%,#f3752152 0 9%,#0000 10%),linear-gradient(165deg,#0000 34%,#f375211f 35% 48%,#0000 49%);width:min(48vw,45rem);height:min(26vw,24rem);position:fixed;bottom:-3rem;right:-4rem}.portal-header{z-index:50;pointer-events:none;background:0 0;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.25rem;width:min(1410px,100% - 3rem);margin:0 auto;padding:1.15rem 0 .35rem;display:grid;position:sticky;top:6px}.portal-header>*{pointer-events:auto}.brand{color:var(--ink);align-items:center;gap:.75rem;display:none}.brand-mark{width:2.65rem;height:2.65rem;color:var(--blue);box-shadow:var(--shadow-sm);background:#ffffffb3;border-radius:.9rem;place-items:center;display:grid}.brand-mark svg{width:1.9rem;height:1.9rem}.brand strong{letter-spacing:-.02em;font-weight:800;display:block}.brand small{color:var(--muted);font-size:.78rem;display:block}.top-nav{border:1px solid var(--line-soft);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe6;border-radius:999px;grid-column:2;justify-self:center;gap:.35rem;padding:.35rem;display:flex}.portal-shell-home .top-nav{display:none}.portal-shell-inner .top-nav{z-index:80;border-left:0;border-radius:0 1.45rem 1.45rem 0;flex-direction:column;grid-column:auto;gap:.45rem;padding:.5rem .45rem .5rem .35rem;position:fixed;top:50%;left:0;transform:translateY(-50%)}.top-nav a{color:var(--muted);border-radius:999px;justify-content:center;align-items:center;padding:.68rem 1rem;font-size:.88rem;font-weight:700;display:flex}.top-nav-icon{display:none}.portal-shell-inner .top-nav a{width:2.85rem;height:2.85rem;padding:0}.portal-shell-inner .top-nav-icon{place-items:center;display:grid}.portal-shell-inner .top-nav-icon svg{width:1.22rem;height:1.22rem}.portal-shell-inner .top-nav-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.top-nav a.active{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.header-actions{grid-column:3;justify-self:end;align-items:center;gap:.7rem;margin-right:4.2rem;display:flex}.language-toggle,.header-icon{height:2.65rem;box-shadow:var(--shadow-sm);color:var(--ink);background:#ffffffeb;border:0;border-radius:999px;place-items:center;display:grid}.language-toggle{min-width:2.9rem;font-weight:800}.header-icon{width:2.65rem}.header-icon svg{color:#65748b;width:1.25rem;height:1.25rem}.user-chip{appearance:none;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:#ffffffeb;border:0;border-radius:999px;align-items:center;gap:.7rem;padding:.35rem .9rem .35rem .35rem;display:flex}.user-chip:hover{background:#fff;transform:translateY(-1px)}.avatar{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));border-radius:999px;place-items:center;width:2.65rem;height:2.65rem;font-weight:900;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.small{width:2.15rem;height:2.15rem;margin-right:.6rem;font-size:.78rem}.avatar.large{width:4.2rem;height:4.2rem}.user-chip strong,.user-chip small{display:block}.user-chip strong{font-size:.92rem}.user-chip small{color:var(--muted);font-size:.78rem}.portal-main{z-index:1;width:min(1260px,100% - 3rem);margin:0 auto;padding:.2rem 0 3rem;position:relative}.portal-shell-inner .portal-main{width:min(1260px,100% - 6.5rem)}.edu-hero{grid-template-columns:1fr 1.05fr;align-items:end;gap:2rem;min-height:15rem;margin-bottom:3rem;display:grid;position:relative}.compact-hero{max-width:46rem;min-height:auto;margin:1.15rem 0 1.45rem;display:block}.edu-hero:before{content:"";opacity:.48;background:linear-gradient(125deg,#0000 45%,#f375212e 46% 48%,#0000 49%),radial-gradient(circle at 80% 80%,#f3752133,#0000 36%);width:22rem;height:16rem;position:absolute;top:-3rem;right:-5rem}.compact-hero:before{display:none}.edu-hero-copy{max-width:43rem}.edu-hero-copy>span,.action-copy>span,.page-title .eyebrow{color:var(--muted);font-size:.92rem;font-weight:600}.edu-hero-copy h1{font-family:var(--font-display);color:var(--ink);letter-spacing:-.04em;margin:.45rem 0 .7rem;font-size:clamp(3rem,6vw,4.9rem);line-height:.94}.page-title h1,.class-hero h1{font-family:var(--font-body);color:var(--ink);letter-spacing:-.04em;margin:.45rem 0 .7rem;font-size:clamp(2.25rem,4vw,3.35rem);line-height:1.08}.compact-hero .edu-hero-copy h1{font-size:clamp(2.45rem,3.7vw,3.35rem)}.edu-hero-copy p{color:var(--muted);margin:0;font-size:.98rem;line-height:1.62}.edu-hero-copy:after{content:"";background:var(--gold);width:4.4rem;height:2px;margin-top:1.15rem;display:block}.hero-pills{flex-wrap:wrap;gap:.7rem;margin-top:1.25rem;display:flex}.hero-pills strong{color:var(--muted);background:#ffffff9e;border-radius:999px;padding:.6rem .85rem;font-size:.82rem;box-shadow:0 10px 25px #50627b14}.hero-art{align-self:center;width:100%;max-height:13rem}.hero-art-left{opacity:.9;justify-self:end}.hero-art-right{display:none}.action-hub{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem;margin-bottom:1.45rem;display:grid}.action-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);min-height:15.5rem;box-shadow:var(--shadow);-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:39% 1fr;align-items:center;transition:transform .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden}.action-card:hover{transform:translateY(-6px);box-shadow:0 20px 54px #1a1a181a}.class-action,.timesheet-action{background:linear-gradient(135deg, var(--brand-bg), var(--surface))}.schedule-action{background:linear-gradient(135deg,#fff1e3e6,#ffffffbd)}.survey-action{background:linear-gradient(135deg,#fff8f0eb,#ffffffbd)}.action-illustration{background:radial-gradient(circle at 52% 48%,#f375211a,#0000 44%);place-items:end center;height:100%;min-height:15.5rem;padding:.8rem 0 0 .65rem;display:grid}.timesheet-action .action-illustration{background:radial-gradient(circle at 55%,#f375211a,#0000 44%)}.schedule-action .action-illustration{background:radial-gradient(circle at 55% 48%,#f3752129,#0000 46%)}.survey-action .action-illustration{background:radial-gradient(circle at 54% 48%,#ff9a4d2e,#0000 46%)}.action-illustration svg{width:min(90%,14rem)}.action-copy{min-height:11.75rem;padding:1.45rem 1.45rem 4.1rem .35rem;position:relative}.action-copy h2{font-family:var(--font-display);letter-spacing:-.04em;margin:.35rem 0 .5rem;font-size:clamp(1.75rem,3vw,2.35rem);line-height:1}.class-action h2,.timesheet-action h2,.schedule-action h2,.survey-action h2{color:var(--brand-deep)}.action-copy p{max-width:23rem;color:var(--muted);margin:0;font-size:.94rem;line-height:1.58}.action-copy dl{grid-template-columns:repeat(3,1fr);gap:.55rem;margin:1.1rem 0 1.2rem;display:grid}.action-copy dl div{background:#ffffffa3;border-radius:1rem;padding:.75rem}.action-copy dt{min-height:2.1rem;color:var(--muted);font-size:.72rem}.action-copy dd{color:var(--ink);margin:0;font-size:1.25rem;font-weight:900}.action-copy>strong,.enter-class-button,.primary-button{color:var(--ink);background:#fff;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.78rem 1rem;font-weight:800;display:inline-flex;box-shadow:0 14px 32px #50627b1f}.action-copy>strong:after{content:"→";color:currentColor;margin-left:.8rem}.round-arrow{color:#fff;background:var(--brand);border-radius:999px;place-items:center;width:2.75rem;height:2.75rem;font-size:1.18rem;font-weight:800;display:grid;position:absolute;bottom:1.35rem;right:1.35rem;box-shadow:0 14px 30px #f3752133}.timesheet-action .round-arrow,.action-copy>.round-arrow,.round-arrow,.class-arrow,.classes-back,.timesheet-back,.timesheet-month-tools>button:not(.timesheet-filter),.timesheet-day-detail,.timesheet-day-detail svg{color:#fff}.action-card:hover .round-arrow,.class-gallery-card:hover .class-arrow,.classes-back:hover,.timesheet-back:hover,.timesheet-month-tools>button:not(.timesheet-filter):hover,.timesheet-day-detail:hover{background:var(--brand-hover);color:#fff}.action-card:active .round-arrow,.class-gallery-card:active .class-arrow,.classes-back:active,.timesheet-back:active,.timesheet-month-tools>button:not(.timesheet-filter):active,.timesheet-day-detail:active{background:var(--brand-active);color:#fff}.grading-filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.grading-filter-tabs{flex-wrap:wrap;gap:.75rem;display:flex}.grading-date-filter{color:var(--muted);background:#fff;border:1px solid #f3752124;border-radius:999px;align-items:center;gap:.55rem;padding:.45rem .6rem;font-size:.78rem;font-weight:900;display:inline-flex}.grading-month-input input{width:100%;min-width:13rem;font:inherit;background:0 0;border:0;padding:.35rem 0}.grading-filter-tabs button{color:var(--muted);background:#fff;border:1px solid #f3752129;border-radius:999px;align-items:center;gap:.55rem;padding:.7rem 1rem;font-weight:900;display:inline-flex}.grading-filter-tabs button.active{color:var(--ink);background:#ffecdde6;border-color:#f3752157}.grading-filter-tabs strong{color:#fff;background:var(--brand);border-radius:999px;place-items:center;min-width:1.6rem;height:1.6rem;font-size:.78rem;display:grid}.grading-test-card{text-align:left;cursor:pointer;border:0;padding:0}.education-quote{justify-content:space-between;align-items:end;min-height:5.5rem;margin-top:.25rem;display:flex}.education-quote blockquote{color:#12213ac7;max-width:32rem;margin:0}.education-quote blockquote>span{color:#f3752152;height:1.3rem;font-family:var(--font-display);font-size:3.2rem;line-height:.7;display:block}.education-quote p{font-family:var(--font-display);margin:0;font-size:clamp(1.05rem,1.45vw,1.35rem);font-style:italic;line-height:1.35}.education-quote cite{color:#cc5612d1;margin-top:.65rem;font-size:.86rem;font-style:normal;font-weight:600;display:block}.home-support-grid{grid-template-columns:1.1fr .9fr;gap:1.25rem;margin-bottom:1.25rem;display:grid}.soft-card,.portal-card,.state-card,.mini-work-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none;backdrop-filter:none}.soft-card,.portal-card{padding:1.25rem}.section-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-heading h2,.portal-card h2{font-family:var(--font-body);margin:0;font-size:1.25rem;font-weight:800;line-height:1.2}.section-heading span,.section-heading a{color:var(--muted);font-size:.88rem}.today-session-list,.timeline-list,.card-list,.compact-list,.task-list{gap:.8rem;padding:0;list-style:none;display:grid}.today-session,.timeline-item,.task-list li,.shift-card,.test-card{background:#ffffffb3;border:1px solid #8597ab1a;border-radius:1.05rem;grid-template-columns:5rem 1fr auto;align-items:center;gap:.9rem;padding:.95rem;display:grid}.today-session>span,.timeline-item time{color:var(--blue);font-weight:900}.today-session p,.timeline-item p,.shift-card p,.class-card p{color:var(--muted);margin:.12rem 0 0}.today-session em,.today-session a,.ghost-button{color:var(--green);background:var(--green-soft);white-space:nowrap;border:0;border-radius:999px;padding:.55rem .75rem;font-style:normal;font-weight:800}.today-session a:hover,.mini-work-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.survey-list{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.survey-item{color:var(--muted);background:#ffffffb8;border-radius:1.05rem;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1rem;display:flex}.survey-item strong{color:var(--ink);font-size:1.25rem}.survey-item.success strong{color:var(--brand-active)}.survey-item.warning strong{color:var(--brand)}.survey-note{color:var(--muted);margin:1rem 0 0;line-height:1.65}.notice-card ul{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.notice-card li{color:var(--muted);align-items:center;gap:.7rem;line-height:1.55;display:flex}.notice-card li span{background:var(--gold);border-radius:999px;flex:none;width:.65rem;height:.65rem;box-shadow:0 0 0 .28rem #f3752121}.quick-work-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.mini-work-card{align-items:center;gap:1rem;padding:1rem;transition:transform .18s,box-shadow .18s;display:flex}.mini-work-card svg{flex:none;width:4rem;height:4rem}.mini-work-card strong,.mini-work-card span{display:block}.mini-work-card span{color:var(--muted);margin-top:.2rem;font-size:.84rem}.page-title{margin-bottom:1.35rem}.page-title h1{font-size:clamp(2.25rem,4vw,3.35rem)}.page-title p{color:var(--muted);line-height:1.7}.back-link{color:var(--muted);margin-bottom:1rem;font-weight:800;display:inline-flex}.segmented-control,.tab-bar{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#ffffff9e;border-radius:999px;gap:.35rem;margin-bottom:1.25rem;padding:.35rem;display:inline-flex}.segmented-control button,.tab-bar button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:.72rem 1rem;font-weight:800}.segmented-control button.active,.tab-bar button.active{color:#fff;background:var(--ink)}.class-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;display:grid}.class-card{padding:1.3rem;transition:transform .18s,box-shadow .18s;display:block}.class-card:hover{box-shadow:var(--shadow);transform:translateY(-5px)}.class-card-head,.class-hero,.toolbar,.summary-strip{justify-content:space-between;align-items:center;gap:1rem;display:flex}.class-card h2{font-family:var(--font-body);margin:0;font-size:1.35rem;font-weight:800;line-height:1.15}.info-list,.detail-grid{gap:.85rem;margin:1rem 0;display:grid}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}dt{color:var(--muted);font-size:.8rem}dd{margin:.2rem 0 0;font-weight:800}.class-hero{margin-bottom:1rem;padding:1.5rem}.badge{color:var(--blue);background:var(--blue-soft);border-radius:999px;align-items:center;padding:.42rem .68rem;font-size:.76rem;font-weight:800;display:inline-flex}.badge.success,.badge.approved{color:var(--green);background:var(--green-soft)}.badge.danger,.badge.rejected{color:var(--red);background:#fff0f0}.badge.muted{color:var(--muted);background:#60708a1a}.badge.pending{color:#9a681e;background:#f375211f}.classes-hero-page{min-height:16.2rem;margin-top:-3.2rem;margin-left:-4.2rem;padding:0 0 1.25rem;position:relative}.classes-title-row{align-items:center;gap:1.35rem;width:fit-content;margin-bottom:1.35rem;display:flex}.classes-back{z-index:90;background:var(--brand);color:#fff;border:0;border-radius:999px;place-items:center;width:2.85rem;height:2.85rem;font-size:1.35rem;font-weight:800;transition:transform .2s,box-shadow .2s,background .2s,color .2s;display:grid;position:relative;box-shadow:0 14px 30px #f3752133}.classes-back:hover,.timesheet-back:hover{transform:translate(-3px)scale(1.06);box-shadow:0 16px 34px #f3752142}.classes-back:focus-visible,.timesheet-back:focus-visible{outline-offset:3px;outline:3px solid #f3752138}.classes-title-mark{width:2.55rem;height:2.55rem}.classes-title-mark img{object-fit:contain;image-rendering:auto;width:100%;height:100%}.classes-title-row h1{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(1.85rem,2.7vw,2.35rem)}.classes-title-trail{color:var(--muted);white-space:nowrap;font-size:1rem;font-weight:800}.classes-greeting{z-index:2;max-width:46rem;margin-top:3rem;margin-left:4.1rem;position:relative}.classes-greeting span{color:var(--muted);font-size:.9rem}.classes-greeting h2{font-family:var(--font-display);color:var(--ink);letter-spacing:-.05em;margin:.35rem 0 .55rem;font-size:clamp(2.15rem,3.15vw,2.5rem);line-height:1.5}.classes-greeting p{color:var(--muted);margin:0;font-size:.96rem}.classes-greeting:after{content:"";background:var(--gold);border-radius:999px;width:3.4rem;height:2px;margin-top:.9rem;display:block}.classes-hero-visual{pointer-events:none;width:min(42rem,50vw);height:22rem;position:absolute;bottom:0;right:0}.classes-hero-visual img{object-fit:contain;object-position:right bottom;filter:drop-shadow(0 22px 36px #50627b1f);width:100%;height:100%}.classes-board{border-top:1px solid var(--line-soft);border-radius:var(--radius) var(--radius) 0 0;background:var(--surface);margin:0 calc(50% - 50vw);padding:1.1rem max(1.5rem,50vw - 630px) 2.2rem;box-shadow:0 -10px 34px #1a1a180d}.classes-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.classes-filter{gap:.65rem;display:inline-flex}.classes-filter button,.class-sort,.class-search{background:#ffffffdb;border:0;border-radius:999px;box-shadow:0 14px 34px #50627b17}.classes-filter button{color:var(--muted);align-items:center;gap:.55rem;padding:.72rem 1.1rem;font-weight:600;display:inline-flex}.classes-filter button.active{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-deep))}.classes-filter strong{color:#fff;background:var(--brand);border-radius:999px;place-items:center;min-width:1.45rem;height:1.45rem;font-size:.74rem;font-weight:900;display:grid}.classes-filter button.active strong{color:var(--brand-active);background:#fff}.classes-tools-right{align-items:center;gap:.8rem;display:flex}.class-search{align-items:center;gap:.65rem;min-width:17rem;padding:0 .95rem;display:flex}.class-search span{color:var(--muted);font-size:1.2rem}.class-search input{box-shadow:none;background:0 0;border:0}.class-sort{width:auto;padding:.72rem 2.2rem .72rem .95rem;font-weight:800}.class-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.95rem 1.15rem;display:grid}.class-gallery-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);min-height:12.9rem;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s;overflow:hidden}.class-gallery-card:hover{transform:translateY(-5px);box-shadow:0 18px 46px #1a1a1817}.materials-board{border-top:1px solid var(--line-soft);border-radius:var(--radius) var(--radius) 0 0;background:linear-gradient(#fffffff2,#f7f3ebeb);margin:0 calc(50% - 50vw);padding:1.25rem max(1.5rem,50vw - 630px) 2.5rem;box-shadow:0 -10px 34px #1a1a180d}.materials-toolbar{justify-content:flex-end;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.materials-toolbar h2{color:var(--ink);font-family:var(--font-home);margin:0;font-size:clamp(1.6rem,2.5vw,2.3rem);line-height:1}.materials-toolbar p{color:var(--muted);margin:.35rem 0 0;font-weight:700}.materials-search{min-height:2.9rem}.materials-search>span{color:var(--brand-active)}.materials-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem;display:grid}.material-group-card{background:#ffffffc7;border:1px solid #ffffffb8;border-radius:1.4rem;align-content:start;gap:1rem;min-height:17rem;padding:1.25rem;display:grid;box-shadow:0 16px 40px #50627b17}.material-group-card header{box-sizing:border-box;border-bottom:1px solid #8597ab2e;justify-content:space-between;align-items:flex-start;gap:1rem;height:3.25rem;padding-bottom:.9rem;display:flex}.material-group-card header>span{align-items:center;gap:.55rem;min-width:0;display:flex}.material-group-card h3{color:var(--ink);font-family:var(--font-home);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:clamp(1rem,1.45vw,1.22rem);line-height:1.08;overflow:hidden}.material-group-card small{color:var(--ink);background:#fff;border:1px solid #8597ab52;border-radius:.45rem;padding:.1rem .38rem;font-size:.78rem;font-weight:800}.material-group-icon{width:2.4rem;height:2.4rem;color:var(--brand-active);flex:none;margin-top:-.12rem}.material-group-card ul{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.material-item{gap:.22rem;display:grid}.material-link{color:#23334c;text-align:left;width:100%;font:inherit;background:0 0;border:0;align-items:flex-start;gap:.5rem;padding:0;font-size:.92rem;line-height:1.35;text-decoration:none;display:flex;position:relative}.material-link:hover{color:var(--brand-active)}.material-link-disabled{cursor:default}.material-link-disabled:hover{color:#23334c}.material-item-copy{gap:.28rem;min-width:0;display:grid}.material-item-copy strong{color:inherit;font-weight:800}.material-item-meta{flex-wrap:wrap;gap:.35rem;margin-top:.08rem;display:flex}.material-note-meta{margin-top:-.05rem;padding-left:1.5rem}.material-item-meta em,.material-note-link{color:#9b5422;background:#f375211a;border-radius:999px;align-items:center;padding:.18rem .48rem;font-size:.72rem;font-style:normal;font-weight:800;text-decoration:none;display:inline-flex}.material-note-link:hover{color:#fff;background:var(--brand-active)}.material-description-tooltip{z-index:12;color:#fff;opacity:0;pointer-events:none;background:#23334cf5;border:1px solid #8597ab2e;border-radius:.85rem;width:max-content;max-width:min(22rem,72vw);padding:.65rem .75rem;font-size:.78rem;font-weight:650;line-height:1.45;transition:opacity .15s,transform .15s;position:absolute;top:calc(100% + .45rem);left:1.45rem;transform:translateY(-.18rem);box-shadow:0 16px 34px #23334c38}.material-description-tooltip:before{content:"";border:.36rem solid #0000;border-bottom-color:#23334cf5;position:absolute;bottom:100%;left:.72rem}.material-link:hover .material-description-tooltip,.material-link:focus-visible .material-description-tooltip{opacity:1;transform:translateY(0)}.material-document-icon{width:1rem;height:1rem;color:var(--brand-active);flex:none;margin-top:.1rem}.class-image-placeholder{background:linear-gradient(135deg, var(--brand-hover), var(--brand-bg));min-height:9.1rem;position:relative;overflow:hidden}.tone-1 .class-image-placeholder{background:linear-gradient(135deg, #ff9a4db8, var(--brand-bg))}.tone-2 .class-image-placeholder{background:linear-gradient(135deg, #f3752147, var(--brand-bg))}.tone-3 .class-image-placeholder{background:linear-gradient(135deg, #ff9a4d6b, var(--brand-bg))}.class-image-placeholder>span{z-index:2;color:#fff;background:#cc561294;border-radius:.55rem;padding:.34rem .58rem;font-size:.72rem;font-weight:800;position:absolute;top:.7rem;left:.8rem}.tone-1 .class-image-placeholder>span{background:#f3752185}.tone-2 .class-image-placeholder>span{background:#cc561280}.tone-3 .class-image-placeholder>span{background:#cc56127a}.placeholder-shape{background:#ffffff94;border-radius:1rem;position:absolute}.placeholder-shape.one{width:9rem;height:6.5rem;bottom:-1rem;right:1.2rem;transform:rotate(-28deg)}.placeholder-shape.two{background:#ffffff59;border-radius:50%;width:11rem;height:5.8rem;bottom:-2.2rem;left:1rem}.placeholder-shape.three{background:#ffffff61;border-radius:50%;width:2.6rem;height:2.6rem;top:2.2rem;right:4.2rem}.class-gallery-content{padding:.85rem .95rem .9rem}.class-gallery-content h2{color:var(--ink);margin:0 0 .3rem;font-size:.98rem;font-weight:900;line-height:1.25}.class-gallery-content p{color:var(--muted);margin:0;font-size:.78rem}.class-card-footer{color:var(--muted);align-items:center;gap:.7rem;margin-top:.7rem;font-size:.74rem;display:flex}.student-count{margin-right:auto}.progress-dot{border:3px solid #3fbc8d;border-left-color:#3fbc8d2e;border-radius:999px;width:1.05rem;height:1.05rem}.grading-progress-pill{color:#8a5a29;background:#ffb75c2e;border-radius:999px;padding:.28rem .58rem;font-size:.75rem;font-weight:900}.grading-progress-pill.completed{color:#16724f;background:#3fbc8d29}.class-arrow{color:#fff;background:var(--brand);border-radius:999px;place-items:center;width:2.25rem;height:2.25rem;margin-left:auto;font-size:1.15rem;font-weight:900;display:grid;box-shadow:0 12px 24px #f3752133}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.95rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#ffffffc7;border-radius:.95rem;outline:none;padding:.78rem .9rem}input:focus,select:focus,textarea:focus{border-color:#f3752173;box-shadow:0 0 0 .22rem #f3752114}input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--brand)}.field-label,.stack-form label,.toolbar label{color:var(--ink);gap:.45rem;margin-bottom:1rem;font-size:.84rem;font-weight:800;display:grid}.summary-strip{margin-bottom:1.25rem}.summary-strip div{box-shadow:var(--shadow-sm);background:#ffffffa6;border-radius:1.2rem;flex:1;padding:1.15rem}.summary-strip strong{font-family:var(--font-body);font-size:1.85rem;font-weight:900;display:block}.summary-strip span{color:var(--muted)}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem;display:grid}.calendar-grid.headings{text-align:center;color:var(--muted);margin-bottom:.65rem;font-weight:800}.calendar-cell{border:1px solid var(--line);text-align:left;background:#ffffffad;border-radius:1.05rem;min-height:7.6rem;padding:.75rem}.calendar-cell:disabled{cursor:default;background:0 0;border-color:#0000}.calendar-cell span{margin-bottom:.4rem;font-weight:900;display:block}.calendar-cell em,.calendar-cell small{color:var(--green);background:var(--green-soft);border-radius:.55rem;margin-top:.32rem;padding:.32rem .45rem;font-size:.74rem;font-style:normal;font-weight:800;display:block}.state-card{color:var(--muted);padding:1rem}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#18203059;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{z-index:1001;background:#ffffffeb;border-radius:1.55rem;flex-direction:column;width:min(900px,100%);max-height:min(84vh,780px);display:flex;position:relative;box-shadow:0 30px 90px #1a263a38}.modal-card.attendance-modal{width:min(1180px,100%)}.modal-card.attendance-discard-modal{width:min(31rem,100%);overflow:hidden}.attendance-discard-modal .modal-header{background:#fff8f0}.attendance-discard-dialog-copy{color:var(--muted);align-items:center;gap:.9rem;display:flex}.attendance-discard-dialog-copy>span{color:#fff;background:var(--brand);border-radius:.8rem;flex:none;place-items:center;width:2.5rem;height:2.5rem;font-size:1.2rem;font-weight:950;display:grid}.attendance-discard-dialog-copy p{margin:0;line-height:1.55}.attendance-discard-modal .modal-footer{background:#fffaf5;justify-content:flex-end}.attendance-discard-modal .modal-footer .unsaved-footer-warning{display:none}.modal-card.score-modal{width:min(1480px,100%);max-height:min(92vh,900px)}.modal-card.teacher-profile-modal{width:min(1320px,100%);max-height:min(92vh,900px)}.modal-header,.modal-footer{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.35rem;display:flex}.modal-footer{border-top:1px solid var(--line);border-bottom:0}.modal-header h2{font-family:var(--font-body);margin:0;font-size:1.25rem;font-weight:800}.modal-body{padding:1.35rem;overflow:auto}.teacher-profile-field{align-content:start;gap:.28rem;min-width:0;display:grid}.teacher-profile-field span{color:var(--faint);letter-spacing:.015em;font-size:.73rem;font-weight:700}.teacher-profile-field strong{color:var(--ink);word-break:break-word;font-size:.9rem;line-height:1.4}.teacher-profile-modal{background:var(--paper);border:1px solid #ffffffd1;overflow:hidden}.teacher-profile-modal>.modal-header{background:#fff}.teacher-profile-modal>.modal-body{gap:1rem;padding:0 1.35rem 1.35rem;display:grid}.teacher-profile-hero{color:#fff;background:radial-gradient(circle at 82% 15%, #ffffff42, transparent 15rem), linear-gradient(125deg, var(--brand-active) 0%, var(--brand) 52%, var(--brand-hover) 100%);align-items:center;gap:1.15rem;min-height:9rem;margin:0 -1.35rem;padding:1.5rem 2rem;display:flex;position:relative;overflow:hidden}.teacher-profile-hero:after{content:"";border:1.5rem solid #ffffff12;border-radius:50%;width:18rem;height:18rem;position:absolute;bottom:-7rem;right:-3rem}.teacher-profile-avatar{z-index:1;width:6.2rem;height:6.2rem;color:var(--brand-active);background:#fff;border:.3rem solid #ffffffdb;border-radius:1.45rem;flex:none;place-items:center;font-size:2rem;font-weight:900;display:grid;position:relative;overflow:hidden;box-shadow:0 14px 30px #68412638}.teacher-profile-avatar img{object-fit:cover;width:100%;height:100%}.teacher-profile-heading{z-index:1;flex:1;gap:.38rem;min-width:0;display:grid;position:relative}.teacher-profile-password-button{z-index:1;color:#fff;font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff24;border:1px solid #ffffff52;border-radius:999px;margin-left:auto;padding:.7rem 1rem;font-size:.82rem;font-weight:850;position:relative}.teacher-profile-password-button:hover{background:#ffffff3d}.teacher-profile-eyebrow,.teacher-panel-heading>span{color:var(--brand-active);letter-spacing:.13em;text-transform:uppercase;font-size:.68rem;font-weight:900}.teacher-profile-eyebrow{color:#ffffffb8}.teacher-profile-heading h3{letter-spacing:-.035em;margin:0;font-size:clamp(1.35rem,3vw,2rem)}.teacher-profile-badges{flex-wrap:wrap;gap:.45rem;display:flex}.teacher-profile-badges span{color:#ffffffe6;background:#ffffff1f;border:1px solid #fff3;border-radius:999px;padding:.3rem .62rem;font-size:.75rem;font-weight:750}.teacher-profile-overview{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1rem;display:grid}.teacher-password-panel{background:linear-gradient(120deg, var(--brand-bg), #fff 72%);box-shadow:var(--shadow-sm);border:1px solid #f3752138;border-radius:1.1rem;gap:.9rem;padding:1.1rem 1.2rem;display:grid}.teacher-password-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.teacher-password-close{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:.4rem .65rem;font-size:.78rem;font-weight:800}.teacher-password-form{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:.8rem;display:grid}.teacher-password-form label{color:var(--ink);gap:.4rem;font-size:.78rem;font-weight:800;display:grid}.teacher-password-form input{border:1px solid var(--line);width:100%;min-height:2.75rem;color:var(--ink);font:inherit;background:#fff;border-radius:.8rem;padding:.7rem .85rem}.teacher-password-form input:focus{border-color:var(--brand);outline:3px solid var(--brand-wash)}.teacher-password-submit{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));white-space:nowrap;border:0;min-height:2.75rem;box-shadow:0 12px 24px #cc56122e}.teacher-password-submit:disabled{cursor:wait;opacity:.68}.teacher-password-message{border-radius:.8rem;padding:.7rem .85rem;font-size:.8rem;font-weight:750}.teacher-password-error{color:#9f3434;background:#d8616117}.teacher-password-success{color:#16724f;background:#3fbc8d1f}.teacher-profile-panel,.teacher-profile-documents,.teacher-contract-card{border:1px solid var(--line-soft);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:1.1rem}.teacher-profile-panel{padding:1.1rem 1.2rem}.teacher-panel-heading{gap:.15rem;display:grid}.teacher-panel-heading h3{color:var(--ink);letter-spacing:-.01em;margin:0;font-size:1rem}.teacher-contact-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.9rem;display:grid}.teacher-contact-item{align-items:flex-start;gap:.55rem;min-width:0;display:flex}.teacher-contact-icon,.teacher-document-icon,.teacher-contract-icon{width:2rem;height:2rem;color:var(--brand-active);background:var(--brand-bg);border-radius:.65rem;flex:none;place-items:center;display:grid}.teacher-contact-icon svg,.teacher-document-icon svg,.teacher-contract-icon svg{fill:currentColor;width:1.05rem;height:1.05rem}.teacher-contact-item>div{gap:.12rem;min-width:0;display:grid}.teacher-contact-item>div span{color:var(--faint);font-size:.7rem;font-weight:700}.teacher-contact-item>div strong{overflow-wrap:anywhere;color:var(--ink);font-size:.8rem;line-height:1.35}.teacher-personal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem 1.1rem;margin-top:.9rem;display:grid}.teacher-profile-documents{padding:1.15rem 1.2rem 1.2rem}.teacher-section-heading{margin-bottom:.9rem}.teacher-document-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.teacher-document-card{border:1px solid var(--line-soft);background:var(--paper-2);border-radius:.95rem;position:relative;overflow:hidden}.teacher-document-card:before{content:"";background:var(--document-accent);width:.22rem;position:absolute;inset:0 auto 0 0}.teacher-document-purple,.teacher-document-teal,.teacher-document-amber{--document-accent:var(--brand-active);--document-soft:var(--brand-bg)}.teacher-document-card>header{border-bottom:1px solid var(--line-soft);background:linear-gradient(110deg, var(--document-soft), #fff 78%);align-items:center;gap:.7rem;padding:.85rem .9rem;display:flex}.teacher-document-icon{color:var(--document-accent);box-shadow:var(--shadow-sm);background:#fff}.teacher-document-card>header div{gap:.1rem;min-width:0;display:grid}.teacher-document-card>header span{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:800}.teacher-document-card>header strong{color:var(--document-accent);text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;overflow:hidden}.teacher-document-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:.9rem;display:grid}.teacher-contract-card{background:linear-gradient(120deg, var(--brand-bg) 0%, var(--surface) 48%, #fffaf5 100%);border-color:#f3752138;align-items:flex-start;gap:1rem;padding:1.1rem 1.2rem;display:flex}.teacher-contract-icon{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));width:2.8rem;height:2.8rem;box-shadow:0 9px 20px #cc561233}.teacher-contract-icon svg{width:1.35rem;height:1.35rem}.teacher-contract-content{flex:1;min-width:0}.teacher-contract-list{gap:.75rem;margin-top:.9rem;display:grid}.teacher-contract-item{background:#ffffffd1;border:1px solid #f375212e;border-radius:.9rem;overflow:hidden}.teacher-contract-item>header{border-bottom:1px solid var(--line-soft);background:#fff8f0b8;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .9rem;display:flex}.teacher-contract-item>header>div{gap:.08rem;display:grid}.teacher-contract-item>header>div span{color:var(--brand-active);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:900}.teacher-contract-item>header>div strong{color:var(--ink);font-size:.92rem}.teacher-contract-status{display:none}.teacher-contract-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem 1rem;padding:.85rem .9rem;display:grid}.teacher-contract-state{color:var(--muted);background:#ffffffa6;border:1px dashed #f375214d;border-radius:.85rem;margin-top:.8rem;padding:.9rem 1rem;font-size:.85rem;font-weight:700}.teacher-contract-error{color:var(--red);justify-content:space-between;align-items:center;gap:1rem;display:flex}.teacher-contract-error button{color:#fff;background:var(--brand);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.45rem .75rem;font-size:.76rem}.teacher-profile-value-primary{color:var(--brand-active)!important}.teacher-profile-value-success{color:#1aa890!important}.teacher-profile-value-danger{color:#d2526d!important}.icon-button{width:2.25rem;height:2.25rem;color:var(--muted);background:#60708a1a;border:0;border-radius:999px;font-weight:900}.stack-form{gap:1rem;display:grid}.login-page{background:radial-gradient(circle at 14% 12%,#f375212e,#0000 32rem),radial-gradient(circle at 84% 82%,#ff9a4d33,#0000 28rem),linear-gradient(135deg,#fffaf4 0%,#f7f3eb 52%,#fff 100%);place-items:center;min-height:100vh;padding:1.2rem;display:grid;overflow:hidden}.login-shell{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff8f;border:1px solid #ffffffa3;border-radius:2rem;grid-template-columns:minmax(0,.98fr) minmax(23rem,.72fr);width:min(1040px,100%);min-height:31rem;display:grid;overflow:hidden;box-shadow:0 30px 90px #68412629}.login-brand-panel{color:#fff;background:linear-gradient(140deg,#cc5612f0,#f37521db),radial-gradient(circle at 28% 20%,#ffffff47,#0000 18rem);flex-direction:column;justify-content:flex-end;padding:2.4rem 3rem;display:flex;position:relative;overflow:hidden}.login-brand-panel:before,.login-brand-panel:after{content:"";background:#ffffff24;border-radius:999px;position:absolute}.login-brand-panel:before{width:18rem;height:18rem;top:-5rem;right:-4rem}.login-brand-panel:after{width:14rem;height:14rem;bottom:7rem;left:-5.5rem}.login-brand-panel>*{z-index:1;position:relative}.login-brand-mark{background:#ffffffeb;border-radius:1.4rem;place-items:center;width:7rem;height:7rem;margin-bottom:auto;display:grid;box-shadow:0 20px 50px #5b2a0c38}.login-brand-mark img{object-fit:contain;width:5.35rem;height:5.35rem}.login-brand-name{font-family:var(--font-display);letter-spacing:-.045em;margin-top:1rem;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1}.login-brand-panel .login-brand-tagline{color:#ffffffe6;max-width:34rem;margin-top:.65rem;font-size:1.08rem;line-height:1.4}.login-brand-panel h2{max-width:34rem;font-family:var(--font-display);letter-spacing:-.06em;margin:.8rem 0 1rem;font-size:clamp(2.1rem,4vw,3.6rem);line-height:.96}.login-brand-panel p{color:#ffffffd6;max-width:31rem;margin:0;font-size:1.04rem;line-height:1.65}.login-feature-strip{flex-wrap:wrap;gap:.6rem;margin-top:1.6rem;display:flex}.login-feature-strip span{background:#ffffff21;border:1px solid #ffffff3d;border-radius:999px;padding:.55rem .8rem;font-size:.86rem;font-weight:800}.login-card{background:#ffffffdb;flex-direction:column;justify-content:center;min-width:0;padding:clamp(2rem,4vw,3.4rem);display:flex}.login-card h1{font-family:var(--font-display);letter-spacing:-.055em;margin:.4rem 0 .7rem;font-size:clamp(2rem,3vw,2.8rem);font-weight:900}.login-card p{color:var(--muted);margin:0;line-height:1.7}.login-card .primary-button{margin-top:.4rem}.login-form{gap:1rem;min-width:0;margin-top:1.5rem;display:grid}.login-form label{min-width:0;color:var(--ink);gap:.45rem;font-weight:800;display:grid}.login-form input{box-sizing:border-box;border:1px solid var(--line);width:100%;max-width:100%;color:var(--ink);font:inherit;background:#ffffffdb;border-radius:1.1rem;padding:1rem 1.05rem;box-shadow:inset 0 1px #ffffffe0}.login-form input:focus{border-color:var(--brand);outline:3px solid var(--brand-wash)}.login-form .primary-button:disabled{cursor:wait;opacity:.68}.login-submit{box-sizing:border-box;color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));width:100%;max-width:100%;min-height:3.2rem;box-shadow:0 18px 36px #f375213d}.login-submit:hover{color:#fff;background:linear-gradient(135deg, var(--brand-hover), var(--brand))}.login-error{box-sizing:border-box;color:#9f3434;overflow-wrap:anywhere;background:#d8616117;border:1px solid #d8616138;border-radius:.95rem;max-width:100%;padding:.75rem .9rem;font-weight:700}.login-success{box-sizing:border-box;color:#16724f;overflow-wrap:anywhere;background:#3fbc8d1a;border:1px solid #3fbc8d40;border-radius:.95rem;max-width:100%;padding:.75rem .9rem;font-weight:700;line-height:1.5}.login-card>.login-error,.login-card>.login-success{margin-top:1rem}.login-text-button,.login-text-link{color:var(--brand-active);font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;justify-self:center;padding:.35rem;font-weight:800;text-decoration:none}.login-text-link{margin-top:1rem;display:inline-flex}.login-submit-link{justify-content:center;align-items:center;text-decoration:none;display:flex}@media (width<=820px){.materials-toolbar{flex-direction:column;align-items:stretch}.login-page{overflow:auto}.login-shell{grid-template-columns:1fr;min-height:0}.login-brand-panel{min-height:14rem;padding:2rem}.login-brand-mark{width:5.4rem;height:5.4rem;margin-bottom:1.5rem}.login-brand-mark img{width:4.1rem;height:4.1rem}}.logout-button{border:1px solid var(--line-soft);color:var(--muted);background:#ffffffb3;border-radius:999px;padding:.65rem .9rem;font-weight:800}.logout-button:hover{color:var(--ink);background:#fff}@media (width<=980px){.portal-header{flex-wrap:wrap;width:min(100% - 2rem,1410px);display:flex}.portal-shell-home .top-nav{order:3;justify-content:center;width:100%;overflow-x:auto}.header-actions{margin-left:auto}.portal-main{width:min(100% - 2rem,1260px);padding-top:2rem}.portal-shell-inner .portal-main{width:min(100% - 5.5rem,1260px);margin-left:4.5rem;margin-right:1rem}.classes-hero-page{min-height:10rem;margin-top:0}.edu-hero,.action-hub,.home-support-grid,.quick-work-row,.class-grid,.detail-grid{grid-template-columns:1fr}.classes-title-row,.class-detail-title-row{margin-bottom:2rem}.classes-greeting{margin-left:0}.classes-hero-visual{opacity:.35;width:70vw}.classes-toolbar{flex-direction:column;align-items:stretch}.classes-tools-right{flex-wrap:wrap}.class-search{flex:1;min-width:min(18rem,100%)}.class-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edu-hero{gap:1rem}.hero-art-left{order:-1;justify-self:center;max-width:20rem}.action-card{grid-template-columns:1fr}.action-illustration{min-height:10.5rem}.summary-strip{flex-direction:column;align-items:stretch}.teacher-profile-overview{grid-template-columns:1fr}.teacher-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-document-card:last-child{grid-column:1/-1}.teacher-contract-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.portal-header{width:min(100% - 1rem,1410px);padding-top:.8rem}.brand small,.user-chip span:not(.avatar){display:none}.portal-shell-home .top-nav{justify-content:flex-start}.portal-shell-home .top-nav a{white-space:nowrap}.portal-main{width:min(100% - 1rem,1260px)}.portal-shell-inner .portal-main{width:calc(100% - 4.75rem);margin-left:4.25rem;margin-right:.5rem}.teacher-profile-modal{border-radius:1.1rem;max-height:calc(100vh - 1rem)}.teacher-profile-modal>.modal-header{padding:.9rem 1rem}.teacher-profile-modal>.modal-body{padding:0 .75rem .75rem}.teacher-profile-hero{flex-wrap:wrap;min-height:7.5rem;margin:0 -.75rem;padding:1.1rem 1rem}.teacher-profile-avatar{border-radius:1.1rem;width:4.8rem;height:4.8rem}.teacher-profile-heading h3{font-size:1.25rem}.teacher-profile-password-button{padding:.6rem .7rem;font-size:.72rem}.teacher-password-form,.teacher-contact-list,.teacher-personal-grid,.teacher-document-grid,.teacher-contract-grid{grid-template-columns:1fr}.teacher-document-card:last-child{grid-column:auto}.teacher-contract-card{gap:.75rem;padding:1rem}.classes-hero-page{min-height:auto;margin-top:0}.classes-title-row,.class-detail-title-row{gap:.8rem}.classes-back{width:3rem;height:3rem}.classes-title-row h1,.class-detail-title-row h1{font-size:2.15rem}.classes-greeting h2{font-size:2.7rem}.classes-hero-visual{display:none}.classes-board{border-radius:1.4rem 1.4rem 0 0;margin-inline:calc(50% - 50vw);padding-inline:1rem}.classes-filter,.classes-tools-right{width:100%}.classes-filter button{flex:1;justify-content:center}.class-sort{flex:1}.class-gallery-grid{grid-template-columns:1fr}.edu-hero-copy h1{font-size:2.45rem}.action-card{border-radius:1.25rem;min-height:auto}.action-copy{padding:1rem 1rem 4.2rem}.action-copy dl,.today-session,.timeline-item,.task-list li,.shift-card{grid-template-columns:1fr}.calendar-grid{gap:.25rem}.calendar-cell{border-radius:.8rem;min-height:4.8rem;font-size:.78rem}.calendar-cell em{display:none}}.class-image-placeholder img{object-fit:cover;object-position:center bottom;width:100%;height:132%;position:absolute;inset:auto 0 0}.class-image-placeholder:after{content:"";background:linear-gradient(#ffffff08,#ffffff24);position:absolute;inset:0}.class-avatar-placeholder img{object-position:center;width:100%;height:100%;display:block}.portal-shell-home{font-family:var(--font-home);background:radial-gradient(circle at 7% 34%,#ff7e007a 0 4.5rem,#ffbc3047 6rem,#0000 11rem),radial-gradient(circle at 90% 28%,#ff5f0085 0 3.2rem,#ffab1f3d 5rem,#0000 9rem),radial-gradient(circle at 78% 58%,#ff6a007a 0 4.6rem,#ffb42a38 6.5rem,#0000 11rem),linear-gradient(#fff5ef 0%,#fff8ef 42%,#ffe5b8 100%)}.portal-shell-home:after{display:none}.portal-shell-home .portal-header{z-index:90;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border:1px solid #ffffffeb;border-radius:999px;grid-template-columns:minmax(13rem,1fr) auto;width:min(1260px,100% - 3rem);min-height:4.8rem;margin:0;padding:.62rem .82rem .62rem 2rem;display:grid;position:absolute;top:2rem;left:50%;transform:translate(-50%);box-shadow:0 10px 20px #85461e29,inset 0 -2px #c95d1b38}.portal-shell-home .brand{min-width:0;display:inline-flex}.portal-shell-home .brand-mark{width:12.8rem;height:3.1rem;box-shadow:none;background:0 0;border-radius:0}.portal-shell-home .brand-mark img{object-fit:contain;object-position:left center;width:100%;height:100%;display:block}.portal-shell-home .brand-mark svg,.portal-shell-home .brand>span:last-child,.portal-shell-home .top-nav{display:none}.portal-shell-home .header-actions{grid-column:2;gap:.55rem;margin-right:0}.portal-shell-home .language-toggle,.portal-shell-home .header-icon,.portal-shell-home .avatar{color:#fff;background:linear-gradient(#ff7324,#f04a16);width:2.85rem;height:2.85rem;box-shadow:0 7px 14px #db4c0f40,inset 0 2px #ffffff61}.portal-shell-home .header-icon svg{color:#fff}.portal-shell-home .header-icon svg circle{fill:#fff}.portal-shell-home .user-chip{color:#fff;background:linear-gradient(#ff7a27,#f05217);gap:.65rem;padding:.34rem 1.05rem .34rem .34rem;box-shadow:0 7px 15px #db4c0f40,inset 0 2px #ffffff61}.portal-shell-home .user-chip .avatar{color:#f05217;background:#fff}.portal-shell-home .user-chip strong,.portal-shell-home .user-chip small{color:#fff}.portal-shell-home .portal-main{width:100%;padding:0 0 7rem}.home-container{width:min(1260px,100% - 3rem);margin-inline:auto}.home-stage{max-width:1024px;margin-bottom:2.4rem;position:relative}.home-banner{border-radius:0 0 2.2rem 2.2rem;height:min(36vw,26.5rem);min-height:20.5rem;overflow:hidden;box-shadow:0 18px 40px #7a42241f}.home-banner img{object-fit:cover;width:100%;height:100%;display:block}.home-greeting-card{z-index:2;background:#fff;border:1px solid #fffffff5;border-radius:2.35rem;grid-template-columns:minmax(0,1fr) minmax(20rem,38%);align-items:center;gap:1.85rem;width:100%;max-width:1024px;min-height:15.8rem;margin-top:-7.3rem;padding:1.15rem 1.2rem 1.15rem 4.6rem;display:grid;position:relative;box-shadow:0 14px 24px #77452a33,inset 0 -2px #d1642524}.home-greeting-copy span{color:#f05a1a;font-family:var(--font-home);font-size:clamp(1.7rem,2.4vw,2.35rem);font-style:italic;font-weight:800;display:block}.home-greeting-copy h1{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;letter-spacing:-.03em;margin:.18rem 0 .35rem;font-size:clamp(2rem,3.5vw,3.35rem);line-height:.96}.home-greeting-copy strong{color:#fff;background:linear-gradient(90deg,#ff6b20,#ff4b12);margin-bottom:.75rem;padding:.24rem .75rem .3rem;font-size:clamp(1rem,1.5vw,1.25rem);font-style:italic;font-weight:800;display:inline-block}.home-greeting-copy p{color:#57564f;margin:0;font-size:1rem;font-style:italic;font-weight:500}.home-greeting-photo{border:.28rem solid #ff5a1f;border-radius:1.9rem;height:13.7rem;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff9e}.home-greeting-profile{align-self:center;justify-items:center;gap:.85rem;display:grid}.home-greeting-profile .home-greeting-photo{width:100%}.home-profile-button{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.72rem 1.15rem;font-size:.88rem;font-weight:900;box-shadow:0 14px 28px #cc56122e}.home-profile-button:hover{transform:translateY(-1px);box-shadow:0 16px 34px #cc56123d}.home-greeting-photo img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.home-greeting-photo.is-placeholder{color:#fff;background:linear-gradient(135deg,#ff8a3d,#f04a16);place-items:center;font-size:4rem;font-weight:900;display:grid}.home-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem 2.45rem;max-width:1070px;margin-bottom:2.35rem;display:grid}.home-action-card{color:#fff;background:linear-gradient(100deg,#ff2f14 0%,#ff540e 56%,#ff7d12 100%);border:1px solid #ffffffa3;border-radius:.5rem;grid-template-columns:8.9rem minmax(0,1fr);align-items:center;min-height:8.45rem;transition:transform .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 12px 20px #753f233d,0 0 0 .28rem #ffffff57,0 0 0 .34rem #ff874d29,inset 0 1px #ffffff57,inset 0 -1px #ffffff38}.home-action-card:before,.home-chart-card:before,.home-survey-stat:before{content:"";z-index:0;filter:blur(5px);opacity:.9;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff26 12%,#ffffffe6 50%,#ffffff24 88%,#0000);border-radius:999px;height:1.5rem;position:absolute;top:-.18rem;left:20%;right:18%}.home-action-card:after{content:"";z-index:0;opacity:.88;mix-blend-mode:screen;pointer-events:none;background:url(/assets/light-CqfypOCS.png) 50%/100% 100% no-repeat;width:4.4rem;height:calc(100% + 1.8rem);position:absolute;top:-.9rem;right:-.95rem}.home-action-copy:after,.home-chart:after,.home-survey-stat span:after{content:"";filter:blur(5px);opacity:.72;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffffe0,#0000);border-radius:999px;height:1.35rem;position:absolute;bottom:-2.4rem;left:-1rem;right:12%}.home-action-card>*{z-index:1;position:relative}.home-action-card:hover,.home-mini-card:hover{transform:translateY(-4px);box-shadow:0 16px 28px #753f2347,0 0 0 .28rem #fff6,0 0 0 .34rem #ff874d33,inset 0 1px #ffffff61,inset 0 -1px #ffffff3d}.home-action-icon{border-right:1px solid #ffffff38;place-items:center;width:7.4rem;height:7.4rem;margin-left:.75rem;display:grid}.home-action-icon img{object-fit:contain;filter:drop-shadow(0 7px 10px #5c281229);width:6.4rem;height:6.4rem}.home-action-copy{z-index:1;gap:.24rem;padding-right:1rem;display:grid;position:relative}.home-action-copy strong{color:#fff;font-family:var(--font-home);text-transform:uppercase;letter-spacing:-.02em;text-align:left;font-size:clamp(1.85rem,2.6vw,2.55rem);line-height:.95}.home-action-copy small{color:#fffffff0;max-width:22rem;font-size:.86rem;font-style:italic;font-weight:700;line-height:1.18}.home-schedule-card{background:#fff;border:1px solid #fffffff2;border-radius:2rem;max-width:1024px;margin-bottom:2rem;padding:1.55rem 1.85rem 1.9rem;box-shadow:0 13px 23px #77452a33,inset 0 -2px #d164251f}.home-section-heading{border-bottom:2px solid #f05a1a;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.5rem;display:flex}.home-section-heading h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;margin:0;font-size:clamp(1.75rem,2.4vw,2.35rem)}.home-section-heading a,.home-section-heading span{color:#3d3b37;font-size:1.05rem;font-weight:500}.home-session-list{gap:.82rem;margin:0;padding:0;list-style:none;display:grid}.home-session{color:#f04a16;background:#fff;border:1px solid #f05a1a8c;border-radius:1.2rem;grid-template-columns:8.2rem minmax(0,1fr) auto;align-items:center;gap:1.15rem;min-height:4.3rem;padding:.55rem .9rem .55rem 1.2rem;display:grid}.home-session.is-hot{color:#fff;background:linear-gradient(90deg,#ff3518,#ff6d14);border-color:#0000}.home-session time{border-right:2px solid;flex-direction:column;justify-content:center;align-items:flex-start;gap:.1rem;padding-right:1.1rem;font-size:clamp(1.18rem,1.55vw,1.48rem);font-weight:900;line-height:1.08;display:flex}.home-session time em{font-size:.9em;font-style:normal;line-height:.8}.home-session strong,.home-session small{display:block}.home-session strong{color:currentColor;font-family:var(--font-home);text-transform:uppercase;font-size:clamp(1.2rem,2vw,1.7rem);line-height:1}.home-session small{color:currentColor;margin-top:.2rem;font-weight:700}.home-session a{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;white-space:nowrap;background:#fff;border-radius:.55rem;padding:.48rem .82rem;font-size:1.05rem;font-weight:900;box-shadow:0 5px 10px #753f2338}.home-survey-section{max-width:1024px;margin-bottom:2.9rem}.home-survey-heading{margin-bottom:1.45rem}.home-survey-grid{grid-template-columns:minmax(0,1fr) minmax(18rem,.62fr);gap:1rem;display:grid}.home-chart-card,.home-survey-stat{color:#fff;background:linear-gradient(100deg,#ff2f14 0%,#ff540e 58%,#ff7d12 100%);border:1px solid #ffffffa3;position:relative;overflow:hidden;box-shadow:0 12px 20px #753f2338,0 0 0 .28rem #ffffff57,0 0 0 .34rem #ff874d29,inset 0 1px #ffffff57,inset 0 -1px #ffffff38}.home-chart-card:after,.home-survey-stat:after{content:"";z-index:0;opacity:.88;mix-blend-mode:screen;pointer-events:none;background:url(/assets/light-CqfypOCS.png) 50%/100% 100% no-repeat;width:4.4rem;height:calc(100% + 1.8rem);position:absolute;top:-.9rem;right:-.95rem}.home-chart-card>*,.home-survey-stat>*{z-index:1;position:relative}.home-chart-card{min-height:25.3rem;padding:1.35rem 1.1rem .8rem}.home-chart-card h3,.home-survey-stat span{color:#fff;font-family:var(--font-home);margin:0;font-size:1.35rem;font-weight:900}.home-chart{position:absolute;inset:3.35rem 1rem .85rem}.home-chart svg{width:100%;height:100%;display:block}.home-chart strong{color:#f04a16;min-width:5rem;min-height:3.4rem;font-family:var(--font-home);background:#fff;border-radius:.45rem;place-items:center;padding:.2rem .65rem;font-size:2rem;font-weight:900;display:grid;position:absolute;top:1.2rem;right:4.5rem}.home-chart strong:after{content:"";border:.55rem solid #0000;border-top-color:#fff;position:absolute;top:100%;left:50%;transform:translate(-50%)}.home-survey-stack{gap:1rem;display:grid}.home-survey-stat{align-content:center;min-height:12.15rem;padding:1.85rem 2.4rem;display:grid}.home-survey-stat span{text-transform:uppercase;max-width:17rem;line-height:1.08}.home-survey-stat strong{color:#fff;margin-top:.65rem;font-size:clamp(3.2rem,6vw,5rem);line-height:.9}.home-quick-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;max-width:1024px;display:grid}.home-mini-card{background:#fff;border:1px solid #fffffff2;align-items:center;gap:.7rem;min-height:4.35rem;padding:.62rem 1rem;transition:transform .18s,box-shadow .18s;display:flex;box-shadow:0 8px 15px #753f232e}.home-mini-card svg{flex:none;width:3.1rem;height:3.1rem}.home-mini-card span,.home-mini-card strong,.home-mini-card small{display:block}.home-mini-card strong{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:1.03rem;line-height:1.05}.home-mini-card small{color:#2f2f2a;margin-top:.16rem;font-size:.78rem;font-weight:700}.home-orb{z-index:0;pointer-events:none;filter:blur(.5px);background:radial-gradient(circle,#ff6700 0 28%,#ffa11d94 42%,#ffffffd1 62%,#0000 72%);border-radius:999px;position:absolute}.home-orb-left{width:13rem;height:13rem;bottom:1.8rem;left:2rem}.home-orb-right{opacity:.65;width:7rem;height:7rem;top:38rem;right:12%}@media (width<=980px){.portal-shell-home .portal-header{grid-template-columns:1fr auto;width:min(100% - 2rem,1260px);top:1rem}.portal-shell-home .brand-mark{width:10.5rem}.home-container{width:min(100% - 2rem,1260px)}.home-banner{min-height:18rem}.home-greeting-card{grid-template-columns:1fr;width:100%;max-width:46rem;padding:1.4rem}.home-greeting-photo{height:17rem}.home-action-grid,.home-survey-grid,.home-quick-row{grid-template-columns:1fr;max-width:46rem}.home-schedule-card,.home-survey-section{max-width:46rem}}@media (width<=560px){.portal-shell-home .portal-header{width:min(100% - 1rem,1260px);min-height:3.8rem;padding:.45rem .55rem .45rem 1rem;top:.5rem}.portal-shell-home .brand-mark{width:8.5rem;height:2.35rem}.portal-shell-home .language-toggle,.portal-shell-home .header-icon,.portal-shell-home .avatar{width:2.3rem;height:2.3rem}.portal-shell-home .header-actions{gap:.35rem}.portal-shell-home .user-chip{padding:.25rem}.home-container{width:min(100% - 1rem,1260px)}.home-banner{border-radius:0 0 1.4rem 1.4rem;height:15.5rem;min-height:14.5rem}.home-greeting-card{border-radius:1.45rem;width:100%;margin-top:-3.8rem;padding:1rem}.home-greeting-copy h1{font-size:1.95rem}.home-greeting-photo{border-radius:1.2rem;height:13.2rem}.home-action-grid{gap:1rem}.home-action-card{grid-template-columns:5.8rem minmax(0,1fr);min-height:6.8rem}.home-action-icon{width:5.2rem;height:5.2rem;margin-left:.35rem}.home-action-icon img{width:4.8rem;height:4.8rem}.home-action-copy strong{font-size:1.45rem}.home-schedule-card{border-radius:1.35rem;padding:1rem}.home-session{grid-template-columns:1fr;align-items:start;gap:.55rem}.home-session time{width:fit-content;padding-right:.7rem}.home-session a{width:fit-content}.home-chart-card{min-height:18rem}.home-chart-card h3,.home-survey-stat span{font-size:1.05rem}.home-chart{inset:3.1rem .65rem .65rem}.home-survey-stat{min-height:8.4rem;padding:1.2rem}.home-quick-row{gap:.9rem}}.skeleton-panel{box-shadow:var(--shadow-sm);background:#ffffffb8;border:1px solid #8597ab21;border-radius:1.45rem;padding:1.25rem}.skeleton-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.skeleton-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.skeleton-card{background:#ffffffa3;border-radius:1rem;gap:.75rem;padding:.9rem;display:grid}.skeleton-table{gap:.65rem;display:grid}.skeleton-row{background:#ffffff94;border-radius:1rem;grid-template-columns:2.8rem 1fr .7fr 6rem;align-items:center;gap:1rem;min-height:4.2rem;padding:.8rem;display:grid}.skeleton-media,.skeleton-line,.skeleton-pill,.skeleton-avatar,.skeleton-back,.skeleton-title-mark,.skeleton-class-image,.skeleton-detail-visual{background:linear-gradient(90deg,#e0e3e2b8,#f7f8f6eb,#e0e3e2b8) 0 0/220% 100%;animation:1.25s ease-in-out infinite skeleton-shimmer;display:block}.class-detail-skeleton .skeleton-detail-hero{min-height:16.5rem}.skeleton-back{border-radius:999px;width:2.85rem;height:2.85rem}.skeleton-title-mark{border-radius:.8rem;width:2.55rem;height:2.55rem}.skeleton-title-line{width:10rem;height:1.25rem}.skeleton-trail-line{width:7.5rem}.skeleton-class-image{border-radius:1.35rem;width:100%;height:10.5rem}.skeleton-detail-copy{gap:.9rem;display:grid}.skeleton-heading-line{width:min(24rem,100%);height:2.2rem}.skeleton-meta-row{flex-wrap:wrap;gap:.8rem;margin-top:.25rem;display:flex}.skeleton-detail-visual{opacity:.62;border-radius:1.5rem;justify-self:end;width:min(42rem,100%);height:12rem}.skeleton-detail-tabs{align-items:end;gap:1rem}.skeleton-detail-tabs .skeleton-line{height:1rem;margin:1rem 0 1.3rem}.skeleton-detail-panel{gap:1rem;display:grid}.skeleton-media{border-radius:.9rem;height:7rem}.skeleton-line{border-radius:999px;width:100%;height:.82rem}.skeleton-line.medium{width:68%}.skeleton-line.short{width:12rem}.skeleton-line.tiny{width:38%}.skeleton-pill{border-radius:999px;width:7rem;height:2.4rem}.skeleton-avatar{border-radius:999px;width:2.6rem;height:2.6rem}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (width<=980px){.skeleton-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton-detail-visual{display:none}}@media (width<=560px){.skeleton-card-grid,.skeleton-row{grid-template-columns:1fr}}.soft-select{width:100%;min-width:12rem;color:var(--ink);position:relative}.soft-select.class-sort{width:auto;min-width:9.5rem;box-shadow:none;background:0 0;border:0;padding:0}.soft-select-trigger{width:100%;min-height:2.75rem;color:var(--ink);background:#ffffffd1;border:1px solid #8597ab1f;border-radius:999px;justify-content:space-between;align-items:center;gap:.85rem;padding:.72rem .72rem .72rem 1rem;font-weight:700;transition:border-color .18s,box-shadow .18s,background-color .18s,transform .18s;display:inline-flex;box-shadow:0 14px 34px #50627b14}.soft-select-trigger:hover,.soft-select-trigger[aria-expanded=true]{background:#fffffff2;border-color:#f3752147;box-shadow:0 18px 42px #50627b1f}.soft-select-trigger:focus-visible{border-color:#f375217a;outline:0;box-shadow:0 0 0 .22rem #f375211c,0 18px 42px #50627b1f}.soft-select-chevron{width:1.55rem;height:1.55rem;color:var(--muted);background:#60708a14;border-radius:999px;place-items:center;font-size:1.05rem;line-height:1;transition:transform .18s,color .18s,background .18s;display:grid}.soft-select-trigger[aria-expanded=true] .soft-select-chevron{color:var(--brand-deep);background:#f3752124;transform:rotate(180deg)}.soft-select-menu{z-index:70;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;border:1px solid #8597ab24;border-radius:1rem;gap:.25rem;min-width:max(100%,11rem);padding:.45rem;display:grid;position:absolute;top:calc(100% + .5rem);left:0;right:0;box-shadow:0 24px 70px #1a263a29}.soft-select-menu button{width:100%;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:.78rem;justify-content:space-between;align-items:center;padding:.72rem .78rem;font-weight:800;display:flex}.soft-select-menu button:hover,.soft-select-menu button:focus-visible{color:var(--ink);background:var(--brand-soft);outline:0}.soft-select-menu button.selected{color:var(--brand-deep);background:#f375211f}.soft-select-menu button.selected:after{content:"✓";color:var(--brand);font-weight:900}.soft-date-picker{position:relative}.soft-date-trigger{width:100%;min-height:2.7rem;color:var(--ink);background:#ffffffc7;border:0;border-radius:.85rem;justify-content:space-between;align-items:center;gap:.7rem;padding:.72rem .85rem;font-weight:800;display:inline-flex;box-shadow:0 10px 24px #50627b0f}.soft-date-picker.compact .soft-date-trigger{color:#667690;background:#f6f8fbdb;border-radius:999px;place-items:center;width:2.45rem;height:2.45rem;min-height:0;padding:0;display:grid;box-shadow:0 12px 30px #50627b12}.soft-date-trigger svg{flex:none;width:1.1rem;height:1.1rem}.soft-date-popover{z-index:70;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;border:1px solid #8597ab24;border-radius:1rem;width:19rem;padding:.9rem;position:absolute;top:calc(100% + .55rem);right:0;box-shadow:0 24px 65px #26354c29}.workday-date-picker .soft-date-popover{left:0;right:auto}.soft-date-header{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.75rem;display:flex}.soft-date-header button{width:2rem;height:2rem;color:var(--muted);background:#60708a17;border:0;border-radius:999px;place-items:center;font-size:1.2rem;font-weight:900;display:grid}.soft-date-header strong{color:var(--ink);font-size:.95rem}.soft-date-weekdays,.soft-date-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.soft-date-weekdays{color:var(--muted);text-align:center;margin-bottom:.35rem;font-size:.72rem;font-weight:900}.soft-date-grid{gap:.22rem}.soft-date-grid button{aspect-ratio:1;color:var(--ink);background:0 0;border:0;border-radius:.65rem;place-items:center;font-weight:800;display:grid}.soft-date-grid button:hover,.soft-date-grid button:focus-visible{background:var(--brand-soft);outline:0}.soft-date-grid button.muted{color:#a9b1be}.soft-date-grid button.selected{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-deep));box-shadow:0 10px 22px #f3752138}.field-label .soft-select,.soft-select-field .soft-select,.toolbar .soft-select{margin-top:.15rem}.timesheet-page{color:var(--ink);position:relative}.timesheet-page svg{width:1.18rem;height:1.18rem}.timesheet-hero{min-height:16.2rem;margin-top:-3.2rem;margin-left:-4.2rem;padding:0 0 1.25rem;position:relative}.timesheet-title-row{align-items:center;gap:1.35rem;width:fit-content;margin-bottom:1.35rem;display:flex}.timesheet-back,.timesheet-bell,.timesheet-month-tools button{color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffc2;border:0;border-radius:999px;place-items:center;display:grid;box-shadow:0 16px 42px #50627b1a}.timesheet-back{z-index:90;background:var(--brand);color:#fff;border-radius:999px;place-items:center;width:2.85rem;height:2.85rem;font-size:1.35rem;font-weight:800;transition:transform .2s,box-shadow .2s,background .2s,color .2s;display:grid;position:relative;box-shadow:0 14px 30px #f3752133}.timesheet-title-mark{place-items:center;width:2.55rem;height:2.55rem;display:grid}.timesheet-title-mark img{object-fit:contain;image-rendering:auto;width:90%;height:90%}.timesheet-title-row h1{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(1.85rem,2.7vw,2.35rem)}.timesheet-greeting{z-index:2;max-width:46rem;margin-top:3rem;margin-left:4.1rem;position:relative}.timesheet-greeting span{color:var(--muted);font-size:.9rem}.timesheet-greeting h2{font-family:var(--font-display);color:var(--ink);letter-spacing:-.05em;margin:.35rem 0 .55rem;font-size:clamp(2.15rem,3.15vw,2.5rem);line-height:1.5}.timesheet-greeting p{color:var(--muted);margin:0;font-size:.96rem}.timesheet-greeting:after{content:"";background:var(--gold);border-radius:999px;width:3.4rem;height:2px;margin-top:.9rem;display:block}.timesheet-user-actions{align-items:center;gap:.85rem;display:flex}.timesheet-bell{color:#132647;width:2.8rem;height:2.8rem;position:relative}.timesheet-bell span{color:#fff;background:var(--brand);border-radius:999px;place-items:center;width:1.05rem;height:1.05rem;font-size:.62rem;font-weight:800;display:grid;position:absolute;top:.2rem;right:.24rem}.timesheet-profile{min-width:15.9rem;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none;backdrop-filter:none;background:#ffffffeb;border-radius:999px;align-items:center;gap:.85rem;padding:.45rem 1rem .45rem .5rem;display:flex}.timesheet-avatar{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-active));border-radius:999px;place-items:center;width:2.95rem;height:2.95rem;font-weight:900;display:grid}.timesheet-profile span:nth-child(2){flex:1}.timesheet-profile strong,.timesheet-profile small{display:block}.timesheet-profile strong{font-size:.96rem}.timesheet-profile small{color:#586985;margin-top:.2rem;font-size:.82rem}.timesheet-hero-image{object-fit:contain;object-position:right bottom;pointer-events:none;filter:drop-shadow(0 20px 45px #534a401a);width:min(42rem,50vw);height:15rem;position:absolute;bottom:0;right:0}.timesheet-board{z-index:3;border-top:1px solid var(--line-soft);border-radius:var(--radius) var(--radius) 0 0;background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;width:auto;margin:0 calc(50% - 50vw);padding:1.45rem max(1.5rem,50vw - 630px) 2.2rem;position:relative;box-shadow:0 -10px 34px #1a1a180d}.timesheet-toolbar,.timesheet-month-tools,.timesheet-tabs,.timesheet-stat-card,.timesheet-schedule-title,.timesheet-legend{align-items:center;display:flex}.timesheet-toolbar{border-bottom:1px solid #6f859f21;justify-content:space-between;gap:1.25rem;margin-bottom:1.55rem}.timesheet-tabs{align-self:stretch;gap:1.5rem}.timesheet-tabs button{color:#64728b;background:0 0;border:0;align-items:center;gap:.65rem;height:100%;padding:.8rem 1.5rem 1.25rem;font-weight:700;display:flex;position:relative}.timesheet-tabs button.active{color:var(--ink)}.timesheet-tabs button.active:after{content:"";background:var(--brand);height:2px;position:absolute;bottom:-1px;left:0;right:0}.timesheet-tabs button.active svg{color:var(--brand)}.timesheet-month-tools{color:#586985;gap:.7rem;padding-bottom:.75rem;position:relative}.timesheet-month-tools strong{color:var(--ink);white-space:nowrap;font-size:.95rem}.timesheet-month-tools button{width:2.45rem;height:2.45rem;box-shadow:none;color:#667690;background:0 0}.timesheet-month-tools>button:not(.timesheet-filter){color:#fff;background:var(--brand);box-shadow:0 12px 24px #f375212e}.timesheet-month-tools .timesheet-icon-button,.timesheet-month-tools .timesheet-filter{background:#f6f8fbdb;box-shadow:0 12px 30px #50627b12}.timesheet-month-tools .timesheet-filter{color:#52627b;gap:.55rem;width:auto;padding:0 1rem;display:flex}.timesheet-month-tools .timesheet-filter.active{color:var(--brand-deep);background:#f375211f}.timesheet-filter-select{min-width:13rem}.timesheet-filter-select .soft-select-trigger{background:#f6f8fbdb;border-radius:999px;height:2.45rem;box-shadow:0 12px 30px #50627b12}.timesheet-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}.timesheet-stat-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);min-height:7.15rem;box-shadow:var(--shadow-sm);gap:1.35rem;padding:1.35rem}.timesheet-stat-icon,.timesheet-schedule-icon{border-radius:.9rem;flex:none;place-items:center;width:3.2rem;height:3.2rem;display:grid}.timesheet-stat-icon.gold{color:var(--brand-deep);background:var(--brand-soft)}.timesheet-stat-icon.green{color:var(--brand-active);background:var(--brand-bg)}.timesheet-stat-icon.purple{color:var(--brand-active);background:#f8eadf}.timesheet-stat-icon.blue{color:var(--brand);background:var(--brand-bg)}.timesheet-stat-card p,.timesheet-stat-card small{color:#64728b;margin:0}.timesheet-stat-card p{margin-bottom:.45rem;font-size:.92rem}.timesheet-stat-card strong{color:#0f1d35;word-break:break-word;margin-bottom:.35rem;font-size:1.18rem;line-height:1.1;display:block}.timesheet-stat-card small{font-size:.86rem}.timesheet-content-grid{grid-template-columns:minmax(0,1.9fr) minmax(23rem,1fr);gap:1rem;display:grid}.timesheet-calendar-card,.timesheet-schedule-card,.timesheet-feedback-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.timesheet-calendar-card{padding:1.2rem 1rem 1.25rem}.timesheet-calendar-head,.timesheet-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.timesheet-calendar-head{color:#394861;text-align:center;font-size:.9rem;font-weight:700}.timesheet-calendar-head strong{padding:0 0 .85rem}.timesheet-calendar-grid{border:1px solid #6f859f21;border-radius:.75rem;overflow:hidden}.timesheet-day-cell{text-align:left;background:#ffffff70;border:1px solid #6f859f21;border-top:0;border-left:0;min-height:4.35rem;padding:.75rem .8rem;position:relative}.timesheet-day-cell:nth-child(7n){border-right:0}.timesheet-day-cell:nth-last-child(-n+7){border-bottom:0}.timesheet-day-cell.muted .timesheet-day-number,.timesheet-day-cell.muted .timesheet-working-day,.timesheet-day-cell.muted .timesheet-day-hours{color:#a8b0be}.timesheet-day-cell.selected{background:linear-gradient(135deg,#f3752133,#ffb57e1a)}.timesheet-day-cell.filtered{opacity:.42;cursor:not-allowed;background:#f6f8fb6b}.timesheet-day-cell.selected .timesheet-day-number{color:#fff;background:var(--brand);border-radius:999px;place-items:center;width:1.55rem;height:1.55rem;margin:-.25rem 0 .3rem -.15rem;display:grid}.timesheet-day-heading{align-items:center;gap:.35rem;margin-bottom:.45rem;display:flex}.timesheet-day-number{color:#0f1d35;font-weight:800;display:block}.timesheet-working-day{color:#56657a;background:#0f1d3514;border-radius:999px;align-items:center;height:1.1rem;padding:0 .38rem;font-size:.68rem;font-weight:800;line-height:1;display:inline-flex}.timesheet-day-hours{color:#5e6d85;align-items:center;gap:.45rem;font-size:.82rem;display:inline-flex}.timesheet-day-hours-list{gap:.18rem;display:grid}.timesheet-day-hours i,.timesheet-legend i{background:#2eb67d;border-radius:999px;width:.48rem;height:.48rem;display:inline-block}.timesheet-day-hours.class i,.timesheet-legend .class{background:#2eb67d}.timesheet-day-hours.office i,.timesheet-legend .office{background:#9b4d1e}.timesheet-day-hours.meeting i,.timesheet-legend .meeting{background:#e5484d}.timesheet-day-hours.off i,.timesheet-legend .off{background:#a9b1be}.timesheet-day-hours.muted-dot i{background:#d7a35e}.timesheet-day-hours.selected i{background:var(--brand)}.timesheet-legend{color:#5f6f88;border-top:1px solid #6f859f21;flex-wrap:wrap;gap:1.35rem 2.7rem;margin-top:1.05rem;padding:1rem .8rem 0;font-size:.86rem}.timesheet-legend span{align-items:center;gap:.65rem;display:inline-flex}.timesheet-schedule-card{flex-direction:column;align-self:stretch;height:100%;min-height:0;padding:1.45rem 1.2rem 1rem;display:flex}.timesheet-schedule-title{justify-content:space-between;gap:1rem;margin-bottom:1.35rem}.timesheet-schedule-title h2{font-family:var(--font-body);margin:0;font-size:1rem;line-height:1.25}.timesheet-schedule-title span{color:var(--brand-deep);background:var(--brand-soft);border-radius:.75rem;flex:none;padding:.45rem .75rem;font-size:.85rem}.timesheet-schedule-list{flex:1 1 0;align-content:start;min-height:0;max-height:23rem;padding-right:.25rem;display:grid;overflow-y:auto}.timesheet-schedule-item{border-bottom:1px solid #6f859f26;grid-template-columns:3.2rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1.05rem .1rem 1.15rem;display:grid}.timesheet-schedule-item time{color:#5f6f88;margin-bottom:.38rem;font-size:.84rem;display:block}.timesheet-schedule-item strong{color:#102039;line-height:1.25;display:block}.timesheet-schedule-item p{color:#53647e;margin:.25rem 0 0;font-size:.9rem}.timesheet-schedule-item em{color:#52627d;white-space:nowrap;font-size:.85rem;font-style:normal}.timesheet-schedule-icon.class{color:var(--brand-active);background:var(--brand-bg)}.timesheet-schedule-icon.office{color:var(--brand-active);background:#f7e7dc}.timesheet-schedule-icon.meeting{color:var(--brand);background:var(--brand-bg)}.timesheet-schedule-actions{flex:none;gap:.75rem;margin-top:auto;padding-top:1.15rem;display:grid}.is-temporarily-hidden{display:none!important}.timesheet-feedback-button,.timesheet-day-detail{color:#fff;background:var(--brand);border:1px solid #f375218c;border-radius:.8rem;justify-content:center;align-items:center;gap:.65rem;width:100%;padding:.85rem 1rem;font-weight:700;display:flex}.timesheet-feedback-button{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-deep));border-color:#0000;box-shadow:0 14px 34px #f3752138}.workday-feedback-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.35rem;display:grid}.workday-feedback-modal .modal-footer{background:#fffaf5;justify-content:flex-end}.workday-feedback-modal .modal-footer .workday-secondary-button,.workday-feedback-modal .modal-footer .unsaved-footer-warning{margin-right:auto}.workday-feedback-form label{color:var(--muted);gap:.5rem;font-size:.9rem;font-weight:800;display:grid}.workday-label-text{align-items:center;gap:.18rem;display:inline-flex}.workday-label-text strong{color:var(--red)}.workday-feedback-form .wide,.workday-feedback-actions{grid-column:1/-1}.workday-feedback-form input,.workday-feedback-form textarea,.workday-file-field{background:#ffffffc7;border:1px solid #6f859f2e;border-radius:.85rem;box-shadow:0 10px 24px #50627b0f}.workday-feedback-form input,.workday-feedback-form textarea{width:100%;color:var(--ink);padding:.78rem .9rem}.workday-soft-select{width:100%}.workday-soft-select .soft-select-trigger{background:#ffffffc7;border-radius:.85rem;width:100%;padding:.78rem .9rem;box-shadow:0 10px 24px #50627b0f}.workday-soft-select .soft-select-menu{width:100%}.workday-feedback-form textarea{resize:vertical}.workday-file-field{align-items:center;min-height:4rem;padding:.7rem;display:flex;position:relative}.workday-file-field input{opacity:0;cursor:pointer;position:absolute;inset:0}.workday-file-field strong{color:var(--ink);background:#ffffffe6;border-radius:.65rem;justify-content:center;align-items:center;padding:.62rem .9rem;font-size:.86rem;display:inline-flex;box-shadow:0 10px 22px #50627b14}.workday-feedback-actions{justify-content:flex-end;gap:.75rem;padding-top:.35rem;display:flex}.workday-secondary-button{min-width:8rem;color:var(--muted);background:#60708a1a;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.78rem 1rem;font-weight:800;display:inline-flex}.workday-feedback-actions .primary-button{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-deep));box-shadow:0 14px 34px #f375213d}.workday-feedback-actions .primary-button:disabled{cursor:not-allowed;opacity:.72}.timesheet-feedback-card{padding:1.35rem}.timesheet-feedback-card .section-heading{align-items:center;margin-bottom:1.15rem}.timesheet-feedback-card .section-heading h2{min-width:0;font-size:1.05rem}.timesheet-feedback-card .soft-select{flex:0 0 12rem;max-width:12rem}.timesheet-feedback-card .soft-select-trigger{background:#f6f8fbdb;border-radius:999px;height:2.45rem;padding:.65rem .85rem;box-shadow:0 12px 30px #50627b12}.timesheet-feedback-card .soft-select-trigger span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.timesheet-feedback-card .soft-select-menu{width:min(14rem,78vw);right:0}.timesheet-feedback-filters,.timesheet-feedback-search,.timesheet-row-actions,.timesheet-feedback-pagination{align-items:center;gap:.65rem;display:flex}.timesheet-feedback-filters{flex:1;justify-content:flex-end}.timesheet-feedback-search input{min-width:15rem;height:2.45rem;color:var(--ink);background:#f6f8fbdb;border:1px solid #6f859f2e;border-radius:999px;padding:0 .95rem}.timesheet-feedback-search button,.timesheet-row-actions button,.timesheet-feedback-pagination button{color:var(--brand-deep);background:#f375211a;border:0;border-radius:999px;padding:.62rem .85rem;font-weight:800}.timesheet-feedback-card td strong,.timesheet-feedback-card td small{display:block}.timesheet-feedback-card td small{max-width:22rem;color:var(--muted);margin-top:.2rem;font-weight:500}.timesheet-row-actions{white-space:nowrap}.timesheet-feedback-pagination{color:var(--muted);justify-content:flex-end;margin-top:1rem;font-weight:800}.timesheet-feedback-pagination button:disabled{cursor:not-allowed;opacity:.45}.timesheet-feedback-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0 0 1rem;display:grid}.timesheet-feedback-summary div{background:#f6f8fbcc;border-radius:.9rem;padding:.8rem}.timesheet-feedback-summary dt{color:var(--muted);font-size:.78rem;font-weight:800}.timesheet-feedback-summary dd{color:var(--ink);margin:.25rem 0 0;font-weight:800}.timesheet-comment-list{gap:.75rem;display:grid}.timesheet-comment-list article{background:#60708a17;border-radius:1rem 1rem 1rem .25rem;width:min(86%,34rem);padding:.85rem 1rem}.timesheet-comment-list article.teacher{background:#f375211a;border-radius:1rem 1rem .25rem;justify-self:end}.timesheet-comment-list article div{color:var(--muted);justify-content:space-between;gap:1rem;font-size:.78rem;display:flex}.timesheet-comment-list article p{color:var(--ink);white-space:pre-wrap;margin:.45rem 0 0}.schedule-title-mark{color:var(--brand-active);background:#f375211c;border-radius:.9rem}.portal-shell-home>.portal-header{width:min(1260px,100% - 3rem);margin:0;top:2rem;left:50%;right:auto;transform:translate(-50%);position:absolute!important}@media (width<=980px){.portal-shell-home>.portal-header{width:min(100% - 2rem,1260px);top:1rem}}@media (width<=560px){.portal-shell-home>.portal-header{width:min(100% - 1rem,1260px);top:.5rem}}.schedule-title-mark svg{width:1.45rem;height:1.45rem}.schedule-board{padding-bottom:2.8rem}.portal-shell-schedule{overflow-x:clip}.portal-shell-schedule>.portal-header{position:relative;top:auto}.schedule-toolbar{align-items:stretch}.schedule-view-tabs button{min-height:3.35rem}.schedule-type-legend{color:var(--muted);flex-wrap:wrap;gap:.55rem 1rem;margin:-.35rem 0 1rem;font-size:.84rem;font-weight:800;display:flex}.schedule-type-dot{align-items:center;gap:.45rem;display:inline-flex}.schedule-type-dot:before{content:"";background:var(--session-color,var(--brand));border-radius:999px;width:.62rem;height:.62rem}.schedule-type-dot.offline,.schedule-class-pill.offline,.schedule-type-badge.offline{--session-color:#f37521;--session-bg:#f375211a}.schedule-type-dot.online,.schedule-class-pill.online,.schedule-type-badge.online{--session-color:#4b8bed;--session-bg:#4b8bed1c}.schedule-type-dot.liveClass,.schedule-class-pill.liveClass,.schedule-type-badge.liveClass,.schedule-type-dot.training,.schedule-class-pill.training,.schedule-type-badge.training{--session-color:#37a56d;--session-bg:#37a56d1f}.schedule-type-dot.interview,.schedule-class-pill.interview,.schedule-type-badge.interview{--session-color:#d49a19;--session-bg:#d49a191f}.schedule-type-dot.event,.schedule-class-pill.event,.schedule-type-badge.event{--session-color:#8d5be8;--session-bg:#8d5be81f}.schedule-stats .schedule-stat-card,.schedule-week-stats .timesheet-stat-card{min-height:6.3rem}.schedule-calendar-card,.schedule-week-card,.schedule-day-card{border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.schedule-calendar-card{padding:1.2rem}.schedule-calendar-head strong{color:#394861;text-align:left;padding:0 .7rem .85rem}.schedule-month-grid{border:1px solid #6f859f21;border-radius:1rem;overflow:visible}.schedule-month-cell{text-align:left;background:#ffffff94;border:1px solid #6f859f21;border-top:0;border-left:0;align-content:start;gap:.55rem;min-height:9.6rem;padding:.85rem;transition:background .18s,box-shadow .18s;display:grid;position:relative}.schedule-month-cell:focus-visible{z-index:20;outline-offset:-2px;outline:2px solid #f3752173}.schedule-month-cell:hover{z-index:40;background:linear-gradient(135deg,#fff8f0f5,#fff1e3c2);box-shadow:inset 0 0 0 2px #f3752133}.schedule-month-cell.selected{background:linear-gradient(135deg,#fff8f0f5,#fff1e3c2);box-shadow:inset 0 0 0 2px #f3752133}.schedule-month-cell:nth-child(7n){border-right:0}.schedule-month-cell:nth-last-child(-n+7){border-bottom:0}.schedule-month-cell.muted{background:#f6f8fb6b}.schedule-month-cell.muted .schedule-day-number{color:#a8b0be}.schedule-day-number{color:#0f1d35;border-radius:999px;place-items:center;width:1.75rem;height:1.75rem;font-weight:900;display:grid}.schedule-month-cell.selected .schedule-day-number{color:#fff;background:var(--brand)}.schedule-class-stack{gap:.42rem;min-width:0;display:grid}.schedule-class-stack>small{color:var(--brand-active);font-weight:900}.schedule-class-pill{border:1px solid color-mix(in srgb, var(--session-color,var(--brand)) 22%, transparent);min-width:0;color:var(--ink);background:var(--session-bg,#fff8f0e6);border-radius:.85rem;gap:.18rem;padding:.7rem .8rem;display:grid;box-shadow:0 10px 22px #50627b0f}.schedule-class-pill.compact{border-radius:.65rem;padding:.48rem .55rem}.schedule-class-pill strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:900;overflow:hidden}.schedule-class-pill small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:800;overflow:hidden}.schedule-hover-board{z-index:60;opacity:0;pointer-events:none;background:#fffffffa;border:1px solid #f375212e;border-radius:1rem;gap:.55rem;width:min(22rem,82vw);max-height:20rem;padding:.9rem;transition:opacity .16s,transform .16s;display:grid;position:absolute;top:calc(100% - .75rem);left:.8rem;overflow:auto;transform:translateY(.35rem)scale(.98);box-shadow:0 24px 70px #1a1a1829}.schedule-month-cell:nth-child(7n) .schedule-hover-board,.schedule-month-cell:nth-child(7n-1) .schedule-hover-board{left:auto;right:.8rem}.schedule-month-cell:hover .schedule-hover-board{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.schedule-hover-board>strong{color:var(--ink);font-weight:900}.schedule-hover-board>em{color:var(--muted);font-size:.86rem;font-style:normal;font-weight:700}.schedule-week-card,.schedule-day-card{padding:1.2rem}.schedule-week-grid{background:#fff;border:0;border-radius:0;display:grid;overflow:visible}.schedule-week-head,.schedule-week-row{grid-template-columns:5.5rem repeat(7,minmax(0,1fr));display:grid}.schedule-week-head{background:0 0;border:0;border-radius:0;overflow:hidden}.schedule-week-head>span{border-right:1px solid #6f859f24;display:block}.schedule-week-head button{min-height:4rem;color:var(--ink);text-align:left;background:0 0;border:0;border-right:1px solid #6f859f24;gap:.2rem;padding:.7rem .85rem;display:grid}.schedule-week-head button:last-child{border-right:0}.schedule-week-head button.selected{color:var(--brand-active);background:#f3752114}.schedule-week-head button strong{font-weight:900}.schedule-week-head button span,.schedule-empty-line{color:var(--muted);font-size:.82rem;font-weight:700}.schedule-period-label{min-height:8.8rem;color:var(--brand-active);background:#fff8f075;border-bottom:1px solid #6f859f24;border-right:1px solid #6f859f24;align-items:center;padding:.8rem .85rem;font-weight:900;display:flex}.schedule-week-row:last-child .schedule-period-label{border-bottom:0}.schedule-week-slot{min-height:8.8rem;color:var(--ink);text-align:left;background:0 0;border:1px solid #6f859f24;border-top:0;border-left:0;border-radius:0;align-content:start;gap:.38rem;padding:.72rem .78rem;display:grid;position:relative}.schedule-week-slot:last-child{border-right:0}.schedule-week-row:last-child .schedule-week-slot{border-bottom:0}.schedule-week-slot:hover,.schedule-week-slot.selected:hover{z-index:25;background:#fff8f0b8}.schedule-week-slot:hover .schedule-hover-board{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.schedule-week-slot>.schedule-class-pill,.schedule-month-cell .schedule-class-stack>.schedule-class-pill{border:0;border-left:3px solid var(--session-color,#f375218c);background:var(--session-bg,#fff8f0b8);box-shadow:none;border-radius:.2rem .65rem .65rem .2rem;padding:.38rem .52rem}.schedule-week-slot>.schedule-class-pill strong,.schedule-month-cell .schedule-class-stack>.schedule-class-pill strong{font-size:.84rem}.schedule-week-slot>.schedule-class-pill small,.schedule-month-cell .schedule-class-stack>.schedule-class-pill small{font-size:.72rem}.schedule-week-slot:nth-last-child(-n+2) .schedule-hover-board{left:auto;right:.7rem}.schedule-empty-line{margin:.2rem 0 0}.schedule-more-count{color:var(--brand-active);font-weight:900}.schedule-day-title{margin-bottom:1rem}.schedule-day-list{gap:.85rem;display:grid}.schedule-day-session{background:#ffffffbd;border:1px solid #6f859f21;border-radius:1rem;grid-template-columns:minmax(7rem,.32fr) minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid}.schedule-day-session time{color:var(--brand-active);font-weight:900}.schedule-day-session strong{color:var(--ink);font-size:1.05rem}.schedule-day-session p{color:var(--muted);margin:.28rem 0 0}.schedule-day-session a{color:#fff;background:var(--brand);border-radius:999px;justify-content:center;padding:.7rem 1rem;font-weight:800;display:inline-flex}.schedule-detail-board{gap:.8rem;min-width:min(44rem,100vw - 5rem);display:grid}.schedule-detail-row{background:#fff8f0ad;border:1px solid #6f859f21;border-radius:1rem;grid-template-columns:minmax(7rem,.35fr) minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid}.schedule-detail-row time{color:var(--brand-active);font-weight:900}.schedule-detail-row strong{color:var(--ink);font-weight:900}.schedule-detail-row p{color:var(--muted);margin:.25rem 0 0}.schedule-detail-row a{color:#fff;background:var(--brand);border-radius:999px;padding:.68rem 1rem;font-weight:800}.schedule-type-badge{color:var(--session-color,var(--brand-active));background:var(--session-bg,#f375211a);vertical-align:middle;border-radius:999px;align-items:center;margin-left:.45rem;padding:.22rem .5rem;font-size:.72rem;font-weight:900;display:inline-flex}@media (width<=1180px){.timesheet-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.timesheet-content-grid{grid-template-columns:1fr}.schedule-week-card{overflow-x:auto}.schedule-week-head,.schedule-week-row{min-width:72rem}}@media (width<=820px){.timesheet-hero{min-height:10rem;margin-top:0}.timesheet-toolbar{flex-direction:column;align-items:stretch}.timesheet-greeting{margin-left:0}.timesheet-hero-image{opacity:.42;width:70vw}.timesheet-board{padding-inline:1.5rem}.timesheet-toolbar{gap:.9rem}.timesheet-tabs{gap:.3rem;overflow-x:auto}.timesheet-tabs button{flex:none;padding-inline:.8rem}.timesheet-month-tools{flex-wrap:wrap}.schedule-calendar-card{overflow:auto visible}.schedule-calendar-head,.schedule-month-grid{min-width:58rem}}@media (width<=620px){.timesheet-hero{min-height:auto}.timesheet-title-row{gap:.85rem}.timesheet-back{width:2.8rem;height:2.8rem}.timesheet-title-row h1{font-size:2.15rem}.timesheet-hero-image{display:none}.timesheet-board{border-radius:1.4rem 1.4rem 0 0;margin-inline:calc(50% - 50vw);padding-inline:1rem}.timesheet-stats{grid-template-columns:1fr}.timesheet-stat-card{min-height:auto}.timesheet-calendar-card{overflow-x:auto}.timesheet-calendar-head,.timesheet-calendar-grid{min-width:46rem}.timesheet-schedule-title,.timesheet-schedule-item{align-items:flex-start}.timesheet-schedule-item{grid-template-columns:3rem minmax(0,1fr)}.timesheet-schedule-item em,.timesheet-schedule-item button{grid-column:2;justify-self:start}.workday-feedback-form{grid-template-columns:1fr}.workday-feedback-modal .modal-footer{grid-template-columns:1fr 1fr;gap:.55rem;padding:.75rem .9rem .9rem;display:grid}.workday-feedback-modal .modal-footer .unsaved-footer-warning{grid-column:1/-1;margin-right:0;font-size:.78rem}.workday-feedback-modal .modal-footer button{width:100%}.timesheet-feedback-card .section-heading{flex-direction:column;align-items:stretch}.timesheet-feedback-card .soft-select{flex-basis:auto;width:100%;max-width:none}.timesheet-feedback-filters,.timesheet-feedback-search{flex-direction:column;align-items:stretch}.timesheet-feedback-search input{width:100%;min-width:0}.timesheet-feedback-summary{grid-template-columns:1fr}.schedule-week-head,.schedule-week-row{grid-template-columns:4.8rem repeat(7,minmax(8rem,1fr));min-width:66rem}.schedule-day-session{grid-template-columns:1fr;align-items:start}.schedule-detail-board{min-width:0}.schedule-detail-row{grid-template-columns:1fr}.schedule-day-session a{width:100%}.schedule-detail-row a{text-align:center}}html body .portal-shell.portal-shell-home>header.portal-header{width:min(1260px,100% - 3rem)!important;margin:0!important;position:absolute!important;inset:2rem auto auto 50%!important;transform:translate(-50%)!important}@media (width<=980px){html body .portal-shell.portal-shell-home>header.portal-header{width:min(100% - 2rem,1260px)!important;inset:1rem auto auto 50%!important}}@media (width<=560px){html body .portal-shell.portal-shell-home>header.portal-header{width:min(100% - 1rem,1260px)!important;inset:.5rem auto auto 50%!important}}@media (width<=1180px){.portal-shell-home{background:radial-gradient(circle at 6% 18%,#ff7e0061 0 3.6rem,#ffbc3033 5.2rem,#0000 9rem),radial-gradient(circle at 92% 32%,#ff5f0070 0 2.8rem,#ffab1f33 4.8rem,#0000 8rem),linear-gradient(#fff5ef 0%,#fff8ef 44%,#ffe7bc 100%)}html body .portal-shell.portal-shell-home>header.portal-header{border-radius:1.5rem;min-height:4.2rem;padding:.5rem .62rem .5rem 1rem;box-shadow:0 12px 28px #85461e2e,inset 0 -2px #c95d1b29;inset:calc(.8rem + env(safe-area-inset-top)) auto auto 50%!important;width:min(100% - 1.6rem,46rem)!important;position:fixed!important}.portal-shell-home .portal-main{padding-bottom:calc(5.8rem + env(safe-area-inset-bottom))}.portal-shell-home .brand-mark{width:9.6rem;height:2.6rem}.portal-shell-home .language-toggle,.portal-shell-home .header-icon,.portal-shell-home .avatar{width:2.55rem;min-width:2.55rem;height:2.55rem}.portal-shell-home .user-chip{padding:.28rem}.portal-shell-home .user-chip span:not(.avatar){display:none}html body .portal-shell.portal-shell-home>header.portal-header .top-nav{z-index:95;min-height:calc(4.65rem + env(safe-area-inset-bottom));padding:.42rem max(.55rem, env(safe-area-inset-left)) calc(.42rem + env(safe-area-inset-bottom)) max(.55rem, env(safe-area-inset-right));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff5;border:0;border-top:1px solid #c95d1b24;border-radius:0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;box-shadow:0 -10px 28px #85461e24;grid-column:auto!important;justify-self:stretch!important;width:100vw!important;position:fixed!important;inset:auto 0 0!important;transform:none!important}html body .portal-shell.portal-shell-home>header.portal-header .top-nav a{color:#8a7568;min-width:0;min-height:3.55rem;box-shadow:none;background:0 0;border-radius:.9rem;align-content:center;justify-items:center;gap:.2rem;padding:.42rem .2rem .26rem;font-size:.66rem;font-weight:900;line-height:1;display:grid;position:relative}html body .portal-shell.portal-shell-home>header.portal-header .top-nav a.active{color:#f04a16;box-shadow:none;background:#fff8f0db}html body .portal-shell.portal-shell-home>header.portal-header .top-nav a.active:before{content:"";background:linear-gradient(90deg,#ff7324,#f04a16);border-radius:999px;width:2.2rem;height:.2rem;position:absolute;top:.18rem;left:50%;transform:translate(-50%)}html body .portal-shell.portal-shell-home>header.portal-header .top-nav-icon{place-items:center;display:grid}html body .portal-shell.portal-shell-home>header.portal-header .top-nav-icon svg{width:1.32rem;height:1.32rem}html body .portal-shell.portal-shell-home>header.portal-header .top-nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.home-stage{margin-bottom:1.45rem}.home-banner{border-radius:0 0 2rem 2rem;height:23rem;min-height:23rem}.home-banner img{object-fit:cover;object-position:center top}.home-greeting-card{border-radius:2rem;grid-template-columns:minmax(0,1fr) 13.2rem;gap:1rem;max-width:46rem;margin-top:-6.6rem;padding:1rem}.home-greeting-copy span{font-size:1.55rem}.home-greeting-copy h1{font-size:clamp(2rem,7vw,2.85rem)}.home-greeting-copy strong{font-size:.92rem}.home-greeting-photo{border-radius:1.45rem;height:12rem}.home-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:46rem;margin-bottom:1.35rem}.home-action-card{border-radius:1.45rem;grid-template-columns:1fr;align-content:space-between;min-height:10.8rem;padding:.8rem}.home-action-icon{background:#ffffff2e;border-right:0;border-radius:1.15rem;width:4.9rem;height:4.9rem;margin:0}.home-action-icon img{width:4.2rem;height:4.2rem}.home-action-copy{gap:.28rem;padding-right:0}.home-action-copy strong{font-size:clamp(1.2rem,4vw,1.65rem)}.home-action-copy small{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.76rem;display:-webkit-box;overflow:hidden}.home-schedule-card,.home-survey-section,.home-quick-row{max-width:46rem}.home-schedule-card,.home-chart-card,.home-survey-stat,.home-mini-card{border-radius:1.45rem}.home-schedule-card{margin-bottom:1.45rem;padding:1.15rem}.home-section-heading h2{font-size:1.7rem}.home-section-heading a,.home-section-heading span{font-size:.88rem;font-weight:800}.home-session{grid-template-columns:5.6rem minmax(0,1fr);gap:.85rem;padding:.85rem}.home-session time{background:#f05a1a1a;border:0;border-radius:1rem;align-items:center;min-height:3.25rem;padding:0;font-size:1rem}.home-session.is-hot time{background:#ffffff2e}.home-session a{grid-column:1/-1;justify-content:center;align-items:center;width:100%;min-height:2.65rem;display:inline-flex}.home-survey-section{margin-bottom:1.45rem}.home-survey-grid{grid-template-columns:1fr;max-width:46rem}.home-chart-card{min-height:19rem}.home-survey-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.home-survey-stat{min-height:9.6rem;padding:1.1rem}.home-survey-stat span{font-size:1rem}.home-survey-stat strong{font-size:3.25rem}.home-quick-row{grid-template-columns:1fr;gap:.85rem}.home-mini-card{min-height:4.9rem;padding:.78rem .95rem}.home-mini-card:after{content:"›";color:#f04a16;margin-left:auto;font-size:1.8rem;font-weight:900;line-height:1}}@media (width<=560px){html body .portal-shell.portal-shell-home>header.portal-header{border-radius:1.25rem;min-height:3.55rem;padding:.42rem .48rem .42rem .78rem;inset:calc(.55rem + env(safe-area-inset-top)) auto auto 50%!important;width:min(100% - 1rem,30rem)!important}.portal-shell-home .brand-mark{width:7.9rem;height:2.15rem}.portal-shell-home .language-toggle,.portal-shell-home .header-icon,.portal-shell-home .avatar{width:2.2rem;min-width:2.2rem;height:2.2rem;font-size:.76rem}.portal-shell-home .header-actions{gap:.28rem}html body .portal-shell.portal-shell-home>header.portal-header .top-nav{min-height:calc(4.35rem + env(safe-area-inset-bottom));padding-top:.34rem}html body .portal-shell.portal-shell-home>header.portal-header .top-nav a{min-height:3.35rem;font-size:.6rem}html body .portal-shell.portal-shell-home>header.portal-header .top-nav-icon svg{width:1.22rem;height:1.22rem}.home-container{width:min(100% - 1rem,1260px)}.home-banner{border-radius:0 0 1.6rem 1.6rem;height:14.6rem;min-height:14.6rem}.home-greeting-card{border-radius:1.25rem;grid-template-columns:1fr;min-height:auto;margin-top:-3.2rem;padding:.68rem .75rem}.home-greeting-copy{grid-template-columns:minmax(0,1fr) 3.7rem;align-items:center;gap:.42rem .65rem;display:grid}.home-greeting-copy span{grid-column:1;font-size:1rem}.home-greeting-copy h1{grid-column:1;margin-block:.05rem .1rem;font-size:1.42rem}.home-greeting-copy strong{grid-column:1/-1;width:fit-content;margin-bottom:0;padding:.18rem .55rem .22rem;font-size:.68rem}.home-greeting-copy p{grid-column:1/-1;display:none}.home-greeting-photo{border-width:.16rem;border-radius:999px;grid-area:1/2/span 2;justify-self:end;width:3.7rem;height:3.7rem;box-shadow:0 10px 18px #753f2333,inset 0 0 0 1px #ffffff9e}.home-action-grid{gap:.78rem;margin-bottom:1.05rem}.home-action-card{border-radius:1.18rem;min-height:9.2rem;padding:.65rem}.home-action-icon{border-radius:.95rem;width:4.1rem;height:4.1rem}.home-action-icon img{width:3.65rem;height:3.65rem}.home-action-copy strong{font-size:1.08rem}.home-action-copy small{font-size:.68rem}.home-schedule-card{border-radius:1.2rem;padding:.9rem}.home-section-heading{margin-bottom:.78rem}.home-section-heading h2{font-size:1.35rem}.home-session{border-radius:1rem;grid-template-columns:1fr;padding:.72rem}.home-session time{width:fit-content;min-height:0;padding:.45rem .7rem;font-size:.98rem}.home-session strong{font-size:1.1rem}.home-chart-card{border-radius:1.2rem;min-height:16.5rem}.home-chart strong{min-width:4.1rem;min-height:2.7rem;font-size:1.55rem;right:2rem}.home-survey-stack{grid-template-columns:1fr;gap:.78rem}.home-survey-stat{border-radius:1.2rem;min-height:7.5rem}.home-survey-stat strong{font-size:2.75rem}.home-mini-card{border-radius:1.15rem}.home-orb{opacity:.42}}.home-stage{max-width:1024px;margin-bottom:1rem;padding-top:7.7rem}.home-greeting-card{border-radius:1.65rem;grid-template-columns:minmax(0,1fr) minmax(14rem,30%);max-width:1024px;min-height:10.4rem;margin-top:0;padding:1rem 1.15rem 1rem 2.6rem}.home-greeting-copy span{font-size:clamp(1.25rem,1.7vw,1.75rem)}.home-greeting-copy h1{font-size:clamp(1.9rem,2.8vw,2.7rem)}.home-greeting-copy strong{margin-bottom:.45rem;font-size:clamp(.82rem,1.1vw,1rem)}.home-greeting-photo{border-width:.22rem;border-radius:1.35rem;height:8.8rem}.home-action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.2rem;max-width:1024px;margin-bottom:1.2rem}.home-action-card{grid-template-columns:5.45rem minmax(0,1fr);min-height:5.25rem}.home-action-icon{width:4.65rem;height:4.65rem;margin-left:.45rem}.home-action-icon img{width:4.05rem;height:4.05rem}.home-action-copy{gap:.12rem;padding-right:.8rem}.home-action-copy strong{font-size:clamp(1.05rem,1.45vw,1.35rem);line-height:.98}.home-action-copy small{font-size:.68rem;line-height:1.12}.home-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;max-width:1024px;display:grid}.home-secondary-grid .home-schedule-card{border-radius:1.35rem;max-width:none;margin-bottom:0;padding:1rem 1.1rem 1.15rem}.home-section-heading{margin-bottom:.75rem;padding-bottom:.38rem}.home-section-heading h2{font-size:clamp(1.25rem,1.8vw,1.6rem)}.home-section-heading a,.home-section-heading span{font-size:.82rem}.home-session-list{gap:.55rem}.home-session{border-radius:.9rem;grid-template-columns:5.35rem minmax(0,1fr) auto;gap:.75rem;min-height:3.45rem;padding:.42rem .55rem .42rem .75rem}.home-session time{padding-right:.65rem;font-size:clamp(.86rem,1.1vw,1rem)}.home-session strong{font-size:clamp(.88rem,1.35vw,1.12rem)}.home-session small{margin-top:.12rem;font-size:.72rem}.home-session a{padding:.38rem .55rem;font-size:.78rem}@media (width<=980px){.home-stage{padding-top:6.5rem}.home-greeting-card{grid-template-columns:minmax(0,1fr) minmax(10rem,28%);padding:1rem 1.1rem}.home-greeting-photo{height:7.6rem}.home-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:46rem}.home-secondary-grid{grid-template-columns:1fr;max-width:46rem}}@media (width<=560px){.home-stage{margin-bottom:.85rem;padding-top:4.75rem}.home-greeting-card{border-radius:1.25rem;grid-template-columns:1fr;padding:.68rem .75rem}.home-greeting-photo{border-width:.16rem;border-radius:999px;width:3.7rem;height:3.7rem}.home-action-grid{grid-template-columns:1fr;gap:.78rem;margin-bottom:1.05rem}.home-action-card{grid-template-columns:4.8rem minmax(0,1fr);min-height:5.7rem}.home-action-icon{width:4.1rem;height:4.1rem}.home-action-icon img{width:3.65rem;height:3.65rem}.home-action-copy strong{font-size:1.08rem}.home-action-copy small{font-size:.68rem}.home-secondary-grid .home-schedule-card{border-radius:1.2rem;padding:.9rem}.home-session{grid-template-columns:1fr;gap:.45rem;padding:.72rem}.home-session time{width:fit-content;padding-right:.7rem}.home-session a{width:fit-content}}.home-bottom-nav{display:none}.portal-shell-home>header.portal-header .top-nav{display:none!important}@media (width<=1180px){.portal-shell-home .portal-main{padding-bottom:calc(5.8rem + env(safe-area-inset-bottom))}.home-bottom-nav{z-index:120;width:100%;min-height:calc(4.65rem + env(safe-area-inset-bottom));padding:.42rem max(.55rem, env(safe-area-inset-left)) calc(.42rem + env(safe-area-inset-bottom)) max(.55rem, env(safe-area-inset-right));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff5;border-top:1px solid #c95d1b24;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -10px 28px #85461e24}.home-bottom-nav a{color:#8a7568;border-radius:.9rem;align-content:center;justify-items:center;gap:.2rem;min-width:0;min-height:3.55rem;padding:.42rem .2rem .26rem;font-size:.66rem;font-weight:900;line-height:1;display:grid;position:relative}.home-bottom-nav a.active{color:#f04a16;background:#fff8f0db}.home-bottom-nav a.active:before{content:"";background:linear-gradient(90deg,#ff7324,#f04a16);border-radius:999px;width:2.2rem;height:.2rem;position:absolute;top:.18rem;left:50%;transform:translate(-50%)}.home-bottom-nav .top-nav-icon{place-items:center;display:grid}.home-bottom-nav .top-nav-icon svg{width:1.32rem;height:1.32rem}.home-bottom-nav .top-nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}}@media (width<=560px){.home-bottom-nav{min-height:calc(4.35rem + env(safe-area-inset-bottom));padding-top:.34rem}.home-bottom-nav a{min-height:3.35rem;font-size:.6rem}.home-bottom-nav .top-nav-icon svg{width:1.22rem;height:1.22rem}}@media (width<=1180px){.portal-shell-inner>header.portal-header .top-nav,.portal-shell-inner:not(.portal-shell-home)>header.portal-header{display:none!important}.portal-shell-inner .portal-main{width:min(100% - 2rem,46rem);padding-bottom:calc(5.8rem + env(safe-area-inset-bottom));margin-inline:auto}.portal-shell-classes{font-family:var(--font-home);background:radial-gradient(circle at 8% 18%,#ff7e0057 0 3.4rem,#ffbc302e 5rem,#0000 8.8rem),radial-gradient(circle at 92% 30%,#ff5f0066 0 2.7rem,#ffab1f2e 4.6rem,#0000 8rem),linear-gradient(#fff5ef 0%,#fff8ef 44%,#ffe7bc 100%)}.portal-shell-classes:after{display:none}.portal-shell-classes>.portal-header{display:none!important}.portal-shell-classes .header-actions{gap:.55rem;margin:0}.portal-shell-classes .language-toggle,.portal-shell-classes .header-icon,.portal-shell-classes .avatar{color:#fff;background:linear-gradient(#ff7324,#f04a16);width:2.55rem;min-width:2.55rem;height:2.55rem;box-shadow:0 7px 14px #db4c0f40,inset 0 2px #ffffff61}.portal-shell-classes .header-icon svg,.portal-shell-classes .header-icon svg circle{color:#fff;fill:#fff}.portal-shell-classes .user-chip{background:linear-gradient(#ff7a27,#f05217);padding:.28rem;box-shadow:0 7px 15px #db4c0f40,inset 0 2px #ffffff61}.portal-shell-classes .user-chip span:not(.avatar){display:none}.portal-shell-classes .classes-hero-page{min-height:auto;padding-top:calc(.9rem + env(safe-area-inset-top));margin:0 0 1rem}.portal-shell-classes .classes-title-row{gap:.8rem;margin:0 0 .75rem}.portal-shell-classes .classes-back{background:linear-gradient(#ff7324,#f04a16);width:2.6rem;height:2.6rem;box-shadow:0 10px 20px #db4c0f38,inset 0 1px #ffffff52}.portal-shell-classes .classes-title-mark{background:#fff;border-radius:.9rem;place-items:center;width:2.45rem;height:2.45rem;display:grid;box-shadow:0 8px 15px #753f2324}.portal-shell-classes .classes-title-row h1{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:clamp(1.7rem,5vw,2.25rem)}.portal-shell-classes .classes-greeting,.portal-shell-classes .classes-greeting:after,.portal-shell-classes .classes-hero-visual{display:none}.portal-shell-classes .classes-board{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0 0 1.5rem}.portal-shell-classes .classes-toolbar{gap:.6rem;margin-bottom:.95rem;display:grid}.portal-shell-classes .classes-filter{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:100%;display:grid}.portal-shell-classes .classes-filter button{color:#f04a16;min-height:2.5rem;font-family:var(--font-home);background:#fff;border:1px solid #ffffffa3;border-radius:.9rem;justify-content:center;padding:.5rem .42rem;font-size:.76rem;box-shadow:0 8px 15px #753f2324}.portal-shell-classes .classes-filter button.active{color:#fff;background:linear-gradient(100deg,#ff2f14 0%,#ff540e 56%,#ff7d12 100%);box-shadow:0 10px 18px #753f2338,inset 0 1px #ffffff57}.portal-shell-classes .classes-tools-right{grid-template-columns:minmax(0,1fr) 2.75rem;align-items:stretch;gap:.5rem;width:100%;display:grid}.portal-shell-classes .class-search,.portal-shell-classes .class-sort .soft-select-trigger{background:#fffffff0;border:1px solid #ffffffeb;height:2.75rem;min-height:2.75rem;box-shadow:0 8px 15px #753f2324}.portal-shell-classes .class-search{min-width:0;padding-inline:.8rem}.portal-shell-classes .class-search input{min-height:0;padding-block:0}.portal-shell-classes .class-sort{width:100%;min-width:0}.portal-shell-classes .class-sort .soft-select-trigger{border-radius:.95rem;justify-content:center;gap:0;width:2.75rem;padding:0}.portal-shell-classes .class-sort .soft-select-trigger span:first-child{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.portal-shell-classes .class-sort .soft-select-trigger:before{content:"↕";color:#f04a16;font-size:1.2rem;font-weight:900}.portal-shell-classes .class-sort .soft-select-chevron{display:none}.portal-shell-classes .class-sort .soft-select-menu{width:10rem;left:auto;right:0}.portal-shell-classes .class-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.portal-shell-classes .class-gallery-card{background:#fff;border:1px solid #ffffffa3;border-radius:1.35rem;min-height:12rem;overflow:hidden;box-shadow:0 12px 20px #753f232e,inset 0 -1px #d164251a}.portal-shell-classes .class-image-placeholder{background:linear-gradient(100deg,#ff2f14 0%,#ff540e 56%,#ff7d12 100%);border-radius:0 0 1.2rem 1.2rem;min-height:7.6rem}.portal-shell-classes .class-image-placeholder>span{background:#f04a16d1;border-radius:.75rem;box-shadow:0 6px 12px #753f232e}.portal-shell-classes .class-gallery-content{padding:.8rem}.portal-shell-classes .class-gallery-content h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:.98rem}.portal-shell-classes .class-gallery-content p,.portal-shell-classes .class-card-footer{color:#57564f}.portal-shell-classes .class-arrow{background:linear-gradient(#ff7324,#f04a16);width:2rem;height:2rem}}@media (width<=560px){.portal-shell-inner .portal-main{width:min(100% - 1rem,46rem);margin-inline:auto}.portal-shell-classes>.portal-header{inset:calc(.55rem + env(safe-area-inset-top)) auto auto 50%;border-radius:1.25rem;width:min(100% - 1rem,30rem);min-height:3.55rem;padding:.42rem .48rem}.portal-shell-classes .language-toggle,.portal-shell-classes .header-icon,.portal-shell-classes .avatar{width:2.2rem;min-width:2.2rem;height:2.2rem;font-size:.76rem}.portal-shell-classes .classes-hero-page{padding-top:calc(.65rem + env(safe-area-inset-top));margin-bottom:.65rem}.portal-shell-classes .classes-tools-right{grid-template-columns:minmax(0,1fr) 2.75rem;gap:.5rem}.portal-shell-classes .class-gallery-grid{gap:.75rem}.portal-shell-classes .class-gallery-card{border-radius:1.15rem;min-height:10.8rem}.portal-shell-classes .class-image-placeholder{min-height:6.3rem}.portal-shell-classes .class-gallery-content{padding:.65rem}.portal-shell-classes .class-gallery-content h2{font-size:.82rem}.portal-shell-classes .class-gallery-content p,.portal-shell-classes .class-card-footer{font-size:.68rem}.portal-shell-classes .progress-dot,.portal-shell-classes .class-card-footer>span:nth-last-child(2){display:none}}@media (width<=1180px){.portal-shell-class-detail{font-family:var(--font-home);background:radial-gradient(circle at 8% 18%,#ff7e0057 0 3.4rem,#ffbc302e 5rem,#0000 8.8rem),radial-gradient(circle at 92% 30%,#ff5f0066 0 2.7rem,#ffab1f2e 4.6rem,#0000 8rem),linear-gradient(#fff5ef 0%,#fff8ef 44%,#ffe7bc 100%)}.portal-shell-class-detail:after,.portal-shell-class-detail .class-detail-visual,.portal-shell-class-detail .class-detail-title-mark,.portal-shell-class-detail .class-detail-title-trail{display:none}.portal-shell-class-detail .class-detail-hero{min-height:auto;padding:calc(.9rem + env(safe-area-inset-top)) 0 0;margin:0 0 .75rem}.portal-shell-class-detail .class-detail-title-row{align-items:center;gap:.8rem;width:100%;margin:0 0 .75rem;display:flex}.portal-shell-class-detail .class-detail-title-row h1{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;margin:0;font-size:clamp(1.7rem,5vw,2.25rem);line-height:1}.portal-shell-class-detail .classes-back{background:linear-gradient(#ff7324,#f04a16);flex:none;width:2.6rem;height:2.6rem;box-shadow:0 10px 20px #db4c0f38,inset 0 1px #ffffff52}.portal-shell-class-detail .class-detail-summary{background:#fff;border:1px solid #fffffff5;border-radius:1.45rem;grid-template-columns:5rem minmax(0,1fr);align-items:center;gap:.85rem;padding:.82rem;display:grid;box-shadow:0 14px 24px #77452a29,inset 0 -2px #d164251f}.portal-shell-class-detail .class-avatar-placeholder{border:.18rem solid #ff5a1f;border-radius:1.15rem;width:5rem;height:5rem;box-shadow:0 10px 18px #753f2329}.portal-shell-class-detail .class-avatar-placeholder img{object-fit:cover;height:100%}.portal-shell-class-detail .class-detail-copy h1{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;margin:0 0 .28rem;font-size:clamp(1.2rem,4.5vw,1.7rem);line-height:1}.portal-shell-class-detail .class-detail-copy p{color:#57564f;margin:0 0 .55rem;font-size:.82rem;font-weight:700}.portal-shell-class-detail .class-hero-meta{flex-wrap:wrap;gap:.38rem;display:flex}.portal-shell-class-detail .class-hero-meta span{color:#f04a16;background:#fff8f0f2;border-radius:999px;align-items:center;min-height:1.7rem;padding:.28rem .55rem;font-size:.68rem;font-weight:900;display:inline-flex}.portal-shell-class-detail .class-detail-tabs{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border:1px solid #ffffffe6;border-radius:1.25rem;grid-template-columns:repeat(5,minmax(0,1fr));gap:.38rem;margin:0 0 .75rem;padding:.38rem;display:grid;position:sticky;top:0;overflow-x:visible;box-shadow:0 10px 20px #753f2324}.portal-shell-class-detail .class-detail-tabs button{color:#8a7568;min-height:3.15rem;font-family:var(--font-home);border-radius:.95rem;justify-items:center;gap:.18rem;padding:.48rem .18rem;font-size:.66rem;font-weight:900;line-height:1;display:grid}.portal-shell-class-detail .class-detail-tabs button.active{color:#f04a16;box-shadow:none;background:0 0}.portal-shell-class-detail .class-detail-tabs button.active:after{background:#f04a16;border-radius:999px;height:.2rem;display:block;bottom:-.38rem;left:18%;right:18%}.portal-shell-class-detail .class-detail-tab-icon{color:currentColor;width:1.15rem;height:1.15rem}.portal-shell-class-detail .detail-panel{background:#fffffff5;border:1px solid #fffffff5;border-radius:1.35rem;margin-top:0;padding:.85rem;box-shadow:0 12px 20px #753f2329,inset 0 -1px #d164251a}.portal-shell-class-detail .detail-panel-heading h2,.portal-shell-class-detail .overview-card-heading h2,.portal-shell-class-detail .overview-notice-card h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:1.15rem}.portal-shell-class-detail .class-overview-layout{grid-template-columns:1fr;gap:.85rem}.portal-shell-class-detail .overview-main-card{background:#fff;border:1px solid #ffffffe0;border-radius:1.18rem;box-shadow:0 8px 15px #753f231f}.portal-shell-class-detail .overview-basic-card,.portal-shell-class-detail .overview-materials-card,.portal-shell-class-detail .overview-notice-card{padding:.9rem}.portal-shell-class-detail .overview-info-list div{grid-template-columns:2.35rem minmax(0,1fr);padding:.68rem 0}.portal-shell-class-detail .overview-info-list dd{grid-template-columns:1fr;gap:.18rem}.portal-shell-class-detail .overview-info-list dt,.portal-shell-class-detail .overview-notice-icon{color:#f04a16;background:#fff8f0f2}.portal-shell-class-detail .overview-info-list strong{color:#40516d;font-weight:600}.portal-shell-class-detail .overview-notice-card{grid-template-columns:3rem minmax(0,1fr) auto;gap:.75rem}.portal-shell-class-detail .overview-material-list li{grid-template-columns:2.75rem minmax(0,1fr) 2.2rem;gap:.65rem}.portal-shell-class-detail .overview-material-list li button:last-child{display:none}.portal-shell-class-detail .detail-panel-toolbar,.portal-shell-class-detail .attendance-toolbar{gap:.75rem;margin-bottom:.85rem;display:grid}.portal-shell-class-detail .detail-tools,.portal-shell-class-detail .attendance-toolbar-actions{grid-template-columns:1fr 2.75rem;align-items:stretch;gap:.5rem;display:grid}.portal-shell-class-detail .student-search,.portal-shell-class-detail .detail-tools .class-sort .soft-select-trigger{background:#fffffff0;border:1px solid #ffffffeb;height:2.75rem;min-height:2.75rem;box-shadow:0 8px 15px #753f231f}.portal-shell-class-detail .detail-tools .class-sort{min-width:0}.portal-shell-class-detail .detail-tools .class-sort .soft-select-trigger{border-radius:.95rem;justify-content:center;width:2.75rem;padding:0}.portal-shell-class-detail .detail-tools .class-sort .soft-select-trigger span:first-child{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.portal-shell-class-detail .detail-tools .class-sort .soft-select-trigger:before{content:"↕";color:#f04a16;font-size:1.2rem;font-weight:900}.portal-shell-class-detail .detail-tools .class-sort .soft-select-chevron{display:none}.portal-shell-class-detail .attendance-toolbar-actions{grid-template-columns:1fr}.portal-shell-class-detail .attendance-view-toggle,.portal-shell-class-detail .attendance-date-filter,.portal-shell-class-detail .attendance-session-select{background:#fffffff0;border-color:#ffffffeb;width:100%;box-shadow:0 8px 15px #753f231f}.portal-shell-class-detail .attendance-view-toggle{border-radius:1rem;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.portal-shell-class-detail .attendance-view-toggle button{white-space:normal;width:100%;padding:.62rem .55rem}.portal-shell-class-detail .attendance-view-toggle button.active,.portal-shell-class-detail .primary-button{color:#fff;background:linear-gradient(#ff7324,#f04a16)}.portal-shell-class-detail .attendance-date-filter,.portal-shell-class-detail .attendance-session-select{border-radius:1rem;flex-direction:column;align-items:stretch;gap:.45rem;padding:.65rem}.portal-shell-class-detail .attendance-session-select .soft-select{min-width:0}.portal-shell-class-detail .attendance-session-grid,.portal-shell-class-detail .test-grid{grid-template-columns:1fr;gap:.75rem}.portal-shell-class-detail .attendance-session-card,.portal-shell-class-detail .test-soft-card{background:#fff;border:1px solid #ffffffe0;border-radius:1.15rem;min-height:auto;box-shadow:0 8px 15px #753f231f}.portal-shell-class-detail .test-icon{color:#fff;background:linear-gradient(#ff7324,#f04a16)}.portal-shell-class-detail .table-wrap,.portal-shell-class-detail .attendance-overview-wrap{border-radius:1.1rem;box-shadow:0 8px 15px #753f231a}.portal-shell-class-detail .attendance-table,.portal-shell-class-detail .attendance-overview-table{min-width:0}}@media (width<=560px){.portal-shell-class-detail .class-detail-hero{padding-top:calc(.65rem + env(safe-area-inset-top))}.portal-shell-class-detail .class-detail-title-row{margin-bottom:.6rem}.portal-shell-class-detail .class-detail-title-row h1{font-size:1.35rem}.portal-shell-class-detail .classes-back{width:2.45rem;height:2.45rem}.portal-shell-class-detail .class-detail-summary{border-radius:1.2rem;grid-template-columns:4.2rem minmax(0,1fr);gap:.65rem;padding:.7rem}.portal-shell-class-detail .class-avatar-placeholder{border-radius:.95rem;width:4.2rem;height:4.2rem}.portal-shell-class-detail .class-detail-copy h1{font-size:1.08rem}.portal-shell-class-detail .class-detail-copy p{margin-bottom:.38rem;font-size:.72rem}.portal-shell-class-detail .class-hero-meta span{min-height:1.45rem;padding:.22rem .42rem;font-size:.6rem}.portal-shell-class-detail .class-detail-tabs{border-radius:1.05rem;gap:.28rem;margin-bottom:.6rem}.portal-shell-class-detail .class-detail-tabs button{border-radius:.82rem;min-height:2.85rem;font-size:.58rem}.portal-shell-class-detail .class-detail-tab-icon{width:1.05rem;height:1.05rem}.portal-shell-class-detail .detail-panel{border-radius:1.15rem;padding:.7rem}.portal-shell-class-detail .overview-basic-card,.portal-shell-class-detail .overview-materials-card,.portal-shell-class-detail .overview-notice-card{padding:.75rem}.portal-shell-class-detail .overview-material-list li,.portal-shell-class-detail .overview-notice-card{grid-template-columns:1fr}.portal-shell-class-detail .overview-material-list li button{justify-self:start}.portal-shell-class-detail .attendance-meta{gap:.45rem;margin-bottom:.75rem;display:grid}.portal-shell-class-detail .attendance-meta span{color:#57564f;background:#fff8f0e6;border:0;border-radius:.9rem;padding:.58rem .7rem;font-size:.78rem}.portal-shell-class-detail .attendance-meta span+span{border-left:0;padding-left:.7rem}.portal-shell-class-detail .attendance-table,.portal-shell-class-detail .attendance-table thead,.portal-shell-class-detail .attendance-table tbody,.portal-shell-class-detail .attendance-table tr,.portal-shell-class-detail .attendance-table td,.portal-shell-class-detail .attendance-overview-table,.portal-shell-class-detail .attendance-overview-table thead,.portal-shell-class-detail .attendance-overview-table tbody,.portal-shell-class-detail .attendance-overview-table tr,.portal-shell-class-detail .attendance-overview-table td{width:100%;min-width:0;display:block}.portal-shell-class-detail .attendance-table thead,.portal-shell-class-detail .attendance-overview-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.portal-shell-class-detail .attendance-table tbody,.portal-shell-class-detail .attendance-overview-table tbody{gap:.5rem;display:grid}.portal-shell-class-detail .attendance-table tr,.portal-shell-class-detail .attendance-overview-table tr{background:#fff;border:1px solid #ffffffe0;border-radius:.95rem;overflow:hidden;box-shadow:0 6px 12px #753f231a}.portal-shell-class-detail .attendance-table td,.portal-shell-class-detail .attendance-overview-table td{color:#1a1a18;text-align:right;background:0 0;border:0;border-bottom:1px solid #f3752117;justify-content:space-between;align-items:center;gap:.55rem;min-height:0;padding:.48rem .62rem;font-size:.78rem;display:flex;position:static}.portal-shell-class-detail .attendance-table td:last-child,.portal-shell-class-detail .attendance-overview-table td:last-child{border-bottom:0}.portal-shell-class-detail .attendance-table td:before,.portal-shell-class-detail .attendance-overview-table td:before{color:#f04a16;font-family:var(--font-home);text-align:left;text-transform:uppercase;flex:none;font-size:.58rem;font-weight:900}.portal-shell-class-detail .attendance-table td:first-child:before,.portal-shell-class-detail .attendance-overview-table td:first-child:before{content:"STT"}.portal-shell-class-detail .attendance-table td:nth-child(2):before,.portal-shell-class-detail .attendance-overview-table td:nth-child(2):before{content:"Học viên"}.portal-shell-class-detail .attendance-table td:nth-child(3):before,.portal-shell-class-detail .attendance-overview-table td:nth-child(3):before{content:"Tên tiếng Anh"}.portal-shell-class-detail .attendance-table td:nth-child(4):before{content:"GV báo vắng"}.portal-shell-class-detail .attendance-table td:nth-child(5):before{content:"Đồng phục"}.portal-shell-class-detail .attendance-table td:nth-child(6):before{content:"Check-in"}.portal-shell-class-detail .attendance-table td:nth-child(7):before{content:"Trạng thái"}.portal-shell-class-detail .attendance-table td:nth-child(8):before{content:"Ghi chú"}.portal-shell-class-detail .attendance-table td:nth-child(9):before{content:"Bài tập về nhà"}.portal-shell-class-detail .attendance-overview-table td:nth-child(n+4):before{content:attr(data-session-label);text-overflow:ellipsis;white-space:nowrap;max-width:72%;overflow:hidden}.portal-shell-class-detail .attendance-table td:nth-child(2),.portal-shell-class-detail .attendance-overview-table td:nth-child(2){color:#1a1a18;text-align:left;justify-content:flex-start;min-height:3.2rem;padding-block:.55rem;font-weight:900;display:flex}.portal-shell-class-detail .attendance-table td:nth-child(2):before,.portal-shell-class-detail .attendance-overview-table td:nth-child(2):before,.portal-shell-class-detail .attendance-table td:first-child,.portal-shell-class-detail .attendance-overview-table td:first-child,.portal-shell-class-detail .attendance-table td:nth-child(3),.portal-shell-class-detail .attendance-overview-table td:nth-child(3){display:none}.portal-shell-class-detail .attendance-table td:nth-child(4),.portal-shell-class-detail .attendance-table td:nth-child(5),.portal-shell-class-detail .attendance-table td:nth-child(6),.portal-shell-class-detail .attendance-table td:nth-child(7){vertical-align:top;width:50%;min-height:2.3rem;display:inline-flex}.portal-shell-class-detail .attendance-table td:nth-child(4),.portal-shell-class-detail .attendance-table td:nth-child(6){border-right:1px solid #f3752117}.portal-shell-class-detail .attendance-table td:nth-child(8),.portal-shell-class-detail .attendance-table td:nth-child(9){min-height:2.45rem}.portal-shell-class-detail .attendance-table input[type=text],.portal-shell-class-detail .attendance-table input:not([type]){text-align:right;min-width:0;max-width:10rem;min-height:2rem;padding:.42rem .55rem}.portal-shell-class-detail .attendance-table input[type=checkbox]{flex:none;width:1.1rem;height:1.1rem}.portal-shell-class-detail .attendance-table .student-avatar-wrap,.portal-shell-class-detail .attendance-overview-table .student-avatar-wrap{margin-right:.48rem}.portal-shell-class-detail .attendance-table .student-avatar,.portal-shell-class-detail .attendance-overview-table .student-avatar{width:2.15rem;height:2.15rem;font-size:.72rem}.portal-shell-class-detail .attendance-table .badge,.portal-shell-class-detail .attendance-overview-table .badge{padding:.32rem .5rem;font-size:.66rem}.portal-shell-class-detail .attendance-overview-wrap{max-height:none;box-shadow:none;background:0 0;border:0;overflow:visible}.portal-shell-class-detail .attendance-overview-icons{justify-content:flex-end}}@media (width<=1180px){.home-bottom-nav{z-index:120;width:100%;min-height:calc(4.65rem + env(safe-area-inset-bottom));padding:.42rem max(.55rem, env(safe-area-inset-left)) calc(.42rem + env(safe-area-inset-bottom)) max(.55rem, env(safe-area-inset-right));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff5;border-top:1px solid #c95d1b24;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -10px 28px #85461e24}.home-bottom-nav a{color:#8a7568;min-width:0;min-height:3.55rem;box-shadow:none;font-family:var(--font-home);background:0 0;border-radius:.9rem;align-content:center;justify-items:center;gap:.2rem;padding:.42rem .2rem .26rem;font-size:.66rem;font-weight:900;line-height:1;display:grid;position:relative}.home-bottom-nav a.active{color:#f04a16;background:#fff8f0db}.home-bottom-nav a.active:before{content:"";background:linear-gradient(90deg,#ff7324,#f04a16);border-radius:999px;width:2.2rem;height:.2rem;position:absolute;top:.18rem;left:50%;transform:translate(-50%)}.home-bottom-nav .top-nav-icon{clip:auto;white-space:normal;place-items:center;width:auto;height:auto;display:grid;position:static;overflow:visible}.home-bottom-nav .top-nav-icon svg{width:1.32rem;height:1.32rem}.home-bottom-nav .top-nav-label{clip:auto;text-overflow:ellipsis;white-space:nowrap;width:auto;max-width:100%;height:auto;display:block;position:static;overflow:hidden}.portal-shell-inner .portal-main{width:min(100% - 2rem,46rem);padding-top:0;padding-bottom:calc(5.8rem + env(safe-area-inset-bottom));margin-inline:auto}.portal-shell-inner:not(.portal-shell-home)>header.portal-header{display:none!important}.portal-shell-inner .classes-hero-page,.portal-shell-inner .class-detail-hero{min-height:auto;padding-top:calc(.9rem + env(safe-area-inset-top));margin:0 0 .75rem}.portal-shell-inner .classes-title-row,.portal-shell-inner .class-detail-title-row,.portal-shell-inner .timesheet-title-row{margin:0 0 .75rem;align-items:center;gap:.8rem;width:100%;min-height:2.6rem;margin-left:0;display:flex}.portal-shell-inner .classes-back,.portal-shell-inner .timesheet-back{color:#fff;width:2.6rem;height:2.6rem;font-family:var(--font-home);background:linear-gradient(#ff7324,#f04a16);border-radius:999px;flex:0 0 2.6rem;place-items:center;font-size:1.2rem;font-weight:900;line-height:1;display:grid;box-shadow:0 10px 20px #db4c0f38,inset 0 1px #ffffff52}.portal-shell-inner .classes-title-row h1,.portal-shell-inner .class-detail-title-row h1,.portal-shell-inner .timesheet-title-row h1{color:#f04a16;font-family:var(--font-home);letter-spacing:-.03em;text-transform:uppercase;margin:0;font-size:clamp(1.7rem,5vw,2.25rem);line-height:1}}@media (width<=560px){.home-bottom-nav{min-height:calc(4.35rem + env(safe-area-inset-bottom));padding-top:.34rem}.home-bottom-nav a{min-height:3.35rem;font-size:.6rem}.home-bottom-nav .top-nav-icon svg{width:1.22rem;height:1.22rem}.portal-shell-inner .portal-main{width:min(100% - .5rem,46rem)}.portal-shell-inner .classes-hero-page,.portal-shell-inner .class-detail-hero{padding-top:calc(.65rem + env(safe-area-inset-top));margin-bottom:.65rem}.portal-shell-inner .classes-title-row,.portal-shell-inner .class-detail-title-row,.portal-shell-inner .timesheet-title-row{min-height:2.45rem;margin-bottom:.6rem}.portal-shell-inner .classes-back,.portal-shell-inner .timesheet-back{flex-basis:2.45rem;width:2.45rem;height:2.45rem;font-size:1.1rem}.portal-shell-inner .classes-title-row h1,.portal-shell-inner .class-detail-title-row h1,.portal-shell-inner .timesheet-title-row h1{font-size:1.35rem}.portal-shell-class-detail .attendance-table tbody{gap:.38rem}.portal-shell-class-detail .attendance-table tr{border-radius:.85rem;grid-template-columns:minmax(0,1fr) 2.15rem 2.15rem 2.7rem 3.2rem;align-items:center;gap:.25rem;padding:.42rem .5rem;display:grid}.portal-shell-class-detail .attendance-table td{border:0;place-items:center;width:auto;min-height:0;padding:0;font-size:.72rem;display:grid}.portal-shell-class-detail .attendance-table td:before{display:none}.portal-shell-class-detail .attendance-table td:nth-child(2){grid-column:1;justify-content:flex-start;align-items:center;min-height:2.25rem;padding:0;font-size:.78rem;line-height:1.15;display:flex;overflow:hidden}.portal-shell-class-detail .attendance-table td:nth-child(4){grid-column:2}.portal-shell-class-detail .attendance-table td:nth-child(5){grid-column:3}.portal-shell-class-detail .attendance-table td:nth-child(6){grid-column:4}.portal-shell-class-detail .attendance-table td:nth-child(7){grid-column:5}.portal-shell-class-detail .attendance-table td:nth-child(8){grid-column:1/-1;min-height:0;margin-top:.18rem;display:block}.portal-shell-class-detail .attendance-table td:nth-child(4),.portal-shell-class-detail .attendance-table td:nth-child(5),.portal-shell-class-detail .attendance-table td:nth-child(6),.portal-shell-class-detail .attendance-table td:nth-child(7){border-right:0;width:auto}.portal-shell-class-detail .attendance-table .student-avatar-wrap{margin-right:.36rem}.portal-shell-class-detail .attendance-table .student-avatar{width:1.85rem;height:1.85rem;font-size:.62rem}.portal-shell-class-detail .attendance-table input[type=checkbox]{width:1rem;height:1rem}.portal-shell-class-detail .attendance-table .badge{max-width:100%;padding:.24rem .34rem;font-size:.56rem;line-height:1}.portal-shell-class-detail .attendance-table input[type=text],.portal-shell-class-detail .attendance-table input:not([type]){text-align:left;background:#fff8f0b8;border-radius:.65rem;width:100%;max-width:none;min-height:1.85rem;padding:.34rem .5rem;font-size:.72rem}}.attendance-mobile-summary,.attendance-mobile-list,.students-mobile-list{display:none}@media (width<=560px){.portal-shell-class-detail .attendance-mobile-summary,.portal-shell-class-detail .attendance-mobile-list{display:grid}.portal-shell-class-detail .attendance-mobile-summary{background:linear-gradient(135deg,#fff8f0fa,#fffffff0);border-radius:1.2rem;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:.7rem 0 .85rem;padding:.7rem;display:none;box-shadow:inset 0 0 0 1px #f3752114,0 8px 18px #753f231a}.portal-shell-class-detail .attendance-mobile-summary article{background:#ffffffb8;border:1px solid #f375211a;border-radius:1rem;justify-items:center;gap:.18rem;min-height:5rem;padding:.55rem .25rem;display:grid}.portal-shell-class-detail .attendance-mobile-summary article span{border-radius:999px;place-items:center;width:1.75rem;height:1.75rem;font-weight:900;display:grid}.portal-shell-class-detail .attendance-mobile-summary strong{color:#f04a16;font-family:var(--font-home);font-size:1.45rem;line-height:.9}.portal-shell-class-detail .attendance-mobile-summary small{color:#7b6658;text-align:center;font-size:.62rem;font-weight:900;line-height:1.05}.portal-shell-class-detail .attendance-mobile-summary .present span{color:#43b431;background:#43b43121}.portal-shell-class-detail .attendance-mobile-summary .late span{color:#ff7a18;background:#ff7a1821}.portal-shell-class-detail .attendance-mobile-summary .absent span{color:#f04a16;background:#f04a161f}.portal-shell-class-detail .attendance-mobile-summary .leave span{color:#77716b;background:#77716b21}.portal-shell-class-detail .attendance-mobile-list{gap:.72rem}.portal-shell-class-detail .attendance-mobile-row{background:#fffffff5;border:1px solid #ffffffe6;border-radius:1.1rem;gap:.55rem;padding:.8rem .72rem;display:grid;box-shadow:0 8px 18px #753f231a}.portal-shell-class-detail .attendance-mobile-head{grid-template-columns:1.8rem 2.35rem minmax(0,1fr);align-items:center;gap:.48rem;display:grid}.portal-shell-class-detail .attendance-mobile-order{color:#9a928a;font-family:var(--font-home);font-weight:900}.portal-shell-class-detail .attendance-mobile-head .student-avatar-wrap{margin:0}.portal-shell-class-detail .attendance-mobile-head .student-avatar{background:linear-gradient(#ff7324,#f04a16);width:2.35rem;height:2.35rem;font-size:.72rem}.portal-shell-class-detail .attendance-mobile-head strong{color:#2f2b27;font-family:var(--font-home);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:800;line-height:1.1;overflow:hidden}.portal-shell-class-detail .attendance-mobile-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;padding-left:0;display:grid}.portal-shell-class-detail .attendance-mobile-actions label,.portal-shell-class-detail .attendance-mobile-actions>span{color:#7b6658;text-align:center;background:#fffaf5;border:1px solid #f375211f;border-radius:999px;justify-content:center;align-items:center;min-height:2.15rem;padding:0 .35rem;font-size:.58rem;font-weight:900;line-height:1;display:inline-flex}.portal-shell-class-detail .attendance-mobile-actions input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.portal-shell-class-detail .attendance-mobile-actions .active.present,.portal-shell-class-detail .attendance-mobile-actions label.active.uniform{color:#43a82f;background:#43b4311f;border-color:#43b4312e}.portal-shell-class-detail .attendance-mobile-actions .active.danger,.portal-shell-class-detail .attendance-mobile-actions .danger{color:#f04a16;background:#f04a161a;border-color:#f04a1629}.portal-shell-class-detail .attendance-mobile-actions label.active.uniform span:before,.portal-shell-class-detail .attendance-mobile-actions .active.present:before{content:"✓ "}.portal-shell-class-detail .attendance-mobile-actions .active.danger:before,.portal-shell-class-detail .attendance-mobile-actions .danger:before{content:"× "}.portal-shell-class-detail .attendance-mobile-note{padding-left:0;display:block;position:relative}.portal-shell-class-detail .attendance-mobile-note input{color:#1a1a18;background:#fffaf5;border:1px solid #f375211f;border-radius:.85rem;width:100%;min-height:2.25rem;padding:.45rem 2rem .45rem .7rem;font-size:.82rem}.portal-shell-class-detail .attendance-mobile-note span{color:#8a7568;position:absolute;top:50%;right:.7rem;transform:translateY(-50%)}.portal-shell-class-detail .attendance-mobile-homework{margin-top:.45rem}.portal-shell-class-detail .attendance-table{display:none}.portal-shell-class-detail .avatar-preview-table-wrap:has(.attendance-table){display:none}.materials-grid{grid-template-columns:1fr}.material-group-card{border-radius:1.1rem;min-height:auto;padding:1rem}.portal-shell-class-detail .class-detail-tabs{padding:.5rem .42rem .18rem}.portal-shell-class-detail .class-detail-tabs button{color:#7b6658;box-shadow:none;background:0 0}.portal-shell-class-detail .class-detail-tabs button.active{color:#f04a16;background:0 0}.portal-shell-class-detail .class-detail-tabs button.active:after{background:#f04a16;border-radius:999px;height:.18rem;display:block;bottom:-.18rem;left:22%;right:22%}.portal-shell-class-detail .attendance-view-toggle{background:#fff;padding:.34rem}.portal-shell-class-detail .attendance-view-toggle button{color:#7b6658;box-shadow:none;background:0 0;position:relative}.portal-shell-class-detail .attendance-view-toggle button.active{color:#f04a16;box-shadow:none;background:0 0}.portal-shell-class-detail .attendance-view-toggle button.active:after{content:"";background:#f04a16;border-radius:999px;height:.16rem;position:absolute;bottom:.12rem;left:28%;right:28%}.portal-shell-class-detail .attendance-toolbar{gap:.65rem;margin-bottom:.75rem;display:grid}.portal-shell-class-detail .attendance-toolbar .detail-panel-heading{min-height:0;padding-top:0}.portal-shell-class-detail .attendance-toolbar .detail-panel-heading h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:1.45rem;line-height:1}.portal-shell-class-detail .attendance-toolbar-actions{grid-template-columns:1fr;gap:.55rem;display:grid}.portal-shell-class-detail .attendance-view-toggle{background:#fffffff0;border:1px solid #f375211a;border-radius:999px;width:100%;min-height:3.25rem;padding:.28rem;box-shadow:0 8px 16px #753f231a}.portal-shell-class-detail .attendance-view-toggle button{border-radius:999px;min-height:2.65rem}.portal-shell-class-detail .attendance-date-filter{background:#fffffff0;border:1px solid #f375211a;border-radius:1.1rem;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.45rem .65rem;width:100%;padding:.65rem;display:grid;box-shadow:0 8px 16px #753f231a}.portal-shell-class-detail .attendance-date-filter>span{color:#7b6658;text-transform:uppercase;font-size:.68rem;font-weight:900}.portal-shell-class-detail .attendance-date-filter .soft-date-trigger{min-height:2.45rem;box-shadow:none;background:#fffaf5;border-radius:.85rem}.portal-shell-class-detail .attendance-session-select{background:#fffffff0;border:1px solid #f375211a;border-radius:1.1rem;grid-template-columns:1fr;gap:.38rem;width:100%;padding:.65rem;display:grid;box-shadow:0 8px 16px #753f231a}.portal-shell-class-detail .attendance-session-select>span{color:#7b6658;text-transform:uppercase;font-size:.68rem;font-weight:900}.portal-shell-class-detail .attendance-session-select .soft-select-trigger{min-height:2.55rem;box-shadow:none;background:#fffaf5;border-radius:.85rem}.portal-shell-class-detail .attendance-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.portal-shell-class-detail .attendance-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;margin-bottom:.55rem}.portal-shell-class-detail .attendance-toolbar .detail-panel-heading{grid-area:1/1}.portal-shell-class-detail .attendance-toolbar .detail-panel-heading h2{font-size:1.18rem}.portal-shell-class-detail .attendance-toolbar-actions{display:contents}.portal-shell-class-detail .attendance-view-toggle{border-radius:999px;grid-area:2/1/auto/-1;width:100%;min-height:2.45rem;padding:.2rem}.portal-shell-class-detail .attendance-view-toggle button{white-space:normal;width:100%;height:auto;min-height:2.35rem;padding:.45rem .3rem;font-size:.68rem}.portal-shell-class-detail .attendance-view-toggle svg{width:1rem;height:1rem}.portal-shell-class-detail .attendance-date-filter{border-radius:.95rem;grid-area:3/1/auto/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;min-width:0;padding:.45rem;overflow:visible}.portal-shell-class-detail .attendance-date-filter>span{display:none}.portal-shell-class-detail .attendance-date-filter .soft-date-trigger{width:100%;min-height:2.2rem;padding:.45rem .55rem;font-size:.72rem}.portal-shell-class-detail .attendance-date-filter .soft-date-picker{width:100%;min-width:0}.portal-shell-class-detail .attendance-date-filter .soft-date-trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-shell-class-detail .attendance-date-filter .soft-date-popover{width:min(19rem,100vw - 2rem);left:0;right:auto}.portal-shell-class-detail .attendance-date-filter .soft-date-picker:nth-of-type(2) .soft-date-popover{left:auto;right:0}.portal-shell-class-detail .attendance-session-select{border-radius:.95rem;grid-area:4/1/auto/-1;padding:.45rem}.portal-shell-class-detail .attendance-session-select>span{display:none}.portal-shell-class-detail .attendance-session-select .soft-select-trigger{min-height:2.25rem;padding:.45rem .6rem;font-size:.74rem}.portal-shell-class-detail .attendance-meta{grid-template-columns:1fr 1fr;margin-bottom:.5rem}.portal-shell-class-detail .attendance-meta span{min-height:2.2rem;padding:.42rem .5rem;font-size:.66rem}.portal-shell-class-detail .students-mobile-list{gap:.58rem;display:grid}:is(.portal-shell-class-detail .student-table,.portal-shell-class-detail .avatar-preview-table-wrap:has(.student-table)){display:none}.portal-shell-class-detail .detail-panel-toolbar:not(.attendance-toolbar){gap:.55rem;margin-bottom:.7rem;display:grid}.portal-shell-class-detail .detail-panel-toolbar:not(.attendance-toolbar) .detail-panel-heading h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:1.18rem;line-height:1}.portal-shell-class-detail .detail-panel-toolbar:not(.attendance-toolbar) .detail-tools{grid-template-columns:minmax(0,1fr) 2.75rem;gap:.5rem;display:grid}.portal-shell-class-detail .detail-panel-toolbar:not(.attendance-toolbar) .student-search{background:#fffffff0;border:1px solid #f375211a;border-radius:.95rem;min-width:0;height:2.65rem;padding-inline:.75rem;box-shadow:0 8px 16px #753f231a}.portal-shell-class-detail .detail-panel-toolbar:not(.attendance-toolbar) .student-search input{min-height:0;padding-block:0;font-size:.82rem}.portal-shell-class-detail .detail-panel-toolbar:not(.attendance-toolbar) .class-sort .soft-select-trigger{border-radius:.95rem;width:2.75rem;height:2.65rem;min-height:2.65rem}.portal-shell-class-detail .students-mobile-row{width:100%;min-height:4.9rem;color:inherit;text-align:left;background:#fffffff5;border:1px solid #ffffffe6;border-radius:1rem;grid-template-columns:1.8rem 2.65rem minmax(0,1fr);align-items:center;gap:.58rem;padding:.72rem .78rem;display:grid;position:relative;box-shadow:0 8px 18px #753f231a}.portal-shell-class-detail .students-mobile-order{color:#9a928a;font-family:var(--font-home);font-size:.82rem;font-weight:900}.portal-shell-class-detail .students-mobile-row .student-avatar-wrap{margin:0}.portal-shell-class-detail .students-mobile-row .student-avatar{background:linear-gradient(#ff7324,#f04a16);width:2.65rem;height:2.65rem;font-size:.72rem}.portal-shell-class-detail .students-mobile-copy{gap:.12rem;min-width:0;padding-right:4.6rem;display:grid}.portal-shell-class-detail .students-mobile-copy strong,.portal-shell-class-detail .students-mobile-copy small,.portal-shell-class-detail .students-mobile-copy em{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-shell-class-detail .students-mobile-copy strong{color:#2f2b27;font-family:var(--font-home);font-size:1.05rem;font-weight:800;line-height:1.1}.portal-shell-class-detail .students-mobile-copy small,.portal-shell-class-detail .students-mobile-copy em{color:#7b6658;font-size:.72rem;font-style:normal;font-weight:800}.portal-shell-class-detail .students-mobile-status{white-space:nowrap;border-radius:999px;margin-top:0;padding:.38rem .55rem;font-size:.62rem;font-weight:900;position:absolute;top:.62rem;right:.72rem}.portal-shell-class-detail .students-mobile-status.active{color:#43a82f;background:#43b4311f}.portal-shell-class-detail .students-mobile-status.paused{color:#7b6658;background:#7b66581f}.portal-shell-class-detail .test-grid{grid-template-columns:1fr;gap:.65rem;margin-top:.75rem;display:grid}.portal-shell-class-detail .test-soft-card{text-align:left;border-radius:1rem;grid-template-columns:2.75rem minmax(0,1fr) auto;align-items:center;gap:.62rem;min-height:4.55rem;padding:.72rem 2.35rem .72rem .75rem;display:grid;position:relative}.portal-shell-class-detail .test-soft-card:after{content:"›";color:#f04a16;font-size:1.6rem;font-weight:900;position:absolute;top:50%;right:.82rem;transform:translateY(-50%)}.portal-shell-class-detail .test-icon{border-radius:.85rem;grid-row:1/span 2;width:2.55rem;height:2.55rem;font-size:1rem}.portal-shell-class-detail .test-soft-card strong{color:#101114;font-family:var(--font-home);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:1rem;line-height:1.1;overflow:hidden}.portal-shell-class-detail .test-soft-card span:not(.test-icon){color:#7b6658;grid-column:2;font-size:.72rem;font-weight:900}.portal-shell-class-detail .test-soft-card small{color:#f04a16;white-space:nowrap;background:#fff8f0f2;border-radius:999px;grid-area:1/3/span 2;align-self:center;padding:.34rem .55rem;font-size:.66rem;font-weight:900}.modal-card.score-modal{width:calc(100% - 1rem);max-height:calc(100dvh - 1.5rem - env(safe-area-inset-bottom));height:auto;margin:.5rem auto calc(1rem + env(safe-area-inset-bottom));border-radius:1.35rem;overflow:hidden}.score-modal .modal-header{background:linear-gradient(#fff5ef,#fffaf5);align-items:flex-start;min-height:auto;padding:1rem 1rem .82rem}.score-modal .modal-header:before,.score-modal .modal-header:after{display:none}.score-modal .modal-title-copy h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:1.28rem;line-height:1.05}.score-modal .modal-title-copy p{max-width:18rem;font-size:.78rem;line-height:1.3}.score-modal .icon-button{flex:none;width:2.2rem;height:2.2rem;margin-top:-.15rem}.score-modal .modal-body{max-height:calc(100dvh - 12.2rem - env(safe-area-inset-bottom));background:#fff8ef;padding:.75rem}.score-panel-card{background:#fffffff5;border-radius:1rem;padding:.75rem;box-shadow:0 8px 18px #753f231a}.score-modal .score-section-title{color:#f04a16;min-height:2.4rem;font-family:var(--font-home);text-transform:uppercase;background:#fff8f0f2;margin:-.75rem -.75rem .75rem;padding:.62rem .75rem;font-size:.9rem}.score-modal .score-info-grid{grid-template-columns:1fr;gap:.65rem}.score-modal .score-info-grid label,.score-modal .score-description-field{color:#7b6658;gap:.34rem;font-size:.72rem}.score-modal .score-info-grid input,.score-modal .score-description-field textarea,.score-modal .soft-select-trigger,.score-modal .soft-date-trigger{min-height:2.35rem;box-shadow:none;background:#fffaf5;border-radius:.82rem;font-size:.8rem}.score-modal .score-description-field{grid-column:auto}.score-modal .score-description-field textarea{min-height:2.5rem}.score-student-header{display:none}.score-modal .score-student-list{background:0 0;border:0;gap:.65rem}.score-modal .score-student-card{background:#fff;border:1px solid #ffffffe6;border-radius:1rem;overflow:hidden;box-shadow:0 8px 18px #753f231a}.score-modal .score-student-summary{grid-template-columns:1.8rem minmax(0,1fr) auto 2rem;gap:.55rem;padding:.68rem}.score-modal .score-student-summary>button:nth-child(2),.score-modal .score-student-summary>textarea{display:none}.score-modal .score-student-summary>button:first-child{color:#9a928a;font-family:var(--font-home);font-size:.82rem;font-weight:900}.score-student-name-cell{min-width:0}.score-total-preview{min-width:3.2rem;padding:.32rem .55rem;font-size:.78rem}.score-student-name-cell .student-avatar{background:linear-gradient(#ff7324,#f04a16);width:2.35rem;height:2.35rem;font-size:.72rem}.score-student-name-cell strong{color:#2f2b27;font-family:var(--font-home);font-size:.95rem;font-weight:800}.score-modal .score-student-detail{background:#fff;padding:0 .68rem .68rem}.score-skill-table{background:0 0;border:0}.score-skill-table-head{display:none}.score-modal .score-skill-grid{gap:.5rem}.score-modal .score-skill-card{background:#fffaf5;border:1px solid #f375211a;border-radius:.9rem;grid-template-columns:minmax(0,1fr) 4.3rem;align-items:center;gap:.48rem;padding:.58rem;display:grid}.score-modal .score-skill-card .score-skill-name{grid-column:1}.score-modal .score-skill-card input{text-align:center;grid-column:2;min-height:2.15rem}.score-modal .score-skill-card .score-weight-value{display:none}.score-modal .score-skill-card textarea{resize:vertical;grid-column:1/-1;min-height:2.2rem}.score-modal .modal-footer{background:#fffffffa;grid-template-columns:1fr 1fr;gap:.55rem;padding:.75rem .9rem .9rem;display:grid}.score-modal .modal-footer>span{color:#7b6658;grid-column:1/-1;font-size:.72rem;font-weight:900}.score-modal .modal-footer button{width:100%}}@media (width<=1180px){.portal-shell-schedule{font-family:var(--font-home);background:radial-gradient(circle at 8% 18%,#ff7e0057 0 3.4rem,#ffbc302e 5rem,#0000 8.8rem),radial-gradient(circle at 92% 30%,#ff5f0066 0 2.7rem,#ffab1f2e 4.6rem,#0000 8rem),linear-gradient(#fff5ef 0%,#fff8ef 44%,#ffe7bc 100%)}.portal-shell-schedule:after,.portal-shell-schedule .timesheet-title-mark,.portal-shell-schedule .timesheet-greeting,.portal-shell-schedule .timesheet-hero-image{display:none}.portal-shell-schedule .timesheet-hero{min-height:auto;padding:calc(.9rem + env(safe-area-inset-top)) 0 0;margin:0 0 .75rem}.portal-shell-schedule .timesheet-board{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0 0 1rem}.portal-shell-schedule .schedule-toolbar{border:0;grid-template-columns:1fr;justify-content:stretch;align-items:stretch;gap:.65rem;width:100%;margin-bottom:.7rem;display:grid}.portal-shell-schedule .schedule-view-tabs{background:#fffffff0;border:1px solid #ffffffe6;border-radius:1.15rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;width:100%;margin:0;padding:.38rem .42rem .18rem;display:grid;box-shadow:0 8px 16px #753f231a}.portal-shell-schedule .schedule-view-tabs button{color:#7b6658;min-height:3rem;font-family:var(--font-home);background:0 0;border-radius:.85rem;justify-items:center;gap:.2rem;padding:.42rem .2rem;font-size:.66rem;font-weight:900;display:grid;position:relative}.portal-shell-schedule .schedule-view-tabs button.active{color:#f04a16;background:0 0}.portal-shell-schedule .schedule-view-tabs button.active:after{content:"";background:#f04a16;border-radius:999px;height:.18rem;position:absolute;bottom:-.18rem;left:24%;right:24%}.portal-shell-schedule .schedule-view-tabs svg{width:1.1rem;height:1.1rem}.portal-shell-schedule .timesheet-month-tools{background:#fffffff0;border:1px solid #ffffffe6;border-radius:1.05rem;grid-template-columns:2.45rem minmax(0,1fr) 2.45rem 2.45rem;gap:.45rem;width:100%;padding:.45rem;display:grid;box-shadow:0 8px 16px #753f231a}.portal-shell-schedule .timesheet-month-tools strong{color:#2f2b27;text-align:center;text-overflow:ellipsis;white-space:nowrap;align-self:center;font-size:.82rem;overflow:hidden}.portal-shell-schedule .timesheet-month-tools button,.portal-shell-schedule .timesheet-toolbar-date .soft-date-trigger{border-radius:.85rem;width:2.45rem;height:2.45rem;min-height:0;padding:0}.portal-shell-schedule .schedule-type-legend{color:#5f6f88;scrollbar-width:none;border-top:1px solid #6f859f21;gap:.38rem;margin:.65rem 0 0;padding:.65rem 0 0;font-size:.68rem;font-weight:800;overflow-x:auto}.portal-shell-schedule .schedule-type-legend::-webkit-scrollbar{display:none}.portal-shell-schedule .schedule-type-dot{background:#fffaf5;border-radius:999px;flex:none;align-items:center;gap:.45rem;padding:.34rem .55rem;font-size:.68rem;display:inline-flex;box-shadow:0 6px 12px #753f2314}.portal-shell-schedule .schedule-type-dot:before{width:.48rem;height:.48rem;box-shadow:none}.portal-shell-schedule .schedule-calendar-card,.portal-shell-schedule .schedule-week-card,.portal-shell-schedule .schedule-day-card{background:#fffffff5;border:1px solid #ffffffeb;border-radius:1.2rem;padding:.68rem;overflow:visible;box-shadow:0 8px 18px #753f231a}.portal-shell-schedule .schedule-calendar-head,.portal-shell-schedule .schedule-month-grid{min-width:0}.portal-shell-schedule .schedule-calendar-head strong{color:#7b6658;text-align:center;padding:0 0 .45rem;font-size:.62rem}.portal-shell-schedule .schedule-month-grid{border:0;border-radius:0;gap:.28rem;overflow:visible}.portal-shell-schedule .schedule-month-cell{background:#fffaf5;border:1px solid #f3752114;border-radius:.85rem;min-height:4.5rem;padding:.34rem}.portal-shell-schedule .schedule-month-cell:nth-child(7n),.portal-shell-schedule .schedule-month-cell:nth-last-child(-n+7){border-bottom:1px solid #f3752114;border-right:1px solid #f3752114}.portal-shell-schedule .schedule-month-cell.selected{background:#fff8f0fa;box-shadow:inset 0 0 0 2px #f04a1638}.portal-shell-schedule .schedule-day-number{width:1.45rem;height:1.45rem;font-size:.72rem}.portal-shell-schedule .schedule-class-stack{gap:.18rem}.portal-shell-schedule .schedule-class-pill.compact{border-left-width:2px;border-radius:.2rem .45rem .45rem .2rem;min-width:0;padding:.18rem .24rem}.portal-shell-schedule .schedule-class-pill.compact strong{font-size:.54rem}.portal-shell-schedule .schedule-class-pill.compact small,.portal-shell-schedule .schedule-hover-board{display:none}.portal-shell-schedule .schedule-week-head,.portal-shell-schedule .schedule-week-row{min-width:0}.portal-shell-schedule .schedule-week-head{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin-bottom:.55rem;display:grid}.portal-shell-schedule .schedule-week-head>span{display:none}.portal-shell-schedule .schedule-week-head button{text-align:center;background:#fffaf5;border:1px solid #f3752114;border-radius:.78rem;min-height:3.1rem;padding:.42rem .18rem}.portal-shell-schedule .schedule-week-head button strong{font-size:.62rem}.portal-shell-schedule .schedule-week-head button span{font-size:.52rem}.portal-shell-schedule .schedule-week-grid,.portal-shell-schedule .schedule-week-row{gap:.55rem;display:grid}.portal-shell-schedule .schedule-week-row{background:#fffaf5;border-radius:1rem;grid-template-columns:1fr;padding:.6rem}.portal-shell-schedule .schedule-period-label{color:#f04a16;background:0 0;border:0;min-height:0;padding:0;font-size:.8rem}.portal-shell-schedule .schedule-week-slot{background:#fff;border:1px solid #f3752114;border-radius:.8rem;min-height:0;padding:.48rem}.portal-shell-schedule .schedule-week-slot:has(>.schedule-empty-line){display:none}.portal-shell-schedule .schedule-day-card{padding:.75rem}.portal-shell-schedule .schedule-day-title{margin-bottom:.7rem}.portal-shell-schedule .schedule-day-title h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:1rem}.portal-shell-schedule .schedule-day-session,.portal-shell-schedule .schedule-detail-row{background:#fff;border:1px solid #ffffffe6;border-radius:1rem;grid-template-columns:1fr;gap:.45rem;padding:.72rem;box-shadow:0 8px 18px #753f2314}.portal-shell-schedule .schedule-day-session time,.portal-shell-schedule .schedule-detail-row time{color:#f04a16;font-family:var(--font-home);font-size:.82rem}.portal-shell-schedule .schedule-day-session strong,.portal-shell-schedule .schedule-detail-row strong{color:#2f2b27;font-family:var(--font-home);font-weight:800}.portal-shell-schedule .schedule-day-session a,.portal-shell-schedule .schedule-detail-row a{text-align:center;background:linear-gradient(#ff7324,#f04a16);border-radius:.85rem;width:100%}}@media (width<=560px){.portal-shell-schedule .timesheet-hero{padding-top:calc(.65rem + env(safe-area-inset-top))}.portal-shell-schedule .schedule-view-tabs button{min-height:2.85rem;font-size:.6rem}.portal-shell-schedule .timesheet-month-tools strong{font-size:.76rem}.portal-shell-schedule .schedule-month-cell{min-height:4rem;padding:.28rem}}@media (width<=1180px){.portal-shell-timesheet{font-family:var(--font-home);background:radial-gradient(circle at 8% 18%,#ff7e0057 0 3.4rem,#ffbc302e 5rem,#0000 8.8rem),radial-gradient(circle at 92% 30%,#ff5f0066 0 2.7rem,#ffab1f2e 4.6rem,#0000 8rem),linear-gradient(#fff5ef 0%,#fff8ef 44%,#ffe7bc 100%)}.portal-shell-timesheet:after,.portal-shell-timesheet .timesheet-title-mark,.portal-shell-timesheet .timesheet-greeting,.portal-shell-timesheet .timesheet-hero-image{display:none}.portal-shell-timesheet .timesheet-hero{min-height:auto;padding:calc(.9rem + env(safe-area-inset-top)) 0 0;margin:0 0 .75rem}.portal-shell-timesheet .timesheet-board{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0 0 1rem}.portal-shell-timesheet .timesheet-toolbar{border:0;grid-template-columns:1fr;justify-content:stretch;align-items:stretch;gap:.65rem;width:100%;margin-bottom:.7rem;display:grid}.portal-shell-timesheet .timesheet-tabs{background:#fffffff0;border:1px solid #ffffffe6;border-radius:1.15rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;width:100%;margin:0;padding:.38rem .42rem .18rem;display:grid;box-shadow:0 8px 16px #753f231a}.portal-shell-timesheet .timesheet-tabs button{color:#7b6658;min-height:3rem;font-family:var(--font-home);background:0 0;border-radius:.85rem;justify-items:center;gap:.2rem;padding:.42rem .2rem;font-size:.66rem;font-weight:900;display:grid;position:relative}.portal-shell-timesheet .timesheet-tabs button.active{color:#f04a16;background:0 0}.portal-shell-timesheet .timesheet-tabs button.active:after{content:"";background:#f04a16;border-radius:999px;height:.18rem;position:absolute;bottom:-.18rem;left:24%;right:24%}.portal-shell-timesheet .timesheet-tabs svg{width:1.1rem;height:1.1rem}.portal-shell-timesheet .timesheet-month-tools{background:#fffffff0;border:1px solid #ffffffe6;border-radius:1.05rem;grid-template-columns:2.45rem minmax(0,1fr) 2.45rem 2.45rem auto;gap:.45rem;width:100%;padding:.45rem;display:grid;box-shadow:0 8px 16px #753f231a}.portal-shell-timesheet .timesheet-month-tools strong{color:#2f2b27;text-align:center;text-overflow:ellipsis;white-space:nowrap;align-self:center;font-size:.82rem;overflow:hidden}.portal-shell-timesheet .timesheet-month-tools button,.portal-shell-timesheet .timesheet-toolbar-date .soft-date-trigger{border-radius:.85rem;width:2.45rem;height:2.45rem;min-height:0;padding:0}.portal-shell-timesheet .timesheet-month-tools .timesheet-filter{color:#f04a16;background:#fffaf5;width:auto;min-width:2.45rem;padding:0 .7rem}.portal-shell-timesheet .timesheet-filter-select{grid-column:1/-1;min-width:0}.portal-shell-timesheet .timesheet-filter-select .soft-select-trigger{width:100%;height:2.45rem;min-height:2.45rem;box-shadow:none;background:#fffaf5}.portal-shell-timesheet .timesheet-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:.75rem}.portal-shell-timesheet .timesheet-stat-card{background:#fffffff5;border:1px solid #ffffffe6;border-radius:1rem;gap:.7rem;min-height:5.4rem;padding:.82rem;box-shadow:0 8px 18px #753f231a}.portal-shell-timesheet .timesheet-stat-icon{border-radius:.8rem;width:2.45rem;height:2.45rem}.portal-shell-timesheet .timesheet-stat-card p{color:#7b6658;margin-bottom:.22rem;font-size:.68rem;font-weight:900}.portal-shell-timesheet .timesheet-stat-card strong{color:#2f2b27;font-family:var(--font-home);font-size:1rem}.portal-shell-timesheet .timesheet-content-grid{grid-template-columns:1fr;gap:.75rem}.portal-shell-timesheet .timesheet-calendar-card,.portal-shell-timesheet .timesheet-schedule-card,.portal-shell-timesheet .timesheet-feedback-card{background:#fffffff5;border:1px solid #ffffffeb;border-radius:1.2rem;padding:.68rem;box-shadow:0 8px 18px #753f231a}.portal-shell-timesheet .timesheet-calendar-head,.portal-shell-timesheet .timesheet-calendar-grid{min-width:0}.portal-shell-timesheet .timesheet-calendar-head strong{color:#7b6658;text-align:center;padding:0 0 .45rem;font-size:.62rem}.portal-shell-timesheet .timesheet-calendar-grid{border:0;border-radius:0;gap:.28rem;overflow:visible}.portal-shell-timesheet .timesheet-day-cell{background:#fffaf5;border:1px solid #f3752114;border-radius:.85rem;min-height:4.1rem;padding:.38rem}.portal-shell-timesheet .timesheet-day-cell:nth-child(7n),.portal-shell-timesheet .timesheet-day-cell:nth-last-child(-n+7){border-bottom:1px solid #f3752114;border-right:1px solid #f3752114}.portal-shell-timesheet .timesheet-day-cell.selected{background:#fff8f0fa;box-shadow:inset 0 0 0 2px #f04a1638}.portal-shell-timesheet .timesheet-day-cell.selected .timesheet-day-number{background:#f04a16;width:1.45rem;height:1.45rem;margin:0 0 .28rem}.portal-shell-timesheet .timesheet-day-number{margin-bottom:.35rem;font-size:.72rem}.portal-shell-timesheet .timesheet-day-hours{gap:.26rem;font-size:.58rem}.portal-shell-timesheet .timesheet-legend{scrollbar-width:none;gap:.38rem;margin-top:.65rem;padding:.65rem 0 0;font-size:.68rem;overflow-x:auto}.portal-shell-timesheet .timesheet-legend::-webkit-scrollbar{display:none}.portal-shell-timesheet .timesheet-legend span{background:#fffaf5;border-radius:999px;flex:none;padding:.34rem .55rem}.portal-shell-timesheet .timesheet-schedule-title{align-items:flex-start;gap:.55rem;margin-bottom:.65rem}.portal-shell-timesheet .timesheet-schedule-title h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase;font-size:1rem}.portal-shell-timesheet .timesheet-schedule-title span{background:#fffaf5;border-radius:999px;font-size:.72rem}.portal-shell-timesheet .timesheet-schedule-list{gap:.55rem}.portal-shell-timesheet .timesheet-schedule-item{background:#fffaf5;border:1px solid #f3752114;border-radius:.95rem;grid-template-columns:2.55rem minmax(0,1fr) auto;gap:.58rem;padding:.65rem}.portal-shell-timesheet .timesheet-schedule-item button{display:none}.portal-shell-timesheet .timesheet-schedule-icon{border-radius:.78rem;width:2.35rem;height:2.35rem}.portal-shell-timesheet .timesheet-schedule-item time{color:#f04a16;font-size:.72rem;font-weight:900}.portal-shell-timesheet .timesheet-schedule-item strong{color:#2f2b27;font-family:var(--font-home);font-size:.88rem;font-weight:800}.portal-shell-timesheet .timesheet-schedule-item p{font-size:.72rem}.portal-shell-timesheet .timesheet-schedule-item em{color:#f04a16;background:#fff;border-radius:999px;align-self:center;padding:.32rem .45rem;font-size:.66rem;font-weight:900}.portal-shell-timesheet .timesheet-schedule-actions{gap:.55rem}.portal-shell-timesheet .timesheet-feedback-button,.portal-shell-timesheet .timesheet-day-detail{border-radius:.9rem;min-height:2.75rem}.portal-shell-timesheet .timesheet-feedback-card .section-heading{gap:.55rem;margin-bottom:.7rem;display:grid}.portal-shell-timesheet .timesheet-feedback-card .section-heading h2{color:#f04a16;font-family:var(--font-home);text-transform:uppercase}.portal-shell-timesheet .timesheet-feedback-card .soft-select{width:100%;max-width:none}.portal-shell-timesheet .timesheet-feedback-card .table-wrap{overflow:visible}.portal-shell-timesheet .timesheet-feedback-card table,.portal-shell-timesheet .timesheet-feedback-card thead,.portal-shell-timesheet .timesheet-feedback-card tbody,.portal-shell-timesheet .timesheet-feedback-card tr,.portal-shell-timesheet .timesheet-feedback-card td{width:100%;min-width:0;display:block}.portal-shell-timesheet .timesheet-feedback-card thead{display:none}.portal-shell-timesheet .timesheet-feedback-card tbody{gap:.65rem;display:grid}.portal-shell-timesheet .timesheet-feedback-card tr{background:#fffaf5;border:1px solid #f3752114;border-radius:1rem;padding:.68rem}.portal-shell-timesheet .timesheet-feedback-card td{color:#2f2b27;border:0;padding:.24rem 0;font-size:.78rem}.portal-shell-timesheet .timesheet-feedback-card td:before{color:var(--muted);content:attr(data-label);text-transform:uppercase;margin-bottom:.12rem;font-size:.68rem;font-weight:800;display:block}}@media (width<=560px){.portal-shell-timesheet .timesheet-hero{padding-top:calc(.65rem + env(safe-area-inset-top))}.portal-shell-timesheet .timesheet-tabs button{min-height:2.85rem;font-size:.6rem}.portal-shell-timesheet .timesheet-month-tools{grid-template-columns:2.35rem minmax(0,1fr) 2.35rem 2.35rem 2.35rem}.portal-shell-timesheet .timesheet-month-tools strong{font-size:.76rem}.portal-shell-timesheet .timesheet-month-tools .timesheet-filter{width:2.35rem;min-width:2.35rem;padding:0;font-size:0}.portal-shell-timesheet .timesheet-month-tools .timesheet-filter svg{width:1rem;height:1rem}.portal-shell-timesheet .timesheet-day-cell{min-height:3.8rem;padding:.3rem}}
