.cabinet-page{padding-block:32px 64px}.cabinet-page>h1{margin:20px 0 12px}.cabinet-page>h2{margin-block:10px}.cabinet-page>.learning-report{margin-block:28px}.cabinet-notice,.cabinet-error{padding:14px;margin-block:14px;border-radius:12px}.cabinet-notice{background:#eaf7eb}.cabinet-error{background:#fff0f0;color:#963345}
.family-picker{position:relative}.family-picker>summary{list-style:none;cursor:pointer}.family-picker>summary::-webkit-details-marker{display:none}.family-picker nav{position:absolute;top:100%;right:0;z-index:20;min-width:230px;background:white;border:1px solid #ded7ea;border-radius:14px;padding:8px;box-shadow:0 8px 24px #25233d22}.family-picker nav a{display:block;padding:10px;border-radius:8px}.family-picker nav a:hover,.family-picker nav a[aria-current=page]{background:#f2edfb}
.student-account form{margin:0}.student-account .icon-button{border:0;background:transparent;font:inherit;color:inherit}
.award-page{padding-block:30px 60px}.award-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}.award-actions h1{width:100%}.award-actions p{width:100%}.award-canvas{display:block;width:min(100%,794px);height:auto;margin:auto;border:1px solid #ddd;box-shadow:0 4px 24px #221a3320}
.subject-grid>a{cursor:pointer}.subject-tile{font:inherit;text-align:center}.learning-report article form{grid-column:1/-1}
.card-access-panel .login-card{border:0;box-shadow:none;padding:0;margin:0}.card-access-panel .password-wrap{position:relative;display:block}.card-access-panel .password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:#65708a}.card-access-panel .password-wrap input{padding-right:78px}
@media print{body:has(.award-page)>:not(.award-page){display:none!important}.award-page{width:100%;padding:0;margin:0}.award-actions{display:none!important}.award-canvas{width:100%;border:0;box-shadow:none}@page{size:A4;margin:0}}
.rails-teacher-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.rails-teacher-shell .desktop-sidebar{position:sticky;top:0;height:100vh;overflow-y:auto}.rails-teacher-shell [data-slot=sidebar-inner]{min-height:100%;display:flex;flex-direction:column}.rails-teacher-shell [data-slot=sidebar-menu]{display:flex;flex-direction:column}.rails-teacher-shell [data-slot=sidebar-menu-button]{display:flex;align-items:center}.rails-teacher-shell [data-slot=sidebar-footer]{display:flex;flex-direction:column;margin-top:auto}.rails-teacher-shell [data-slot=sidebar-footer] select{max-width:100%;color:#252c49;background:white}.rails-teacher-shell .teacher-main{min-width:0}.rails-teacher-shell .teacher-account form{margin:0}.rails-teacher-shell .icon-button{background:transparent;border:0;font:inherit}.sidebar-open{display:none}.mobile-sidebar{margin:0;border:0;width:min(310px,90vw);max-width:100%;height:100dvh;max-height:100dvh;padding:0}.mobile-sidebar::backdrop{background:#1d243a77}.sidebar-close{position:absolute;right:12px;top:12px;background:transparent;border:0;color:white;font-size:26px}.rails-teacher-shell .table-scroll{overflow-x:auto}.rails-teacher-shell table{border-collapse:collapse;width:100%;text-align:left}.rails-teacher-shell td,.rails-teacher-shell th{border-bottom:1px solid #e8ecf4}.table-edit-link{display:block;font-size:12px;margin-top:6px;color:#637ab0}.rails-teacher-shell .reports-controls{padding:0 22px}.student-award-link{display:flex;align-items:center;gap:15px;margin-top:20px}.student-award-link>span:nth-child(2){flex:1;display:flex;flex-direction:column}.class-invite-card{padding:25px;margin-top:25px;background:#fff;border:1px solid #e2e7f1;border-radius:20px}.class-invite-card p{margin-block:10px}.class-invite-card strong{letter-spacing:.12em;font-size:22px}.access-actions{margin-bottom:25px}.access-actions h1,.access-actions p{margin-bottom:18px}.print-access{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.access-card{break-inside:avoid}.class-strip .class-card.selected{border-color:#8874b8;background:#f3effa}
@media(max-width:1000px){.rails-teacher-shell{display:block}.rails-teacher-shell .desktop-sidebar{display:none}.sidebar-open{display:block;border:0;background:transparent;font-size:22px;cursor:pointer}.rails-teacher-shell .dashboard-content{padding-inline:20px}}@media(max-width:600px){.rails-teacher-shell .reports-controls{flex-wrap:wrap}.print-access{grid-template-columns:1fr}.class-invite-card{padding:20px}.class-strip{overflow-x:auto}}
@media print{body:has(.print-access)>.account-header,.access-actions{display:none!important}body:has(.print-access) .cabinet-page{padding:10mm;width:100%}.print-access{grid-template-columns:1fr 1fr;gap:8mm}.access-card{border:1px dashed #777;box-shadow:none}}
.family-profile-form{display:flex;flex-wrap:wrap;align-items:center;gap:16px;width:100%}.family-profile-form>label{display:flex;flex-direction:column;gap:7px;min-width:180px}.family-profile-form input[type=text]{padding:10px 12px;border:1px solid #dcd7e8;border-radius:10px;max-width:100%}.family-profile-form .field-error{font-size:13px;color:#ad354a}.round-list-progress progress{display:block;width:100%;height:7px;border:0;border-radius:99px;overflow:hidden;accent-color:#7657bd;background:#ebe6f5}.round-list-progress progress::-webkit-progress-bar{background:#ebe6f5}.round-list-progress progress::-webkit-progress-value{background:#7657bd}.round-task-rows>a{text-align:left}.round-task-status{font-size:26px}.round-start .start-intro>form{display:flex;justify-content:center}.results-summary-copy>p{margin-block:12px;color:#72798d}.family-child-actions turbo-frame{display:block}.family-child-actions .credentials-card{font-size:13px}
/* Native Turbo forms retain the original component geometry. */
[hidden]{display:none!important}fieldset{border:0;padding:0;margin:0;min-width:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}.field-error{display:block;font-size:13px;color:#b33446;margin-top:5px}.error-box{margin-bottom:16px}.full{width:100%}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.registration-simple-title{margin:0}.registration-actions .btn{flex:1}.registration-progress span{display:block}.registration-mode label{position:relative;border:1px solid #dce3ef;border-radius:10px;padding:12px 10px;text-align:center;cursor:pointer;font-size:13px}.registration-mode label:has(:checked){border-color:#4265df;background:#eef2ff;color:#3657cd}.registration-mode input{position:absolute;opacity:0;width:1px;height:1px}.registration-mode label:focus-within{outline:3px solid #b49ae5;outline-offset:2px}
.rails-modal{width:min(512px,calc(100% - 32px));max-width:calc(100% - 32px);max-height:90dvh;margin:auto;background:white;color:#252c49;box-shadow:0 20px 70px #25233d33;overflow:auto}.rails-modal::backdrop{background:#0008}.rails-modal[open]{display:block}.modal-close{position:absolute;right:14px;top:12px;width:30px;height:30px;border:0;background:transparent;font-size:26px;color:#65718a;cursor:pointer}.rails-modal main{width:100%;padding:0;margin:0;display:block}.rails-modal .registration-card{border:0;border-radius:0;box-shadow:none;padding:0}.rails-modal h1{font-size:24px;line-height:1.25;margin:0 25px 12px 0}.rails-modal .modal-title{padding-right:25px}.rails-modal .registration-card form{margin-top:16px}.rails-modal .skip-link{display:block;margin-top:15px;text-align:center}.rails-modal .field-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rails-modal .register-layout>h1{font-size:24px}.rails-modal turbo-frame{display:block}.family-parent-card .family-access-link{padding:0;border:0;background:transparent;align-self:flex-start;font:inherit;font-size:13px;cursor:pointer;color:#4265df}.child-selection-add{margin-top:30px}.family-page .student-header .parent-profile{display:flex;align-items:center;font-weight:700}.student-account .icon-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.teacher-account .button_to{display:flex;align-items:center}.teacher-account .icon-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.school-combobox{margin-bottom:18px;min-width:0}.school-combobox>.field{margin-bottom:8px}.school-search-control{position:relative}.school-search-control>input{width:100%;min-height:48px;padding:12px;border:1px solid #e0e4ed;border-radius:10px;background:#fff;font-size:14px;color:#252c49}.school-search-control>input:focus{outline:3px solid #dce5ff;border-color:#6985e2}.school-options{position:absolute;inset:calc(100% + 4px) 0 auto;z-index:30;max-height:240px;overflow:auto;padding:6px;background:#fff;border:1px solid #e0e4ed;border-radius:12px;box-shadow:0 10px 30px #25233d22}.school-options button{display:block;width:100%;padding:10px;border:0;border-radius:7px;background:white;text-align:left;font-size:14px;color:inherit;cursor:pointer}.school-options button:hover,.school-options button[aria-selected=true]{background:#f2edfb}
.results-award-document{display:contents}.award-thumbnail canvas{display:block;width:100%;height:100%;background:white}.field textarea{font:inherit}.registration-simple-layout .checkbox-field{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;margin-block:16px}.checkbox-field input{flex:none;margin-top:4px}.registration-page .registration-actions .back-control{white-space:nowrap}.student-header.account-header{width:100%}
@media(max-width:600px){.rails-modal{padding:26px 22px}.school-search-control>input{font-size:16px}.rails-modal input,.rails-modal textarea{font-size:16px}}
.round-fullscreen .game-frame{height:100dvh;min-height:0}.form-errors{padding:14px 16px;background:#fff0f0;border:1px solid #f0c7ce;border-radius:10px;color:#a53247;font-size:14px;margin-bottom:18px}.form-errors p{margin:0 0 6px}.form-errors ul{padding-left:20px;margin:0}.password-field{display:block;position:relative}.password-field input{width:100%;padding-right:46px}.password-field>button{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border:0;background:transparent;color:#737987;cursor:pointer}.course-launch-mark{font-size:30px}.rails-modal.course-launch-dialog h2{margin:0 0 26px}.rails-modal.course-launch-dialog .modal-close{border-radius:50%;background:#f4f1fa;width:36px;height:36px}.app-dialog .class-invite+.btn+.btn{margin-top:12px}body:has(.rails-modal[open]){overflow:hidden}.rails-modal .registration-simple-layout{min-height:0}
.rails-modal.wide-dialog{width:min(850px,calc(100% - 32px));max-width:850px}.rails-modal .award-canvas{width:min(100%,420px)}.rails-modal .award-actions .back-link,.rails-modal .access-actions>a{display:none}.rails-modal .access-actions h1{margin-right:26px}.table-search input{min-width:100px}.table-search select{max-width:180px}.class-strip .class-card>span:last-child{display:flex;flex-direction:column;gap:4px}.class-strip .class-card small{font-size:12px;color:#72798d}.student-name+.table-edit-link{margin-left:46px}
@media print{body:has(.rails-modal[open])>.rails-modal[open]{display:block!important;position:static;width:100%;max-width:none;max-height:none;border:0;padding:0;box-shadow:none;overflow:visible}body:has(.rails-modal[open])>.rails-modal[open] .modal-close,body:has(.rails-modal[open]) .award-actions{display:none!important}.rails-modal[open] .award-canvas{width:100%;max-width:none}body:has(#standalone-award)>#standalone-award,body:has(#standalone-cards)>#standalone-cards{display:block!important}}
.row-actions>a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #e4e8ef;border-radius:8px;color:#65718a;background:#fff}.row-actions>a:hover{background:#f3effa}
/* Native controls use the same type and neutral field weight as the original UI. */
.registration-page :is(input,select,textarea,button),.rails-teacher-shell :is(input,select,textarea,button),.rails-modal :is(input,select,textarea,button){font-family:inherit;letter-spacing:inherit}
.field :is(input,select,textarea),.school-search-control>input{font-weight:400;line-height:1.4}
.school-combobox{margin-bottom:16px}.school-search-control>input{font-size:15px;min-height:47px;padding:12px 14px;background:#fbfcff;color:#27304d;border-color:#e0e5ef}
.school-options button{font:400 15px/1.4 'Avenir Next','Segoe UI',Arial,sans-serif;white-space:normal;overflow-wrap:anywhere}
.school-options small{display:block;margin-top:3px;font-size:12px;color:#727f96}
.school-picker-hint{font-size:13px;line-height:1.5;color:#727f96;margin:4px 0 12px}.school-picker-status:empty{display:none}
.password-field button{border:0;background:transparent;padding:0;width:24px;height:28px}
.registration-simple-layout .registration-card>p{font-size:14px;line-height:1.6;margin-top:14px}
.rails-modal .field select{font-size:15px;min-height:47px;padding:12px 14px;border:1px solid #e0e5ef;border-radius:10px;background:#fbfcff;color:#27304d}
.teacher-main code.pin,.print-access .access-card strong{font-family:inherit;letter-spacing:normal}
.class-strip .class-icon{width:auto;min-width:50px;padding-inline:8px;white-space:nowrap}

@media (max-width: 760px) {
  .school-search-control > input, .rails-modal .field select { font-size: 16px; }
  .rails-modal .field-pair { grid-template-columns: minmax(0, 1fr); }
}

/* Child selection uses the same grid for existing profiles and registration. */
.child-selection-form{display:flex;margin:0;min-width:0}
.child-selection-form .child-selection-tile{width:100%;font:inherit;text-align:left;cursor:pointer;color:inherit}
.child-selection-grid .child-selection-add{margin:0;border:2px dashed #b5a2d5;background:#f6f1fc;justify-content:center}
.child-selection-plus{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:#e9dff7;color:#7652a1;font-size:34px;line-height:1}
.family-picker nav .button_to{margin:0;display:block}
.family-picker nav button{display:block;width:100%;padding:10px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.family-picker nav button:hover,.family-picker nav button[aria-current=page]{background:#f2edfb}
.child-selection-tile:focus-visible,.family-picker nav button:focus-visible{outline:3px solid #7652a1;outline-offset:3px}
