@layer theme,base,primevue,utilities;@layer theme{:root{color-scheme:light;--pl-primary: #4f46e5;--pl-primary-dark: #3730a3;--pl-primary-soft: #eef2ff;--pl-text: #172033;--pl-text-muted: #64748b;--pl-border: #e2e8f0;--pl-surface: #ffffff;--pl-surface-soft: #f8fafc;--pl-background: #f4f6fb;--pl-sidebar: #111827;--pl-sidebar-muted: #94a3b8;--pl-shadow: 0 12px 35px rgb(15 23 42 / 7%);--pl-radius: 16px;--pl-sidebar-width: 270px}}@layer base{.assignments-page,.assignment-create-page,.assignment-detail-page{display:grid;gap:1.35rem}.assignment-toolbar{display:grid;padding:1rem;align-items:center;grid-template-columns:minmax(230px,1fr) repeat(3,minmax(150px,auto)) auto;gap:.75rem;border-bottom:1px solid var(--pl-border)}.assignment-toolbar .users-result-count{grid-column:1 / -1}.assignment-builder-header,.assignment-detail-header{display:grid;align-items:flex-start;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem}.assignment-builder-header h2,.assignment-detail-title h2{margin:0;font-size:clamp(1.8rem,3vw,2.45rem);letter-spacing:-.04em}.assignment-builder-header p:last-child,.assignment-detail-title>p{margin:.55rem 0 0;color:var(--pl-text-muted);line-height:1.6}.assignment-detail-actions,.assignment-form-actions,.assignment-section-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.assignment-detail-actions{flex-wrap:wrap;justify-content:flex-end}.builder-progress,.builder-tabs{display:grid;margin:0;padding:.75rem;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow);list-style:none}.builder-progress li,.builder-tabs button{display:flex;min-width:0;padding:.8rem;align-items:center;gap:.7rem;border-radius:12px}.builder-progress li>span,.builder-tabs button>span{display:grid;width:30px;height:30px;flex:0 0 auto;place-items:center;border-radius:9px;color:#475569;background:#f1f5f9;font-size:.82rem;font-weight:800}.builder-progress li>div{display:grid;min-width:0;gap:.15rem}.builder-progress small{overflow:hidden;color:var(--pl-text-muted);text-overflow:ellipsis;white-space:nowrap}.builder-progress--active{color:var(--pl-primary-dark);background:var(--pl-primary-soft)}.builder-progress .builder-progress--active>span,.builder-tabs .builder-tab--active>span{color:#fff;background:var(--pl-primary)}.builder-tabs button{border:0;color:#475569;background:transparent;font-weight:750;cursor:pointer;transition:color .16s ease,background .16s ease}.builder-tabs button:hover{color:var(--pl-primary-dark);background:#f8fafc}.builder-tabs .builder-tab--active{color:var(--pl-primary-dark);background:var(--pl-primary-soft)}.assignment-create-grid{display:grid;align-items:start;grid-template-columns:minmax(0,1fr) minmax(260px,.34fr);gap:1.25rem}.assignment-form-card.p-card,.assignment-section-card.p-card,.review-summary-card.p-card{border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.assignment-metadata-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}.assignment-title-field,.assignment-description-field{grid-column:1 / -1}.assignment-form-grid{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}.field-help-row{display:flex;justify-content:space-between;gap:.75rem;color:var(--pl-text-muted)}.assignment-create-aside{display:grid;gap:1rem}.builder-note{display:flex;padding:1.1rem;gap:.85rem;border:1px solid var(--pl-border);border-radius:14px;background:var(--pl-surface)}.builder-note>i{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:11px;color:var(--pl-primary);background:var(--pl-primary-soft)}.builder-note p{margin:.35rem 0 0;color:var(--pl-text-muted);font-size:.88rem;line-height:1.55}.assignment-status-message{margin:0}.assignment-section-heading>div{display:grid;gap:.25rem}.assignment-section-heading>div>span{font-size:1.2rem;font-weight:750}.assignment-section-heading small{color:var(--pl-text-muted);font-weight:500}.assignment-task-name{display:grid;gap:.25rem}.assignment-task-name span,.muted-value{color:var(--pl-text-muted);font-size:.82rem}.target-id-form{display:grid;margin:1rem 0 1.25rem;padding:1rem;align-items:end;grid-template-columns:minmax(180px,.7fr) minmax(180px,1fr) auto;gap:.85rem;border:1px solid var(--pl-border);border-radius:14px;background:var(--pl-surface-soft)}.target-id-form>.p-button{min-height:48px}.assignment-target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.assignment-target-card{display:grid;padding:1rem;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.85rem;border:1px solid var(--pl-border);border-radius:14px;background:var(--pl-surface)}.assignment-target-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;color:var(--pl-primary);background:var(--pl-primary-soft)}.assignment-target-card>div{display:grid;justify-items:start;gap:.35rem}.assignment-target-card small{color:var(--pl-text-muted)}.assignment-empty-panel{display:flex;min-height:190px;align-items:center;justify-content:center;gap:1rem;color:var(--pl-text-muted);text-align:left}.assignment-empty-panel>i{font-size:2rem}.assignment-empty-panel p{margin:.35rem 0 0}.assignment-review-grid{display:grid;align-items:start;grid-template-columns:minmax(0,1fr) minmax(250px,.34fr);gap:1rem}.review-checklist{display:grid;gap:.75rem}.review-check{display:flex;padding:.95rem;align-items:center;gap:.85rem;border:1px solid #bbf7d0;border-radius:13px;color:#166534;background:#f0fdf4}.review-check>i{font-size:1.25rem}.review-check>div{display:grid;gap:.2rem}.review-check span{color:#4b5563;font-size:.85rem}.review-check--missing{border-color:#fed7aa;color:#9a3412;background:#fff7ed}.review-summary-card dl{display:grid;margin:0;gap:.15rem}.review-summary-card dl>div{display:flex;padding:.75rem 0;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--pl-border)}.review-summary-card dl>div:last-child{border-bottom:0}.review-summary-card dt{color:var(--pl-text-muted)}.review-summary-card dd{margin:0;font-weight:750;text-align:right}.assignment-task-number-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.penalty-editor{display:grid;padding:1rem;gap:1rem;border:1px solid var(--pl-border);border-radius:14px;background:var(--pl-surface-soft)}.penalty-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.penalty-editor-heading>div{display:grid;gap:.25rem}.penalty-editor-heading span{color:var(--pl-text-muted);font-size:.86rem}.attempt-flags{display:grid;margin:0;padding:1rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;border:1px solid var(--pl-border);border-radius:14px}.attempt-flags legend{padding:0 .35rem;color:#334155;font-size:.9rem;font-weight:750}.attempt-flags label{display:flex;align-items:center;gap:.55rem;color:#475569;font-size:.9rem}@media(max-width:1050px){.assignment-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-toolbar .user-search{grid-column:1 / -1;width:100%}.assignment-create-grid,.assignment-review-grid{grid-template-columns:1fr}.assignment-create-aside{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.assignment-detail-header{grid-template-columns:auto minmax(0,1fr)}.assignment-detail-actions{grid-column:1 / -1;justify-content:stretch}.assignment-detail-actions .p-button{flex:1}.builder-progress,.builder-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-metadata-form,.assignment-form-grid,.assignment-target-grid,.assignment-task-number-grid,.attempt-flags{grid-template-columns:1fr}.target-id-form{align-items:stretch;grid-template-columns:1fr}}@media(max-width:620px){.assignment-toolbar,.assignment-create-aside{grid-template-columns:1fr}.assignment-toolbar .user-search,.assignment-toolbar .users-result-count{grid-column:auto}.assignment-builder-header{grid-template-columns:auto minmax(0,1fr)}.builder-progress li,.builder-tabs button{padding:.65rem}.builder-progress small,.builder-tabs button>i{display:none}.assignment-section-heading{align-items:stretch;flex-direction:column}.assignment-section-heading .p-button{width:100%}}}@layer base{.student-shell{--pl-sidebar: #292a2f;--pl-sidebar-width: 252px;--student-accent: #625b86;--student-accent-soft: #eeebf7;--student-bg: #edf2f7;background:var(--student-bg)}.student-shell .app-sidebar{background:linear-gradient(180deg,#2e2f34,#25262b);border-right-color:#ffffff14}.student-shell .brand-mark{color:#ded9f1;background:#49464f}.student-shell .nav-group-label{color:#8f929d}.student-shell .nav-link{color:#c4c6ce}.student-shell .nav-link i{color:#a6a8b1}.student-shell .nav-link.router-link-active{color:#fff;background:#4a4654;box-shadow:inset 3px 0 #b7aed2}.student-shell .nav-link.router-link-active i{color:#ded9f1}.student-shell .nav-link:before{display:none}.student-shell .app-main{background:var(--student-bg);transition:width .18s ease,margin-left .18s ease}.student-shell .app-topbar{min-height:70px;background:#f7f9fceb}.student-shell .menu-button{display:inline-flex}.student-shell .page-content{width:min(1450px,100%)}.student-shell .account-copy{padding:0;border:0;color:inherit;background:transparent;font-family:inherit;text-align:left;cursor:pointer}.app-shell--collapsed .app-sidebar{width:78px}.app-shell--collapsed .app-main{width:calc(100% - 78px);margin-left:78px}.app-sidebar--collapsed .sidebar-brand>div:nth-child(2),.app-sidebar--collapsed .nav-group-label,.app-sidebar--collapsed .nav-link span,.app-sidebar--collapsed .sidebar-footer span{display:none}.app-sidebar--collapsed .sidebar-brand,.app-sidebar--collapsed .nav-link,.app-sidebar--collapsed .sidebar-footer{justify-content:center}.app-sidebar--collapsed .nav-link{padding-inline:.5rem}.student-portal-page{display:grid;gap:1.4rem;color:#252b36}.student-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.25rem}.student-page-header--section{margin-top:1.25rem}.student-page-header h2,.subject-detail-header h2{margin:0;color:#252936;font-size:clamp(1.65rem,3vw,2.25rem);letter-spacing:-.04em}.student-page-header p:last-child{margin:.45rem 0 0;color:#687386}.student-kicker{margin:0 0 .25rem;color:#71688f;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.student-state{display:flex;min-height:150px;padding:1.5rem;align-items:center;justify-content:center;gap:.75rem;border:1px dashed #cbd4df;border-radius:18px;color:#667085;background:#ffffff8c}.student-state--error,.form-error{color:#b42318}.student-skeleton-grid,.subject-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.student-skeleton-card{min-height:112px;border-radius:18px;background:linear-gradient(90deg,#e4e9ef,#f7f9fb,#e4e9ef);background-size:200% 100%;animation:student-shimmer 1.3s infinite}@keyframes student-shimmer{to{background-position:-200% 0}}.subject-card{display:grid;min-height:112px;padding:1rem;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;border:1px solid #dce3eb;border-radius:18px;color:#252b36;background:#f9fbfc;box-shadow:0 8px 26px #313a4812;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.subject-card:hover,.subject-list-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px #313a481c}.subject-card-icon,.assignment-mode-icon,.deadline-type{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;color:#5e5780;background:#eae6f5}.subject-card-icon--1{color:#276674;background:#dfeff1}.subject-card-icon--2{color:#855a30;background:#f5eadb}.subject-card-icon--3{color:#49654d;background:#e1ede2}.subject-card-copy{display:grid;min-width:0;gap:.3rem}.subject-card-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-card-copy small{overflow:hidden;color:#748093;text-overflow:ellipsis;white-space:nowrap}.upcoming-table-wrap{overflow-x:auto;border:1px solid #dbe3eb;border-radius:18px;background:#f9fbfc;box-shadow:0 8px 26px #313a480f}.upcoming-table{width:100%;border-collapse:collapse}.upcoming-table th,.upcoming-table td{padding:1rem 1.1rem;border-bottom:1px solid #e4e9ef;text-align:left}.upcoming-table th{color:#758094;background:#f2f5f8;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.upcoming-table tbody tr{cursor:pointer}.upcoming-table tbody tr:hover{background:#f4f2fa}.upcoming-table td:first-child{display:flex;align-items:center;gap:.7rem}.progress-cell{display:grid;min-width:140px;grid-template-columns:1fr auto;align-items:center;gap:.65rem}.progress-cell .p-progressbar,.assignment-progress .p-progressbar{height:7px;background:#e3e7ed}.progress-cell .p-progressbar-value,.assignment-progress .p-progressbar-value{background:#756b98}.subject-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}.subject-list-card{overflow:hidden;border:1px solid #dbe3eb;border-radius:20px;background:#f9fbfc;box-shadow:0 8px 26px #313a480f;transition:transform .16s ease,box-shadow .16s ease}.subject-list-cover{display:flex;min-height:88px;padding:1.2rem;align-items:center;justify-content:space-between;color:#fff;background:#6e668c;font-weight:800}.subject-list-cover--1{background:#477781}.subject-list-cover--2{background:#987148}.subject-list-cover--3{background:#5b795f}.subject-list-cover i{font-size:1.5rem}.subject-list-body{display:grid;padding:1.15rem;gap:1rem}.subject-list-body h3,.subject-list-body p{margin:0}.subject-list-body p{margin-top:.35rem;color:#6d788b;line-height:1.55}.subject-list-body dl,.profile-card dl{display:grid;margin:0;gap:.55rem}.subject-list-body dl>div,.profile-card dl>div{display:flex;justify-content:space-between;gap:1rem}.subject-list-body dt,.profile-card dt{color:#7a8495}.subject-list-body dd,.profile-card dd{margin:0;font-weight:700;text-align:right}.subject-detail-header{display:grid;padding:1.4rem;grid-template-columns:auto 1fr;gap:1rem;border-radius:20px;color:#edeaf7;background:linear-gradient(135deg,#484650,#5c566a);box-shadow:0 12px 34px #26262c26}.subject-detail-header h2{margin-top:.2rem;color:#fff}.subject-detail-header p{max-width:760px;margin:.45rem 0;color:#d3d0db}.subject-detail-header small{display:inline-flex;align-items:center;gap:.4rem}.subject-detail-layout{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:1.15rem}.topic-list,.topic-content{border:1px solid #dbe3eb;border-radius:18px;background:#f9fbfc;box-shadow:0 8px 26px #313a480f}.topic-list{overflow:hidden}.topic-list>p{margin:0;padding:1rem;color:#798396;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.topic-list button{display:grid;width:100%;padding:.9rem 1rem;align-items:center;grid-template-columns:auto 1fr auto;gap:.7rem;border:0;border-top:1px solid #e6eaf0;color:#464e5d;background:transparent;text-align:left;cursor:pointer}.topic-list button>span{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;color:#6c638e;background:#ece9f5}.topic-list button.active{color:#4c4568;background:#f0edf7}.topic-content{padding:clamp(1.1rem,2.5vw,1.8rem)}.topic-heading h3{margin:0;font-size:1.5rem}.topic-heading>p:last-child{color:#6d788b}.topic-content>section{padding-top:1.2rem;margin-top:1.2rem;border-top:1px solid #e1e7ed}.topic-content h4{display:flex;margin:0 0 .9rem;align-items:center;gap:.55rem;font-size:1rem}.material-list,.material-links,.topic-assignment-list{display:grid;gap:.7rem}.material-list article,.material-links a,.topic-assignment-list button{padding:.9rem;border:1px solid #e0e6ec;border-radius:13px;color:inherit;background:#fff;text-decoration:none}.material-list p{margin:.4rem 0 0;color:#687386;white-space:pre-wrap}.material-links a,.topic-assignment-list button{display:flex;align-items:center;gap:.8rem}.material-links a>span,.topic-assignment-list button>span{display:grid;flex:1;gap:.2rem;text-align:left}.material-links small,.topic-assignment-list small,.muted-empty{color:#7b8596}.topic-assignment-list button{width:100%;cursor:pointer}.messages-layout{display:grid;min-height:650px;overflow:hidden;grid-template-columns:340px minmax(0,1fr);border:1px solid #d7dfe8;border-radius:20px;background:#f9fbfc;box-shadow:0 10px 32px #313a4814}.conversation-list{overflow-y:auto;border-right:1px solid #dfe5eb;background:#f4f7fa}.conversation-list-title,.message-thread-header{display:flex;min-height:65px;padding:.85rem 1rem;align-items:center;justify-content:space-between;border-bottom:1px solid #dfe5eb}.conversation-item{display:grid;width:100%;padding:.9rem;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;border:0;border-bottom:1px solid #e2e7ed;color:#343b49;background:transparent;text-align:left;cursor:pointer}.conversation-item:hover,.conversation-item.active{background:#eae7f2}.conversation-avatar{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;color:#5e5876;background:#ddd9e9}.conversation-copy{display:grid;min-width:0;gap:.2rem}.conversation-copy>span{display:flex;justify-content:space-between;gap:.5rem}.conversation-copy strong,.conversation-copy p,.conversation-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-copy p{margin:0;color:#6e7889;font-size:.82rem}.conversation-copy small,.conversation-copy time{color:#8992a1;font-size:.7rem}.conversation-item.unread strong{color:#4d456b}.conversation-item>b{display:grid;min-width:22px;height:22px;place-items:center;border-radius:999px;color:#fff;background:#6c638c;font-size:.7rem}.conversation-empty,.message-thread-placeholder{display:flex;min-height:180px;padding:1rem;align-items:center;justify-content:center;flex-direction:column;gap:.45rem;color:#778293;text-align:center}.message-thread{display:grid;min-width:0;grid-template-rows:auto minmax(0,1fr) auto;background:#eef2f6}.message-thread-header{background:#fbfcfd}.message-thread-header>div{display:grid;gap:.2rem}.message-thread-header span{color:#778293;font-size:.78rem}.message-stream{display:flex;max-height:520px;padding:1.2rem;overflow-y:auto;flex-direction:column;gap:.75rem}.message-bubble{max-width:min(72%,620px);padding:.75rem .9rem;align-self:flex-start;border:1px solid #dce3e9;border-radius:5px 16px 16px;background:#fff;box-shadow:0 4px 14px #313a480d}.message-bubble.mine{align-self:flex-end;border-color:#d4cee6;border-radius:16px 5px 16px 16px;background:#e8e4f2}.message-bubble p{margin:.3rem 0;line-height:1.5;white-space:pre-wrap}.message-bubble small,.message-bubble time{color:#7b8493;font-size:.68rem}.message-composer{display:grid;padding:.9rem;align-items:end;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;border-top:1px solid #dce3e9;background:#fbfcfd}.compose-form,.password-form{display:grid;gap:1rem}.compose-form label,.password-form label{display:grid;gap:.4rem;font-weight:700}.compose-form .p-select,.compose-form .p-inputtext,.compose-form .p-textarea,.password-form .p-password,.password-form .p-password-input{width:100%}.compose-actions{display:flex;justify-content:flex-end;gap:.7rem}.calendar-legend{display:flex;flex-wrap:wrap;gap:.8rem}.calendar-legend span{display:inline-flex;align-items:center;gap:.4rem;color:#697386;font-size:.78rem}.calendar-legend span:before{width:9px;height:9px;border-radius:50%;background:#6e668d;content:""}.calendar-legend .exam:before{background:#a85c64}.calendar-legend .practice:before{background:#4e7d78}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:1.1rem}.calendar-card,.deadline-list{overflow:hidden;border:1px solid #d9e1e9;border-radius:18px;background:#f9fbfc;box-shadow:0 8px 26px #313a480f}.calendar-toolbar{display:flex;min-height:65px;padding:.6rem 1rem;align-items:center;justify-content:space-between;border-bottom:1px solid #e0e6ec}.calendar-toolbar h3{margin:0;text-transform:capitalize}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:.65rem;color:#7b8495;background:#f1f4f7;font-size:.72rem;font-weight:800;text-align:center}.calendar-day{min-height:112px;padding:.45rem;border-right:1px solid #e6eaef;border-bottom:1px solid #e6eaef}.calendar-day>span{display:grid;width:26px;height:26px;place-items:center;margin-bottom:.25rem;border-radius:50%;font-size:.78rem;font-weight:700}.calendar-day.muted{color:#b1b7c1;background:#f6f8fa}.calendar-day.today>span{color:#fff;background:#625b81}.calendar-event{display:block;width:100%;margin-top:.25rem;padding:.28rem .4rem;overflow:hidden;border:0;border-radius:6px;color:#514a6b;background:#e8e4f2;font-size:.67rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.calendar-event.exam{color:#82464d;background:#f5e2e4}.calendar-event.practice{color:#38635f;background:#dfecea}.deadline-list{padding:1rem}.deadline-list h3{margin:0 0 .8rem}.deadline-list>button{display:grid;width:100%;padding:.8rem 0;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;border:0;border-top:1px solid #e4e9ee;color:inherit;background:transparent;text-align:left;cursor:pointer}.deadline-list>button>span:nth-child(2){display:grid;min-width:0;gap:.15rem}.deadline-list small,.deadline-list em{color:#788294;font-size:.72rem;font-style:normal}.deadline-type.exam,.assignment-mode-icon.exam{color:#884c52;background:#f3dfe1}.deadline-type.practice,.assignment-mode-icon.practice{color:#376862;background:#dcebe8}.assignment-filter-bar{display:grid;padding:.9rem;grid-template-columns:minmax(220px,1fr) repeat(4,minmax(150px,auto));gap:.7rem;border:1px solid #d9e1e9;border-radius:16px;background:#f9fbfc}.filter-search{position:relative}.filter-search>i{position:absolute;z-index:1;top:50%;left:.8rem;color:#8690a1;transform:translateY(-50%)}.filter-search .p-inputtext{width:100%;padding-left:2.4rem}.assignment-semester{display:grid;gap:.7rem}.assignment-semester>header{display:flex;align-items:center;justify-content:space-between}.assignment-semester h3{margin:0}.assignment-semester>header span{color:#778294;font-size:.8rem}.assignment-list{display:grid;overflow:hidden;border:1px solid #d9e1e9;border-radius:18px;background:#f9fbfc;box-shadow:0 8px 26px #313a480d}.assignment-row{display:grid;padding:1rem;align-items:center;grid-template-columns:auto minmax(220px,1fr) minmax(330px,auto) 130px auto;gap:1rem;border-bottom:1px solid #e3e8ed}.assignment-row:last-child{border-bottom:0}.assignment-main{min-width:0}.assignment-main>div{display:flex;align-items:center;gap:.6rem;color:#778294;font-size:.78rem}.assignment-main h4{margin:.4rem 0 .2rem}.assignment-main p{margin:0;overflow:hidden;color:#707b8e;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.assignment-meta{display:grid;margin:0;grid-template-columns:repeat(4,minmax(70px,auto));gap:.85rem}.assignment-meta>div{display:grid;gap:.15rem}.assignment-meta dt{color:#8790a0;font-size:.66rem;text-transform:uppercase}.assignment-meta dd{margin:0;font-size:.78rem;font-weight:700}.assignment-progress{display:grid;gap:.4rem}.assignment-progress span{font-size:.75rem;font-weight:800}.semester-empty{padding:1.2rem;border:1px dashed #cdd5de;border-radius:14px;color:#7a8495;text-align:center}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem}.settings-card{display:grid;padding:1.2rem;gap:1.1rem;border:1px solid #d9e1e9;border-radius:18px;background:#f9fbfc;box-shadow:0 8px 26px #313a480d}.settings-card>header{display:flex;align-items:center;gap:.8rem}.settings-card>header>i{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;color:#625a83;background:#ebe8f4}.settings-card h3,.settings-card p{margin:0}.settings-card header p,.logout-card p{margin-top:.2rem;color:#7a8495;font-size:.8rem}.settings-card--wide{grid-column:1 / -1}.profile-overview{display:flex;align-items:center;gap:.9rem}.profile-large-avatar{display:grid;width:62px;height:62px;place-items:center;border-radius:50%;color:#fff;background:#625b80;font-size:1.2rem;font-weight:800}.profile-overview>div{display:grid;gap:.2rem}.profile-overview span{color:#788294}.preference-row,.logout-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.preference-row>span{display:grid}.preference-row small{color:#7a8495}@media(max-width:1200px){.student-skeleton-grid,.subject-card-grid,.subject-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-layout{grid-template-columns:1fr}.assignment-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-search{grid-column:1 / -1}.assignment-row{grid-template-columns:auto minmax(0,1fr) auto}.assignment-meta,.assignment-progress{grid-column:2 / -1}}@media(max-width:900px){.app-shell--collapsed .app-sidebar{width:var(--pl-sidebar-width)}.app-shell--collapsed .app-main{width:100%;margin-left:0}.app-sidebar--collapsed .sidebar-brand>div:nth-child(2),.app-sidebar--collapsed .nav-group-label,.app-sidebar--collapsed .nav-link span,.app-sidebar--collapsed .sidebar-footer span{display:initial}.app-sidebar--collapsed .sidebar-brand,.app-sidebar--collapsed .nav-link,.app-sidebar--collapsed .sidebar-footer{justify-content:initial}.messages-layout{grid-template-columns:280px minmax(0,1fr)}.subject-detail-layout{grid-template-columns:1fr}.topic-list{display:flex;overflow-x:auto}.topic-list>p{display:none}.topic-list button{min-width:180px;border-top:0;border-right:1px solid #e6eaf0}}@media(max-width:700px){.student-page-header{align-items:stretch;flex-direction:column}.student-page-header>.p-button{align-self:flex-start}.student-skeleton-grid,.subject-card-grid,.subject-list-grid,.settings-grid{grid-template-columns:1fr}.settings-card--wide{grid-column:auto}.messages-layout{min-height:0;grid-template-columns:1fr}.conversation-list{max-height:310px;border-right:0;border-bottom:1px solid #dfe5eb}.message-stream{min-height:340px}.message-bubble{max-width:88%}.calendar-day{min-height:74px;padding:.25rem}.calendar-event{padding:.2rem;font-size:0}.calendar-event:after{display:block;width:7px;height:7px;border-radius:50%;background:currentcolor;content:""}.assignment-filter-bar{grid-template-columns:1fr}.filter-search{grid-column:auto}.assignment-row{grid-template-columns:auto minmax(0,1fr)}.assignment-row>.p-button{grid-column:1 / -1}.assignment-meta,.assignment-progress{grid-column:1 / -1}.assignment-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.preference-row,.logout-card{align-items:stretch;flex-direction:column}}}@layer base{html{scroll-behavior:smooth}body{line-height:1.5}::selection{color:#1e1b4b;background:#c7d2fe}:where(a,button,input,textarea,select,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid rgb(79 70 229 / 38%);outline-offset:3px;border-radius:6px}.skip-link{position:fixed;z-index:1000;top:.75rem;left:.75rem;padding:.65rem .9rem;border-radius:.6rem;color:#fff;background:#312e81;box-shadow:0 8px 24px #0f172a40;font-size:.85rem;font-weight:750;text-decoration:none;transform:translateY(-160%);transition:transform .14s ease}.skip-link:focus{transform:translateY(0)}.page-content:focus{outline:none}.app-breadcrumbs{margin-bottom:1.1rem}.app-breadcrumbs ol{display:flex;min-width:0;padding:0;margin:0;align-items:center;flex-wrap:wrap;gap:.35rem;list-style:none}.app-breadcrumbs li{display:inline-flex;min-width:0;align-items:center;gap:.35rem;color:var(--pl-text-muted);font-size:.76rem;font-weight:650}.app-breadcrumbs li i{color:#94a3b8;font-size:.58rem}.app-breadcrumbs a{border-radius:.35rem;color:#475569;text-decoration:none}.app-breadcrumbs a:hover{color:var(--pl-primary);text-decoration:underline;text-underline-offset:3px}.app-breadcrumbs [aria-current=page]{max-width:min(32rem,55vw);overflow:hidden;color:var(--pl-text);text-overflow:ellipsis;white-space:nowrap}.page-heading{padding-bottom:1.25rem;border-bottom:1px solid rgb(226 232 240 / 75%)}.page-heading>div:first-child{min-width:0}.page-heading .eyebrow{margin-bottom:.45rem}.page-heading h2{font-weight:760}.page-loading-state{display:grid;gap:1rem;animation:page-state-enter .18s ease both}.page-loading-heading{display:grid;padding-bottom:1rem;gap:.75rem;border-bottom:1px solid var(--pl-border)}.page-loading-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.page-loading-state .p-skeleton{border-radius:.8rem}.ui-state-panel{display:grid;min-height:190px;padding:clamp(1.25rem,3vw,2rem);align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow)}.ui-state-panel--compact{min-height:0;padding:1rem}.ui-state-panel--error{border-color:#fecaca;background:linear-gradient(120deg,#fff7f7,#fff 60%)}.ui-state-panel--info{border-color:#bfdbfe;background:linear-gradient(120deg,#eff6ff,#fff 60%)}.ui-state-icon{display:grid;width:3.2rem;height:3.2rem;place-items:center;border-radius:1rem;color:#4f46e5;background:#eef2ff;font-size:1.25rem}.ui-state-panel--error .ui-state-icon{color:#dc2626;background:#fee2e2}.ui-state-panel--info .ui-state-icon{color:#0369a1;background:#e0f2fe}.ui-state-panel>div{display:grid;gap:.35rem}.ui-state-panel strong{font-size:1rem}.ui-state-panel p{max-width:52rem;margin:0;color:var(--pl-text-muted);font-size:.88rem;line-height:1.55}.nav-link{position:relative}.nav-link:before{content:"";position:absolute;top:50%;left:-1rem;width:3px;height:0;border-radius:0 3px 3px 0;background:#a5b4fc;transform:translateY(-50%);transition:height .15s ease}.nav-link.router-link-active:before{height:62%}.nav-link:focus-visible{outline-color:#c7d2fecc;outline-offset:1px}.sidebar-overlay{padding:0;border:0;border-radius:0;cursor:default}.metric-card.p-card,.metric-card .p-card-content{position:relative}.metric-card-accent{position:absolute;right:0;bottom:0;left:0;height:3px;opacity:.75}.metric-card-accent--indigo{background:#6366f1}.metric-card-accent--blue{background:#0ea5e9}.metric-card-accent--emerald{background:#10b981}.metric-card-accent--amber{background:#f59e0b}.metric-card-accent--rose{background:#f43f5e}.metric-card-accent--slate{background:#64748b}.data-workspace,.users-panel{border-color:#cbd5e1e5;box-shadow:0 8px 26px #0f172a0d}.p-datatable{font-size:.86rem}.p-datatable .p-datatable-table-container{scrollbar-color:#cbd5e1 transparent;scrollbar-width:thin}.p-datatable .p-datatable-header-cell{height:3rem;color:#64748b;background:#f8fafc;font-size:.7rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.p-datatable .p-datatable-tbody>tr{transition:background .12s ease}.p-datatable .p-datatable-tbody>tr:hover{background:#f8fafc}.p-datatable .p-datatable-tbody>tr>td{border-color:#edf0f5;vertical-align:middle}.p-datatable .p-paginator{min-height:3.6rem;border-top:1px solid var(--pl-border);background:#fbfcfe}.p-datatable .p-paginator-page,.p-datatable .p-paginator-next,.p-datatable .p-paginator-prev,.p-datatable .p-paginator-first,.p-datatable .p-paginator-last{min-width:2.25rem;height:2.25rem}.table-empty-state{min-height:240px}.table-empty-state>div,.tests-empty-state>div{box-shadow:inset 0 0 0 1px #4f46e514}.form-field label,.toggle-field>span{display:inline-flex;align-items:center;gap:.25rem;color:#334155;font-size:.84rem;font-weight:750}.form-field :is(.p-inputtext,.p-select,.p-multiselect,.p-datepicker,.p-inputnumber,.p-password){width:100%}.p-inputtext,.p-select,.p-multiselect,.p-inputnumber-input,.p-datepicker-input{min-height:2.75rem}textarea.p-textarea{min-height:7rem;resize:vertical}.p-inputtext:enabled:hover,.p-select:not(.p-disabled):hover,.p-multiselect:not(.p-disabled):hover{border-color:#94a3b8}.p-invalid{border-color:#dc2626!important}.form-error{display:flex;align-items:flex-start;gap:.3rem;color:#b91c1c;font-weight:650;line-height:1.4}.form-hint{line-height:1.45}.p-tag{min-height:1.55rem;padding-inline:.55rem;font-size:.68rem;font-weight:750;letter-spacing:.02em}.p-tag-success{color:#166534;background:#dcfce7}.p-tag-warn{color:#92400e;background:#fef3c7}.p-tag-danger{color:#991b1b;background:#fee2e2}.p-tag-info{color:#075985;background:#e0f2fe}.p-message{border-radius:.8rem}.p-message .p-message-content{align-items:flex-start;line-height:1.5}.p-dialog{max-width:calc(100vw - 2rem);overflow:hidden;border:1px solid rgb(203 213 225 / 80%);border-radius:1rem;box-shadow:0 28px 80px #0f172a38}.p-dialog .p-dialog-header{padding:1.25rem 1.35rem 1rem;border-bottom:1px solid var(--pl-border)}.p-dialog .p-dialog-title{font-size:1.08rem;letter-spacing:-.02em}.p-dialog .p-dialog-content{padding:1.25rem 1.35rem}.p-dialog .p-dialog-footer{padding:1rem 1.35rem;border-top:1px solid var(--pl-border);background:#f8fafc}.p-confirmdialog .p-confirmdialog-icon{display:grid;width:2.8rem;height:2.8rem;flex:0 0 auto;place-items:center;border-radius:.8rem;color:#b45309;background:#fef3c7;font-size:1.1rem}.p-toast{width:min(25rem,calc(100vw - 2rem))}.p-toast .p-toast-message{overflow:hidden;border:1px solid rgb(203 213 225 / 80%);border-radius:.85rem;box-shadow:0 18px 48px #0f172a29;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.p-toast .p-toast-message-content{padding:1rem;align-items:flex-start}.p-toast .p-toast-summary{font-size:.88rem;font-weight:800}.p-toast .p-toast-detail{margin-top:.2rem;font-size:.8rem;line-height:1.45}@keyframes page-state-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.app-topbar{box-shadow:0 4px 18px #0f172a0d}.page-loading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.app-breadcrumbs{margin-bottom:.8rem}.page-heading{padding-bottom:1rem;margin-bottom:1.25rem}.page-heading>:last-child:not(:first-child){width:100%}.page-heading>:last-child:not(:first-child) .p-button,.page-heading>:last-child:not(:first-child).p-button{width:100%}.account-copy{display:none}.page-loading-grid{grid-template-columns:1fr}.ui-state-panel{min-height:0;align-items:flex-start;grid-template-columns:1fr}.ui-state-panel>.p-button{width:100%}.p-dialog .p-dialog-header,.p-dialog .p-dialog-content,.p-dialog .p-dialog-footer{padding-right:1rem;padding-left:1rem}.p-dialog .p-dialog-footer{display:flex;align-items:stretch;flex-direction:column-reverse}.p-dialog .p-dialog-footer .p-button{width:100%}.p-toast{right:1rem!important;left:1rem!important;width:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page-loading-state{animation:none}}}@layer base{.setup-shell{min-height:100vh;padding:0 2rem 4rem;color:var(--pl-text);background:radial-gradient(circle at 10% 5%,rgb(79 70 229 / 9%),transparent 28rem),radial-gradient(circle at 92% 24%,rgb(14 165 233 / 8%),transparent 25rem),var(--pl-background)}.setup-topbar{display:flex;max-width:1240px;min-height:78px;margin:0 auto;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid rgb(226 232 240 / 80%)}.setup-brand{display:flex;align-items:center;gap:.75rem}.setup-brand>div{display:grid;gap:.1rem}.setup-brand strong{font-size:1.05rem}.setup-brand span{color:var(--pl-text-muted);font-size:.78rem}.setup-hero{display:grid;max-width:1240px;padding:clamp(3.5rem,8vw,7rem) 0 2.5rem;margin:0 auto;align-items:end;grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);gap:clamp(2rem,6vw,5rem)}.setup-hero h1{max-width:760px;margin:.45rem 0 1rem;font-size:clamp(2.6rem,6vw,5rem);line-height:.98;letter-spacing:-.06em}.setup-hero>div:first-child>p:last-child{max-width:700px;margin:0;color:var(--pl-text-muted);font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.setup-readiness-card{display:grid;padding:1.25rem;grid-template-columns:auto minmax(0,1fr);gap:.9rem;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:#ffffffd1;box-shadow:var(--pl-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.setup-readiness-card>span{display:grid;width:46px;height:46px;place-items:center;border-radius:13px;color:#9a3412;background:#ffedd5}.setup-readiness-card>div{display:grid;gap:.2rem}.setup-readiness-card small{color:var(--pl-text-muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.setup-readiness-card p{margin:.25rem 0 0;color:var(--pl-text-muted);font-size:.86rem;line-height:1.45}.setup-shell>.p-message,.setup-workspace,.setup-contract-section{max-width:1240px;margin-right:auto;margin-left:auto}.setup-blocked-message{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:flex-start}.setup-blocked-message>i{margin-top:.15rem}.setup-blocked-message>div{display:grid;gap:.25rem;line-height:1.5}.setup-workspace{display:grid;padding-top:1.25rem;grid-template-columns:minmax(0,1fr) minmax(280px,.38fr);gap:1.25rem;align-items:start}.setup-plan,.setup-contract-section{padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow)}.setup-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.setup-section-heading h2{margin:.35rem 0 0;font-size:clamp(1.45rem,3vw,2rem);letter-spacing:-.035em}.setup-section-heading>div>p:last-child{margin:.5rem 0 0;color:var(--pl-text-muted);line-height:1.5}.setup-locked-label{display:inline-flex;padding:.4rem .65rem;align-items:center;gap:.4rem;border:1px solid var(--pl-border);border-radius:999px;color:var(--pl-text-muted);background:var(--pl-surface-soft);font-size:.75rem;font-weight:750;white-space:nowrap}.setup-step-list{position:relative;display:grid;gap:0;padding:1.25rem 0 0;margin:0;list-style:none}.setup-step{position:relative;display:grid;padding:.85rem 0;align-items:center;grid-template-columns:1.8rem 2.75rem minmax(0,1fr) auto;gap:.8rem}.setup-step:not(:last-child):after{content:"";position:absolute;top:calc(50% + 1.35rem);bottom:calc(-50% + 1.35rem);left:3.17rem;width:1px;background:var(--pl-border)}.setup-step-number{color:var(--pl-text-muted);font-size:.75rem;font-weight:800}.setup-step-icon{z-index:1;display:grid;width:2.75rem;height:2.75rem;place-items:center;border:1px solid var(--pl-border);border-radius:.8rem;color:var(--pl-primary);background:var(--pl-surface)}.setup-step>div{display:grid;gap:.2rem}.setup-step p{margin:0;color:var(--pl-text-muted);font-size:.88rem;line-height:1.45}.setup-step small{color:#64748b;font-size:.72rem;font-weight:700}.setup-step-lock{color:#94a3b8;font-size:.8rem}.setup-aside{display:grid;gap:1rem}.setup-aside .p-card{border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.setup-security-card ul{display:grid;gap:.9rem;padding:0;margin:0;list-style:none}.setup-security-card li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:.65rem;color:var(--pl-text-muted);font-size:.88rem;line-height:1.5}.setup-security-card li i{margin-top:.2rem;color:var(--pl-primary)}.setup-existing-card p{margin:0 0 1rem;color:var(--pl-text-muted);line-height:1.55}.setup-contract-section{margin-top:1.25rem}.setup-contract-grid{display:grid;padding-top:1.25rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.setup-contract-grid article{display:grid;padding:1rem;gap:.7rem;border:1px solid var(--pl-border);border-radius:.85rem;background:var(--pl-surface-soft)}.setup-contract-grid article>div:first-child{display:flex;min-width:0;align-items:flex-start;gap:.5rem}.setup-contract-grid article>div:first-child>span{padding:.2rem .42rem;border-radius:.35rem;color:var(--pl-primary-dark);background:var(--pl-primary-soft);font-size:.68rem;font-weight:850}.setup-contract-grid code{overflow-wrap:anywhere;font-size:.8rem}.setup-contract-grid article>p{margin:0;color:var(--pl-text-muted);font-size:.88rem;line-height:1.5}.setup-contract-grid dl{display:grid;gap:.35rem;margin:0}.setup-contract-grid dl>div{display:grid;grid-template-columns:5.2rem minmax(0,1fr);gap:.5rem;font-size:.76rem}.setup-contract-grid dt{color:var(--pl-text);font-weight:750}.setup-contract-grid dd{margin:0;color:var(--pl-text-muted)}.setup-reuse-note{display:grid;padding:1rem;margin-top:1rem;grid-template-columns:auto minmax(0,1fr);gap:.75rem;border-radius:.8rem;color:#1e3a8a;background:#eff6ff}.setup-reuse-note>i{margin-top:.2rem}.setup-reuse-note p{margin:.3rem 0 0;line-height:1.55}@media(max-width:900px){.setup-hero,.setup-workspace,.setup-contract-grid{grid-template-columns:1fr}}@media(max-width:620px){.setup-shell{padding:0 1rem 2rem}.setup-topbar{min-height:68px}.setup-topbar .p-button-label,.setup-brand span{display:none}.setup-hero{padding-top:3rem}.setup-hero h1{font-size:2.55rem}.setup-blocked-message,.setup-readiness-card{grid-template-columns:1fr}.setup-section-heading{align-items:flex-start;flex-direction:column}.setup-step{grid-template-columns:2.6rem minmax(0,1fr) auto}.setup-step-number{display:none}.setup-step:not(:last-child):after{left:1.3rem}.setup-contract-grid dl>div{grid-template-columns:1fr}.setup-reuse-note{grid-template-columns:1fr}}}@layer base{.teacher-reports-page{display:grid;gap:1.25rem}.report-export-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.report-prepared-message{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;align-items:flex-start}.report-prepared-message>div{display:grid;gap:.25rem}.report-prepared-message span{line-height:1.55}.report-prepared-icon{display:grid;width:2.4rem;height:2.4rem;place-items:center;border-radius:.75rem;color:var(--p-primary-700);background:var(--p-primary-100)}.report-capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.report-capability-grid .p-card{border:1px solid var(--surface-border);box-shadow:none}.report-capability-grid .p-card-content{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:start}.report-capability-grid .p-card-content>i{display:grid;width:2.6rem;height:2.6rem;place-items:center;border-radius:.8rem;color:var(--p-primary-700);background:var(--p-primary-50);font-size:1.1rem}.report-capability-grid .p-card-content>div{display:grid;gap:.25rem}.report-capability-grid .p-card-content span{color:var(--text-secondary);line-height:1.45}.report-awaiting-badge{grid-column:2;width:fit-content;padding:.25rem .55rem;border:1px solid var(--surface-border);border-radius:999px;background:var(--surface-soft);color:var(--text-secondary);font-size:.73rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.report-preview-workspace{overflow:hidden}.report-filter-toolbar{display:grid;grid-template-columns:repeat(3,minmax(12rem,1fr));gap:.85rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-soft)}.report-filter-toolbar label{display:grid;gap:.4rem;color:var(--text-secondary);font-size:.82rem;font-weight:700}.report-filter-toolbar .p-select{width:100%}.report-empty-state{display:flex;justify-content:center;align-items:center;gap:1rem;max-width:38rem;padding:3.25rem 1.5rem;margin:0 auto;text-align:left}.report-empty-state>span{display:grid;width:3.5rem;height:3.5rem;flex:0 0 auto;place-items:center;border-radius:1rem;color:var(--p-primary-700);background:var(--p-primary-50);font-size:1.35rem}.report-empty-state strong{font-size:1rem}.report-empty-state p{margin:.35rem 0 0;color:var(--text-secondary);line-height:1.5}.report-contract-card{border:1px solid var(--surface-border);box-shadow:none}.report-contract-list{display:grid;gap:.75rem;padding:0;margin:0;list-style:none;counter-reset:report-contract}.report-contract-list li{position:relative;display:grid;gap:.35rem;padding:.9rem 1rem .9rem 3.4rem;border:1px solid var(--surface-border);border-radius:.85rem;background:var(--surface-soft);counter-increment:report-contract}.report-contract-list li:before{content:counter(report-contract);position:absolute;top:.9rem;left:1rem;display:grid;width:1.65rem;height:1.65rem;place-items:center;border-radius:50%;color:var(--p-primary-700);background:var(--p-primary-100);font-size:.78rem;font-weight:800}.report-contract-list li>div{display:flex;align-items:center;gap:.55rem;min-width:0}.report-contract-list code{overflow-wrap:anywhere;color:var(--text-primary);font-size:.82rem}.report-method{padding:.18rem .42rem;border-radius:.35rem;color:var(--p-primary-800);background:var(--p-primary-100);font-size:.7rem;font-weight:800}.report-contract-list p,.report-contract-list small{margin:0;color:var(--text-secondary);line-height:1.45}.report-contract-note{padding:.9rem 1rem;margin:1rem 0 0;border-left:3px solid var(--p-orange-400);border-radius:.25rem .6rem .6rem .25rem;background:var(--p-orange-50);color:var(--p-orange-900);line-height:1.5}@media(max-width:960px){.report-capability-grid,.report-filter-toolbar{grid-template-columns:1fr}}@media(max-width:620px){.report-export-actions,.report-export-actions .p-button{width:100%}.report-prepared-message{grid-template-columns:1fr}.report-empty-state{align-items:flex-start;flex-direction:column}.report-contract-list li{padding-left:1rem}.report-contract-list li:before{display:none}.report-contract-list li>div{align-items:flex-start;flex-direction:column}}}@layer base{.student-assignments-page,.student-assignment-detail-page,.student-solve-page{display:grid;gap:1.35rem}.student-assignment-toolbar{display:flex;padding:1rem;align-items:center;flex-wrap:wrap;gap:.75rem;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow)}.student-assignment-search{min-width:min(100%,320px);flex:1}.student-assignment-search .p-inputtext{width:100%}.student-assignment-grid,.student-assignment-skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.student-assignment-card.p-card{position:relative;overflow:hidden;border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow);transition:transform .16s ease,box-shadow .16s ease}.student-assignment-card.p-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px #0f172a1a}.student-assignment-card .p-card-header{height:5px}.student-assignment-accent{height:5px;background:#64748b}.student-assignment-accent--practice{background:linear-gradient(90deg,#64748b,#94a3b8)}.student-assignment-accent--homework{background:linear-gradient(90deg,#2563eb,#60a5fa)}.student-assignment-accent--exam{background:linear-gradient(90deg,#111827,#4f46e5)}.student-assignment-card .p-card-title{display:grid;gap:.8rem}.student-assignment-card h3{margin:0;font-size:1.25rem;letter-spacing:-.025em}.student-assignment-card-heading{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.student-assignment-description{min-height:3.2rem;margin:0 0 1rem;color:var(--pl-text-muted);line-height:1.55}.student-assignment-facts{display:grid;margin:0;gap:.65rem}.student-assignment-facts>div{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.student-assignment-facts dt{display:flex;align-items:center;gap:.45rem;color:var(--pl-text-muted);font-size:.86rem}.student-assignment-facts dd{margin:0;font-size:.86rem;font-weight:750;text-align:right}.student-card-skeleton{min-height:330px;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:linear-gradient(100deg,transparent 20%,rgb(255 255 255 / 75%) 50%,transparent 80%),#e8edf4;background-size:220% 100%;animation:student-skeleton 1.4s ease infinite}@keyframes student-skeleton{0%{background-position:120% 0}to{background-position:-120% 0}}.student-empty-state{display:flex;min-height:280px;padding:2rem;align-items:center;justify-content:center;gap:1rem;border:1px dashed #cbd5e1;border-radius:var(--pl-radius);color:var(--pl-text-muted);background:var(--pl-surface)}.student-empty-state>span{display:grid;width:64px;height:64px;flex:0 0 auto;place-items:center;border-radius:18px;color:var(--pl-primary);background:var(--pl-primary-soft);font-size:1.5rem}.student-empty-state h3,.student-empty-state p{margin:0}.student-empty-state p{margin-top:.35rem}.student-empty-state .p-button{margin-top:1rem}.student-detail-header,.student-solve-header{display:grid;align-items:flex-start;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem}.student-detail-header h2,.student-solve-header h2{margin:.55rem 0 0;font-size:clamp(1.8rem,3vw,2.45rem);letter-spacing:-.04em}.student-detail-header p,.student-solve-header p:last-child{margin:.55rem 0 0;color:var(--pl-text-muted);line-height:1.6}.student-assignment-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.student-assignment-summary .p-card{border:1px solid var(--pl-border);border-radius:14px;box-shadow:none}.student-assignment-summary .p-card-content{display:flex;align-items:center;gap:.75rem}.student-assignment-summary .p-card-content>i{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border-radius:11px;color:var(--pl-primary);background:var(--pl-primary-soft)}.student-assignment-summary .p-card-content>div{display:grid;min-width:0;gap:.2rem}.student-assignment-summary span{color:var(--pl-text-muted);font-size:.8rem}.student-assignment-summary strong{overflow:hidden;font-size:.94rem;text-overflow:ellipsis;white-space:nowrap}.student-exam-card.p-card,.student-statement-card.p-card,.student-task-description-grid .p-card,.student-submission-panel .p-card,.student-history-card.p-card{border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.student-exam-card.p-card{overflow:hidden;border-color:#c7d2fe;background:linear-gradient(120deg,#eef2ffa6,#fff 45%)}.student-exam-heading,.student-exam-heading>div,.student-exam-actions,.student-section-heading,.student-solve-badges{display:flex;align-items:center;gap:.7rem}.student-exam-heading,.student-section-heading{justify-content:space-between}.student-exam-heading>div>i{color:var(--pl-primary)}.student-exam-card p{margin:0;color:#475569;line-height:1.65}.exam-session-facts{display:grid;margin:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.exam-session-facts>div{display:grid;padding:.8rem;gap:.25rem;border:1px solid #e0e7ff;border-radius:12px;background:#ffffffbf}.exam-session-facts dt{color:var(--pl-text-muted);font-size:.78rem}.exam-session-facts dd{margin:0;font-weight:700}.inline-loading{display:flex;min-height:90px;align-items:center;justify-content:center;gap:.6rem;color:var(--pl-text-muted)}.student-task-section{display:grid;gap:1rem}.student-section-heading h3{margin:0;font-size:1.3rem;letter-spacing:-.025em}.student-section-heading>span{color:var(--pl-text-muted);font-size:.88rem}.student-task-grid{display:grid;gap:.75rem}.student-task-card.p-card{border:1px solid var(--pl-border);border-radius:14px;box-shadow:none}.student-task-card .p-card-content{display:grid;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem}.student-task-index{display:grid;width:44px;height:44px;place-items:center;border-radius:13px;color:var(--pl-primary-dark);background:var(--pl-primary-soft);font-weight:800}.student-task-copy{display:grid;gap:.35rem}.student-task-copy>div{display:flex;align-items:center;gap:.65rem}.student-task-copy h4,.student-task-copy p{margin:0}.student-task-copy p,.student-task-copy>span{color:var(--pl-text-muted);font-size:.86rem}.student-task-copy>span{display:flex;align-items:center;gap:.4rem}.student-solve-badges{flex-wrap:wrap;justify-content:flex-end}.student-solve-layout{display:grid;align-items:start;grid-template-columns:minmax(0,1fr) minmax(330px,.44fr);gap:1rem}.student-task-content,.student-submission-panel{display:grid;min-width:0;gap:1rem}.student-statement-card .markdown-preview{min-height:180px}.student-task-description-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.student-task-description-grid .p-card-title,.student-statement-card .p-card-title{font-size:1rem}.student-task-description-grid .markdown-preview{max-height:340px;overflow:auto}.student-submission-panel{position:sticky;top:88px}.submission-method-tabs{display:grid;margin-bottom:1rem;padding:.25rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;border-radius:11px;background:#f1f5f9}.submission-method-tabs button{padding:.7rem;border:0;border-radius:9px;color:#64748b;background:transparent;font-weight:700;cursor:pointer}.submission-method-tabs .submission-method--active{color:var(--pl-primary-dark);background:#fff;box-shadow:0 3px 10px #0f172a14}.student-code-form,.student-file-form{display:grid;gap:1rem}.student-editor-label{display:flex;justify-content:space-between;gap:.75rem}.student-editor-label small{color:var(--pl-text-muted)}.student-code-editor{min-height:360px;font-family:Cascadia Code,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.86rem;line-height:1.55;tab-size:4;white-space:pre}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.student-file-picker{display:grid;min-height:170px;padding:1.25rem;place-items:center;align-content:center;gap:.45rem;border:2px dashed #c7d2fe;border-radius:14px;color:#475569;background:#f8faff;text-align:center;cursor:pointer}.student-file-picker:hover{border-color:var(--pl-primary);background:var(--pl-primary-soft)}.student-file-picker>i{color:var(--pl-primary);font-size:2rem}.student-file-picker span{max-width:300px;color:var(--pl-text-muted);font-size:.8rem;line-height:1.45}.student-selected-files{display:grid;gap:.55rem}.student-selected-files>div{display:grid;padding:.7rem;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;border:1px solid var(--pl-border);border-radius:11px}.student-selected-files>div>i{color:var(--pl-primary)}.student-selected-files span{display:grid;min-width:0;gap:.15rem}.student-selected-files strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-selected-files small{color:var(--pl-text-muted)}.student-history-card{overflow:hidden}.student-history-card .p-card-content{padding:0}.submission-dialog-summary{display:grid;margin-bottom:1rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.submission-dialog-summary>div{display:grid;padding:.75rem;gap:.25rem;border:1px solid var(--pl-border);border-radius:11px}.submission-dialog-summary span{color:var(--pl-text-muted);font-size:.78rem}.submission-dialog-summary strong{font-size:.9rem}.submission-file-list{display:grid;margin-bottom:1rem;gap:.65rem}.submission-file-list>div{display:grid;padding:.8rem;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;border:1px solid var(--pl-border);border-radius:12px}.submission-file-list>div>i{color:var(--pl-primary)}.submission-file-list span{display:grid;min-width:0;gap:.2rem}.submission-file-list strong,.submission-file-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submission-file-list small{color:var(--pl-text-muted)}@media(max-width:1180px){.student-assignment-grid,.student-assignment-skeleton-grid,.student-assignment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.student-solve-layout{grid-template-columns:1fr}.student-submission-panel{position:static}}@media(max-width:760px){.student-detail-header,.student-solve-header{grid-template-columns:auto minmax(0,1fr)}.student-solve-badges{grid-column:1 / -1;justify-content:flex-start}.student-task-description-grid{grid-template-columns:1fr}.student-task-card .p-card-content{align-items:start;grid-template-columns:auto minmax(0,1fr)}.student-task-card .p-button{grid-column:1 / -1;width:100%}.exam-session-facts{grid-template-columns:1fr}}@media(max-width:620px){.student-assignment-toolbar{align-items:stretch;flex-direction:column}.student-assignment-toolbar .p-select,.student-assignment-search{width:100%}.student-assignment-grid,.student-assignment-skeleton-grid,.student-assignment-summary{grid-template-columns:1fr}.student-empty-state,.student-exam-heading,.student-exam-actions,.student-section-heading{align-items:flex-start;flex-direction:column}.student-exam-actions .p-button,.student-section-heading .p-button{width:100%}.submission-dialog-summary{grid-template-columns:1fr}.submission-file-list>div{grid-template-columns:auto minmax(0,1fr)}.submission-file-list .p-button{grid-column:1 / -1;width:100%}}}@layer base{.student-result-page{display:grid;gap:1.15rem}.student-result-navigation,.student-result-navigation>div,.student-processing-message,.student-processing-message>div,.student-result-title,.student-result-section-heading,.student-result-section-heading>div{display:flex;align-items:center;gap:.7rem}.student-result-navigation,.student-processing-message,.student-result-section-heading{justify-content:space-between}.student-result-header{display:grid;padding:clamp(1.25rem,3vw,2rem);align-items:center;grid-template-columns:auto minmax(0,1fr);gap:1.1rem;overflow:hidden;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow)}.student-result-status-icon{display:grid;width:62px;height:62px;place-items:center;border-radius:18px;color:#475569;background:#f1f5f9;font-size:1.55rem}.student-result-header h2,.student-result-header p{margin:0}.student-result-title{flex-wrap:wrap}.student-result-title h2{font-size:clamp(1.7rem,3vw,2.35rem);letter-spacing:-.04em}.student-result-header>div>p:last-child{margin-top:.45rem;color:var(--pl-text-muted);line-height:1.55}.student-result-header--accepted{border-color:#bbf7d0;background:linear-gradient(120deg,#f0fdf4,#fff 58%)}.student-result-header--accepted .student-result-status-icon{color:#15803d;background:#dcfce7}.student-result-header--partial{border-color:#fed7aa;background:linear-gradient(120deg,#fff7ed,#fff 58%)}.student-result-header--partial .student-result-status-icon,.student-result-header--limit .student-result-status-icon{color:#c2410c;background:#ffedd5}.student-result-header--failed,.student-result-header--runtime,.student-result-header--internal{border-color:#fecaca;background:linear-gradient(120deg,#fef2f2,#fff 58%)}.student-result-header--failed .student-result-status-icon,.student-result-header--runtime .student-result-status-icon,.student-result-header--internal .student-result-status-icon{color:#b91c1c;background:#fee2e2}.student-result-header--compile{border-color:#cbd5e1;background:linear-gradient(120deg,#f8fafc,#fff 58%)}.student-result-header--compile .student-result-status-icon{color:#f8fafc;background:#1e293b}.student-result-header--pending,.student-result-header--running{border-color:#bfdbfe;background:linear-gradient(120deg,#eff6ff,#fff 58%)}.student-result-header--pending .student-result-status-icon,.student-result-header--running .student-result-status-icon{color:#1d4ed8;background:#dbeafe}.student-result-header--hidden,.student-result-header--cancelled{color:#475569;background:linear-gradient(120deg,#f8fafc,#fff 58%)}.student-result-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.student-result-metrics .p-card{border:1px solid var(--pl-border);border-radius:14px;box-shadow:none}.student-result-metrics .p-card-content{display:grid;gap:.35rem}.student-result-metrics span{color:var(--pl-text-muted);font-size:.8rem}.student-result-metrics strong{font-size:1rem}.student-output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.student-output-card.p-card{overflow:hidden;border:1px solid var(--pl-border);border-radius:14px;box-shadow:none}.student-output-card .p-card-title{font-size:.95rem}.student-output-card pre,.student-test-output pre{margin:0;overflow:auto;color:#dbeafe;background:#111827;font-family:Cascadia Code,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.student-output-card pre{max-height:320px;padding:1rem;border-radius:10px}.student-output-card--error{border-color:#fecaca!important}.student-result-section.p-card{overflow:hidden;border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.student-result-section-heading>div>i{color:var(--pl-primary)}.student-result-files{display:grid;gap:.65rem}.student-result-files article{display:grid;padding:.85rem;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.8rem;border:1px solid var(--pl-border);border-radius:12px}.student-result-files article>span{display:grid;width:40px;height:40px;place-items:center;border-radius:11px;color:var(--pl-primary);background:var(--pl-primary-soft)}.student-result-files article>div{display:grid;min-width:0;gap:.25rem}.student-result-files article strong,.student-result-files article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-result-files article small{color:var(--pl-text-muted)}.student-result-empty{display:flex;min-height:120px;align-items:center;justify-content:center;gap:.65rem;color:var(--pl-text-muted)}.student-test-output{display:grid;min-width:180px;max-width:420px;gap:.45rem}.student-test-output pre{max-height:150px;padding:.6rem;border-radius:8px}.student-test-output .student-test-error{color:#fecaca;background:#450a0a}.student-test-output>span{color:var(--pl-text-muted);font-size:.82rem}@media(max-width:1080px){.student-result-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.student-result-navigation{align-items:stretch;flex-direction:column}.student-result-navigation>div{align-items:stretch;flex-direction:column}.student-result-navigation .p-button{width:100%}.student-processing-message{align-items:flex-start;flex-direction:column}.student-result-metrics,.student-output-grid{grid-template-columns:1fr}.student-result-files article{grid-template-columns:auto minmax(0,1fr)}.student-result-files article .p-button{grid-column:1 / -1;width:100%}}@media(max-width:500px){.student-result-header{align-items:start;grid-template-columns:1fr}.student-result-section-heading{align-items:flex-start;flex-direction:column}}}@layer base{.builder-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}.teacher-submissions-page,.teacher-submission-detail-page,.assignment-submissions-panel,.assignment-judge-jobs-panel{display:grid;gap:1.15rem}.teacher-submission-toolbar{display:grid;padding:1rem;align-items:center;grid-template-columns:minmax(260px,1.2fr) repeat(4,minmax(155px,auto)) auto;gap:.7rem;border-bottom:1px solid var(--pl-border)}.teacher-submission-search .p-inputtext{width:100%}.teacher-submission-toolbar .users-result-count{grid-column:1 / -1}.teacher-submission-primary{display:grid;gap:.2rem}.teacher-submission-primary span{color:var(--pl-text-muted);font-size:.8rem}.assignment-submissions-heading,.teacher-submission-navigation,.teacher-submission-navigation>div,.teacher-submission-section-heading,.manual-tests-heading,.manual-test-editor-heading{display:flex;align-items:center;gap:.75rem}.assignment-submissions-heading,.teacher-submission-navigation,.teacher-submission-section-heading,.manual-tests-heading,.manual-test-editor-heading{justify-content:space-between}.assignment-submissions-heading h3,.assignment-submissions-heading p,.manual-tests-heading h3,.manual-tests-heading p{margin:0}.assignment-submissions-heading h3,.manual-tests-heading h3{font-size:1.3rem;letter-spacing:-.025em}.assignment-submissions-heading>div>p:last-child,.manual-tests-heading p{margin-top:.35rem;color:var(--pl-text-muted);line-height:1.5}.teacher-submission-header{display:grid;padding:clamp(1.25rem,3vw,2rem);align-items:center;grid-template-columns:auto minmax(0,1fr);gap:1rem;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow)}.teacher-submission-header>span{display:grid;width:62px;height:62px;place-items:center;border-radius:18px;color:#475569;background:#f1f5f9;font-size:1.5rem}.teacher-submission-header>div>div{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem}.teacher-submission-header h2,.teacher-submission-header p{margin:0}.teacher-submission-header h2{font-size:clamp(1.8rem,3vw,2.4rem);letter-spacing:-.04em}.teacher-submission-header>div>p:last-child{margin-top:.5rem;color:var(--pl-text-muted)}.teacher-submission-header--accepted{border-color:#bbf7d0;background:linear-gradient(120deg,#f0fdf4,#fff 60%)}.teacher-submission-header--accepted>span{color:#15803d;background:#dcfce7}.teacher-submission-header--partial,.teacher-submission-header--limit{border-color:#fed7aa;background:linear-gradient(120deg,#fff7ed,#fff 60%)}.teacher-submission-header--partial>span,.teacher-submission-header--limit>span{color:#c2410c;background:#ffedd5}.teacher-submission-header--failed,.teacher-submission-header--runtime,.teacher-submission-header--internal{border-color:#fecaca;background:linear-gradient(120deg,#fef2f2,#fff 60%)}.teacher-submission-header--failed>span,.teacher-submission-header--runtime>span,.teacher-submission-header--internal>span{color:#b91c1c;background:#fee2e2}.teacher-submission-header--compile>span{color:#f8fafc;background:#1e293b}.teacher-submission-header--pending,.teacher-submission-header--running{border-color:#bfdbfe;background:linear-gradient(120deg,#eff6ff,#fff 60%)}.teacher-submission-header--pending>span,.teacher-submission-header--running>span{color:#1d4ed8;background:#dbeafe}.teacher-score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.teacher-score-grid .p-card{border:1px solid var(--pl-border);border-radius:14px;box-shadow:none}.teacher-score-grid .p-card-content{display:grid;gap:.3rem}.teacher-score-grid span{color:var(--pl-text-muted);font-size:.8rem}.teacher-score-grid strong{font-size:1rem}.teacher-output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.teacher-output-grid .p-card,.teacher-submission-section.p-card{overflow:hidden;border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.teacher-output-grid pre,.teacher-test-output pre{margin:0;overflow:auto;color:#dbeafe;background:#111827;font-family:Cascadia Code,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.teacher-output-grid pre{max-height:320px;padding:1rem;border-radius:10px}.teacher-output-grid .teacher-output-error{border-color:#fecaca}.teacher-submission-files{display:grid;gap:.65rem}.teacher-submission-files article{display:grid;padding:.8rem;align-items:center;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;border:1px solid var(--pl-border);border-radius:12px}.teacher-submission-files article>i{color:var(--pl-primary);font-size:1.2rem}.teacher-submission-files article>div{display:grid;min-width:0;gap:.2rem}.teacher-submission-files strong,.teacher-submission-files small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-submission-files small{color:var(--pl-text-muted)}.teacher-test-output{display:grid;min-width:180px;max-width:420px;gap:.4rem}.teacher-test-output pre{max-height:150px;padding:.6rem;border-radius:8px}.teacher-test-output .teacher-test-error{color:#fecaca;background:#450a0a}.teacher-test-output span{color:var(--pl-text-muted);font-size:.82rem}.manual-result-form{display:grid;margin-top:1rem;gap:1rem}.manual-output-grid,.manual-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.manual-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-tests-heading{padding-top:.5rem;border-top:1px solid var(--pl-border)}.manual-test-editor{display:grid;padding:1rem;gap:.9rem;border:1px solid var(--pl-border);border-radius:14px;background:var(--pl-surface-soft)}.manual-test-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.manual-test-name{grid-column:span 2}.manual-tests-empty{display:flex;min-height:100px;padding:1rem;align-items:center;justify-content:center;gap:.6rem;border:1px dashed #cbd5e1;border-radius:12px;color:var(--pl-text-muted);text-align:center}@media(max-width:1200px){.teacher-submission-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-submission-search{grid-column:1 / -1}.teacher-score-grid,.manual-test-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.builder-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-submission-navigation{align-items:stretch;flex-direction:column}.teacher-submission-navigation>div{align-items:stretch;flex-direction:column}.teacher-submission-navigation .p-button{width:100%}.teacher-output-grid,.manual-output-grid,.manual-preview-grid{grid-template-columns:1fr}.manual-test-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.teacher-submission-toolbar,.teacher-score-grid,.manual-test-grid{grid-template-columns:1fr}.teacher-submission-search,.teacher-submission-toolbar .users-result-count,.manual-test-name{grid-column:auto}.assignment-submissions-heading,.teacher-submission-section-heading,.manual-tests-heading{align-items:flex-start;flex-direction:column}.assignment-submissions-heading .p-button,.manual-tests-heading .p-button{width:100%}.teacher-submission-header{align-items:start;grid-template-columns:1fr}.teacher-submission-files article{grid-template-columns:auto minmax(0,1fr)}.teacher-submission-files article .p-button{grid-column:1 / -1;width:100%}}}@layer base{.admin-judge-jobs-page{display:grid;gap:1.15rem}.judge-job-page-actions,.judge-job-page-actions label{display:flex;align-items:center;gap:.75rem}.judge-job-page-actions{flex-wrap:wrap;justify-content:flex-end}.judge-job-page-actions label{color:#475569;font-size:.86rem;font-weight:700}.judge-job-count-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.judge-job-count-grid .p-card{border:1px solid var(--pl-border);border-radius:14px;box-shadow:none}.judge-job-count-grid .p-card-content{display:flex;align-items:center;gap:.75rem}.judge-job-count-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;color:#475569;background:#f1f5f9}.judge-job-count-icon--running{color:#1d4ed8;background:#dbeafe}.judge-job-count-icon--completed{color:#15803d;background:#dcfce7}.judge-job-count-icon--failed{color:#b91c1c;background:#fee2e2}.judge-job-count-grid .p-card-content>div{display:grid;gap:.15rem}.judge-job-count-grid small{color:var(--pl-text-muted);font-size:.75rem;font-weight:750;letter-spacing:.04em}.judge-job-count-grid strong{font-size:1.4rem}.judge-job-toolbar{display:grid;padding:1rem;align-items:center;grid-template-columns:minmax(300px,1fr) minmax(160px,auto) minmax(210px,auto);gap:.75rem;border-bottom:1px solid var(--pl-border)}.judge-job-search .p-inputtext{width:100%}.judge-job-toolbar .users-result-count{grid-column:1 / -1}.judge-job-identity{display:grid;gap:.2rem}.judge-job-identity span{color:var(--pl-text-muted);font-size:.78rem}.judge-job-error{display:-webkit-box;min-width:180px;max-width:360px;overflow:hidden;color:#b91c1c;font-size:.82rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:3}@media(max-width:900px){.judge-job-count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.judge-job-toolbar{grid-template-columns:1fr 1fr}.judge-job-search{grid-column:1 / -1}}@media(max-width:620px){.judge-job-page-actions,.judge-job-page-actions label{width:100%;align-items:stretch;flex-direction:column}.judge-job-page-actions .p-button{width:100%}.judge-job-count-grid,.judge-job-toolbar{grid-template-columns:1fr}.judge-job-search,.judge-job-toolbar .users-result-count{grid-column:auto}}}@layer base{*,*:before,*:after{box-sizing:border-box}html{min-width:320px;background:var(--pl-background);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}body{min-width:320px;min-height:100vh;margin:0;color:var(--pl-text);background:var(--pl-background)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}#app{min-height:100vh}:focus-visible{outline:3px solid rgb(99 102 241 / 30%);outline-offset:2px}}@layer utilities{.eyebrow{margin:0 0 .6rem;color:var(--pl-primary);font-size:.72rem;font-weight:800;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}.brand-mark{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#6366f1,#4338ca);box-shadow:0 8px 20px #4f46e547}.brand-mark--large{width:58px;height:58px;border-radius:17px;font-size:1.25rem}.icon-button{display:grid;width:40px;height:40px;padding:0;place-items:center;border:0;border-radius:10px;color:inherit;background:transparent;cursor:pointer}.icon-button:hover{background:#ffffff14}}@layer base{.auth-layout{display:grid;min-height:100vh;grid-template-columns:minmax(420px,.95fr) minmax(500px,1.05fr);background:var(--pl-surface)}.auth-brand-panel{position:relative;display:flex;min-height:100vh;padding:clamp(3rem,6vw,7rem);align-items:center;overflow:hidden;color:#fff;background:radial-gradient(circle at 85% 20%,rgb(129 140 248 / 45%),transparent 26%),radial-gradient(circle at 10% 85%,rgb(56 189 248 / 18%),transparent 24%),linear-gradient(145deg,#111827,#312e81 55%,#4338ca)}.auth-brand-content{position:relative;z-index:2;width:min(540px,100%)}.auth-brand-content .eyebrow{margin-top:2rem;color:#c7d2fe}.auth-brand-content h1{max-width:520px;margin:0;font-size:clamp(2.6rem,5vw,4.9rem);font-weight:750;letter-spacing:-.055em;line-height:.99}.auth-brand-content>p:last-child{max-width:520px;margin:1.75rem 0 0;color:#dbeafe;font-size:1.08rem;line-height:1.75}.auth-decoration{position:absolute;border:1px solid rgb(255 255 255 / 12%);border-radius:50%}.auth-decoration--one{right:-18%;bottom:-24%;width:560px;height:560px}.auth-decoration--two{top:-14%;left:-18%;width:400px;height:400px}.auth-form-panel{display:grid;min-height:100vh;padding:2rem;place-items:center;background:linear-gradient(#ffffffeb,#ffffffeb),radial-gradient(circle at center,#e0e7ff 1px,transparent 1px);background-size:auto,24px 24px}.login-card{width:min(430px,100%)}.mobile-login-brand{display:none;margin-bottom:2.5rem;align-items:center;gap:.8rem;font-size:1.2rem}.login-heading{margin-bottom:1.8rem}.login-heading h2{margin:0;font-size:clamp(1.9rem,4vw,2.45rem);letter-spacing:-.04em}.login-heading>p:last-child{margin:.8rem 0 0;color:var(--pl-text-muted);line-height:1.6}.login-form{display:grid;margin-top:1.25rem;gap:1.2rem}.form-field{display:grid;gap:.5rem}.form-field label{color:#334155;font-size:.9rem;font-weight:700}.form-field .p-inputtext,.form-field .p-password-input{min-height:48px}.login-form>.p-button{min-height:49px;margin-top:.35rem;font-weight:700}.login-help{margin:1.5rem 0 0;color:var(--pl-text-muted);font-size:.82rem;text-align:center}.app-shell{display:flex;min-height:100vh}.app-sidebar{position:fixed;z-index:40;top:0;bottom:0;left:0;display:flex;width:var(--pl-sidebar-width);padding:1.25rem 1rem;flex-direction:column;color:#e5e7eb;background:radial-gradient(circle at 20% 0%,rgb(79 70 229 / 28%),transparent 28%),var(--pl-sidebar);border-right:1px solid rgb(255 255 255 / 5%)}.sidebar-brand{display:flex;min-height:54px;padding:0 .45rem;align-items:center;gap:.8rem}.sidebar-brand>div:nth-child(2){display:grid;gap:.15rem}.sidebar-brand strong{color:#fff;font-size:1.08rem;letter-spacing:-.02em}.sidebar-brand span{color:var(--pl-sidebar-muted);font-size:.72rem}.sidebar-close{display:none;margin-left:auto}.sidebar-nav{padding:2rem 0 1rem;flex:1;overflow-y:auto;scrollbar-width:thin}.nav-group+.nav-group{margin-top:1.65rem}.nav-group-label{margin:0 0 .55rem;padding:0 .85rem;color:#64748b;font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.nav-link{display:flex;min-height:44px;padding:.7rem .85rem;align-items:center;gap:.8rem;border-radius:10px;color:#aeb9c9;font-size:.88rem;font-weight:600;text-decoration:none;transition:color .15s ease,background .15s ease,transform .15s ease}.nav-link i{width:1.2rem;color:#7c8aa0;font-size:1rem;text-align:center}.nav-link:hover{color:#fff;background:#ffffff0f;transform:translate(2px)}.nav-link.router-link-active{color:#fff;background:linear-gradient(90deg,#4f46e5cc,#4f46e57a);box-shadow:inset 0 0 0 1px #818cf833}.nav-link.router-link-active i{color:#c7d2fe}.sidebar-footer{display:flex;padding:.85rem;align-items:center;gap:.65rem;border:1px solid rgb(255 255 255 / 7%);border-radius:10px;color:#7c8aa0;font-size:.72rem;background:#ffffff08}.sidebar-overlay{display:none}.app-main{width:calc(100% - var(--pl-sidebar-width));min-height:100vh;margin-left:var(--pl-sidebar-width)}.app-topbar{position:sticky;z-index:20;top:0;display:flex;min-height:76px;padding:0 2rem;align-items:center;justify-content:space-between;gap:1.5rem;border-bottom:1px solid rgb(226 232 240 / 90%);background:#ffffffe0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar-heading{display:flex;min-width:0;align-items:center;gap:.5rem}.topbar-heading h1{margin:0;overflow:hidden;font-size:1rem;font-weight:750;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.mobile-app-name,.menu-button{display:none}.topbar-account{display:flex;min-width:0;align-items:center;gap:.7rem}.account-avatar{color:var(--pl-primary-dark);background:var(--pl-primary-soft);font-size:.8rem;font-weight:800}.account-copy{display:grid;max-width:240px;gap:.12rem}.account-copy strong{overflow:hidden;font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.account-copy span{color:var(--pl-text-muted);font-size:.7rem}.page-content{width:min(1480px,100%);margin:0 auto;padding:clamp(1.4rem,3vw,2.5rem)}.page-heading{display:flex;margin-bottom:1.75rem;align-items:flex-end;justify-content:space-between;gap:1.25rem}.page-heading h2{margin:0;font-size:clamp(1.75rem,3vw,2.35rem);letter-spacing:-.045em;line-height:1.1}.page-heading>div>p:last-child{max-width:680px;margin:.7rem 0 0;color:var(--pl-text-muted);font-size:.94rem;line-height:1.6}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.metric-card.p-card{overflow:hidden;border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow);transition:transform .16s ease,box-shadow .16s ease}.metric-card.p-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px #0f172a1a}.metric-card .p-card-body,.metric-card .p-card-content{padding:0}.metric-card-content{display:flex;min-height:132px;padding:1.35rem;align-items:center;justify-content:space-between;gap:1rem}.metric-card-content p{margin:0 0 .45rem;color:var(--pl-text-muted);font-size:.78rem;font-weight:700}.metric-card-content strong{display:block;max-width:190px;overflow:hidden;font-size:clamp(1.65rem,3vw,2rem);letter-spacing:-.05em;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.metric-icon{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;border-radius:14px;font-size:1.15rem}.metric-icon--indigo{color:#4f46e5;background:#eef2ff}.metric-icon--blue{color:#0284c7;background:#e0f2fe}.metric-icon--emerald{color:#059669;background:#d1fae5}.metric-icon--amber{color:#d97706;background:#fef3c7}.metric-icon--rose{color:#e11d48;background:#ffe4e6}.metric-icon--slate{color:#475569;background:#f1f5f9}.metric-skeleton{display:grid;min-height:134px;padding:1.35rem;align-content:center;gap:.8rem;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow)}.dashboard-error{margin:1rem 0}.error-message-content{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem}.error-message-content>div{display:grid;gap:.25rem}.error-message-content span{font-size:.82rem}.dashboard-note{display:flex;margin-top:1.25rem;padding:1.2rem 1.35rem;align-items:center;gap:1rem;border:1px solid #dbeafe;border-radius:14px;background:linear-gradient(120deg,#eff6ff,#eef2ff)}.dashboard-note-icon{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border-radius:12px;color:#4f46e5;background:#ffffffbf}.dashboard-note strong{font-size:.85rem}.dashboard-note p{margin:.25rem 0 0;color:#64748b;font-size:.78rem;line-height:1.5}.users-panel{overflow:hidden;border:1px solid var(--pl-border);border-radius:var(--pl-radius);background:var(--pl-surface);box-shadow:var(--pl-shadow)}.users-toolbar{display:grid;padding:1rem 1.15rem;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:.85rem;border-bottom:1px solid var(--pl-border)}.user-search{width:min(420px,100%)}.user-search .p-inputtext{width:100%}.user-filters,.users-result-count,.row-actions,.role-tags{display:flex;align-items:center}.user-filters{gap:.6rem}.user-filters .p-select{min-width:135px}.users-result-count{justify-content:flex-end;gap:.35rem;color:var(--pl-text-muted);font-size:.75rem;white-space:nowrap}.users-result-count strong{color:var(--pl-text);font-size:.85rem}.users-table .p-datatable-header-cell{color:#64748b;background:#f8fafc;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.users-table .p-datatable-tbody>tr>td{padding-top:.9rem;padding-bottom:.9rem}.user-identity{display:flex;min-width:235px;align-items:center;gap:.75rem}.user-avatar{flex:0 0 auto;color:#4338ca;background:#eef2ff;font-size:.72rem;font-weight:800}.user-identity>div{display:grid;min-width:0;gap:.2rem}.user-identity strong{overflow:hidden;font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.user-identity span,.created-date{color:var(--pl-text-muted);font-size:.75rem}.role-tags{min-width:180px;flex-wrap:wrap;gap:.35rem}.role-tags .p-tag{font-size:.64rem}.row-actions{justify-content:flex-end;gap:.05rem}.table-empty-state{display:grid;padding:3.5rem 1rem;justify-items:center;gap:.7rem;text-align:center}.table-empty-state>div{display:grid;width:64px;height:64px;margin-bottom:.4rem;place-items:center;border-radius:18px;color:#4f46e5;background:#eef2ff;font-size:1.4rem}.table-empty-state strong{font-size:1rem}.table-empty-state span{margin-bottom:.5rem;color:var(--pl-text-muted);font-size:.8rem}.dialog-description{margin:0 0 1.35rem;color:var(--pl-text-muted);font-size:.86rem;line-height:1.6}.dialog-form{display:grid;gap:1.1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.form-error{color:#dc2626;font-size:.72rem}.form-hint{color:var(--pl-text-muted);font-size:.7rem}.users-load-error{margin:0}.entity-primary{display:grid;min-width:170px;max-width:300px;gap:.2rem}.entity-primary strong{overflow:hidden;font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.entity-primary span{overflow:hidden;color:var(--pl-text-muted);font-size:.74rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.offering-toolbar{display:grid;padding:1rem 1.15rem;grid-template-columns:minmax(260px,1fr) repeat(3,minmax(130px,auto)) auto auto;align-items:center;gap:.65rem;border-bottom:1px solid var(--pl-border)}.dependency-warning{margin-bottom:1rem}.toggle-field{align-content:end}.toggle-field>span{color:#334155;font-size:.9rem;font-weight:700}.toggle-field>div{display:flex;min-height:43px;align-items:center;gap:.65rem}.toggle-field label{color:var(--pl-text-muted);font-size:.82rem;font-weight:600}.data-tool-warning{margin-bottom:1.25rem}.data-tool-warning .p-message-text{line-height:1.55}.csv-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.csv-tool-card.p-card,.snapshot-card.p-card,.restore-result-card.p-card{border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.csv-tool-card .p-card-content,.snapshot-card .p-card-content{display:grid;gap:1.1rem}.data-tool-heading{display:flex;align-items:flex-start;gap:.9rem}.data-tool-heading h3,.restore-result-heading h3{margin:0;font-size:1.05rem;letter-spacing:-.025em}.data-tool-heading p{margin:.3rem 0 0;color:var(--pl-text-muted);font-size:.8rem;line-height:1.55}.data-tool-icon{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:13px;color:#4f46e5;background:#eef2ff}.data-tool-icon--download{color:#0284c7;background:#e0f2fe}.data-tool-icon--restore{color:#d97706;background:#fef3c7}.format-hint{display:grid;padding:.85rem;gap:.35rem;overflow:hidden;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc}.format-hint span{color:#64748b;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.format-hint code,.data-tools-note code{overflow:hidden;color:#334155;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.file-picker{display:flex;min-height:72px;padding:.85rem;align-items:center;gap:.75rem;border:1px dashed #cbd5e1;border-radius:12px;background:#fbfdff;cursor:pointer;transition:border-color .15s ease,background .15s ease}.file-picker:hover{border-color:#818cf8;background:#f8faff}.file-picker>i{color:#6366f1;font-size:1.15rem}.file-picker>span:nth-child(2){display:grid;min-width:0;flex:1;gap:.15rem}.file-picker strong,.file-picker small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker strong{font-size:.78rem}.file-picker small{color:var(--pl-text-muted);font-size:.68rem}.file-picker-action{color:#4f46e5;font-size:.75rem;font-weight:800}.visually-hidden-file{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}.import-result{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid var(--pl-border);border-radius:11px}.import-result>div{display:grid;min-height:66px;place-content:center;justify-items:center}.import-result>div+div{border-left:1px solid var(--pl-border)}.import-result strong{font-size:1.05rem}.import-result span{color:var(--pl-text-muted);font-size:.65rem}.import-error-list{max-height:180px;margin:0;padding:.75rem .75rem .75rem 2rem;overflow-y:auto;border:1px solid #fecaca;border-radius:10px;color:#991b1b;background:#fef2f2;font-size:.72rem;line-height:1.6}.data-tool-actions{display:flex;margin-top:auto;justify-content:flex-end;gap:.6rem}.data-tools-note{display:flex;margin-top:1rem;padding:1rem 1.15rem;align-items:flex-start;gap:.75rem;border:1px solid #dbeafe;border-radius:12px;color:#475569;background:#eff6ff}.data-tools-note>i{margin-top:.15rem;color:#4f46e5}.data-tools-note p{margin:0;font-size:.76rem;line-height:1.6}.snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.snapshot-card .p-card-content{height:100%;align-content:start}.snapshot-card .p-button{align-self:end;justify-self:start}.snapshot-card--restore{border-color:#fed7aa!important}.snapshot-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.snapshot-scope span{display:flex;align-items:center;gap:.45rem;color:#475569;font-size:.74rem}.snapshot-scope i{width:1rem;color:#6366f1;text-align:center}.restore-result-card{margin-top:1rem}.restore-result-heading{display:flex;margin-bottom:1rem;align-items:center;justify-content:space-between;gap:1rem}.restore-result-heading>span{padding:.35rem .65rem;border-radius:999px;color:#047857;background:#d1fae5;font-size:.68rem;font-weight:800}.restore-result-heading>span.restore-has-errors{color:#b45309;background:#fef3c7}.restore-count-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;border:1px solid var(--pl-border);border-radius:12px}.restore-count-grid>div{display:grid;min-height:82px;place-content:center;justify-items:center}.restore-count-grid>div+div{border-left:1px solid var(--pl-border)}.restore-count-grid strong{font-size:1.25rem}.restore-count-grid span{color:var(--pl-text-muted);font-size:.68rem}.restore-result-card .import-error-list{margin-top:1rem}.task-toolbar{display:grid;padding:1rem 1.15rem;grid-template-columns:minmax(260px,1fr) repeat(4,minmax(125px,auto)) auto auto;align-items:center;gap:.6rem;border-bottom:1px solid var(--pl-border)}.task-title-link{display:grid;min-width:240px;max-width:390px;padding:0;gap:.2rem;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.task-title-link strong{font-size:.87rem}.task-title-link:hover strong{color:var(--pl-primary);text-decoration:underline;text-underline-offset:3px}.task-title-link span,.muted-table-text{overflow:hidden;color:var(--pl-text-muted);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.task-group-tags{display:flex;max-width:260px;flex-wrap:wrap;align-items:center;gap:.3rem}.task-group-tags .p-tag{font-size:.62rem}.task-group-tags em{color:var(--pl-text-muted);font-size:.72rem;font-style:normal}.version-chip{display:inline-flex;min-width:34px;padding:.25rem .45rem;justify-content:center;border-radius:7px;color:#4338ca;background:#eef2ff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;font-weight:800}.task-metadata-grid{display:grid;grid-template-columns:minmax(280px,1fr) 160px 180px;gap:.9rem}.task-editor-grid,.task-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field-label{color:#334155;font-size:.9rem;font-weight:700}.code-textarea{min-height:330px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.55;resize:vertical}.markdown-preview{min-height:330px;max-height:480px;padding:1.25rem;overflow:auto;border:1px solid var(--pl-border);border-radius:12px;color:#334155;background:#fbfdff}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{margin:1.1rem 0 .55rem;color:var(--pl-text);letter-spacing:-.025em}.markdown-preview h1:first-child,.markdown-preview h2:first-child,.markdown-preview h3:first-child{margin-top:0}.markdown-preview h1{font-size:1.55rem}.markdown-preview h2{font-size:1.25rem}.markdown-preview h3{font-size:1rem}.markdown-preview p,.markdown-list-item{margin:.45rem 0;font-size:.84rem;line-height:1.7;white-space:pre-wrap}.markdown-list-item{display:flex;gap:.55rem}.markdown-list-item span{color:var(--pl-primary);font-weight:900}.markdown-preview pre{padding:.9rem;overflow-x:auto;border-radius:9px;color:#e2e8f0;background:#172033;font-size:.75rem;line-height:1.55}.markdown-empty{color:var(--pl-text-muted);font-style:italic}.task-detail-loading{display:flex;min-height:380px;align-items:center;justify-content:center;gap:.75rem;color:var(--pl-text-muted)}.task-detail-header{display:grid;margin-bottom:1.5rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.8rem}.task-detail-title h2{margin:.55rem 0 0;font-size:clamp(1.8rem,4vw,2.5rem);letter-spacing:-.045em}.task-detail-title>p{max-width:720px;margin:.55rem 0 0;color:var(--pl-text-muted);line-height:1.55}.task-badges,.task-detail-actions{display:flex;flex-wrap:wrap;gap:.45rem}.task-detail-actions{justify-content:flex-end}.task-summary-grid{display:grid;margin-bottom:1rem;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.task-summary-grid .p-card{border:1px solid var(--pl-border);border-radius:13px;box-shadow:none}.task-summary-grid .p-card-content{display:grid;padding:0;gap:.3rem}.task-summary-grid .p-card-content>span{color:var(--pl-text-muted);font-size:.68rem;font-weight:700}.task-summary-grid .p-card-content>strong{overflow:hidden;font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.task-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);align-items:start;gap:1rem}.task-statement-card.p-card,.task-side-panels .p-card,.task-versions-card.p-card{border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.task-statement-card .markdown-preview,.task-side-panels .markdown-preview{min-height:0;max-height:none;padding:0;border:0;background:transparent}.task-side-panels{display:grid;gap:.75rem}.task-side-panels .p-card-title,.task-statement-card .p-card-title,.task-versions-card .p-card-title{font-size:1rem}.task-versions-card{margin-top:1rem}.task-versions-card .version-chip{margin-right:.5rem}.version-form{margin-top:1rem}.task-detail-tabs{display:flex;margin-bottom:1rem;padding:.3rem;gap:.25rem;border:1px solid var(--pl-border);border-radius:12px;background:#f8fafc}.task-detail-tabs button{display:inline-flex;min-height:38px;padding:.55rem .9rem;align-items:center;gap:.5rem;border:0;border-radius:9px;color:var(--pl-text-muted);background:transparent;font-size:.8rem;font-weight:750;cursor:pointer}.task-detail-tabs button:hover{color:var(--pl-text);background:#fff}.task-detail-tabs .task-detail-tab--active{color:#4338ca;background:#fff;box-shadow:0 2px 8px #0f172a14}.test-panel-heading{display:flex;margin-bottom:1rem;align-items:flex-end;justify-content:space-between;gap:1rem}.test-panel-heading h3{margin:0;font-size:1.55rem;letter-spacing:-.035em}.test-panel-heading>div:first-child>p:last-child{margin:.45rem 0 0;color:var(--pl-text-muted);font-size:.82rem;line-height:1.55}.test-panel-summary{display:flex;align-items:center;gap:.65rem}.test-panel-summary>span{color:var(--pl-text-muted);font-size:.72rem;font-weight:700}.visibility-guide{display:grid;margin-bottom:1rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid var(--pl-border);border-radius:12px;background:#fff}.visibility-guide>div{display:flex;min-height:68px;padding:.8rem .95rem;align-items:center;gap:.65rem}.visibility-guide>div+div{border-left:1px solid var(--pl-border)}.visibility-guide span{color:var(--pl-text-muted);font-size:.72rem;line-height:1.4}.visibility-guide--public{background:#f0fdf4}.visibility-guide--hidden{background:#fffbeb}.visibility-guide--internal{background:#fff1f2}.tests-empty-state{display:grid;min-height:290px;padding:2rem;place-content:center;justify-items:center;border:1px dashed #cbd5e1;border-radius:var(--pl-radius);background:#fff;text-align:center}.tests-empty-state>div{display:grid;width:64px;height:64px;margin-bottom:.85rem;place-items:center;border-radius:18px;color:#4f46e5;background:#eef2ff;font-size:1.4rem}.tests-empty-state h4{margin:0;font-size:1.05rem}.tests-empty-state p{margin:.45rem 0 1rem;color:var(--pl-text-muted);font-size:.8rem}.test-group-list{display:grid;gap:.85rem}.test-group-card.p-card{overflow:hidden;border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.test-group-card .p-card-body,.test-group-card .p-card-content{padding:0}.test-group-header{display:grid;padding:1rem 1.15rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;border-bottom:1px solid var(--pl-border);background:#fbfdff}.test-group-order{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;color:#4338ca;background:#eef2ff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;font-weight:800}.test-group-title>div{display:flex;align-items:center;gap:.55rem}.test-group-title h4{margin:0;font-size:.95rem}.test-group-title p{margin:.3rem 0 0;color:var(--pl-text-muted);font-size:.7rem}.test-group-actions{display:flex;align-items:center;gap:.1rem}.test-cases-table .p-datatable-header-cell{color:#64748b;background:#fff;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.test-cases-table .p-datatable-tbody>tr>td{padding-top:.75rem;padding-bottom:.75rem}.test-cases-empty{display:flex;min-height:80px;align-items:center;justify-content:center;gap:.4rem;color:var(--pl-text-muted);font-size:.75rem}.test-number-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:.9rem}.test-case-form{margin-top:1rem}.test-case-metadata-grid{display:grid;grid-template-columns:minmax(240px,1fr) 180px 160px;gap:.9rem}.test-io-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.test-data-textarea{min-height:190px}.test-checker-textarea{min-height:80px}.test-number-grid--case{grid-template-columns:repeat(5,minmax(0,1fr))}.hint-info,.variant-explanation{margin-bottom:1rem}.hint-list{display:grid;gap:.85rem}.hint-card.p-card,.template-summary-card.p-card,.template-variables-card.p-card{border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.hint-card .p-card-content{display:grid;padding:0;gap:1rem}.hint-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem}.hint-title-line{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.hint-title-line h4{margin:0;font-size:.98rem}.hint-card-header>div:nth-child(2)>p{margin:.3rem 0 0;color:var(--pl-text-muted);font-size:.72rem}.hint-card .markdown-preview{min-height:0;max-height:none;padding:.9rem 1rem;background:#f8fafc}.hint-mode-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;color:var(--pl-text-muted);font-size:.68rem}.hint-author{margin-left:auto}.hint-metadata-grid{display:grid;grid-template-columns:minmax(260px,1fr) 220px 120px;gap:.9rem}.hint-mode-editor{display:flex;padding:.9rem;align-items:center;gap:1rem;border:1px solid var(--pl-border);border-radius:12px;background:#f8fafc}.hint-mode-editor>div:first-child{display:grid;min-width:150px;gap:.2rem}.hint-mode-editor>div:first-child>span{font-size:.8rem;font-weight:750}.hint-mode-editor>label{display:flex;align-items:center;gap:.45rem;color:#475569;font-size:.74rem;font-weight:650}.template-summary-card{margin-bottom:.85rem}.template-summary-card .p-card-content{display:grid;padding:0;gap:1rem}.template-summary{display:flex;align-items:center;gap:.9rem}.template-summary>div:nth-child(2){flex:1}.template-summary>div:nth-child(2)>div{display:flex;align-items:center;gap:.55rem}.template-summary h4{margin:0;font-size:1rem}.template-summary p{margin:.35rem 0 0;color:var(--pl-text-muted);font-size:.72rem;line-height:1.5}.placeholder-list{display:flex;min-height:44px;padding:.65rem .8rem;flex-wrap:wrap;align-items:center;gap:.45rem;border:1px solid var(--pl-border);border-radius:10px;background:#f8fafc}.placeholder-list>span{margin-right:.25rem;color:var(--pl-text-muted);font-size:.7rem}.placeholder-list code,.variable-placeholder{padding:.25rem .4rem;border-radius:6px;color:#4338ca;background:#eef2ff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;font-weight:750}.placeholder-list em{color:var(--pl-text-muted);font-size:.7rem;font-style:italic}.template-variables-card .p-card-title{font-size:1rem}.variable-config{display:block;max-width:420px;overflow:hidden;color:#475569;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.compact-loading{min-height:120px}.preview-unavailable{margin-top:.85rem}.template-enabled-row{display:flex;min-height:54px;padding:.8rem;align-items:center;gap:.65rem;border:1px solid var(--pl-border);border-radius:10px;background:#f8fafc}.template-enabled-row label{color:#475569;font-size:.8rem;font-weight:700}.variable-decimal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.form-grid-error{grid-column:1 / -1}.placeholder-card.p-card{border:1px solid var(--pl-border);border-radius:var(--pl-radius);box-shadow:var(--pl-shadow)}.placeholder-card .p-card-content{padding:clamp(1rem,3vw,2rem)}.placeholder-content{display:grid;grid-template-columns:120px minmax(0,640px);align-items:center;justify-content:center;gap:clamp(1.5rem,5vw,4rem)}.placeholder-icon{display:grid;width:120px;height:120px;place-items:center;border:1px solid #dbeafe;border-radius:30px;color:var(--pl-primary);background:radial-gradient(circle at 30% 20%,#fff,transparent 30%),linear-gradient(145deg,#eff6ff,#eef2ff);font-size:2.4rem;transform:rotate(-3deg)}.status-pill{display:inline-flex;padding:.4rem .65rem;align-items:center;gap:.4rem;border-radius:999px;color:#4338ca;background:#eef2ff;font-size:.7rem;font-weight:800}.placeholder-content h3{margin:1rem 0 0;font-size:clamp(1.35rem,3vw,1.8rem);letter-spacing:-.035em}.placeholder-content p{margin:.8rem 0 1.35rem;color:var(--pl-text-muted);line-height:1.7}.error-page{display:grid;width:min(600px,calc(100% - 2rem));min-height:100vh;margin:0 auto;padding:4rem 1rem;place-content:center;justify-items:center;text-align:center}.error-illustration{display:grid;width:110px;height:110px;margin-bottom:1.75rem;place-items:center;border-radius:32px;color:var(--pl-primary);background:#eef2ff;box-shadow:inset 0 0 0 1px #e0e7ff;font-size:2.4rem;transform:rotate(-4deg)}.error-illustration--warning{color:#d97706;background:#fffbeb;box-shadow:inset 0 0 0 1px #fde68a}.error-page h1{margin:0;font-size:clamp(2rem,6vw,3.4rem);letter-spacing:-.055em;line-height:1.05}.error-page>p:not(.eyebrow){max-width:500px;margin:1rem 0 1.75rem;color:var(--pl-text-muted);line-height:1.7}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.account-copy{display:none}.users-toolbar{grid-template-columns:minmax(220px,1fr) auto}.users-result-count{grid-column:1 / -1;justify-content:flex-start}.offering-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.offering-toolbar .user-search{grid-column:span 2}.offering-toolbar .users-result-count{grid-column:auto}.task-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.task-toolbar .user-search{grid-column:span 2}.task-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.task-detail-grid{grid-template-columns:1fr}.test-number-grid--case{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.auth-layout{grid-template-columns:1fr}.auth-brand-panel{display:none}.mobile-login-brand{display:flex}.app-sidebar{width:min(310px,86vw);transform:translate(-105%);transition:transform .2s ease}.app-sidebar--open{transform:translate(0);box-shadow:18px 0 48px #0f172a4d}.sidebar-close{display:grid}.sidebar-overlay{position:fixed;z-index:30;inset:0;display:block;background:#0f172a7a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app-main{width:100%;margin-left:0}.menu-button,.mobile-app-name{display:inline-flex}.mobile-app-name{margin-bottom:.1rem;color:var(--pl-primary);font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.csv-tool-grid,.snapshot-grid{grid-template-columns:1fr}.restore-count-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.restore-count-grid>div+div{border-left:0}.restore-count-grid>div{border-bottom:1px solid var(--pl-border)}.task-detail-header{grid-template-columns:auto minmax(0,1fr)}.task-detail-actions{grid-column:1 / -1;justify-content:flex-start}.task-metadata-grid{grid-template-columns:1fr 1fr}.task-title-field{grid-column:1 / -1}.task-editor-grid,.visibility-guide{grid-template-columns:1fr}.visibility-guide>div+div{border-top:1px solid var(--pl-border);border-left:0}.test-case-metadata-grid{grid-template-columns:1fr 1fr}.test-case-name-field{grid-column:1 / -1}.test-io-grid{grid-template-columns:1fr}.hint-metadata-grid{grid-template-columns:1fr 1fr}.hint-title-field{grid-column:1 / -1}.hint-mode-editor{align-items:flex-start;flex-wrap:wrap}}@media(max-width:620px){.auth-form-panel{padding:1.35rem;place-items:start center}.login-card{margin-top:8vh}.app-topbar{min-height:68px;padding:0 .85rem}.topbar-account{gap:.3rem}.topbar-account .p-tag{display:none}.page-content{padding:1.25rem 1rem 2rem}.page-heading{align-items:flex-start;flex-direction:column}.page-heading>.p-button{align-self:stretch}.metric-grid,.users-toolbar{grid-template-columns:1fr}.user-search{width:100%}.user-filters{align-items:stretch;flex-direction:column}.user-filters .p-select{width:100%}.users-result-count{grid-column:auto}.offering-toolbar{grid-template-columns:1fr}.offering-toolbar .user-search,.offering-toolbar .users-result-count{grid-column:auto}.offering-toolbar .p-select{width:100%}.form-grid{grid-template-columns:1fr}.data-tool-actions{align-items:stretch;flex-direction:column-reverse}.data-tool-actions .p-button,.snapshot-card .p-button{width:100%}.snapshot-scope,.restore-count-grid{grid-template-columns:1fr}.restore-result-heading{align-items:flex-start;flex-direction:column}.task-toolbar,.task-metadata-grid,.task-content-grid,.task-summary-grid{grid-template-columns:1fr}.task-toolbar .user-search,.task-title-field{grid-column:auto}.task-toolbar .p-select{width:100%}.task-detail-header{grid-template-columns:auto minmax(0,1fr)}.task-detail-actions .p-button:not(.p-button-icon-only){width:100%}.test-panel-heading,.test-panel-summary{align-items:flex-start;flex-direction:column}.test-panel-summary .p-button{width:100%}.test-group-header{grid-template-columns:auto minmax(0,1fr)}.test-group-actions{grid-column:1 / -1;justify-content:flex-end}.test-number-grid,.test-case-metadata-grid,.test-number-grid--case{grid-template-columns:1fr}.test-case-name-field{grid-column:auto}.hint-card-header{grid-template-columns:auto minmax(0,1fr)}.hint-card-header .row-actions{grid-column:1 / -1}.hint-author{width:100%;margin-left:0}.hint-metadata-grid,.variable-decimal-grid{grid-template-columns:1fr}.hint-title-field{grid-column:auto}.hint-mode-editor{align-items:stretch;flex-direction:column}.metric-card-content{min-height:116px}.error-message-content,.dashboard-note{align-items:flex-start}.error-message-content{flex-direction:column}.placeholder-content{grid-template-columns:1fr;justify-items:start}.placeholder-icon{width:86px;height:86px;border-radius:24px;font-size:1.8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer base{.form-field label,.toggle-field>span{color:#334155;font-size:.84rem;font-weight:750}@media(max-width:620px){.account-copy{display:none}.page-heading>:last-child:not(:first-child){width:100%}.page-heading>:last-child:not(:first-child) .p-button,.page-heading>:last-child:not(:first-child).p-button{width:100%}}}@layer base{.teacher-shell{--pl-sidebar: #292d32;--pl-background: #edf2f6;background:var(--pl-background)}.teacher-shell .app-sidebar{border-right-color:#ffffff12;background:linear-gradient(180deg,#2c3035,#23272c)}.teacher-shell .brand-mark{color:#dce8f1;background:#41474e}.teacher-shell .nav-link{color:#c6cdd4}.teacher-shell .nav-link i{color:#9faab5}.teacher-shell .nav-link.router-link-active{color:#fff;background:#3b4650;box-shadow:inset 3px 0 #9cc5df}.teacher-shell .nav-link.router-link-active i{color:#cfe8f8}.teacher-shell .nav-link:before{display:none}.teacher-shell .app-main{background:var(--pl-background)}.teacher-shell .app-topbar{background:#f8fafceb}.teacher-shell .page-content{width:min(1480px,100%)}.teacher-page{display:grid;gap:1.35rem;color:#253142}.teacher-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.teacher-heading-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.teacher-page-header h2,.teacher-class-detail-header h2{margin:0;color:#202b39;font-size:clamp(1.8rem,3vw,2.45rem);letter-spacing:-.045em}.teacher-page-header p:last-child,.teacher-class-detail-header p:last-child{margin:.45rem 0 0;color:#68768a;line-height:1.55}.teacher-kicker{margin:0 0 .25rem;color:#4f7790;font-size:.7rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.teacher-state{display:flex;min-height:150px;padding:1.5rem;align-items:center;justify-content:center;gap:.7rem;border:1px dashed #c8d3dd;border-radius:18px;color:#68768a;background:#ffffff94}.teacher-state--error,.teacher-form-error{color:#a53b32;border-color:#edc8c4;background:#fff7f6}.teacher-section{padding:1.15rem;border:1px solid #d7e0e8;border-radius:18px;background:#fbfcfd;box-shadow:0 8px 26px #2837480d}.teacher-section>header,.teacher-assignment-section>header{display:flex;margin-bottom:1rem;align-items:center;justify-content:space-between;gap:1rem}.teacher-section h3,.teacher-assignment-section h3{margin:0;color:#273445;font-size:1.08rem}.teacher-section header p,.teacher-assignment-section header p{margin:.25rem 0 0;color:#788597;font-size:.8rem}.teacher-section>header>span,.teacher-assignment-section>header>span{color:#718093;font-size:.78rem;font-weight:700}.teacher-today-list,.teacher-simple-list{display:grid}.teacher-today-list button,.teacher-simple-list button{display:grid;width:100%;padding:.85rem 0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;border:0;border-bottom:1px solid #e5eaef;color:inherit;background:transparent;font:inherit;text-align:left;cursor:pointer}.teacher-today-list button:last-child,.teacher-simple-list button:last-child{border-bottom:0}.teacher-today-list button:hover strong,.teacher-simple-list button:hover strong{color:#315f7d}.teacher-today-list button>span:nth-child(2),.teacher-simple-list button>span:nth-child(2){display:grid;gap:.2rem}.teacher-today-list small,.teacher-simple-list small{color:#748195}.teacher-event-icon,.teacher-assignment-icon,.teacher-person-avatar{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:12px;color:#426f8b;background:#e4f0f6;font-weight:800}.teacher-event-icon.deadline,.teacher-event-icon.attention{color:#9a5e25;background:#f8ead8}.teacher-event-icon.open{color:#356d60;background:#e0f0eb}.teacher-empty-inline{display:flex;min-height:64px;padding:1rem;align-items:center;justify-content:center;gap:.5rem;border:1px dashed #d0dae3;border-radius:12px;color:#7a8798;background:#f7f9fb;text-align:center}.teacher-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.teacher-class-grid--wide{grid-template-columns:repeat(3,minmax(260px,1fr))}.teacher-class-card{display:grid;padding:1.15rem;gap:.85rem;border:1px solid #d6e0e8;border-radius:18px;background:#fff;box-shadow:0 8px 24px #2b3b4b0d}.teacher-class-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.teacher-class-avatar{display:grid;min-width:64px;height:54px;padding-inline:.7rem;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(145deg,#416a83,#304f63);box-shadow:0 7px 18px #304f632e;font-size:1.15rem;font-weight:850}.teacher-class-avatar--large{min-width:74px;height:66px;font-size:1.3rem}.teacher-class-card h3,.teacher-class-card h4{margin:0;color:#253142;font-size:1.05rem}.teacher-class-card dl,.teacher-class-stats{display:grid;margin:0;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid #e5eaef}.teacher-class-card dl>div{display:grid;padding:.75rem .35rem;justify-items:center;gap:.15rem}.teacher-class-card dt{color:#7a8798;font-size:.68rem}.teacher-class-card dd{margin:0;font-size:1rem;font-weight:800}.teacher-class-card p{margin:0;color:#708094;font-size:.78rem}.teacher-class-card p i{margin-right:.35rem}.teacher-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.teacher-quick-grid button{display:flex;padding:1rem;align-items:center;gap:.75rem;border:1px solid #d9e2e9;border-radius:14px;color:inherit;background:#fff;font:inherit;text-align:left;cursor:pointer}.teacher-quick-grid button:hover{border-color:#9fbdcf;background:#f7fbfd}.teacher-quick-grid button>i{color:#497791;font-size:1.2rem}.teacher-quick-grid button>span{display:grid;gap:.18rem}.teacher-quick-grid small{color:#788597}.teacher-summary-strip{display:flex;padding:.85rem 1rem;flex-wrap:wrap;gap:1.6rem;border:1px solid #d7e0e8;border-radius:14px;color:#6d7b8e;background:#f9fbfc;font-size:.82rem}.teacher-summary-strip strong{margin-right:.25rem;color:#293749;font-size:1rem}.teacher-class-detail-header{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:1rem}.teacher-builder-header{grid-template-columns:auto minmax(0,1fr)}.teacher-tabs{display:flex;padding:.4rem;overflow-x:auto;gap:.2rem;border:1px solid #d6e0e8;border-radius:14px;background:#f8fafc}.teacher-tabs button{display:inline-flex;min-height:40px;padding:.6rem .9rem;align-items:center;gap:.45rem;border:0;border-radius:10px;color:#667589;background:transparent;font:inherit;font-size:.8rem;font-weight:750;white-space:nowrap;cursor:pointer}.teacher-tabs button.active{color:#2f607e;background:#fff;box-shadow:0 2px 8px #1e304114}.teacher-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.teacher-metric-grid article{display:flex;padding:1rem;align-items:center;gap:.8rem;border:1px solid #d7e0e8;border-radius:15px;background:#fff}.teacher-metric-grid article>span{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;color:#426f8b;background:#e3eff6}.teacher-metric-grid article>span.purple{color:#695a8b;background:#eee9f6}.teacher-metric-grid article>span.green{color:#376f61;background:#e0f0eb}.teacher-metric-grid article>span.orange{color:#925f2d;background:#f7eadb}.teacher-metric-grid article>div{display:grid;gap:.1rem}.teacher-metric-grid small{color:#788597}.teacher-metric-grid strong{font-size:1.3rem}.teacher-detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:1rem}.teacher-attention-list{display:grid;gap:.55rem}.teacher-attention-list>div{display:flex;min-height:50px;align-items:center;gap:.65rem}.teacher-attention-list strong{flex:1}.teacher-person-avatar{width:38px;height:38px;border-radius:50%}.teacher-assignment-section{display:grid;gap:.65rem}.teacher-assignment-section>header{margin:0}.teacher-assignment-list{display:grid;overflow:hidden;border:1px solid #d8e1e8;border-radius:16px;background:#fbfcfd}.teacher-assignment-list>.teacher-empty-inline{margin:.85rem}.teacher-assignment-card{display:grid;padding:1rem;grid-template-columns:auto minmax(240px,1fr) auto minmax(190px,auto);align-items:center;gap:1rem;border-bottom:1px solid #e3e9ee}.teacher-assignment-card:last-child{border-bottom:0}.teacher-assignment-copy{min-width:0}.teacher-assignment-copy small,.teacher-assignment-copy p{color:#778597;font-size:.76rem}.teacher-assignment-copy h4{margin:.3rem 0;font-size:.98rem}.teacher-assignment-copy p{margin:0}.teacher-assignment-card dl{display:grid;margin:0;grid-template-columns:repeat(2,minmax(72px,1fr));gap:.5rem}.teacher-assignment-card dl>div{display:grid;gap:.15rem}.teacher-assignment-card dt{color:#8390a0;font-size:.68rem}.teacher-assignment-card dd{margin:0;font-weight:800}.teacher-card-actions{display:flex;max-width:240px;flex-wrap:wrap;justify-content:flex-end;gap:.25rem}.teacher-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.teacher-student-grid article{display:flex;padding:.85rem;align-items:center;gap:.65rem;border:1px solid #e0e6ec;border-radius:13px;background:#fff}.teacher-student-grid article>div{display:grid;min-width:0;gap:.15rem}.teacher-student-grid small{overflow:hidden;color:#7b8798;text-overflow:ellipsis}.teacher-timeline{display:grid;gap:.55rem}.teacher-timeline button{display:grid;padding:.8rem;grid-template-columns:150px minmax(0,1fr) auto;gap:.75rem;border:1px solid #e0e6ec;border-radius:12px;color:inherit;background:#fff;font:inherit;text-align:left;cursor:pointer}.teacher-timeline span,.teacher-timeline small{color:#778597;font-size:.76rem}.teacher-message-cta,.teacher-settings-note{display:flex;padding:1.5rem;align-items:center;gap:1rem}.teacher-message-cta>i{color:#497791;font-size:2rem}.teacher-message-cta>div,.teacher-settings-note>div{flex:1}.teacher-message-cta p,.teacher-settings-note p{margin:.35rem 0 0;color:#718094}.teacher-search{position:relative;max-width:480px}.teacher-search>i{position:absolute;z-index:1;top:50%;left:.85rem;color:#8490a0;transform:translateY(-50%)}.teacher-search .p-inputtext{width:100%;padding-left:2.45rem}.teacher-calendar-legend{display:flex;flex-wrap:wrap;gap:.9rem;color:#6e7b8d;font-size:.76rem}.teacher-calendar-legend span{display:inline-flex;align-items:center;gap:.35rem}.teacher-calendar-legend span:before{width:9px;height:9px;border-radius:50%;background:#5f8ca8;content:""}.teacher-calendar-legend .deadline:before{background:#d1904f}.teacher-calendar-legend .exam:before{background:#8a6ca7}.teacher-calendar-event.open{color:#2f617d;background:#dfedf5}.teacher-calendar-event.deadline{color:#835324;background:#f8e8d7}.teacher-calendar-event.exam{color:#624b7b;background:#eee7f5}.deadline-type.open{color:#2f617d;background:#dfedf5}.deadline-type.deadline{color:#835324;background:#f8e8d7}.deadline-type.exam{color:#624b7b;background:#eee7f5}.teacher-builder{display:grid;gap:1rem}.teacher-builder-step{display:grid;padding:1.2rem;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;border:1px solid #d6e0e8;border-radius:18px;background:#fff;box-shadow:0 8px 24px #2b3b4b0a}.teacher-step-number{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#fff;background:#416a83;font-weight:850}.teacher-step-content{display:grid;gap:1rem}.teacher-step-content>header h3{margin:0}.teacher-step-content>header p{margin:.3rem 0 0;color:#748195;font-size:.82rem}.teacher-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.teacher-choice-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-choice-grid button{display:flex;min-height:70px;padding:.85rem;align-items:center;gap:.65rem;border:1px solid #d8e1e8;border-radius:13px;color:#526174;background:#f9fbfc;font:inherit;cursor:pointer}.teacher-choice-grid button.active{border-color:#75a0ba;color:#315e79;background:#edf6fb;box-shadow:inset 0 0 0 1px #75a0ba}.teacher-choice-grid button i{font-size:1.1rem}.teacher-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.85rem}.teacher-form-grid--action{grid-template-columns:minmax(0,1fr) auto}.teacher-form-grid label{display:grid;gap:.4rem}.teacher-form-grid label>span{color:#405064;font-size:.78rem;font-weight:750}.teacher-form-grid .full{grid-column:1 / -1}.teacher-builder-actions{display:flex;justify-content:flex-end;gap:.65rem}.teacher-builder-publish{border-color:#b8d0df;background:#f6fbfd}.teacher-assignment-overview{gap:1.6rem}.teacher-assignment-overview-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem}.teacher-assignment-overview-header h2{margin:0;color:#202b39;font-size:clamp(1.8rem,3vw,2.45rem);letter-spacing:-.045em}.teacher-assignment-overview-header p:last-child{margin:.4rem 0 0;color:#68768a}.teacher-results-first{border-color:#b9d2e0;background:#f8fcfe}.teacher-submission-results{display:grid}.teacher-submission-results button{display:grid;width:100%;padding:.8rem 0;grid-template-columns:auto minmax(180px,1fr) auto 90px auto;align-items:center;gap:.8rem;border:0;border-bottom:1px solid #e1e9ee;color:inherit;background:transparent;font:inherit;text-align:left;cursor:pointer}.teacher-submission-results button:last-child{border-bottom:0}.teacher-submission-results button>span:nth-child(2){display:grid;gap:.18rem}.teacher-submission-results small{color:#778597}.teacher-result-percent{color:#2f657f;font-size:1.05rem;text-align:right}.teacher-content-heading{padding-top:.4rem}.teacher-content-heading h3{margin:0;color:#273445;font-size:1.3rem}.teacher-tool-section{padding:1.25rem}.teacher-tool-section>header{padding-bottom:.8rem;border-bottom:1px solid #e2e8ee}.teacher-tool-section .test-panel-heading,.teacher-tool-section .hints-panel>header{margin-top:0}.teacher-date-form{display:grid;gap:1rem}.teacher-date-form label{display:grid;gap:.4rem}.teacher-date-form label>span{color:#405064;font-size:.8rem;font-weight:750}.teacher-form-error{display:flex;padding:.85rem 1rem;align-items:center;gap:.55rem;border:1px solid;border-radius:12px}@media(max-width:1150px){.teacher-class-grid,.teacher-class-grid--wide,.teacher-quick-grid,.teacher-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-assignment-card{grid-template-columns:auto minmax(220px,1fr) auto}.teacher-card-actions{grid-column:2 / -1;max-width:none;justify-content:flex-start}}@media(max-width:820px){.teacher-page-header,.teacher-message-cta{align-items:stretch;flex-direction:column}.teacher-class-detail-header{grid-template-columns:auto auto minmax(0,1fr)}.teacher-assignment-overview-header{grid-template-columns:auto minmax(0,1fr)}.teacher-assignment-overview-header>.p-button:last-child{grid-column:2;justify-self:start}.teacher-class-detail-header>.p-button:last-child{grid-column:2 / -1;justify-self:start}.teacher-detail-grid{grid-template-columns:1fr}.teacher-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.teacher-class-grid,.teacher-class-grid--wide,.teacher-quick-grid,.teacher-metric-grid,.teacher-student-grid,.teacher-choice-grid,.teacher-choice-grid--two,.teacher-form-grid,.teacher-form-grid--action{grid-template-columns:1fr}.teacher-page-header>.p-button,.teacher-heading-actions,.teacher-heading-actions .p-button,.teacher-builder-actions .p-button{width:100%}.teacher-class-detail-header{grid-template-columns:auto minmax(0,1fr)}.teacher-class-detail-header .teacher-class-avatar{display:none}.teacher-class-detail-header>div{grid-column:2}.teacher-class-detail-header>.p-button:last-child{grid-column:1 / -1;width:100%}.teacher-assignment-card{grid-template-columns:auto minmax(0,1fr)}.teacher-submission-results button{grid-template-columns:auto minmax(0,1fr) auto}.teacher-submission-results .p-tag{display:none}.teacher-result-percent{grid-column:2;text-align:left}.teacher-assignment-card dl,.teacher-card-actions{grid-column:1 / -1}.teacher-card-actions{justify-content:stretch}.teacher-card-actions .p-button{flex:1}.teacher-timeline button,.teacher-builder-step{grid-template-columns:1fr}.teacher-form-grid .full{grid-column:auto}.teacher-builder-actions{align-items:stretch;flex-direction:column-reverse}}}@font-face{font-family:primeicons;font-display:block;src:url(/assets/primeicons-DMOk5skT.eot);src:url(/assets/primeicons-DMOk5skT.eot?#iefix) format("embedded-opentype"),url(/assets/primeicons-C6QP2o4f.woff2) format("woff2"),url(/assets/primeicons-WjwUDZjB.woff) format("woff"),url(/assets/primeicons-MpK4pl85.ttf) format("truetype"),url(/assets/primeicons-Dr5RGzOO.svg?#primeicons) format("svg");font-weight:400;font-style:normal}.pi{font-family:primeicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pi:before{--webkit-backface-visibility:hidden;backface-visibility:hidden}.pi-fw{width:1.28571429em;text-align:center}.pi-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@media(prefers-reduced-motion:reduce){.pi-spin{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.pi-folder-plus:before{content:""}.pi-receipt:before{content:""}.pi-asterisk:before{content:""}.pi-face-smile:before{content:""}.pi-pinterest:before{content:""}.pi-expand:before{content:""}.pi-pen-to-square:before{content:""}.pi-wave-pulse:before{content:""}.pi-turkish-lira:before{content:""}.pi-spinner-dotted:before{content:""}.pi-crown:before{content:""}.pi-pause-circle:before{content:""}.pi-warehouse:before{content:""}.pi-objects-column:before{content:""}.pi-clipboard:before{content:""}.pi-play-circle:before{content:""}.pi-venus:before{content:""}.pi-cart-minus:before{content:""}.pi-file-plus:before{content:""}.pi-microchip:before{content:""}.pi-twitch:before{content:""}.pi-building-columns:before{content:""}.pi-file-check:before{content:""}.pi-microchip-ai:before{content:""}.pi-trophy:before{content:""}.pi-barcode:before{content:""}.pi-file-arrow-up:before{content:""}.pi-mars:before{content:""}.pi-tiktok:before{content:""}.pi-arrow-up-right-and-arrow-down-left-from-center:before{content:""}.pi-ethereum:before{content:""}.pi-list-check:before{content:""}.pi-thumbtack:before{content:""}.pi-arrow-down-left-and-arrow-up-right-to-center:before{content:""}.pi-equals:before{content:""}.pi-lightbulb:before{content:""}.pi-star-half:before{content:""}.pi-address-book:before{content:""}.pi-chart-scatter:before{content:""}.pi-indian-rupee:before{content:""}.pi-star-half-fill:before{content:""}.pi-cart-arrow-down:before{content:""}.pi-calendar-clock:before{content:""}.pi-sort-up-fill:before{content:""}.pi-sparkles:before{content:""}.pi-bullseye:before{content:""}.pi-sort-down-fill:before{content:""}.pi-graduation-cap:before{content:""}.pi-hammer:before{content:""}.pi-bell-slash:before{content:""}.pi-gauge:before{content:""}.pi-shop:before{content:""}.pi-headphones:before{content:""}.pi-eraser:before{content:""}.pi-stopwatch:before{content:""}.pi-verified:before{content:""}.pi-delete-left:before{content:""}.pi-hourglass:before{content:""}.pi-truck:before{content:""}.pi-wrench:before{content:""}.pi-microphone:before{content:""}.pi-megaphone:before{content:""}.pi-arrow-right-arrow-left:before{content:""}.pi-bitcoin:before{content:""}.pi-file-edit:before{content:""}.pi-language:before{content:""}.pi-file-export:before{content:""}.pi-file-import:before{content:""}.pi-file-word:before{content:""}.pi-gift:before{content:""}.pi-cart-plus:before{content:""}.pi-thumbs-down-fill:before{content:""}.pi-thumbs-up-fill:before{content:""}.pi-arrows-alt:before{content:""}.pi-calculator:before{content:""}.pi-sort-alt-slash:before{content:""}.pi-arrows-h:before{content:""}.pi-arrows-v:before{content:""}.pi-pound:before{content:""}.pi-prime:before{content:""}.pi-chart-pie:before{content:""}.pi-reddit:before{content:""}.pi-code:before{content:""}.pi-sync:before{content:""}.pi-shopping-bag:before{content:""}.pi-server:before{content:""}.pi-database:before{content:""}.pi-hashtag:before{content:""}.pi-bookmark-fill:before{content:""}.pi-filter-fill:before{content:""}.pi-heart-fill:before{content:""}.pi-flag-fill:before{content:""}.pi-circle:before{content:""}.pi-circle-fill:before{content:""}.pi-bolt:before{content:""}.pi-history:before{content:""}.pi-box:before{content:""}.pi-at:before{content:""}.pi-arrow-up-right:before{content:""}.pi-arrow-up-left:before{content:""}.pi-arrow-down-left:before{content:""}.pi-arrow-down-right:before{content:""}.pi-telegram:before{content:""}.pi-stop-circle:before{content:""}.pi-stop:before{content:""}.pi-whatsapp:before{content:""}.pi-building:before{content:""}.pi-qrcode:before{content:""}.pi-car:before{content:""}.pi-instagram:before{content:""}.pi-linkedin:before{content:""}.pi-send:before{content:""}.pi-slack:before{content:""}.pi-sun:before{content:""}.pi-moon:before{content:""}.pi-vimeo:before{content:""}.pi-youtube:before{content:""}.pi-flag:before{content:""}.pi-wallet:before{content:""}.pi-map:before{content:""}.pi-link:before{content:""}.pi-credit-card:before{content:""}.pi-discord:before{content:""}.pi-percentage:before{content:""}.pi-euro:before{content:""}.pi-book:before{content:""}.pi-shield:before{content:""}.pi-paypal:before{content:""}.pi-amazon:before{content:""}.pi-phone:before{content:""}.pi-filter-slash:before{content:""}.pi-facebook:before{content:""}.pi-github:before{content:""}.pi-twitter:before{content:""}.pi-step-backward-alt:before{content:""}.pi-step-forward-alt:before{content:""}.pi-forward:before{content:""}.pi-backward:before{content:""}.pi-fast-backward:before{content:""}.pi-fast-forward:before{content:""}.pi-pause:before{content:""}.pi-play:before{content:""}.pi-compass:before{content:""}.pi-id-card:before{content:""}.pi-ticket:before{content:""}.pi-file-o:before{content:""}.pi-reply:before{content:""}.pi-directions-alt:before{content:""}.pi-directions:before{content:""}.pi-thumbs-up:before{content:""}.pi-thumbs-down:before{content:""}.pi-sort-numeric-down-alt:before{content:""}.pi-sort-numeric-up-alt:before{content:""}.pi-sort-alpha-down-alt:before{content:""}.pi-sort-alpha-up-alt:before{content:""}.pi-sort-numeric-down:before{content:""}.pi-sort-numeric-up:before{content:""}.pi-sort-alpha-down:before{content:""}.pi-sort-alpha-up:before{content:""}.pi-sort-alt:before{content:""}.pi-sort-amount-up:before{content:""}.pi-sort-amount-down:before{content:""}.pi-sort-amount-down-alt:before{content:""}.pi-sort-amount-up-alt:before{content:""}.pi-palette:before{content:""}.pi-undo:before{content:""}.pi-desktop:before{content:""}.pi-sliders-v:before{content:""}.pi-sliders-h:before{content:""}.pi-search-plus:before{content:""}.pi-search-minus:before{content:""}.pi-file-excel:before{content:""}.pi-file-pdf:before{content:""}.pi-check-square:before{content:""}.pi-chart-line:before{content:""}.pi-user-edit:before{content:""}.pi-exclamation-circle:before{content:""}.pi-android:before{content:""}.pi-google:before{content:""}.pi-apple:before{content:""}.pi-microsoft:before{content:""}.pi-heart:before{content:""}.pi-mobile:before{content:""}.pi-tablet:before{content:""}.pi-key:before{content:""}.pi-shopping-cart:before{content:""}.pi-comments:before{content:""}.pi-comment:before{content:""}.pi-briefcase:before{content:""}.pi-bell:before{content:""}.pi-paperclip:before{content:""}.pi-share-alt:before{content:""}.pi-envelope:before{content:""}.pi-volume-down:before{content:""}.pi-volume-up:before{content:""}.pi-volume-off:before{content:""}.pi-eject:before{content:""}.pi-money-bill:before{content:""}.pi-images:before{content:""}.pi-image:before{content:""}.pi-sign-in:before{content:""}.pi-sign-out:before{content:""}.pi-wifi:before{content:""}.pi-sitemap:before{content:""}.pi-chart-bar:before{content:""}.pi-camera:before{content:""}.pi-dollar:before{content:""}.pi-lock-open:before{content:""}.pi-table:before{content:""}.pi-map-marker:before{content:""}.pi-list:before{content:""}.pi-eye-slash:before{content:""}.pi-eye:before{content:""}.pi-folder-open:before{content:""}.pi-folder:before{content:""}.pi-video:before{content:""}.pi-inbox:before{content:""}.pi-lock:before{content:""}.pi-unlock:before{content:""}.pi-tags:before{content:""}.pi-tag:before{content:""}.pi-power-off:before{content:""}.pi-save:before{content:""}.pi-question-circle:before{content:""}.pi-question:before{content:""}.pi-copy:before{content:""}.pi-file:before{content:""}.pi-clone:before{content:""}.pi-calendar-times:before{content:""}.pi-calendar-minus:before{content:""}.pi-calendar-plus:before{content:""}.pi-ellipsis-v:before{content:""}.pi-ellipsis-h:before{content:""}.pi-bookmark:before{content:""}.pi-globe:before{content:""}.pi-replay:before{content:""}.pi-filter:before{content:""}.pi-print:before{content:""}.pi-align-right:before{content:""}.pi-align-left:before{content:""}.pi-align-center:before{content:""}.pi-align-justify:before{content:""}.pi-cog:before{content:""}.pi-cloud-download:before{content:""}.pi-cloud-upload:before{content:""}.pi-cloud:before{content:""}.pi-pencil:before{content:""}.pi-users:before{content:""}.pi-clock:before{content:""}.pi-user-minus:before{content:""}.pi-user-plus:before{content:""}.pi-trash:before{content:""}.pi-external-link:before{content:""}.pi-window-maximize:before{content:""}.pi-window-minimize:before{content:""}.pi-refresh:before{content:""}.pi-user:before{content:""}.pi-exclamation-triangle:before{content:""}.pi-calendar:before{content:""}.pi-chevron-circle-left:before{content:""}.pi-chevron-circle-down:before{content:""}.pi-chevron-circle-right:before{content:""}.pi-chevron-circle-up:before{content:""}.pi-angle-double-down:before{content:""}.pi-angle-double-left:before{content:""}.pi-angle-double-right:before{content:""}.pi-angle-double-up:before{content:""}.pi-angle-down:before{content:""}.pi-angle-left:before{content:""}.pi-angle-right:before{content:""}.pi-angle-up:before{content:""}.pi-upload:before{content:""}.pi-download:before{content:""}.pi-ban:before{content:""}.pi-star-fill:before{content:""}.pi-star:before{content:""}.pi-chevron-left:before{content:""}.pi-chevron-right:before{content:""}.pi-chevron-down:before{content:""}.pi-chevron-up:before{content:""}.pi-caret-left:before{content:""}.pi-caret-right:before{content:""}.pi-caret-down:before{content:""}.pi-caret-up:before{content:""}.pi-search:before{content:""}.pi-check:before{content:""}.pi-check-circle:before{content:""}.pi-times:before{content:""}.pi-times-circle:before{content:""}.pi-plus:before{content:""}.pi-plus-circle:before{content:""}.pi-minus:before{content:""}.pi-minus-circle:before{content:""}.pi-circle-on:before{content:""}.pi-circle-off:before{content:""}.pi-sort-down:before{content:""}.pi-sort-up:before{content:""}.pi-sort:before{content:""}.pi-step-backward:before{content:""}.pi-step-forward:before{content:""}.pi-th-large:before{content:""}.pi-arrow-down:before{content:""}.pi-arrow-left:before{content:""}.pi-arrow-right:before{content:""}.pi-arrow-up:before{content:""}.pi-bars:before{content:""}.pi-arrow-circle-down:before{content:""}.pi-arrow-circle-left:before{content:""}.pi-arrow-circle-right:before{content:""}.pi-arrow-circle-up:before{content:""}.pi-info:before{content:""}.pi-info-circle:before{content:""}.pi-home:before{content:""}.pi-spinner:before{content:""}
