.closure-form{margin-top:20px}.closure-form>label,.closure-form .form-grid>label{margin:0;font-size:.875rem}.closure-form .form-grid{margin:18px 0 0;gap:18px 12px}.closure-form input:not([type=checkbox]),.closure-select summary{width:100%;min-width:0;height:48px;min-height:48px;margin-top:6px;padding:12px 14px;border:1px solid var(--border);border-radius:7px;background:#fff;color:#181a20;font-size:.875rem;font-weight:600;line-height:22px}.closure-select{min-width:0;margin:0;padding:0;border:0}.closure-select legend{padding:0;color:var(--grey);font-size:.875rem;font-weight:600}.closure-select details{position:relative}.closure-select summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}.closure-select summary::-webkit-details-marker{display:none}.closure-select summary span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.closure-select summary:after{content:"";width:7px;height:7px;border-right:2px solid var(--grey);border-bottom:2px solid var(--grey);transform:rotate(45deg);margin:-4px 3px 0 auto;flex-shrink:0}.closure-select details[open] summary:after{transform:rotate(225deg);margin-top:4px}.closure-select:disabled summary{pointer-events:none;opacity:.48}.closure-options{position:absolute;z-index:5;top:calc(100% + 6px);left:0;right:0;max-height:280px;overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:7px;background:#fff;box-shadow:0 6px 18px #181a201a}.closure-options label{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:8px 6px;font-size:.875rem;cursor:pointer;overflow-wrap:anywhere}.closure-options label:hover{background:var(--pale)}.closure-options input[type=checkbox]{width:18px;height:18px;min-height:18px;margin:0;padding:0;flex-shrink:0;accent-color:var(--blue)}.closure-options p{margin:8px 6px}.closure-form .closure-submit{margin:20px 0}.closures-view>.empty{margin-top:0}@media(max-width:720px){.closure-form input:not([type=checkbox]),.closure-select summary{font-size:1rem}.closure-form .form-grid{grid-template-columns:minmax(0,1fr)}}.closure-scopes{margin:0 0 16px;padding-left:20px;overflow-wrap:anywhere}.closure-scopes li{margin:4px 0;line-height:1.5}.closure-entry-actions{display:flex;flex-wrap:wrap;gap:10px}.closure-edit-dialog{width:min(640px,calc(100% - 24px))}.closure-edit-dialog .closure-form{margin-top:0}.closure-edit-dialog .dialog-actions{margin-top:24px}.closure-edit-dialog .closure-submit{margin:0}.closure-edit-dialog .closure-options{position:static;margin-top:6px;max-height:200px;box-shadow:none}.closure-edit-dialog .alert{margin:16px 0 0}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#181a20;background:#fff;font-synthesis:none;font-size:16px;--blue:#2042b2;--border:#dce3f5;--grey:#606979;--pale:#f4f6fc;--content-width:1200px}*{box-sizing:border-box}body{width:100%;max-width:var(--content-width);margin:0 auto}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--blue)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:2.8rem;line-height:1.12;letter-spacing:-1.3px;margin-bottom:0}h2{font-size:1.35rem}h3{font-size:1.35rem;line-height:1.3;margin:6px 0 12px;letter-spacing:-.4px}p{line-height:1.5}button{transition:background .13s,border-color .13s}label{display:block;font-weight:600;color:var(--grey);margin-bottom:24px}input,textarea,select{width:100%;border:2px solid var(--border);border-radius:10px;background:#fff;color:#181a20;padding:16px 18px;margin-top:10px;min-height:54px}textarea{resize:vertical}input::placeholder{color:#989da7}.primary,.outline{border-radius:10px;padding:14px 22px;min-height:48px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px}.primary{border:2px solid var(--blue);background:var(--blue);color:#fff}.primary:hover:not(:disabled){background:#18368f}.outline{background:#fff;color:var(--blue);border:2px solid var(--border)}.outline:hover:not(:disabled){border-color:var(--blue);background:var(--pale)}.large{width:100%;font-size:1.2rem;min-height:62px}.eyebrow,.mono,.role{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600}.eyebrow{color:var(--blue);font-size:.88rem;letter-spacing:2.5px;line-height:1.6}.blue{color:var(--blue)}.grey,.secondary{color:var(--grey)}.secondary{font-size:.92rem;line-height:1.55}.center{text-align:center}.login-header{border-bottom:3px solid var(--blue)}.login-header>div{max-width:540px;margin:0 auto;padding:32px 0 26px}.login-header h1{margin-top:14px;font-size:3rem}.login{max-width:540px;margin:56px auto}.login label{font-size:1.2rem;margin-bottom:28px}.login input{min-height:68px}.login .large{min-height:72px;margin:4px 0 22px}.alert{padding:14px 18px;border-radius:9px;border:1px solid;margin:0 0 20px;line-height:1.4}.error{color:#c22923;border-color:#df302a;background:#fff3f2}.success{color:#1d7353;border-color:#c3e6d8;background:#f3faf7}.feedback:empty{display:none}.app-header{border-bottom:3px solid var(--blue);padding:30px 24px 26px}.header-inner{max-width:var(--content-width);margin:auto;display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.heading{max-width:800px}.heading h1{margin-top:26px}.account{display:flex;align-items:center;gap:14px}.account strong{font-size:1.1rem}.avatar{width:48px;height:48px;background:var(--blue);color:#fff;border-radius:50%;display:grid;place-items:center;font-weight:600}.role{display:block;color:var(--grey);font-size:.78rem;letter-spacing:1.6px;margin-top:4px}.logout{color:var(--grey);margin-left:4px}.back{display:flex;gap:8px;align-items:center;border:0;padding:0;background:transparent}.page{width:100%;max-width:var(--content-width);margin:34px auto;padding:0 24px}.dashboard{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr);gap:38px}.search{margin:24px 0 30px}.search label{margin-bottom:0}.search>div{display:flex;gap:12px;align-items:center}.search input{margin-top:8px;min-height:64px;font-size:1.12rem}.search button{margin-top:8px;min-height:64px;min-width:124px}.day-label{color:var(--grey);letter-spacing:.7px;margin:0 0 24px}.course-list{display:grid;gap:14px}.course-card{display:block;width:100%;text-align:left;background:#fff;border:2px solid var(--border);border-radius:12px;padding:23px 24px;color:inherit}.course-card:hover{background:#fafbff;border-color:#bdc9eb}.course-card>.mono{font-size:1.12rem}.course-card p{color:var(--grey);margin:0 0 2px;font-size:1rem}.course-card .teacher-line{color:var(--blue);margin:0 0 11px;font-weight:500}.badge{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;letter-spacing:1px;line-height:1.4;font-weight:600;color:var(--blue);background:var(--pale);padding:5px 10px;border-radius:5px;white-space:nowrap}.badge.green{color:#1b7c58;background:#edf7f2}.badge.amber{color:#aa7017;background:#fbf3e5}.badge.red{color:#c4312d;background:#fff0ef}.badge.muted,.badge.missing{color:#596373;background:#f2f4f8}.missing-card{border-style:dashed}.missing-list{margin:32px 0}.missing-list>div{margin:20px 0}.missing-list>div>p{font-size:.87rem;margin-bottom:8px}.panel{border:2px solid var(--border);border-radius:12px;padding:24px;margin-bottom:22px}.calendar{padding:25px}.month-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.month-nav h2{font-size:1.4rem;margin:0;letter-spacing:-.4px}.icon-button{padding:0;width:44px;height:44px;display:grid;place-items:center;border-radius:9px;flex-shrink:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday{text-align:center;color:var(--grey);padding:8px 0;font-size:.86rem}.calendar-day{border:2px solid transparent;background:#fff;min-height:65px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:1.15rem;font-weight:600;padding:4px}.calendar-day:hover{background:var(--pale)}.calendar-day.other{color:#adb5c5}.calendar-day.chosen{background:var(--blue);color:#fff}.calendar-day.today:not(.chosen){border-color:var(--blue)}.count{color:var(--blue);font-size:.8rem;background:var(--pale);border-radius:4px;padding:1px 5px;min-width:20px}.count.unfilled,.unfilled{background:#5c6675;color:#fff}.calendar-key{border-top:1px solid var(--border);padding-top:16px;margin-top:17px;color:var(--grey);font-size:.9rem}.calendar-key p{display:flex;align-items:center;gap:10px;margin:5px 0}.calendar-key i{display:block;width:15px;height:15px;border:1px solid var(--border);border-radius:4px;background:var(--pale)}.calendar-key .today-key{border:2px solid var(--blue);background:#fff}.calendar-key .unfilled{background:#5c6675}.audit h2{font-size:1.1rem}.audit details{border-top:1px solid var(--border);padding:12px 0}.audit summary{font-size:.86rem;cursor:pointer;line-height:1.4}.audit summary strong,.audit summary span,.audit summary small{display:block}.audit summary small{color:var(--grey);margin-top:4px;font-size:.76rem}.audit-values{font-size:.8rem}.audit-values pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--pale);padding:10px;border-radius:5px;max-height:200px;overflow:auto}.audit-values p{margin:8px 0 0}.empty{padding:24px;background:var(--pale);border-radius:10px;color:var(--grey)}.search-results{margin:24px 0}.result{display:block;width:100%;padding:12px;border:0;border-bottom:1px solid var(--border);background:#fff;text-align:left;color:var(--blue)}.detail-header .header-inner{max-width:1200px}.detail-header h1{max-width:680px;font-size:2.4rem;margin-top:18px}.registry-page{max-width:var(--content-width)}.lesson-info{padding-bottom:20px;border-bottom:1px solid var(--border)}.lesson-info p{margin:7px 0}.lesson-info .mono{margin-left:16px}.teacher-register{margin:24px 0 0;padding:20px 24px;background:#f8faff;border:1px solid var(--border);border-radius:10px}.teacher-register h2{font-size:.83rem;margin-bottom:12px}.teacher-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:5px 0}.teacher-row small{color:var(--grey)}.register-toolbar{display:flex;justify-content:space-between;align-items:center;padding:22px 0 18px}.register-toolbar p{margin:0;color:var(--grey);font-size:.96rem}.register-toolbar p strong{font-size:1.3rem}.register{border-top:1px solid var(--border)}.register-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);min-height:68px}.row-person{min-width:0}.person-link{border:0;background:transparent;font-weight:600;color:inherit;padding:5px 0;text-align:left}.person-link:hover{color:var(--blue);text-decoration:underline}.row-actions{display:flex;align-items:center;gap:18px;flex-shrink:0}.statuses{display:flex;gap:5px;flex-shrink:0}.status-button{width:45px;height:45px;border:1.5px solid #cbd5ec;background:#fff;color:#7f899c;border-radius:6px;font-weight:600}.status-button:hover:not(:disabled){background:var(--pale);border-color:var(--blue)}.status-button.selected.P{background:#20825c;border-color:#20825c;color:#fff}.status-button.selected.A{background:#c83d37;border-color:#c83d37;color:#fff}.status-button.selected.R{background:#b97814;border-color:#b97814;color:#fff}.status-button:disabled{opacity:.65}.status-button.selected:disabled{opacity:.9}.note-button{display:flex;align-items:center;gap:4px;color:#7c879c;border:0;background:transparent;border-radius:6px;min-width:38px;min-height:44px;justify-content:center}.note-button.has-note{color:var(--blue)}.note-button span{font-size:.78rem}.note-preview{display:block;font-size:.86rem;color:var(--grey);max-width:550px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trial-heading{padding:24px 0 0;margin-bottom:6px}.add-trial{width:100%;margin:20px 0}.close-area{border-top:1px solid var(--border);padding:24px 0}.deadline{border:1px solid var(--border);border-radius:7px;padding:13px;color:var(--grey);font-size:.92rem}.deadline span{display:block;margin-top:5px}.closed-message{background:#edf7f2;color:#1b7c58;padding:14px;border-radius:7px}.close-area .outline{margin-top:15px}.profile-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:28px;max-width:1200px;margin:auto}.profile-layout>section>.panel:first-of-type{margin-top:20px}.panel .eyebrow{font-size:.8rem;margin-bottom:20px}.enrolment{margin:0 0 20px}.enrolment:last-child{margin:0}.enrolment h3{font-size:1.06rem;margin:0 0 5px}.enrolment p{font-size:.9rem;margin:0 0 5px}.history-row{width:100%;border:0;border-bottom:1px solid var(--border);padding:15px 0;display:grid;grid-template-columns:115px 1fr auto;gap:12px;text-align:left;background:#fff;align-items:center;font-size:.9rem}.history-row>.mono{font-size:.8rem}.history-row:hover{background:var(--pale)}.history .badge{font-size:.7rem}.percentage{display:block;font-size:3rem;line-height:1;color:var(--blue);margin:4px 0 12px;letter-spacing:-1px}.counts{border-top:1px solid var(--border);padding-top:15px;margin-top:20px;color:var(--grey)}.counts p{margin:0 0 7px}.counts strong{display:inline-block;min-width:32px;color:#181a20}.frequency>.secondary:last-child{margin-top:20px;margin-bottom:0}dt{font:700 .78rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--grey);letter-spacing:1px;margin-bottom:5px}dd{margin:0 0 18px;line-height:1.4}.contact:not(:last-child){border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:18px}.note{background:var(--pale);padding:15px;border-radius:9px;margin-bottom:12px}.note p{white-space:pre-wrap;margin:0 0 12px;overflow-wrap:anywhere}.note small{color:var(--grey);font-size:.8rem}.note .text-link{font-size:.85rem;margin-bottom:10px;display:block}.notes-list{max-height:38vh;overflow-y:auto;margin:20px 0}.text-link{color:var(--blue);border:0;background:transparent;padding:0;text-align:left;cursor:pointer}dialog{width:min(560px,calc(100% - 32px));border:1px solid var(--border);border-radius:14px;padding:26px;box-shadow:0 20px 80px #13234d33;max-height:90vh;overflow:auto}dialog::backdrop{background:#15224966}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.dialog-header h2{margin:0;font-size:1.35rem}.dialog-header .icon-button{border:1px solid var(--border);background:#fff;color:var(--grey)}dialog label{margin-bottom:18px}dialog form>.primary{width:100%}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.loading{max-width:650px;margin:100px auto;padding:24px}.loading button{margin-right:12px}footer{text-align:center;color:var(--grey);font-size:.8rem;padding:32px 0 28px}.refresh{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--blue);display:grid;place-items:center;box-shadow:0 3px 12px #1720440f}@media(min-width:1600px){.dashboard{grid-template-columns:minmax(0,1.6fr) minmax(410px,1fr);gap:44px}.app-header{padding-top:34px;padding-bottom:30px}.heading h1{font-size:3rem}.calendar-day{min-height:76px}.course-card{padding:26px}.course-card h3{font-size:1.5rem}}@media(max-width:1000px){.dashboard{grid-template-columns:minmax(0,1.4fr) minmax(290px,1fr);gap:22px}.calendar{padding:18px}.month-nav h2{font-size:1.12rem}.calendar-grid{gap:1px}.calendar-day{min-height:57px}.month-nav .icon-button{width:36px;height:40px}.account strong{font-size:1rem}.course-card{padding:20px}.profile-layout{gap:20px}.history-row{grid-template-columns:95px 1fr}.history-row .badge{grid-column:2}}@media(max-width:720px){h1{font-size:2rem}.app-header{padding:20px 16px}.header-inner{gap:12px}.account{gap:8px}.avatar{width:36px;height:36px;font-size:.8rem}.account>div{display:none}.logout{padding:10px;min-height:40px;margin-left:0}.logout span{display:none}.heading h1{margin-top:17px;font-size:2.25rem}.detail-header h1{font-size:1.9rem}.page{margin:22px auto;padding:0 16px}.dashboard,.profile-layout{display:flex;flex-direction:column;gap:22px}.dashboard>aside{order:-1}.calendar{padding:16px;margin-bottom:0}.calendar-day{min-height:50px;font-size:1rem}.calendar-grid{gap:2px}.month-nav{margin-bottom:8px}.month-nav h2{font-size:1.2rem}.calendar-key{display:flex;flex-wrap:wrap;gap:12px;padding-top:10px;margin-top:10px;font-size:.76rem}.calendar-key p{margin:0}.search{margin:0 0 24px}.search label{font-size:.8rem;letter-spacing:1.5px}.search input{min-height:54px;font-size:1rem;padding:14px}.search button{min-width:82px;min-height:54px;padding:12px 15px}.course-card h3{font-size:1.2rem}.course-card>.mono{font-size:1.02rem}.course-card p{font-size:.94rem}.course-card{padding:20px}.day-label{font-size:.88rem}.login-header>div{padding:28px 0 25px;margin:0 26px}.login-header h1{font-size:2.6rem}.login{margin:40px 26px}.login label{font-size:1.1rem}.login input{min-height:60px}.login .large{min-height:64px}.lesson-info{font-size:.93rem}.lesson-info .mono{display:block;margin:5px 0}.teacher-register{padding:16px}.teacher-row{font-size:.93rem}.teacher-row .status-button{width:40px;height:44px}.register-toolbar p{font-size:.85rem}.register-toolbar .outline{padding:12px 14px;font-size:.85rem}.register-row{gap:8px;padding:10px 0}.person-link,.row-person>strong{font-size:.93rem}.row-actions,.statuses{gap:4px}.status-button{width:39px;height:44px}.note-button{min-width:32px;padding:0 3px}.note-button span{display:none}.note-preview{max-width:170px;font-size:.75rem}.teacher-row{gap:8px}.profile-layout .panel{padding:20px}.profile-layout>aside{order:-1}.profile-layout>aside .panel:not(.frequency){display:none}.profile-layout>aside .frequency{margin-bottom:0}.history-row{grid-template-columns:88px 1fr;font-size:.84rem}.history-row .badge{grid-column:2}.panel.history{padding:18px}.large{font-size:1.05rem}.dialog-actions .primary,.dialog-actions .outline{padding:12px}dialog{padding:22px}.close-area{padding:20px 0}.audit{margin-top:20px}.dashboard .audit{display:none}}@media(max-width:720px){.dashboard>aside,.profile-layout>aside{display:contents}.dashboard .calendar,.profile-layout .frequency{order:-1}.dashboard .audit{display:block;order:2}.profile-layout>aside .panel:not(.frequency){display:block;order:2}}.account-name{padding:0;border:0;background:transparent;color:inherit;font-weight:600;font-size:1.1rem;text-align:left}.account-name:disabled{opacity:1;cursor:default}.account-name:not(:disabled):hover{color:var(--blue);text-decoration:underline}.audit-values p{margin:9px 0}.audit-values p strong{display:block;font-size:.78rem;color:var(--grey)}.audit-values p span{display:block;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.avatar{border:0;flex-shrink:0}.avatar:disabled{opacity:1;cursor:default}.mobile-calendar-toggle{display:none}.attendance-key{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 12px;font-size:.8rem}.attendance-key b{color:var(--blue)}.heading,.dashboard>section,.profile-layout>section{min-width:0}.heading h1,.course-card h3,dd,.teacher-row>span{overflow-wrap:anywhere}@media(max-width:850px)and (min-width:721px){.dashboard,.profile-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:720px){.header-inner{position:relative;display:block}.heading{max-width:none}.heading>.eyebrow,.heading>.back{min-height:44px;display:flex;align-items:center;padding-right:112px}.heading h1{margin-top:12px;line-height:1.18}.account{position:absolute;right:0;top:0;gap:8px}.avatar,.logout{width:44px;height:44px;min-height:44px;padding:0}.back{min-height:44px}.mobile-calendar-toggle{display:flex;order:-2;width:100%;justify-content:space-between;text-align:left}.mobile-calendar-toggle .expanded{transform:rotate(90deg)}.dashboard .calendar{display:none}.dashboard .calendar.mobile-open{display:block}.month-nav .icon-button{width:44px;height:44px}.search input{min-width:0}.panel,.course-card{overflow-wrap:anywhere}.badge{white-space:normal}.result,.person-link,.text-link,.contact summary,.audit summary{min-height:44px}.person-link{display:flex;align-items:center}.profile-layout>aside .panel{margin-bottom:0}.status-button,.teacher-row .status-button{width:48px;height:48px}.note-button{min-width:48px;min-height:48px}.note-button span{display:inline}.row-actions{gap:12px}.statuses{gap:8px}.teacher-row{flex-wrap:wrap;gap:10px;padding:10px 0}.teacher-row>span{flex:1 1 150px}.teacher-register .statuses{margin-left:auto}.refresh{position:static;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;width:48px;height:48px}.form-columns{grid-template-columns:minmax(0,1fr)}dialog{width:calc(100% - 24px);padding:18px;max-height:calc(100dvh - 24px);overscroll-behavior:contain}.dialog-header h2{overflow-wrap:anywhere;font-size:1.2rem;min-width:0}.notes-list{max-height:30dvh}.dialog-actions{flex-wrap:wrap}.dialog-actions>button{flex:1 1 120px;min-height:48px}footer{padding-bottom:16px}}@media(max-width:480px){.register-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 0 16px}.row-person{width:100%}.person-link,.row-person>strong{font-size:1rem}.note-preview{max-width:100%;font-size:.85rem}.row-actions{width:100%;justify-content:space-between}.row-actions .statuses{flex:1;max-width:240px}.row-actions .status-button{flex:1;width:auto}.search>div{flex-wrap:wrap;gap:8px}.search input{flex:1 1 100%;margin-top:8px}.search button{width:100%;margin-top:0;min-height:48px}.register-toolbar{gap:12px;flex-wrap:wrap}.course-card{padding:18px}.history-row{grid-template-columns:minmax(0,1fr);gap:6px}.history-row .badge{grid-column:1;justify-self:start}.calendar{padding:12px}.calendar-grid{gap:0}.calendar-day{padding:2px;font-size:.94rem}.login-header>div{margin:0 20px}.login{margin:28px 20px}.login-header h1{font-size:2.25rem}}@media(prefers-reduced-motion:reduce){button{transition:none}}.attendance-control{flex-shrink:0}.mobile-status{display:none}@media(max-width:720px){.attendance-control>.statuses{display:none}.mobile-status{display:block;width:150px;min-height:48px;margin:0;padding:12px 34px 12px 14px;font-weight:600;border-width:2px}.mobile-status.unmarked{color:var(--grey);background:#fff;border-color:#cbd5ec}.mobile-status.P{color:#176242;background:#edf7f2;border-color:#20825c}.mobile-status.A{color:#a12b26;background:#fff0ef;border-color:#c83d37}.mobile-status.R{color:#86540c;background:#fbf3e5;border-color:#b97814}.mobile-status option{color:#181a20;background:#fff}.mobile-status:disabled{opacity:.75}.teacher-row>.attendance-control{margin-left:auto}.attendance-key{display:none}.row-actions{gap:8px}}@media(max-width:480px){.register-row{display:flex;gap:12px;padding:12px 0}.row-person{width:auto;flex:1;min-width:0}.row-actions{width:auto;flex-direction:column-reverse;align-items:stretch;gap:4px}.mobile-status{width:132px}.note-button{justify-content:flex-start;padding:0 12px;min-height:44px}.note-preview{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.person-link{min-height:48px}}@media(max-width:720px){.mobile-status{width:96px;padding:12px 24px 12px 12px}.attendance-key{display:flex;gap:12px;font-size:.78rem}}.calendar-day{display:grid;grid-template-rows:24px 18px;align-content:center;justify-items:center;gap:3px;min-height:0;height:58px;padding:4px;line-height:24px}.calendar-day>span:first-child{line-height:24px}.calendar-day .count{line-height:18px;min-height:18px;padding:0 5px}.count-empty{visibility:hidden}.mobile-status-wrap{display:none}@media(max-width:720px){.calendar-day{height:52px;padding:2px;grid-template-rows:22px 18px;gap:2px}.calendar-day>span:first-child{line-height:22px}.mobile-status-wrap{display:block;position:relative;width:76px;color:var(--grey)}.mobile-status-wrap.unmarked{width:96px}.mobile-status{appearance:none;-webkit-appearance:none;width:100%;height:48px;padding:10px 28px 10px 14px;border-radius:9px;line-height:24px}.select-arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.mobile-status-wrap.P{color:#176242}.mobile-status-wrap.A{color:#a12b26}.mobile-status-wrap.R{color:#86540c}.mobile-status-wrap:has(select:disabled) .select-arrow{opacity:.75}.row-actions{align-items:flex-end}.teacher-row>span{flex:1 1 130px}}:root{--text-title:2rem;--text-section:1.125rem;--text-body:1rem;--text-small:.875rem;--control-height:44px}h1,.heading h1,.detail-header h1{font-size:var(--text-title);line-height:1.2;letter-spacing:-.7px}h2{font-size:var(--text-section)}h3,.course-card h3{font-size:1.125rem;line-height:1.35;letter-spacing:-.2px}.eyebrow{font-size:.75rem;letter-spacing:1.8px}.app-header{padding:22px 24px 20px}.heading h1,.detail-header h1{margin-top:12px}.account{gap:10px}.avatar{width:44px;height:44px;font-size:.8rem;background:radial-gradient(circle at center,var(--blue) 18px,transparent 18.5px)}.account strong,.account-name{font-size:.9375rem}.role{font-size:.6875rem;letter-spacing:1.2px;margin-top:3px}.primary,.outline{min-height:var(--control-height);padding:10px 16px;font-size:.9375rem;line-height:1.3}.logout{min-height:44px;padding:10px 14px}input,select,textarea{min-height:48px;padding:12px 14px;font-size:1rem;line-height:1.4}label{margin-bottom:18px}.page{margin:26px auto}.search{margin:14px 0 24px}.search input{min-height:48px;height:48px;font-size:1rem;padding:12px 14px}.search button{min-height:48px;height:48px;min-width:96px;padding:10px 18px;font-size:.9375rem}.day-label{font-size:.875rem;margin-bottom:18px}.course-list{gap:12px}.course-card{padding:18px 20px}.course-card>.mono{font-size:1rem}.course-card h3{margin:5px 0 8px}.course-card p{font-size:.875rem;line-height:1.45}.course-card .teacher-line{margin-bottom:9px}.badge{font-size:.6875rem;letter-spacing:.7px;padding:4px 8px}.panel,.calendar{padding:20px}.month-nav{margin-bottom:14px}.month-nav h2{font-size:1.125rem}.icon-button{padding:0;min-height:44px}.panel .eyebrow{font-size:.75rem;margin-bottom:16px}.teacher-register{margin-top:20px;padding:16px 20px}.teacher-row{font-size:.9375rem}.register-toolbar{padding:18px 0 14px}.register-toolbar p{font-size:.875rem}.register-toolbar p strong{font-size:1.125rem}.register-row{min-height:64px;padding:10px 0}.status-button{width:44px;height:44px}.large{min-height:48px;font-size:1rem}.close-area{padding:20px 0}.percentage{font-size:2.5rem}.login-header>div{padding-top:26px;padding-bottom:22px}.login-header h1{font-size:2.25rem}.login{margin-top:36px}.login label{font-size:1rem;margin-bottom:22px}.login input,.login .large{min-height:52px}@media(max-width:720px){:root{--text-title:1.625rem}.app-header{padding:16px}.page{margin:20px auto}.heading h1,.detail-header h1{margin-top:8px}.logout{padding:0}.search{margin:0 0 20px}.search label{font-size:.75rem;letter-spacing:1.2px}.search button{min-width:80px;height:48px}.course-card{padding:16px}.calendar{padding:14px}.month-nav h2{font-size:1.125rem}.month-nav .icon-button{padding:0}.profile-layout .panel,.panel.history{padding:18px}.teacher-register{padding:14px 16px}.mobile-status{min-height:44px;height:44px;padding:8px 28px 8px 14px}.register-toolbar .outline{font-size:.875rem;padding:10px 14px}.note-button{padding:0 8px}.person-link{min-height:44px}.dialog-header h2{font-size:1.125rem}.dialog-actions .primary,.dialog-actions .outline{padding:10px 14px}.login-header h1{font-size:2rem}}h1,h2,h3,strong,b{font-weight:600}.mono,.primary,.outline,.mobile-status,label{font-weight:500}.course-card h3{font-weight:600}.header-inner,.detail-header .header-inner{max-width:calc(var(--content-width) - 48px)}@media(max-width:720px){.header-inner,.detail-header .header-inner{max-width:none}}.auth-panel h2{font-size:1.25rem;margin-bottom:12px}.auth-link{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem}.auth-panel #password-help{margin-top:-12px;margin-bottom:20px}.save-notice{position:fixed;inset:auto;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:1000;display:flex;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);margin:0;padding:10px 14px;border:1px solid #c3e6d8;border-radius:9px;box-shadow:0 4px 18px #183f2820;font-size:.875rem;line-height:1.4;overflow-wrap:anywhere;pointer-events:none}.save-notice svg{flex-shrink:0}.save-notice::backdrop{background:transparent;pointer-events:none}.password-input{position:relative;display:block}.password-input input{padding-right:58px}.password-toggle{position:absolute;right:6px;bottom:4px;display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:var(--grey);border-radius:7px}.password-toggle:hover{background:var(--pale)}.home-navigation{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 24px}.home-navigation button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:8px;border:1px solid var(--border);background:#fff;color:var(--blue);border-radius:9px;font-size:.875rem}.home-navigation button.active{background:var(--pale);border-color:var(--blue)}.search-combobox{position:relative;flex:1;min-width:0}.search-suggestions{position:absolute;z-index:20;top:100%;left:0;right:0;list-style:none;padding:4px;margin:4px 0 0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #13234d20;max-height:300px;overflow:auto}.search .search-suggestions button{display:flex;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:44px;height:auto;text-align:left;margin:0;padding:10px;border:0;border-radius:5px;background:#fff;color:inherit;font-size:.9rem}.search-suggestions small{color:var(--grey);flex-shrink:0}.search-suggestions [aria-selected=true] button,.search-suggestions button:hover{background:var(--pale)}.filter-panel{border:1px solid var(--border);padding:16px;border-radius:10px;margin-bottom:24px}.filter-panel summary{display:flex;gap:8px;align-items:center;color:var(--blue);cursor:pointer;min-height:28px}.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.filter-grid label{margin:0;font-size:.875rem;min-width:0}.filter-grid input,.filter-grid select{margin-top:6px;min-height:44px;padding:9px 10px;font-size:.9rem}.filter-panel>.text-link{font-size:.875rem;min-height:44px}.revised-dashboard .calendar.always-visible{display:block}.calendar-day{position:relative}.holiday-dot{position:absolute;right:4px;top:4px;width:6px;height:6px;border-radius:50%;background:#30a68f}.calendar-day.holiday:not(.chosen){background:#edf8f5}.calendar-key .holiday-key{background:#d5eee7;border-color:#30a68f}.closure-banner{border:1px solid #e9d1a5;background:#fff9ed;padding:12px 14px;border-radius:8px;font-size:.875rem;color:#80500f}.closure-entry{padding:20px 0;border-top:1px solid var(--border);margin-top:20px}.closure-entry p{margin-bottom:8px}.school-line{display:block;font-size:.8rem;color:var(--grey);line-height:1.5;margin:3px 0;overflow-wrap:anywhere}.result small{display:block;color:var(--grey);margin-top:4px}.participant-attendance{display:flex;align-items:center;gap:6px}.pickup-button{flex-shrink:0}.instructor-attendance{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;max-width:100%}.time-adjustment{display:flex;align-items:center;gap:6px;min-height:44px;font-size:.8rem}.time-form{display:flex;align-items:end;gap:10px;width:100%;padding:12px;background:#fff;border:1px solid var(--border);border-radius:8px}.time-form label{margin:0;flex:1;min-width:0;font-size:.8rem}.time-form input{margin-top:6px;min-height:44px;padding:8px;width:100%}.time-form button{flex-shrink:0;padding:8px 12px;font-size:.85rem}.course-frequency{padding-bottom:16px;border-bottom:1px solid var(--border)}.course-frequency:last-child{border:0;padding-bottom:0}.course-frequency>.secondary{margin-top:8px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-grid .panel{padding:16px}.summary-grid strong{font-size:2rem;color:var(--blue)}.cancel-lesson{margin:8px 0 8px 8px}.substitution-request{border-top:1px solid var(--border);padding:16px 0}.substitution-request .outline{margin-left:8px}@media(max-width:850px){.home-navigation{grid-template-columns:repeat(3,minmax(0,1fr))}.home-navigation button{flex-direction:column;gap:5px;font-size:.8rem;min-height:64px}.revised-dashboard{display:flex;flex-direction:column}.revised-dashboard>aside{display:block;order:1}.revised-dashboard>.calendar-priority{order:-1}.revised-dashboard>section{width:100%}.revised-dashboard .calendar{margin-bottom:18px}}@media(max-width:720px){.participant-attendance .pickup-button{width:44px;min-width:44px;height:44px;flex:0 0 44px}.row-actions{gap:8px;align-items:center;flex-direction:row;width:auto;justify-content:flex-end}.register-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 0}.row-person{width:100%}.row-actions .note-button{margin-right:auto;padding:0 8px}.teacher-row{align-items:start}.teacher-row>span{flex:1 1 100%}.instructor-attendance{width:100%;justify-content:space-between;gap:8px}.time-form{flex-wrap:wrap}.time-form button{width:100%}.filter-panel{padding:12px}.search>div{flex-wrap:nowrap;gap:8px}.search button.primary{width:auto;min-width:76px;margin-top:8px;padding:10px}.search button.primary svg{display:none}.summary-grid{grid-template-columns:minmax(0,1fr)}.summary-grid .panel{margin-bottom:0}.cancel-lesson{margin-left:0}.password-toggle{bottom:4px}}@media(max-width:360px){.filter-grid{grid-template-columns:minmax(0,1fr)}.home-navigation button{font-size:.75rem}.substitution-request button{width:100%;margin:6px 0!important}}.teacher-substitute{font-size:.78rem;color:var(--muted);min-width:0;max-width:100%}.teacher-substitute select{margin-top:5px;min-height:40px;font-size:.84rem;width:100%;max-width:100%}.teacher-row{flex-wrap:wrap}.teacher-row>span{min-width:0;overflow-wrap:anywhere}.import-file-field{margin:18px 0}.import-file-label{display:block;color:var(--muted,#626b7c);font-weight:500;margin-bottom:8px}.import-file-control{display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:wrap}.import-file-control input[hidden]{display:none}.import-file-control button{flex-shrink:0;display:inline-flex;align-items:center;gap:8px}.import-file-name{color:var(--muted,#626b7c);overflow-wrap:anywhere;min-width:0;font-size:.9rem}.import-refresh-warning{padding:12px 16px;border:1px solid #e4c778;border-radius:8px;background:#fff8e6;color:#73531b;margin:12px 0}.my-course-card{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left}.my-course-card>div{min-width:0}.my-course-card>svg{flex-shrink:0;color:var(--blue)}.my-courses>section{margin-top:24px}.my-courses h3{margin-top:0}.my-courses-back{display:inline-flex;gap:6px;align-items:center;margin-bottom:16px}.my-courses .alert button{margin-left:12px}.register-save-actions{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.close-area .register-save-actions>button{margin:0;min-height:44px;font-size:.94rem;padding:11px 18px}.register-save-state{text-align:right;min-height:1.4em;margin:10px 0 0;font-size:.82rem}.register-save-state.pending{color:#976100}@media(max-width:720px){.register-save-actions>button{flex:1 1 145px}.register-save-state{text-align:left}}.recent-changes{margin-top:20px;min-width:0}.recent-changes h2{font-size:1.15rem;margin:0 0 10px}.recent-changes>.secondary{font-size:.85rem;line-height:1.5}.recent-changes-list{list-style:none;padding:0;margin:16px 0}.recent-changes-list li{border-top:1px solid var(--border);padding:12px 0;font-size:.86rem;line-height:1.5;overflow-wrap:anywhere}.recent-changes-list strong,.recent-changes-list span,.recent-changes-list small{display:block}.recent-changes-list small{color:var(--grey);margin-top:5px;font-size:.75rem}.recent-note{white-space:pre-wrap;margin:6px 0;color:var(--grey);max-height:8em;overflow:auto}:root{--text-title: 1.75rem;--text-section: 1rem}h1,h2,h3{font-weight:600}.app-header{padding:20px 24px 18px;border-bottom-width:2px}.heading h1,.detail-header h1{margin-top:10px}.page{margin-top:22px}.home-navigation{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.home-navigation button{min-height:36px;padding:7px 12px;font-size:.8125rem;gap:6px;border-radius:6px}.home-navigation svg{width:17px;height:17px}.course-list{gap:10px}.profile-layout>section>.panel:first-of-type{margin-top:0}.course-card{padding:14px 16px;border-width:1px;border-radius:8px}.course-card h3{font-size:1rem;line-height:1.3;margin:4px 0 6px}.course-card>.mono{font-size:.875rem}.course-card p{font-size:.8125rem;line-height:1.4}.course-card .teacher-line{margin-bottom:7px}.badge{padding:3px 7px;font-size:.625rem;border-radius:3px}.day-label{font-size:.8125rem;margin-bottom:14px}.panel{border-width:1px;border-radius:8px;padding:18px}.search{margin:10px 0 12px}.search label{font-size:.6875rem;letter-spacing:1.5px}.search input,.search button.primary{height:42px;min-height:42px;font-size:.875rem}.search input{border-width:1px;border-radius:7px}.search button.primary{min-width:82px;padding:8px 14px;border-radius:7px}.filter-panel{border:0;border-bottom:1px solid var(--border);border-radius:0;padding:0 0 8px;margin-bottom:16px}.filter-panel summary{font-size:.8125rem;min-height:32px}.filter-panel summary:after{content:"+";margin-left:auto;font-size:1.1rem}.filter-panel[open] summary:after{content:"−"}.filter-summary-count{border-radius:4px;padding:2px 6px;background:var(--pale);color:var(--blue);font-size:.75rem}.filter-grid{gap:10px;margin:12px 0 6px}.filter-grid label{font-size:.8125rem}.filter-grid input,.filter-grid select{min-height:38px;padding:8px 9px;font-size:.8125rem;border-width:1px;border-radius:6px}.filter-panel>.text-link{min-height:32px;font-size:.75rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;margin:18px 0}.form-grid label{margin:0;min-width:0}.form-grid input,.form-grid select{min-width:0}@media(max-width:360px){.form-grid{grid-template-columns:minmax(0,1fr)}}.calendar{padding:18px}.month-nav{margin-bottom:10px}.month-nav h2{font-size:1rem}.calendar .icon-button{width:36px;height:36px;min-height:36px;border-width:1px;border-radius:6px}.calendar .icon-button svg{width:18px;height:18px}.weekday{font-size:.6875rem;padding:5px 0}.calendar-grid{gap:2px}.calendar-day{height:46px;padding:2px;grid-template-rows:20px 15px;gap:2px;border-radius:6px;font-size:1rem}.calendar-day>span:first-child{line-height:20px}.calendar-day .count{font-size:.6875rem;min-height:15px;line-height:15px;min-width:17px;padding:0 4px;border-radius:3px}.calendar-key{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin-top:12px;padding-top:10px;font-size:.75rem}.calendar-key p{margin:2px 0;gap:8px}.calendar-key i{width:12px;height:12px;border-radius:3px}.teacher-register{padding:12px 16px;margin-top:16px}.teacher-register>.secondary{font-size:.8125rem;margin-bottom:10px}.teacher-row{font-size:.875rem;gap:10px}.teacher-substitute{margin-bottom:0;color:var(--grey)}.teacher-substitute select,.audit-action-filter select,.statistics-filters select{display:block;appearance:none;-webkit-appearance:none;min-height:44px;margin-top:6px;padding:10px 36px 10px 12px;font-size:.875rem;line-height:1.4;border:1px solid var(--border);border-radius:7px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23606979' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;color:#181a20}.teacher-substitute select:disabled{background-color:var(--pale);color:var(--grey);-webkit-text-fill-color:var(--grey);opacity:1;cursor:not-allowed}.note-button span{display:inline;font-size:.85rem}.lesson-info .lesson-location-time>span:first-child{text-transform:uppercase}.lesson-time{white-space:nowrap}.registry-page>.home-navigation{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}.register-heading{font-size:var(--text-title);line-height:1.2;letter-spacing:-.5px;margin:0 0 16px;overflow-wrap:anywhere}.registry-page .lesson-info{padding-bottom:18px}.registry-page .lesson-info>:last-child{margin-bottom:0}.register-row{min-height:54px;padding:8px 0}.person-link,.row-person>strong{font-size:.875rem}.school-line{font-size:.75rem;margin:2px 0}.row-actions{gap:12px}.status-button{width:36px;height:36px;font-size:.875rem}.result{padding:9px 10px;font-size:.875rem}.results-more{display:block;margin:12px auto 0}@media(min-width:851px){.dashboard{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:30px}.avatar{width:36px;height:36px;background:var(--blue);font-size:.75rem}.account strong,.account-name{font-size:.875rem}.role{font-size:.625rem}.logout{min-height:38px;padding:8px 12px;font-size:.8125rem}.account{gap:9px}}@media(max-width:850px){.home-navigation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.home-navigation button{min-height:52px;padding:6px;gap:4px;font-size:.75rem}.home-navigation svg{width:19px;height:19px}}@media(max-width:720px){:root{--text-title: 1.375rem}.app-header{padding:14px 16px}.page{margin-top:16px}.search input{font-size:1rem}.search input,.search button.primary{min-height:44px;height:44px}.search button.primary{min-width:72px}.filter-panel summary,.filter-panel>.text-link{min-height:44px}.filter-grid input,.filter-grid select{min-height:44px;font-size:1rem}.calendar{padding:12px}.calendar .icon-button{width:44px;height:44px;min-height:44px}.calendar-day{height:46px}.course-card{padding:13px 14px}.course-card h3{font-size:1rem}.course-card p{font-size:.875rem}.badge{font-size:.6875rem}.register-row{gap:4px;padding:10px 0}.person-link,.row-person>strong{font-size:.9375rem}.school-line{font-size:.75rem}.status-button,.teacher-row .status-button{width:44px;height:44px}.row-actions{gap:8px}.teacher-substitute select{min-height:44px;font-size:1rem}.teacher-row{gap:6px;padding:8px 0}.result{min-height:44px}}.register-date-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 10px}.register-date-toolbar label{display:flex;align-items:center;gap:8px;margin:0;color:var(--grey);font-size:.8125rem}.register-date-toolbar input{width:155px;min-height:36px;height:36px;padding:6px 8px;margin:0;border-width:1px;border-radius:6px;font-size:.8125rem}.register-date-toolbar .outline{min-height:36px;padding:6px 10px;font-size:.8125rem;border-width:1px}.register-overview{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid var(--border);font-size:.8125rem;color:var(--grey)}.register-overview strong{color:var(--blue)}.register-overview .text-link{font-size:inherit;min-height:28px}@media(max-width:850px){.home-navigation{grid-template-columns:repeat(auto-fit,minmax(65px,1fr))}}@media(max-width:400px){.home-navigation{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr}}@media(max-width:720px){.register-date-toolbar label{flex:1;min-width:0}.register-date-toolbar input{flex:1;width:100%;min-width:0;font-size:1rem;height:44px;min-height:44px}.register-date-toolbar .outline{min-height:44px}.register-overview{gap:0 14px;padding-bottom:6px;margin-bottom:10px}.register-overview .text-link{min-height:44px}.home-navigation button{font-size:.6875rem}}.import-entry{margin-bottom:16px;min-height:36px;font-size:13px}.import-view{max-width:900px;margin-inline:auto}.import-view>.panel,.import-view details.panel{margin-bottom:18px}.import-view h2{font-size:var(--text-section);font-weight:600}.import-view p{line-height:1.5}.import-view label{display:grid;gap:6px;margin:12px 0;font-size:14px}.import-view input:not([type=radio]):not([type=checkbox]),.import-view select{min-height:40px;font-size:14px;padding:8px 10px;max-width:100%;width:100%;min-width:0;margin-top:0}.import-upload{max-width:380px}.import-view small{display:block;color:var(--muted,#606977);font-size:12px;overflow-wrap:anywhere}.import-conflict{margin:16px 0;border:1px solid #dce3f4;border-radius:8px;padding:12px;min-width:0}.import-conflict label{display:flex;align-items:flex-start;gap:10px}.import-conflict input{margin-top:5px;flex-shrink:0}.import-course-list,.import-person-list{max-height:420px;overflow:auto;padding-right:4px}.import-course-list label,.import-person-list label{grid-template-columns:minmax(0,1fr) minmax(160px,1fr);align-items:center;border-bottom:1px solid #edf0f8;padding-bottom:8px}.import-counts{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.import-counts div{display:flex;justify-content:space-between;gap:12px;padding-block:8px;border-bottom:1px solid #edf0f8;font-size:14px}.import-counts dd{margin:0;font-weight:600;color:#2343b5}@media(max-width:600px){.import-course-list label,.import-person-list label,.import-counts{grid-template-columns:1fr}.import-view input:not([type=radio]):not([type=checkbox]),.import-view select,.import-view button{min-height:44px}.import-view .panel{padding:14px}.import-person-list{max-height:360px}}.import-weekdays{display:flex;gap:10px;flex-wrap:wrap}.import-weekdays label{display:flex;align-items:center;gap:5px}.import-view .import-weekdays input{width:auto;min-height:18px}.import-diff-list{list-style:none;padding:0;max-height:420px;overflow:auto}.import-diff-list li{display:grid;gap:3px;border-bottom:1px solid #edf0f8;padding:9px 0;font-size:14px}.import-diff-list strong{font-size:12px;font-weight:600;color:#2343b5}.import-teaching-list{max-height:620px;overflow:auto;padding-right:4px}.import-calendar-period{display:grid;grid-template-columns:1fr 1fr;gap:12px}.import-teaching-list .import-conflict label{display:flex;flex-direction:column;gap:6px;min-width:0}.import-teaching-list .import-conflict input{margin-top:0;min-width:0;width:100%}.import-teaching-list .import-conflict .import-defer{flex-direction:row;align-items:center}.import-teaching-list .import-conflict .import-defer input{width:auto}.import-view label.import-defer{display:flex;align-items:flex-start;gap:8px}.import-view .import-defer input{min-height:18px;width:auto;flex-shrink:0;margin-top:2px}@media(max-width:600px){.import-teaching-list{max-height:none;overflow:visible;padding:0}}.course-statistics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}.course-statistics-grid .panel{margin:0;min-width:0}.course-statistics .text-link h3{margin:0;text-align:left}.course-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;margin:18px 0 0}.course-metrics dt{font-size:13px;letter-spacing:0;text-transform:none}.course-metrics dd{font-size:24px;font-weight:500;margin:4px 0 0;color:var(--blue)}.course-metrics small{display:block;font-size:12px;font-weight:400;color:var(--grey);margin-top:4px}@media(max-width:720px){.course-statistics-grid{grid-template-columns:1fr}}.audit-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.audit-toolbar h2{margin:0 auto 0 0}.audit summary strong{display:inline}.audit-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;font-size:13px}@media(max-width:600px){.audit-toolbar{align-items:stretch;flex-direction:column}.audit-toolbar h2{margin:0}.audit-pagination{gap:6px}.audit-pagination button{padding:10px;font-size:13px}}.home-navigation button.navigation-import{background:#fff3d6;border-color:#ead19a;color:#72500d}.home-navigation button.navigation-import:hover{background:#ffebbb;border-color:#c99430}.home-navigation button.navigation-import.active{background:#ffe4a3;border-color:#a57316;color:#5e4107}.import-view input[type=radio],.import-view input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;max-width:20px;padding:0;margin:2px 0 0;flex:0 0 20px;accent-color:var(--blue)}.import-conflict label.import-duplicate-option{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;min-height:44px;padding:10px;border:1px solid transparent;border-radius:6px;cursor:pointer}.import-duplicate-option>span{min-width:0;overflow-wrap:anywhere;line-height:1.5}.import-duplicate-option small{margin-top:4px}.import-duplicate-option:has(input:checked){background:var(--pale);border-color:var(--border)}.import-course-match{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf0f8}.import-course-match>span:first-child{min-width:0;overflow-wrap:anywhere}.import-course-match>.badge{flex-shrink:0}.import-account-notice{background:#fff8e7;border-color:#e6d19a;color:#73551a;font-size:14px;line-height:1.5}.import-account-notice p{margin:6px 0;overflow-wrap:anywhere}.import-teaching-summary{display:grid;grid-template-columns:minmax(0,1.2fr) 110px minmax(0,1fr);gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--border);font-size:14px;overflow-wrap:anywhere}.import-teaching-summary strong{font-weight:500}.import-teaching-summary .mono{font-size:13px;white-space:nowrap}@media(max-width:600px){.import-teaching-summary{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.import-teaching-summary>span:last-child{grid-column:1 / -1}}.import-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.import-summary-grid>div{background:var(--pale);padding:12px;border:1px solid var(--border);border-radius:8px}.import-summary-grid dt{font-size:12px;color:var(--grey);line-height:1.4}.import-summary-grid dd{font-size:26px;margin:8px 0 0;font-weight:500;color:var(--blue)}.import-summary-grid>.needs-attention{background:#fff8e7;border-color:#e6d19a}.import-summary-grid>.needs-attention dd{color:#73551a}@media(max-width:850px){.import-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:500px){.import-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.import-warning-panel{border-color:#e6d19a;background:#fffcf5}.import-warning-list{padding-left:22px;line-height:1.55;overflow-wrap:anywhere}.import-warning-list li+li{margin-top:8px}.import-warning-accept{display:flex!important;align-items:flex-start;gap:10px;padding-top:14px;border-top:1px solid #e6d19a;cursor:pointer}.import-warning-accept span{min-width:0;line-height:1.5}.import-warning-group{margin:12px 0;border-top:1px solid #e6d19a;padding-top:12px}.import-warning-group summary{font-weight:600;cursor:pointer;line-height:1.5}.import-warning-group summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}.header-brand{display:flex;align-items:center;gap:10px;min-width:0}.club-logo{display:block;width:112px;max-width:112px;height:auto;max-height:32px;object-fit:contain;flex-shrink:0}.app-name{font-size:.68rem;letter-spacing:1.5px}.login-header .club-logo{width:136px;max-width:136px;max-height:32px}@media(max-width:640px){.club-logo{width:96px;max-width:96px;max-height:28px}.header-brand{gap:8px}.app-name{font-size:.6rem;letter-spacing:1px}}.app-header .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px}.app-header .brand-logo{justify-self:start;min-width:0}.app-header .app-title{margin:0;font-size:1rem;line-height:1.3;letter-spacing:.1px;font-weight:500;color:var(--grey);text-align:center}.app-header .account{position:static;justify-self:end;min-width:0}.app-header .account>div{min-width:0}.app-header .account-name{display:block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:850px){.app-header .account>div,.app-header .logout span{display:none}.app-header .logout{width:44px;height:44px;min-height:44px;padding:0;margin-left:0}}.detail-heading{max-width:calc(var(--content-width) - 48px);margin:18px auto 0}.detail-heading h1{margin:8px 0 0;font-size:var(--text-title);line-height:1.2;overflow-wrap:anywhere}@media(max-width:720px){.app-header .header-inner{gap:8px}.app-header .app-title{font-size:.875rem;max-width:140px}.detail-heading{max-width:none;margin-top:12px}.app-header .brand-logo .club-logo{width:88px;max-width:88px}}@media(max-width:400px){.app-header .header-inner{gap:6px}.app-header .app-title{font-size:.8125rem;max-width:90px}.app-header .brand-logo .club-logo{width:76px;max-width:76px}.app-header .account{gap:4px}.app-header .account .avatar,.app-header .account .logout{width:36px;min-width:36px;padding:0}}.attendance-control.buttons-only .statuses{display:flex}@media(max-width:720px){.teacher-register .teacher-row{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 0}.teacher-register .teacher-row+.teacher-row{border-top:1px solid var(--border)}.teacher-register .teacher-row>span{flex:0 1 auto}.teacher-register .instructor-attendance{order:1;width:auto;justify-content:flex-start}.teacher-register .teacher-substitute{order:2;width:100%;max-width:360px}}.note-button.has-note{color:#a04449;background:#fbf0f0}.note-button.has-note svg{fill:currentColor;stroke:currentColor}.note-button.has-note:hover{color:#87383d;background:#f6e5e6}.note-button.has-note{color:#806000;background:transparent}.note-button.has-note svg{fill:#e0ad00;stroke:#e0ad00}.note-button.has-note:hover{color:#654c00;background:#fff8dc}.register-save-bar{background:#fff;padding:12px 0}.register-save-bar .register-save-state{margin:0 0 8px;text-align:left}.register-save-error{color:#a12420;background:#fff3f2;border:1px solid #df302a;border-radius:6px;padding:10px;margin:0 0 8px;font-size:.875rem;line-height:1.4}.register-completion-hint{font-size:.75rem;color:var(--grey);margin:8px 0 0}@media(max-width:720px){.registry-page{padding-bottom:0}.registry-page .participant-attendance .statuses{display:flex;gap:8px}.registry-page .participant-attendance .status-button{width:44px;min-width:44px;height:44px}.register-save-bar{position:fixed;z-index:30;left:0;right:0;bottom:0;padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);box-shadow:0 -4px 16px #1720440c;max-height:50dvh;overflow-y:auto}.close-area .register-save-actions{flex-wrap:nowrap;gap:8px}.close-area .register-save-actions>button{flex:1 1 0;min-width:0;min-height:48px;padding:10px 8px;font-size:.875rem}.register-save-bar .register-save-state{font-size:.75rem;line-height:1.4}.register-refresh{margin-bottom:calc(var(--register-save-height,160px) + 24px)}.registry-page .register-row{scroll-margin-bottom:calc(var(--register-save-height,160px) + 16px)}}.close-register-summary{background:var(--pale);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:16px;overflow-wrap:anywhere}.close-register-summary h3{font-size:1rem;line-height:1.4;color:var(--blue);margin:0 0 6px}.close-register-summary p{font-size:.875rem;line-height:1.5;margin:0 0 12px}.close-register-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}.close-register-summary dt{font-family:inherit;font-weight:600;font-size:.8125rem;line-height:1.4;letter-spacing:0;color:var(--blue);margin:0 0 4px}.close-register-summary dd{font-size:.875rem;line-height:1.5;margin:0}.close-register-summary dd span{color:var(--grey);font-size:.8125rem}@media(max-width:400px){.close-register-summary dl{grid-template-columns:1fr;gap:8px}}.participant-profile>aside{grid-column:2;grid-row:1}.participant-profile>section{grid-column:1;grid-row:1}.participant-contacts{border-color:#9eafd9}.participant-contacts .contact dl{margin:0}.participant-contacts .contact dd{margin-bottom:8px;overflow-wrap:anywhere}.participant-contacts a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;overflow-wrap:anywhere;font-weight:600}.participant-contacts .eyebrow{margin-bottom:14px}.frequency-explanation summary{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--blue);font-size:.875rem;cursor:pointer}.frequency-explanation summary:before{content:"›";font-size:1.2rem;transform:rotate(0)}.frequency-explanation[open] summary:before{transform:rotate(90deg)}.frequency-explanation p{margin:8px 0 0}@media(max-width:850px){.participant-profile{display:flex;flex-direction:column;gap:14px}.participant-profile>aside{display:contents}.participant-profile>aside>.panel.participant-contacts{display:block;order:-3;margin:0}.participant-profile>aside>.frequency{order:-2;margin:0}.participant-profile>section{order:0}.participant-profile .frequency .percentage{font-size:2rem}.participant-profile .frequency>p{margin-bottom:0}}.closed-register-result{padding:16px;border:1px solid #b7ddca;background:#edf7f2;color:#176242;border-radius:8px;margin-bottom:18px}.closed-register-result>strong{font-size:1rem}.closed-register-result>p{font-size:.875rem;margin:6px 0 12px;color:#285c45}.closed-register-result .outline{min-height:44px;background:#fff}.instructor-attendance{flex-direction:column;align-items:flex-end;gap:6px}.instructor-presence-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.instructor-hours-button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--grey);font-size:.78rem;padding:8px 2px;min-height:44px}.instructor-hours-summary{color:var(--blue);font-size:.78rem}.instructor-hours-dialog{width:calc(100% - 32px);max-width:420px}.instructor-hours-dialog .dialog-header{align-items:flex-start}.instructor-hours-dialog .dialog-header p{margin:4px 0 0;font-size:.85rem}.instructor-scheduled-hours{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-block:1px solid var(--border);font-size:.85rem}.instructor-time-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.instructor-time-fields label{min-width:0;font-size:.85rem}.instructor-time-fields input{width:100%;min-width:0;min-height:48px;font-size:16px}.instructor-duration{font-size:.85rem}.instructor-duration strong{color:var(--blue)}.instructor-hours-reset{font-size:.8rem;min-height:44px}.instructor-hours-dialog-actions{display:flex;gap:10px;margin-top:12px}.instructor-hours-dialog-actions button{flex:1;min-height:44px;padding:10px}@media(max-width:720px){.teacher-register .instructor-attendance{align-items:flex-start}dialog.instructor-hours-dialog{margin:auto auto 0;width:100%;max-width:480px;max-height:calc(100dvh - 24px);border-radius:18px 18px 0 0;padding:22px 20px max(24px,env(safe-area-inset-bottom))}}.instructor-hours-tooltip{display:inline-flex}.instructor-hours-tooltip .instructor-hours-button:disabled{pointer-events:none}.register-row .note-button{flex:0 0 104px;width:104px;justify-content:flex-start;text-align:left;white-space:nowrap;padding:0 8px}.register-row .note-button svg{flex-shrink:0}.audit-action-filter{display:flex;flex-direction:column;gap:6px;width:100%;max-width:360px;margin:0 0 16px;font-size:.8125rem}.audit-action-filter select,.statistics-filters select{width:100%;min-width:0;min-height:38px;margin:0;padding:8px 36px 8px 10px;border-radius:6px;font-size:.8125rem;font-weight:400}@media(max-width:720px){.audit-action-filter select,.statistics-filters select{min-height:44px;font-size:1rem}}.home-navigation .last-import{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:12px;margin-left:auto;align-self:center;text-align:right;overflow-wrap:anywhere}.last-import>svg{flex-shrink:0}@media(max-width:850px){.home-navigation .last-import{grid-column:1/-1;margin:4px 0 0;justify-self:end}.home-navigation:has(.last-import){grid-auto-rows:auto}}.instructor-statistics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.instructor-statistics-grid>.panel{margin:0;min-width:0}@media(max-width:720px){.instructor-statistics-grid{grid-template-columns:minmax(0,1fr);gap:18px}}.statistics-filters{margin:0 0 18px}.statistics-filters select{margin-top:6px}.statistics-period h2{font-size:1rem;margin:0 0 8px}.statistics-period>.secondary{font-size:.8125rem;margin-bottom:16px}.statistics-group{border-top:1px solid var(--border);padding-top:16px;margin-top:16px}.statistics-group h3{font-size:.875rem;margin:0 0 6px;letter-spacing:0}.statistics-group .secondary{font-size:.8125rem}.statistics-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;margin:16px 0}.statistics-metrics dt{font:400 .8125rem/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0;margin-bottom:4px}.statistics-metrics dd{font-size:1.125rem;font-weight:600;line-height:1.4;margin:0;color:var(--blue)}.statistics-metrics small{display:block;color:var(--grey);font-size:.75rem;font-weight:400;margin-top:4px}.statistics-explanation{font-size:.8125rem;margin:16px 0 0}.statistics-period .statistics-metrics{grid-template-columns:minmax(0,1fr);gap:0}.statistics-period .statistics-metrics>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(70px,.8fr);gap:16px;align-items:start;padding:10px 0;border-bottom:1px solid var(--border)}.statistics-period .statistics-metrics>div:last-child{border-bottom:0}.statistics-period .statistics-metrics dt{margin:0}.statistics-period .statistics-metrics dd{text-align:right;font-size:1rem}
