:root{font-family:Hiragino Sans,Yu Gothic,Noto Sans JP,sans-serif;color:#28332e;background:#f7f4ed;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 75% 0%,rgba(223,191,133,.14),transparent 33%),#f7f4ed}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:28px}.auth-card{width:min(100%,520px);border:1px solid #dfd3bf;border-radius:24px;padding:38px;background:#fffdf8;box-shadow:0 20px 50px #2c393117}.auth-card h1{margin-top:8px;color:#173b36;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:2.15rem;letter-spacing:.14em}.auth-card h2{margin-top:30px;color:#213b36;font-size:1.35rem}.auth-message,.auth-notice,.auth-error{margin-top:14px;line-height:1.75}.auth-message{color:#68756e}.auth-notice{border-radius:10px;padding:11px 13px;background:#edf7f2;color:#236256;font-weight:700}.auth-error{color:#a44139}.auth-form{display:grid;gap:18px;margin-top:22px}.auth-form label{display:grid;gap:8px;color:#4e5d56;font-weight:800}.auth-form input{width:100%;border:1px solid #cfc7b8;border-radius:10px;padding:13px 14px;color:#213b36;background:#fff}.app-shell{display:flex;min-height:100vh}.sidebar{display:flex;flex-direction:column;width:264px;min-height:100vh;padding:34px 22px 22px;background:#173b36;color:#f7f3e7}.brand h1{margin-top:6px;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:2.25rem;font-weight:600;letter-spacing:.16em}.eyebrow{color:#a47a43;font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.sidebar .eyebrow{color:#d5b778}.brand-subtitle{margin-top:10px;color:#d8d3c5;font-size:.86rem}.navigation{display:flex;flex-direction:column;gap:8px;margin-top:52px}.nav-item{border:0;border-radius:12px;padding:14px 16px;color:#c8d2ca;background:transparent;text-align:left;transition:background .18s ease}.nav-item:hover,.nav-item.active{color:#fff;background:#ecdbab26}.nav-item.active{border-left:3px solid #e0b764;font-weight:700}.rule-card{margin-top:auto;border:1px solid rgba(224,183,100,.3);border-radius:16px;padding:18px 16px;background:#0000001f}.rule-card strong{display:block;margin-top:10px;font-size:.92rem}.rule-card p:last-child{margin-top:7px;color:#c8d2ca;font-size:.78rem}.main{flex:1;max-width:1140px;padding:42px 46px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.page-header h2{margin-top:8px;color:#213b36;font-size:1.85rem;font-weight:650}.connection-state{margin-top:10px;color:#6b766e;font-size:.8rem}.import-status{display:flex;flex-wrap:wrap;align-items:center;gap:9px 12px;border:1px solid #d9e4df;border-radius:10px;margin:-12px 0 22px;padding:10px 14px;background:#f4faf7;color:#31594f;font-size:.78rem}.import-status strong{color:#174b42}.import-status small{flex-basis:100%;color:#8b5c3b}.import-status-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;flex-basis:100%;margin:2px 0 0}.import-status-details div{min-width:0;border:1px solid #dce8e2;border-radius:8px;padding:7px 9px;background:#fffdf8}.import-status-details dt{margin-bottom:2px;color:#718179;font-size:.67rem;font-weight:800}.import-status-details dd{margin:0;overflow-wrap:anywhere;color:#28594f;font-size:.75rem;font-weight:750}.runtime-state-actions{display:flex;flex-basis:100%;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #dce8e2;margin-top:1px;padding-top:9px}.runtime-state-actions span{color:#63756d;font-weight:700}.runtime-state-actions .secondary-button{width:auto;white-space:nowrap}.runtime-state-actions .secondary-button:disabled{border-color:#d2ddd8;color:#9ca9a3;background:#edf3f0;cursor:not-allowed}.header-actions{display:flex;flex-wrap:wrap;gap:11px;justify-content:flex-end}.data-mode-switch{display:inline-flex;overflow:hidden;border:1px solid #d9cdb9;border-radius:10px;background:#fffdf8}.data-mode-switch button{border:0;border-right:1px solid #d9cdb9;padding:11px 14px;color:#53625b;background:transparent;font-weight:800}.data-mode-switch button:last-child{border-right:0}.data-mode-switch button.active{color:#fff;background:#196458}.primary-button{border:0;border-radius:12px;padding:13px 22px;color:#fff;background:#196458;font-weight:700;transition:background .18s ease}.ghost-button{border:1px solid #ded4c6;border-radius:12px;padding:12px 18px;color:#396157;background:#fffdf8;font-weight:700}.ghost-button:hover{background:#f2ede3}.primary-button:hover{background:#114f46}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.compact-stats{margin:18px 0 0;opacity:.82}.summary-card{border:1px solid #ebe2d5;border-radius:17px;padding:20px 22px;background:#fffdf8;box-shadow:0 5px 18px #1f2b2209}.summary-card p{color:#6b766e;font-size:.83rem}.summary-card strong{display:block;margin:10px 0 7px;color:#193c35;font-size:1.7rem}.summary-card span{color:#878d84;font-size:.78rem}.compact-stats .summary-card{border-radius:12px;padding:12px 14px;box-shadow:none}.compact-stats .summary-card p{font-size:.72rem}.compact-stats .summary-card strong{display:inline-block;margin:5px 8px 3px 0;font-size:1rem}.compact-stats .summary-card span,.compact-stats .summary-card small{font-size:.7rem}.credit-summary-card strong{margin-bottom:10px}.credit-summary-list{display:flex;flex-direction:column;gap:6px;min-height:28px;margin-bottom:10px}.credit-summary-list p{display:flex;justify-content:space-between;gap:8px;color:#334b43;font-size:.78rem}.credit-summary-list b{font-weight:700}.credit-summary-list small{color:#878d84;font-size:.74rem}.summary-link{border:0;padding:0;color:#297466;background:transparent;font-size:.76rem;font-weight:700}.summary-link:hover{text-decoration:underline}.registry-stats .summary-card strong{font-size:1.32rem}.revenue-month-control{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 12px}.revenue-month-control label{color:#53645c;font-size:.8rem;font-weight:800}.revenue-month-control select{border:1px solid #ded6ca;border-radius:9px;padding:8px 34px 8px 11px;color:#193c35;background:#fffdf8;font-weight:700}.json-import-panel{border:1px solid #e3dacd;border-radius:12px;margin:-8px 0 18px;padding:16px;background:#fffdf8}.json-import-panel.collapsed{padding-bottom:12px}.json-import-panel .panel-heading{margin-bottom:12px}.json-import-panel.collapsed .panel-heading{margin-bottom:0}.json-import-panel .panel-heading p{margin-top:4px;color:#69766e;font-size:.78rem}.json-import-actions{display:flex;gap:8px}.json-import-panel textarea{display:block;width:100%;min-height:118px;max-height:220px;border:1px solid #ded6ca;border-radius:9px;padding:11px 12px;color:#26372f;background:#fbf8f1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;line-height:1.45;resize:vertical}.compact-button{padding:9px 15px}.import-message{margin-top:9px;color:#276758;font-size:.78rem;font-weight:700}.import-message.error{color:#a44937}.import-message.success{color:#276758}.registry-layout{display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(330px,.95fr);gap:18px;align-items:start}.registry-mode-switch{display:inline-flex;overflow:hidden;border:1px solid #d8cec0;border-radius:12px;margin:-8px 0 18px;background:#fffdf8}.registry-mode-switch button{border:0;padding:11px 17px;color:#53645c;background:transparent;font-weight:800}.registry-mode-switch button+button{border-left:1px solid #eee6da}.registry-mode-switch button.active{color:#fff;background:#28675c}.registry-list-panel,.registry-detail-panel{min-height:420px}.registry-detail-actions{display:flex;align-items:center;gap:8px}.segmented-control{display:flex;overflow:hidden;border:1px solid #ded6ca;border-radius:10px;background:#fff}.segmented-control button{border:0;padding:8px 12px;color:#617069;background:transparent;font-size:.73rem;font-weight:800}.segmented-control button+button{border-left:1px solid #eee6da}.segmented-control button.active{color:#fff;background:#28675c}.registry-list{display:grid;gap:10px}.registry-row{display:grid;grid-template-columns:minmax(120px,.95fr) minmax(130px,1fr) max-content max-content;gap:10px;align-items:center;width:100%;border:1px solid #eee6d9;border-radius:12px;padding:13px 14px;color:#414c46;background:#faf8f2;text-align:left}.registry-row:hover,.registry-row.selected{border-color:#bcd7ca;background:#f0f7f1}.registry-row strong{display:block;color:#283a35}.registry-row span{min-width:0;overflow-wrap:anywhere}.registry-row small{color:#7a837d;font-size:.7rem}.registry-row em{border-radius:999px;padding:6px 9px;color:#376453;background:#eaf1ec;font-size:.69rem;font-style:normal;font-weight:800;white-space:nowrap}.registry-row.lead-row{grid-template-columns:minmax(120px,1fr) minmax(90px,.7fr) max-content max-content}.lead-flow{display:flex;flex-wrap:wrap;gap:7px;margin:-4px 0 16px}.lead-flow span{border-radius:999px;padding:7px 10px;color:#386154;background:#e8f0ea;font-size:.72rem;font-weight:800}.registry-profile{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.registry-profile div,.registry-note,.next-data-model{border:1px solid #e3dccf;border-radius:11px;padding:13px;background:#fffaf0}.registry-profile p,.registry-note p,.next-data-model p{margin-bottom:7px;color:#8b6a37;font-size:.74rem;font-weight:800}.registry-profile strong{display:block;color:#28332e;font-size:.92rem}.registry-profile span,.registry-note span,.next-data-model span{display:block;margin-top:5px;color:#596a62;font-size:.78rem;line-height:1.5}.contract-checklist{display:grid;gap:8px;margin-bottom:14px}.contract-checklist div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #f0e7da;padding:9px 0;color:#617069;font-size:.8rem}.contract-checklist strong{color:#243f38;text-align:right}.registry-note{margin-bottom:12px;background:#eef5f0}.registry-note p{color:#2f665c}.soft-note{background:#fffaf0}.soft-note p{color:#8b6a37}.next-data-model{background:#f4f1e9}.content-columns{display:grid;grid-template-columns:minmax(430px,1.3fr) minmax(295px,.85fr);gap:18px}.panel{border:1px solid #ebe2d5;border-radius:18px;padding:23px;background:#fffdf8;box-shadow:0 5px 20px #1f2b2209}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.panel-heading h3{color:#233e37;font-size:1.13rem}.session-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:19px}.session-toolbar h3{color:#233e37;font-size:1.13rem}.session-toolbar p{margin-top:5px;color:#778279;font-size:.76rem}.date-picker{display:flex;flex-direction:column;gap:5px;color:#68756d;font-size:.73rem;font-weight:700}.date-picker input{border:1px solid #e2dacd;border-radius:9px;padding:8px 10px;color:#28332e;background:#fff}.week-switcher{display:flex;align-items:center;gap:8px;margin-bottom:16px}.week-switcher button{border:1px solid #e2dacd;border-radius:9px;padding:7px 12px;color:#53645c;background:#fff;font-weight:650}.week-switcher button:hover{border-color:#bad5c9;background:#f1f7f2}.week-switcher p{margin-left:auto;color:#297466;font-size:.79rem;font-weight:700}.week-overview{display:grid;grid-template-columns:repeat(5,minmax(88px,1fr));gap:8px;margin-bottom:20px}.week-day{display:flex;flex-direction:column;gap:5px;min-height:113px;border:1px solid #eee6da;border-radius:12px;padding:10px 9px;color:#35463f;background:#faf8f2;text-align:left}.week-day:hover,.week-day.selected{border-color:#acd2c2;background:#edf5ef}.week-day strong{color:#233e37;font-size:.84rem}.week-day span{color:#778279;font-size:.71rem}.week-day em{margin-top:auto;color:#586b62;font-size:.73rem;font-style:normal;font-weight:650}.week-day small{color:#297466;font-size:.72rem;font-weight:700}.selected-day-heading{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid #eee6da;margin-bottom:12px;padding-top:16px;color:#233e37;font-size:.88rem}.selected-day-heading span{display:block;margin-top:3px;color:#778279;font-size:.74rem}.selected-day-heading p{color:#5e6c64;font-size:.76rem;font-weight:700}.session-empty{border-radius:11px;padding:22px 14px;color:#768179;background:#faf8f2;text-align:center;font-size:.83rem}.attendance-closed{border-radius:999px;padding:7px 10px;color:#386154;background:#e8f0ea;font-size:.72rem;font-weight:700}.attendance-closed.complete{color:#275d67;background:#e3f0f1}.today-work-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #d7e5dc;border-radius:12px;margin-bottom:18px;padding:13px 14px;background:#f0f7f1}.today-work-card strong{display:block;margin-top:4px;color:#243f38;font-size:.94rem}.today-work-card button{border:1px solid #9dc9b3;border-radius:9px;padding:9px 12px;color:#275d52;background:#fffdf8;font-size:.78rem;font-weight:800;white-space:nowrap}.pill{border-radius:999px;padding:7px 12px;color:#637269;background:#f1ede4;font-size:.75rem;font-weight:650}.pill.accent{color:#386154;background:#e8f0ea}.session-list{display:flex;flex-direction:column;gap:10px}.session-row{display:flex;align-items:center;gap:14px;width:100%;border:1px solid transparent;border-radius:13px;padding:13px 14px;color:inherit;background:#faf8f2;text-align:left}.session-row:hover,.session-row.selected{border-color:#cbe0d5;background:#f1f7f2}.date-chip{display:flex;flex-direction:column;width:74px;color:#38453f;font-size:.83rem}.date-chip span{margin-top:3px;color:#7e877e;font-size:.73rem}.session-copy{display:flex;flex:1;flex-direction:column;gap:5px;font-size:.86rem}.session-copy span{color:#748077;font-size:.76rem}.session-copy small{color:#5e6f65;font-size:.7rem;font-weight:700}.session-copy em,.calendar-slot em,.makeup-slot-kind,.reservation-slot small{width:fit-content;border-radius:999px;padding:4px 8px;color:#6b5630;background:#fff2d7;font-size:.68rem;font-style:normal;font-weight:800}.capacity{min-width:58px;text-align:right}.capacity strong{display:block;color:#297466;font-size:.8rem}.capacity span{color:#7b857c;font-size:.72rem}.capacity.full strong{color:#b15a47}.session-detail h3{margin-top:13px;font-size:1.18rem}.detail-time{margin:9px 0 8px;color:#69746d;font-size:.86rem}.session-kind-note{width:fit-content;border-radius:999px;margin-bottom:20px;padding:6px 10px;color:#6b5630;background:#fff2d7;font-size:.74rem;font-weight:800}.session-detail .capacity{margin-bottom:20px;text-align:left}.session-detail .capacity strong{font-size:1.08rem}.attendee-list{border-top:1px solid #f0e7da;margin-bottom:20px;padding-top:17px}.attendee-list p{margin-bottom:11px;color:#6b766e;font-size:.79rem}.attendee-list span{display:inline-block;border-radius:999px;margin:0 7px 8px 0;padding:7px 11px;background:#f1ede4;font-size:.79rem}.attendance-totals{display:flex;gap:9px;margin-bottom:14px}.attendance-totals strong{border-radius:999px;padding:8px 12px;color:#28675c;background:#e6f1ea;font-size:.8rem}.attendance-totals .absent{color:#96513f;background:#f7e8e2}.attendance-totals .pending{color:#766845;background:#f7f0df}.auto-attendance-note{margin-bottom:15px;border-radius:10px;padding:11px 12px;color:#6b5a39;background:#faf1dc;font-size:.77rem;line-height:1.5}.future-attendance-note{border-radius:9px;margin:10px 0;padding:9px 10px;color:#766845;background:#f7f0df;font-size:.72rem;line-height:1.45}.attendance-list{margin-bottom:20px;border-top:1px solid #f0e7da}.attendance-list-title{margin:14px 0 2px;color:#6b766e;font-size:.79rem;font-weight:700}.attendance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #f0e7da;padding:12px 0;font-size:.83rem}.attendance-row div{text-align:right}.attendance-row.planned{align-items:flex-start}.attendance-row small{display:block;margin-top:5px;color:#78837c;font-size:.69rem}.attendance-context-note{color:#2f665c;font-weight:800}.attendance-context-link{display:block;width:fit-content;margin:5px 0 0 auto;border:1px solid #cbded5;border-radius:999px;padding:5px 9px;color:#2f665c;background:#f4faf7;font-size:.69rem;font-weight:800}.attendance-context-link:hover{border-color:#276b5f;background:#e7f2ed}.attendance-status{border-radius:999px;padding:5px 9px;color:#28675c;background:#e6f1ea;font-size:.73rem;font-weight:700}.attendance-status.absent{color:#96513f;background:#f7e8e2}.attendance-status.pending{color:#766845;background:#f7f0df}.attendance-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:9px}.attendance-actions button{border:1px solid #d8cec0;border-radius:8px;padding:6px 8px;color:#2c5f55;background:#fffdf8;font-size:.7rem;font-weight:700}.attendance-actions button:disabled{color:#a1aaa4;background:#f1eee7}.attendance-note-field{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:7px;color:#68736d;font-size:.66rem;font-weight:700;text-align:right}.attendance-row .attendance-note-field{text-align:right}.attendance-note-field input{width:112px;min-width:0;border:1px solid #ded6ca;border-radius:7px;padding:5px 7px;color:#2f3f39;background:#fffdf8;font-size:.68rem}.attendance-note-field input:disabled{color:#a1aaa4;background:#f1eee7}.attendance-note-field small{display:none;margin-top:0;color:#2d7568;font-size:.67rem}.lesson-report-notes{display:grid;gap:4px;border-left:3px solid #b7d5c8;margin:-4px 0 16px;padding:8px 10px;background:#f7fbf6}.lesson-report-notes p{color:#2f665c;font-size:.7rem;font-weight:800}.lesson-report-notes span{color:#3e4d47;font-size:.7rem;line-height:1.45}.walk-in-box{border:1px solid #e5dccf;border-radius:12px;padding:13px;background:#fffaf0}.walk-in-box p{margin-bottom:9px;color:#6b5a39;font-size:.78rem;font-weight:700}.walk-in-box small{color:#7a6d5f;font-size:.74rem}.walk-in-controls{display:grid;gap:8px}.walk-in-controls select{border:1px solid #ded6ca;border-radius:9px;padding:9px 10px;background:#fff}.empty-detail{display:grid;place-items:center;min-height:240px;color:#778279;font-size:.85rem;text-align:center}.secondary-button{width:100%;border:1px solid #28675c;border-radius:11px;padding:12px 17px;color:#236054;background:transparent;font-weight:650}.secondary-button.compact{padding:9px 12px;font-size:.78rem}.table-panel{padding:25px}.student-booking-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;align-items:start}.student-card-list{display:grid;gap:10px}.student-booking-card{display:grid;grid-template-columns:minmax(120px,.85fr) minmax(120px,.8fr) minmax(0,1fr) max-content;gap:10px;align-items:center;width:100%;border:1px solid #eee6d9;border-radius:12px;padding:11px 12px;color:#414c46;background:#faf8f2;text-align:left;overflow:hidden}.student-booking-card:hover,.student-booking-card.selected{border-color:#bcd7ca;background:#f0f7f1}.student-booking-card strong,.reservation-student-summary strong{display:block;color:#283a35}.student-booking-card span{min-width:0;overflow-wrap:anywhere;line-height:1.35}.student-booking-card small,.reservation-student-summary span,.reservation-student-summary small{display:block;margin-top:4px;color:#7a837d;font-size:.69rem}.student-booking-card em{border-radius:999px;padding:6px 8px;color:#376453;background:#eaf1ec;font-size:.68rem;font-style:normal;font-weight:800;text-align:center;white-space:nowrap}.student-reservation-panel{position:sticky;top:22px}.reservation-student-summary{border:1px solid #e8dfd2;border-radius:12px;margin-bottom:14px;padding:13px;background:#fffaf0}.reservation-student-summary p{margin-bottom:6px;color:#6b766e;font-size:.77rem;font-weight:800}.reservation-student-summary small{color:#2f665c;font-weight:800}.teacher-booking-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px}.teacher-booking-counts>span{border:1px solid #d7e5dd;border-radius:10px;padding:9px 10px;background:#f2f8f4}.teacher-booking-counts small{margin:0 0 3px;color:#65746d}.teacher-booking-counts strong{color:#275f53;font-size:.9rem}.reservation-student-summary .teacher-consumed-count{margin-top:9px}.teacher-reservation-management{display:grid;gap:9px;margin-bottom:16px;border:1px solid #e8dfd2;border-radius:12px;padding:13px;background:#fff}.teacher-reservation-management-heading,.teacher-reservation-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.teacher-reservation-management-heading{color:#31443d}.teacher-reservation-management-heading span{color:#6b766e;font-size:.75rem;font-weight:800}.teacher-reservation-list{display:grid;gap:7px}.teacher-reservation-row{border-top:1px solid #eee7dc;padding-top:9px}.teacher-reservation-row>span{display:grid;gap:2px}.teacher-reservation-row small{color:#876a3f;font-size:.68rem;font-weight:800}.teacher-reservation-row strong{color:#31443d;font-size:.8rem}.teacher-reservation-row em{color:#65736d;font-size:.74rem;font-style:normal}.teacher-reservation-row button{flex:0 0 auto;border:1px solid #bc6458;border-radius:9px;padding:8px 10px;color:#9a473e;background:#fff;font-size:.72rem;font-weight:800}.teacher-canceled-fixed-list{display:grid;gap:7px;margin-top:4px;border-top:1px solid #e4ddd2;padding-top:10px}.teacher-canceled-fixed-list>strong{color:#6b766e;font-size:.76rem}.teacher-canceled-fixed-list .teacher-reservation-row button{border-color:#2f7467;color:#245f55}.teacher-canceled-fixed-list .teacher-reservation-row button.restore-active{color:#fff;background:#276b5f}.teacher-fixed-restore-notice{margin:0 0 12px;border-radius:10px;padding:10px 12px;color:#2f665c;background:#edf7f3;font-size:.76rem;font-weight:800;line-height:1.6}.reservation-weekday-filter{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.reservation-weekday-filter button{min-width:50px;border:1px solid #d9e4df;border-radius:999px;padding:8px 11px;color:#4f655d;background:#f7fbf8;font-size:.76rem;font-weight:800}.reservation-weekday-filter button.active{border-color:#276b5f;color:#fff;background:#276b5f}.reservation-weekday-filter button:disabled{border-color:#ebe7df;color:#a8aaa5;background:#f3f1eb}.reservation-date-filter{display:grid;grid-template-columns:auto minmax(170px,1fr);gap:10px;align-items:center;margin-bottom:12px;color:#65736d;font-size:.76rem;font-weight:800}.reservation-date-filter select{width:100%;border:1px solid #d9e4df;border-radius:10px;padding:9px 11px;color:#31443d;background:#fff;font:inherit}.reservation-slot-list{display:grid;gap:8px}.reservation-slot{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:1px solid #d9e6dd;border-radius:10px;padding:11px 12px;color:#31443d;background:#f7fbf6;text-align:left}.reservation-slot span{display:grid;gap:4px;font-size:.8rem;font-weight:700}.reservation-slot strong{color:#28675c;font-size:.76rem;white-space:nowrap}.student-table{overflow:hidden;border:1px solid #efe7dc;border-radius:13px}.schedule-settings-layout{display:grid;grid-template-columns:minmax(360px,.86fr) minmax(420px,1.14fr);gap:18px;align-items:start}.schedule-editor-panel .panel-heading p,.schedule-adjustment-list-panel .panel-heading p{margin-top:5px;color:#748077;font-size:.76rem}.schedule-editor-form{display:grid;gap:13px}.schedule-editor-form label{display:grid;gap:6px;color:#64736b;font-size:.73rem;font-weight:800}.schedule-editor-form input,.schedule-editor-form select{width:100%;border:1px solid #ded6ca;border-radius:9px;padding:10px 11px;color:#28332e;background:#fff}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toggle-row{display:flex!important;align-items:center;grid-template-columns:none!important;gap:8px!important;border:1px solid #e5dccf;border-radius:10px;padding:10px 11px;background:#fffaf0}.toggle-row input{width:auto}.schedule-preview-card,.selected-date-sessions{border:1px solid #dce8e2;border-radius:11px;padding:12px 13px;background:#f4faf7}.schedule-preview-card p,.selected-date-sessions p{margin-bottom:7px;color:#64736b;font-size:.72rem;font-weight:800}.schedule-preview-card strong{display:block;margin-bottom:5px;color:#225d52}.schedule-preview-card span,.selected-date-sessions span{display:inline-block;overflow-wrap:anywhere;color:#3d4f47;font-size:.78rem;font-weight:700}.selected-date-sessions{margin-bottom:14px}.selected-date-sessions span{border-radius:999px;margin:0 6px 7px 0;padding:6px 9px;background:#fff}.schedule-adjustment-list{display:grid;gap:9px}.schedule-adjustment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #eee6d9;border-radius:12px;padding:13px 14px;background:#faf8f2}.schedule-adjustment-row div{display:grid;gap:4px;min-width:0}.schedule-adjustment-row strong{color:#273d36;font-size:.86rem}.schedule-adjustment-row span{color:#68756d;font-size:.75rem;font-weight:800}.schedule-adjustment-row small{overflow-wrap:anywhere;color:#586a61;font-size:.74rem}.schedule-adjustment-row .secondary-button{width:auto}.table-header,.table-row{display:grid;grid-template-columns:1.1fr 1.2fr 1.35fr .55fr .72fr;column-gap:18px;align-items:center;padding:15px 18px}.table-header{color:#778279;background:#f6f2ea;font-size:.78rem;font-weight:700}.table-row{border-top:1px solid #f0e9dd;color:#414c46;font-size:.86rem}.table-row strong{display:block;color:#283a35}.table-row small{color:#7a837d}.plan{border-radius:999px;padding:7px 10px;color:#376453;background:#eaf1ec;text-align:center;font-size:.76rem;font-weight:700}.usage strong{font-size:.86rem}.usage small{display:block;margin-top:4px}.credit-list{display:flex;flex-direction:column;gap:12px}.makeup-dashboard{display:grid;gap:18px}.makeup-stats{margin:0}.summer-credit-issuer{border:1px solid #c9ddcf;background:#f5faf6}.summer-credit-form{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(110px,.55fr) minmax(160px,.8fr) minmax(210px,1.3fr) auto;gap:12px;align-items:end}.summer-credit-form label{display:grid;gap:6px;color:#52655d;font-size:.75rem;font-weight:800}.summer-credit-form input,.summer-credit-form select{width:100%;border:1px solid #cad9d1;border-radius:10px;padding:10px 11px;color:#2c423a;background:#fff}.summer-credit-message{margin-top:12px;color:#276b5f;font-weight:800}.summer-credit-rule{display:block;margin-top:10px;color:#687970}@media(max-width:1050px){.summer-credit-form{grid-template-columns:repeat(2,minmax(0,1fr))}.summer-credit-note,.summer-credit-form .primary-button{grid-column:1 / -1}}.makeup-operation-list{display:grid;gap:10px}.makeup-filter{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.makeup-filter button{border:1px solid #d9e4df;border-radius:999px;padding:8px 12px;color:#4f655d;background:#f7fbf8;font-size:.76rem;font-weight:800}.makeup-filter button.active{border-color:#276b5f;color:#fff;background:#276b5f}.makeup-operation-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(150px,1fr) minmax(90px,.55fr) minmax(150px,1fr) minmax(100px,.55fr);gap:13px;align-items:center;width:100%;border:1px solid #eee6d9;border-radius:12px;padding:15px 16px;color:#31443d;background:#faf8f2;text-align:left}.makeup-operation-row.actionable:hover{border-color:#bcd7ca;background:#f0f7f1}.makeup-operation-row:disabled{cursor:default}.makeup-operation-row p{margin-bottom:4px;color:#718178;font-size:.68rem;font-weight:800}.makeup-operation-row strong{display:block;overflow-wrap:anywhere;color:#273d37;font-size:.82rem}.makeup-operation-row small,.makeup-operation-row span{display:block;margin-top:4px;overflow-wrap:anywhere;color:#707b73;font-size:.72rem;line-height:1.4}.makeup-person strong{font-size:.92rem}.credit-row{display:flex;justify-content:space-between;width:100%;border:1px solid #eee6d9;border-radius:14px;padding:18px 20px;color:inherit;background:#faf8f2;text-align:left}.credit-row.actionable:hover{border-color:#bcd7ca;background:#f0f7f1}.credit-row:disabled{cursor:default}.credit-row p,.credit-row small{display:block;margin-top:5px;color:#707b73;font-size:.82rem}.credit-status{text-align:right}.status{display:inline-block;border-radius:999px;padding:6px 12px;color:#596b61;background:#eeeae1;font-size:.78rem;font-weight:700}.status.available{color:#256558;background:#deeee5}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#1925206b}.registration-modal{width:min(460px,100%);border-radius:19px;padding:26px;background:#fffdf8;box-shadow:0 22px 50px #141c183d}.registration-modal label{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;color:#56645d;font-size:.82rem;font-weight:700}.registration-modal input,.registration-modal select{border:1px solid #e2dacd;border-radius:9px;padding:11px 12px;color:#28332e;background:#fff}.registration-modal input:focus,.registration-modal select:focus{border-color:#2c7164;outline:2px solid rgba(44,113,100,.12)}.linked-guardian{display:flex;flex-direction:column;gap:6px;margin:4px 0 17px;border:1px solid #dce8e2;border-radius:11px;padding:13px 14px;color:#52655d;background:#eef5f0}.linked-guardian p{margin-bottom:3px;color:#718178;font-size:.74rem;font-weight:700}.linked-guardian strong{color:#284a41;font-size:.92rem}.linked-guardian span{font-size:.82rem}.form-note{margin:-6px 0 12px;color:#68766e;font-size:.76rem}.contract-summary{display:grid;gap:8px;margin-bottom:15px;border:1px solid #e3dccf;border-radius:11px;padding:13px;color:#56645d;background:#fffaf0}.contract-summary p{color:#8b6a37;font-size:.74rem;font-weight:700}.contract-summary div{display:flex;justify-content:space-between;gap:12px;font-size:.8rem}.contract-summary strong{color:#28332e;text-align:right}.assignment-success,.form-error{display:block;border-radius:9px;padding:10px 12px;font-size:.78rem;font-weight:700}.assignment-success{margin:0 0 12px;border:1px solid #f1c66c;color:#7b5415;background:#fff3ce}.form-error{margin-top:8px;color:#8f4938;background:#f8e9e3}.current-usage{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:15px;border-radius:10px;padding:12px 13px;color:#5c6e66;background:#f5f0e6;font-size:.79rem}.current-usage strong{color:#256558;font-size:1rem}.fixed-slot-list{display:grid;gap:8px}.close-button{border:0;padding:6px 8px;color:#7e877e;background:none;font-size:1.1rem}.submit{width:100%;margin-top:7px}.guardian-shell{min-height:100vh;padding-bottom:40px;background:linear-gradient(180deg,#173b36 0,#173b36 174px,transparent 174px),#f7f4ed}.guardian-header{display:flex;align-items:center;justify-content:space-between;max-width:680px;margin:0 auto;padding:30px 20px 24px;color:#f7f3e7}.guardian-header h1{margin-top:4px;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:1.7rem;letter-spacing:.14em}.guardian-header .ghost-button{border-color:#ffffff40;color:#fff;background:transparent;font-size:.8rem}.channel-notice{display:flex;flex-direction:column;gap:5px;max-width:640px;margin:0 auto;border-radius:14px;padding:16px 18px;color:#2e5b51;background:#edf5f0;box-shadow:0 7px 22px #162e281a}.channel-notice span{color:#60756d;font-size:.78rem}.guardian-switcher{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}.guardian-switcher button{border:1px solid #cfe1d8;border-radius:999px;padding:7px 12px;color:#386258;background:#fffdf8;font-size:.76rem;font-weight:800}.guardian-switcher button.active{border-color:#256558;color:#fff;background:#256558}.guardian-contact-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 0}.guardian-contact-summary div,.child-contract-summary div{min-width:0;border:1px solid #dbe8e1;border-radius:9px;padding:8px 10px;background:#fffdf8b8}.guardian-contact-summary dt,.child-contract-summary dt{margin-bottom:3px;color:#6d7b73;font-size:.68rem;font-weight:800}.guardian-contact-summary dd,.child-contract-summary dd{margin:0;overflow-wrap:anywhere;color:#2d554c;font-size:.78rem;font-weight:750}.guardian-main{display:flex;flex-direction:column;gap:15px;max-width:640px;margin:18px auto 0}.child-switcher{border:1px solid #ebe2d5;border-radius:15px;padding:16px 18px;background:#fffdf8}.child-switcher p{margin-bottom:12px;color:#68756d;font-size:.78rem;font-weight:700}.child-switcher div{display:flex;flex-wrap:wrap;gap:8px}.child-button{display:flex;align-items:center;gap:7px;min-height:42px;border:1px solid #ddd4c5;border-radius:999px;padding:8px 14px;color:#56655d;background:#fff}.child-button strong{font-size:.86rem}.child-button span{color:#7a837d;font-size:.72rem;font-weight:800;white-space:nowrap}.child-button.active{border-color:#256558;color:#fff;background:#256558}.child-button.active span{color:#ffffffd1}.child-contract-summary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(88px,.8fr) minmax(74px,.65fr);gap:8px;margin:14px 0 0}.child-contract-summary div{border-color:#efe5d8;background:#fbf8f1}.guardian-card{border:1px solid #ebe2d5;border-radius:17px;padding:22px;background:#fffdf8}.action-hub{border-color:#d4e3dc;background:#f8fbf8}.action-hub h2{margin:10px 0 15px;color:#263c35;font-size:1.08rem}.action-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px}.action-button{display:flex;align-items:center;justify-content:center;min-height:76px;border:1px solid #d6dfd9;border-radius:12px;padding:13px 14px;color:#2f554c;text-align:left;background:#fffdf8}.action-button span{border-radius:999px;padding:4px 8px;color:#557168;background:#eef3ef;font-size:.68rem;font-weight:800}.action-button strong{color:#233c35;font-size:1rem;line-height:1.28;text-align:center}.action-button small{margin-top:auto;color:#69786f;font-size:.72rem;font-weight:700;line-height:1.35}.action-button.recommended{border-color:#256558;background:#eff7f2;box-shadow:inset 4px 0 #256558}.action-button:disabled{border-color:#e8e1d7;color:#8a928d;cursor:not-allowed;background:#f4f0e9;box-shadow:none}.action-button:disabled span,.action-button:disabled strong,.action-button:disabled small{color:#8a928d}.next-lesson h2{margin-top:12px;color:#526158;font-size:1.05rem;font-weight:650}.lesson-slot{margin:10px 0 22px;color:#647269}.next-lesson .lesson-slot{margin:14px 0 25px;color:#253b35;font-size:1.7rem;font-weight:700;line-height:1.35;letter-spacing:.01em}.deadline{display:inline-block;margin:-5px 0 18px;border-radius:6px;padding:6px 9px;color:#80715a;background:#fbf5e8;font-size:.72rem}.reported-notice{margin-bottom:20px;border-radius:9px;padding:10px 12px;color:#255e52;background:#e6f1ea;font-size:.82rem;font-weight:700}.usage-summary{display:flex;align-items:baseline;gap:12px;margin-bottom:20px;border:1px solid #dce8e2;border-radius:10px;padding:12px 13px;color:#60756d;background:#eef5f0;font-size:.8rem}.usage-summary strong{color:#255e52;font-size:1rem}.usage-summary span{margin-left:auto}.next-lesson .usage-summary{gap:9px;width:fit-content;margin-bottom:16px;border:1px solid #dce8e2;border-radius:8px;padding:7px 10px;color:#718179;background:#f4f8f5;font-size:.72rem}.next-lesson .usage-summary strong{color:#4e7067;font-size:.83rem}.next-lesson .usage-summary span{margin-left:auto}.course-usage-summary-list{display:grid;gap:8px;margin-bottom:16px}.next-lesson .course-usage-summary-list .usage-summary,.initial-billing-card .course-usage-summary-list .usage-summary{width:100%;margin-bottom:0}.initial-billing-card{border-color:#eadfce;background:#fffaf0}.initial-billing-card h2{margin:10px 0 16px;color:#263c35;font-size:1.05rem}.initial-billing-card .usage-summary{background:#fbf3e3;border-color:#eadfce}.lesson-state-summary{display:flex;flex-wrap:wrap;gap:7px;margin:-4px 0 16px}.lesson-state-summary span{border-radius:999px;padding:6px 9px;color:#52675f;background:#f0eee7;font-size:.7rem;font-weight:800}.lesson-history .panel-heading{margin-bottom:8px}.lesson-history-row{display:flex;justify-content:space-between;gap:14px;border-top:1px solid #f0e7da;padding:15px 0}.lesson-history-row.highlighted{border:1px solid #cfe2da;border-radius:12px;margin:10px 0;padding:14px 15px;background:#eef7f2}.lesson-history-copy{display:flex;flex-direction:column;gap:5px;color:#3d4c45;font-size:.84rem}.lesson-history-copy span,.lesson-history-copy small{color:#6b766e;font-size:.77rem}.lesson-history-copy .lesson-context-note{color:#2f665c;font-weight:800}.lesson-history-action{display:flex;align-items:flex-end;flex-direction:column;gap:8px;min-width:128px}.lesson-action-deadline{color:#80715a;font-size:.62rem;font-weight:800;line-height:1.2;white-space:nowrap}.lesson-status{border-radius:999px;padding:6px 11px;color:#596b61;background:#eeeae1;font-size:.76rem;font-weight:700}.lesson-status.attended{color:#256558;background:#deeee5}.lesson-status.absent{color:#96513f;background:#f7e8e2}.inline-makeup-button{border:1px solid #28675c;border-radius:9px;padding:7px 10px;color:#236054;background:#fff;font-size:.74rem;font-weight:700}.inline-makeup-button:hover{background:#eaf2ed}.flexible-calendar h2{margin:12px 0 10px;color:#526158;font-size:1.05rem;font-weight:650}.flexible-next-lesson{margin:14px 0 18px;color:#253b35;font-size:1.7rem;font-weight:700;line-height:1.35;letter-spacing:.01em}.calendar-slot-list{display:grid;gap:9px;margin:20px 0}.calendar-month-switcher{display:inline-flex;overflow:hidden;margin-top:14px;border:1px solid #ded6ca;border-radius:10px;background:#fff}.calendar-month-switcher button{min-width:72px;border:0;padding:9px 14px;color:#617069;background:transparent;font-size:.8rem;font-weight:800}.calendar-month-switcher button+button{border-left:1px solid #eee6da}.calendar-month-switcher button.active{color:#fff;background:#28675c}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(34px,1fr));gap:6px;margin-top:16px}.booking-calendar-weekday{display:grid;place-items:center;min-height:24px;color:#7a857d;font-size:.72rem;font-weight:800}.booking-calendar-blank{min-height:54px}.booking-calendar-day{display:grid;align-content:center;justify-items:center;min-height:54px;border:1px solid #eee6da;border-radius:10px;padding:7px 5px;color:#94a098;background:#faf8f2}.booking-calendar-day strong{font-size:.93rem}.booking-calendar-day span{margin-top:2px;color:#28675c;font-size:.68rem;font-weight:800}.booking-calendar-day.has-slots{color:#243d35;background:#fff}.booking-calendar-day.selected{border-color:#28675c;color:#fff;background:#28675c}.booking-calendar-day.selected span{color:#dbece4}.booking-calendar-day:disabled{cursor:default}.calendar-slot{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) auto auto;align-items:center;gap:12px;border:1px solid #e4dbcf;border-radius:11px;padding:14px;color:#46564f;background:#fff;text-align:left}.calendar-slot strong{font-size:.84rem}.calendar-slot span,.calendar-slot small{color:#69766e;font-size:.78rem}.calendar-slot-detail{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.calendar-slot .calendar-slot-course{color:#69766e;font-size:.78rem}.calendar-slot .calendar-slot-time{color:#253b35;font-size:1.04rem;font-weight:850;letter-spacing:.015em;white-space:nowrap}.calendar-slot.selected{border-color:#28675c;background:#eaf2ed}.calendar-slot.selected small{border-radius:999px;padding:5px 10px;color:#fff;background:#28675c;font-weight:800}.flexible-confirm{width:100%}.guardian-actions{display:flex;gap:10px}.guardian-actions button{flex:1}.empty-state{color:#7a837d!important;font-weight:400!important}.flow-card h2{margin:12px 0 17px;font-size:1.14rem}.flow-note{margin-bottom:16px;color:#65736b;font-size:.84rem}.absence-confirm-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.45fr);gap:14px;align-items:start;margin-bottom:18px}.absence-confirm-header h2{margin-bottom:14px}.absence-deadline-card{border:1px solid #e4ddd1;border-radius:10px;margin:4px 0 0;padding:10px 12px;background:#fffaf0}.absence-deadline-card dt{margin-bottom:4px;color:#80715a;font-size:.68rem;font-weight:800}.absence-deadline-card dd{margin:0;color:#2f4841;font-size:.82rem;font-weight:800;white-space:nowrap}.rule-summary{margin-bottom:20px;border-radius:12px;padding:14px 16px;background:#f4f1e9}.rule-summary p{color:#55645b;font-size:.83rem}.rule-summary p+p{margin-top:8px}.makeup-credit-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:-4px 0 14px}.makeup-credit-summary div{border:1px solid #e4ddd1;border-radius:10px;padding:10px 11px;background:#fffaf0}.makeup-credit-summary dt{margin-bottom:4px;color:#80715a;font-size:.68rem;font-weight:800}.makeup-credit-summary dd{margin:0;color:#2f4841;font-size:.84rem;font-weight:800;white-space:nowrap}.makeup-confirm-summary{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);gap:8px;margin:2px 0 16px}.makeup-confirm-summary div{border:1px solid #e4ddd1;border-radius:10px;padding:11px 12px;background:#fffaf0}.makeup-confirm-summary dt{margin-bottom:4px;color:#80715a;font-size:.68rem;font-weight:800}.makeup-confirm-summary dd{margin:0;color:#2f4841;font-size:.86rem;font-weight:800;white-space:nowrap}.completion-summary{margin-top:14px}.makeup-slot-list{display:flex;flex-direction:column;gap:9px;margin-bottom:20px}.makeup-slot{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(160px,1.1fr) max-content minmax(64px,.45fr);align-items:center;gap:12px;border:1px solid #e4dbcf;border-radius:11px;padding:13px 14px;width:100%;color:#46564f;background:#fff}.makeup-slot-date,.makeup-slot-seats{color:#69766e;font-size:.79rem}.makeup-slot-time{color:#2f4841;font-size:1rem;text-align:center;white-space:nowrap}.makeup-slot-seats{text-align:right;white-space:nowrap}.makeup-slot.selected{border-color:#28675c;background:#eaf2ed}.makeup-slot.selected .makeup-slot-seats{border-radius:999px;padding:5px 10px;color:#fff;background:#28675c}.makeup-empty-state,.booking-empty-state{border:1px solid #eadfce;border-radius:12px;padding:14px 16px;color:#65736b;background:#fbf7ee}.makeup-empty-state strong,.booking-empty-state strong{display:block;margin-bottom:7px;color:#2f4841;font-size:.92rem}.makeup-empty-state p,.booking-empty-state p{color:#65736b;font-size:.78rem;line-height:1.65}.makeup-empty-state p+p,.booking-empty-state p+p{margin-top:5px}.primary-button:disabled{opacity:.46;cursor:not-allowed}.completion-card h2{margin:12px 0;font-size:1.28rem}.completion-card p:not(.eyebrow){margin-bottom:22px;color:#5f7167}@media(max-width:900px){.app-shell{flex-direction:column}.sidebar{width:100%;min-height:auto;padding:23px}.navigation{flex-direction:row;flex-wrap:wrap;margin-top:25px}.rule-card{margin-top:22px}.main{padding:28px 20px}.page-header,.header-actions{gap:15px;flex-direction:column}.stats,.content-columns,.registry-layout,.schedule-settings-layout,.student-booking-layout{grid-template-columns:1fr}.import-status-details{grid-template-columns:1fr 1fr}.student-reservation-panel{position:static}.student-booking-card,.registry-row,.registry-profile{grid-template-columns:1fr}.registry-mode-switch{display:flex}.registry-mode-switch button{flex:1}.session-toolbar{align-items:flex-start;flex-direction:column}.week-switcher{flex-wrap:wrap}.week-switcher p{flex-basis:100%;margin:8px 0 0}.week-overview{display:flex;overflow-x:auto;padding-bottom:5px}.week-day{flex:0 0 102px}.table-header,.table-row{grid-template-columns:1fr;gap:8px}.guardian-header,.guardian-main,.channel-notice{margin-right:16px;margin-left:16px}.guardian-actions{flex-direction:column}.guardian-switcher button{flex:1 1 120px}.guardian-contact-summary,.child-contract-summary{grid-template-columns:1fr}.child-switcher div{flex-wrap:wrap}.lesson-history-row{flex-direction:column}.lesson-history-action{align-items:flex-start}.calendar-slot{grid-template-columns:1fr;gap:6px}.makeup-slot{grid-template-columns:1fr;gap:5px}.makeup-slot-time,.makeup-slot-seats{text-align:left}}
