@charset "UTF-8";
:root{color-scheme:light;--ink:#183b35;--text:#29463f;--muted:#7b8b82;--green:#197760;--green-dark:#125443;--green-soft:#edf5ef;--teal:#183e37;--bg:#f5f6f1;--surface:#fff;--border:#e1e7df;--amber:#b57b2e;--amber-soft:#fff7e8;--red:#ac4d48;--blue:#5d83aa;--shadow:0 4px 20px #15352905;--radius:12px;--font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif}
*{box-sizing:border-box}html{font-size:14px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #73bba1;outline-offset:3px}a{color:var(--green);text-decoration-thickness:1px;text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.4;letter-spacing:.02em;color:var(--ink);font-weight:700;margin-bottom:8px}h2{font-size:17px;line-height:1.5;color:var(--ink);font-weight:650;margin:0}h3{font-size:14px;line-height:1.5;color:var(--ink);margin:0 0 10px}p{line-height:1.9}hr{border:0;border-top:1px solid var(--border);margin:24px 0}small{font-size:11px}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:220px;display:flex;flex-direction:column;background:var(--teal);color:#bfd0c5;padding:30px 16px 20px}.brand{padding:0 15px 32px}.brand-mark{font-size:30px;line-height:1.2;color:white;letter-spacing:3px;font-weight:800}.brand-mark span{color:#92bea5}.brand-sub{font-size:9px;letter-spacing:1.2px;color:#a4bbb0;margin-top:8px}.sidebar nav{display:grid;gap:5px}.nav-item{border:0;border-radius:7px;background:transparent;color:#bacfc3;padding:13px 14px;display:flex;align-items:center;gap:12px;width:100%;text-align:left;white-space:nowrap;transition:background .14s,color .14s;line-height:1.5;font-size:12px}.nav-item:hover{background:#254d43;color:white}.nav-item.active{background:#315a4f;color:white;box-shadow:inset 3px 0 #b0d3b7}.nav-item .icon,.nav-icon{width:19px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;opacity:.95}.sidebar-foot{margin-top:auto;padding:25px 14px 0;font-size:10px;line-height:1.9;color:#95b2a2}.sidebar-foot strong{display:block;font-size:11px;font-weight:500;color:#d0ded5}.main{margin-left:220px;min-height:100vh}.topbar{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffffff5;border-bottom:1px solid var(--border);padding:14px 34px;position:relative;z-index:10}.scope-control{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px}.scope-control label{margin:0;font-size:11px;color:var(--muted);font-weight:500;white-space:nowrap}.scope-control select,#campus-select{background:#f2f6f0;border:1px solid #ccdcd1;border-radius:7px;color:var(--ink);font-size:14px;font-weight:650;padding:10px 35px 10px 13px;min-width:200px;max-width:100%;cursor:pointer}.version{font-size:10px;color:#9b7432;background:#fff8e8;border:1px solid #eadfc0;border-radius:4px;padding:4px 8px;white-space:nowrap;letter-spacing:.05em}.identity{display:flex;align-items:center;gap:9px;font-size:12px;white-space:nowrap}.identity .muted{font-size:10px}.avatar{display:inline-grid;flex-shrink:0;place-items:center;width:34px;height:34px;background:#e7efe6;border:1px solid #dce6d9;border-radius:50%;color:#50795f;font-size:12px;font-weight:600}.content{padding:32px 34px 48px;max-width:1700px;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:25px}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;font-size:10px;font-weight:700;color:#91a091;margin-bottom:9px}.subtitle{color:var(--muted);font-size:12px;margin:0;line-height:1.8}.head-actions{display:flex;align-items:center;gap:9px;flex-shrink:0;flex-wrap:wrap}.button{border:1px solid #d8e1d7;border-radius:7px;padding:10px 14px;line-height:1.5;background:#fff;color:#385c4d;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:550;text-decoration:none;transition:background .14s,border-color .14s,box-shadow .14s;min-height:39px}.button:hover{background:#f6faf4;border-color:#8eae99}.button.primary{background:var(--green);border-color:var(--green);color:white;box-shadow:0 2px 4px #196d5010}.button.primary:hover{background:var(--green-dark);border-color:var(--green-dark)}.button.danger{color:var(--red);border-color:#e7c9c4;background:#fffafa}.button.danger:hover{background:#fbecea}.button.small{font-size:11px;padding:6px 10px;min-height:31px}.button.ghost{background:transparent;border-color:transparent;color:var(--muted);box-shadow:none}.button.ghost:hover{color:var(--green);background:var(--green-soft)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:0 0 22px}.stat{padding:20px 22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-height:125px}.stat-label{color:#7c8a7c;font-size:11px;display:block}.stat-value{display:block;color:var(--ink);font-size:29px;line-height:1.4;font-weight:650;letter-spacing:-.5px;margin:11px 0 3px}.stat-value small{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:4px}.stat-note{font-size:10px;color:#91a08e}.stat.warning .stat-value{color:var(--amber)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:19px 22px;border-bottom:1px solid var(--border)}.panel-head p{font-size:11px;color:var(--muted);margin:5px 0 0}.panel-body{padding:22px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.toolbar-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar h2{font-size:15px}.toolbar input,.toolbar select{width:auto;max-width:220px;padding:7px 10px;font-size:12px}.segmented{display:flex;align-items:center;gap:3px;border-radius:7px;background:#f0f3ed;padding:4px}.segmented button{border:0;padding:7px 11px;color:#8a9787;background:transparent;border-radius:5px;font-size:11px;line-height:1.5;white-space:nowrap}.segmented button.active{background:white;box-shadow:0 1px 4px #1c381214;color:var(--green);font-weight:600}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:4px;padding:3px 7px;background:#f0f3ed;color:#778871;font-size:10px;line-height:1.7;white-space:nowrap;font-weight:500}.badge.green{background:#eaf4eb;color:#50805e}.badge.amber{background:#fff0d8;color:#ae7a30}.badge.blue{background:#edf3fa;color:#6086a9}.badge.red{background:#fbeae6;color:#a75b4e}.alert{border:1px solid #dce6d7;background:#f1f6ec;color:#64855d;border-radius:8px;line-height:1.8;padding:13px 17px;font-size:12px;margin:0 0 20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.alert.warning{border-color:#ecddbd;background:#fff9ed;color:#a77c3b}.alert.success{border-color:#cce2cd;background:#f0f8ee;color:#4e8059}.alert a{color:inherit;font-weight:600}.version-banner{display:flex;gap:10px;align-items:center;font-size:11px;padding:11px 17px;background:#eaf3e9;border:1px solid #d3e4d0;border-radius:7px;color:#5b805b;margin-bottom:23px}.version-banner strong{font-weight:650}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:15px 20px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{background:#fafbf8;color:#8a9583;font-size:10px;font-weight:500;white-space:nowrap;letter-spacing:.04em}td{color:#496246;line-height:1.8}td strong{color:var(--ink);font-weight:600}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdf9}td .button+.button{margin-left:5px}.muted{color:var(--muted)}.small-text{font-size:11px;line-height:1.8;color:var(--muted)}.stack{display:flex;flex-direction:column;gap:4px}.staff-name{display:flex;align-items:center;gap:10px;white-space:nowrap}.staff-name strong{font-size:12px}.table-scroll table input[type=checkbox]{width:auto}.campus-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px 20px;background:#fbfcf8;border-bottom:1px solid var(--border)}.campus-chip{display:inline-flex;align-items:center;gap:5px;color:#6f856b;border:1px solid #dde7d9;background:#fff;border-radius:5px;font-size:10px;padding:4px 9px}.campus-chip strong{font-size:12px;color:#466a46}.legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:14px 20px;font-size:10px;color:#8b9884}.legend span{display:inline-flex;gap:5px;align-items:center}.status-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#70a77f;flex-shrink:0}.status-dot.amber{background:#d2a356}.status-dot.blue{background:#80a3c5}.status-dot.red{background:#d88773}.week-grid{display:grid;grid-template-columns:70px repeat(6,minmax(148px,1fr));min-width:1000px;align-items:stretch}.week-day{padding:13px 8px;text-align:center;background:#fafbf8;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:#8d9987;font-size:10px}.week-day strong,.week-day b{display:block;color:#466745;font-size:20px;line-height:1.5;font-weight:600;margin-top:3px}.week-day.today{background:#f0f6eb;color:var(--green)}.week-day.today strong{color:var(--green)}.time-label{padding:15px 8px;text-align:center;font-size:10px;color:#9aa591;border-bottom:1px solid var(--border);background:#fdfefa;min-height:140px}.schedule-cell{padding:7px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:155px;display:flex;flex-direction:column;gap:7px;background:#fff}.week-grid>:nth-child(7n){border-right:0}.lesson-card{padding:9px 10px;border:1px solid #d8e6d6;border-left:3px solid #6a9f79;border-radius:6px;background:#f0f6ed;text-align:left;display:block;width:100%;color:#42623e;font:inherit;cursor:pointer;position:relative;transition:box-shadow .12s,background .12s;min-height:110px}.lesson-card:hover{box-shadow:0 3px 10px #21462016;background:#e9f3e5}.lesson-card.individual{background:#f0f5fa;border-color:#dbe5ee;border-left-color:#82a3c2;color:#506b87}.lesson-card.individual:hover{background:#e9f1f8}.lesson-card.unassigned{background:#fff9ed;border-color:#edddba;border-left-color:#d2a05b;color:#9f7d45}.lesson-card.unassigned:hover{background:#fff3d9}.lesson-card.help{border-left-style:dashed}.lesson-time{font-size:9px;line-height:1.7;opacity:.85;margin-bottom:4px;display:flex;justify-content:space-between;gap:3px;flex-wrap:wrap}.lesson-name{font-size:11px;line-height:1.7;font-weight:650;word-break:break-word;color:inherit}.lesson-meta{font-size:9px;line-height:1.7;color:inherit;opacity:.7;margin-top:2px}.lesson-teacher{padding-top:6px;margin-top:7px;border-top:1px solid #456d3e12;font-size:10px;display:flex;align-items:center;justify-content:space-between;gap:4px}.lesson-teacher .badge{font-size:8px;padding:1px 4px}.schedule-cell .button{font-size:10px;min-height:28px}.two-col{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.empty-state{padding:48px 24px;text-align:center;color:#8c9b83;font-size:12px;line-height:1.9}.empty-state h2{font-size:16px;margin:0 0 8px;color:#617c59}.empty-state p{max-width:520px;margin:0 auto 17px;font-size:12px}.empty-icon{font-size:30px;color:#a7b79d;margin-bottom:10px}.empty-state.compact{padding:20px 10px;font-size:10px}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.check-option{display:flex;align-items:center;gap:8px;border:1px solid var(--border);padding:10px;border-radius:6px;font-size:11px;cursor:pointer;background:#fafcf7;line-height:1.6;margin:0!important;font-weight:400!important}.check-option:has(input:checked){border-color:#79a882;background:#edf6e9;color:var(--green)}input[type=checkbox]{accent-color:var(--green);width:15px;height:15px;flex-shrink:0;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 18px}.field{min-width:0}.field.full{grid-column:1/-1}.field label,label.field-label{display:block;font-size:11px;color:#71866a;margin-bottom:7px;font-weight:550}.field .small-text{font-size:10px;margin-top:6px}.field input,.field select,.field textarea{width:100%}input,select,textarea{color:#3e5f3c;border:1px solid #d6e1d0;background:#fff;border-radius:6px;padding:10px 11px;line-height:1.5;font-size:12px;max-width:100%;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#b0baa7}input:hover,select:hover,textarea:hover{border-color:#b4c7ac}input:focus,select:focus,textarea:focus{outline:0;border-color:#6ea37b;box-shadow:0 0 0 3px #70a77f18}textarea{resize:vertical;min-height:95px;font-family:var(--font)}input[readonly],input:disabled,select:disabled{background:#f3f5ef;color:#a3ae9a}input[type=file]{font-size:11px;padding:7px;max-width:100%}input[type=file]::file-selector-button{border:0;border-radius:4px;background:#eaf2e5;color:#57794d;padding:7px 10px;font:inherit;cursor:pointer;margin-right:10px}dialog{border:1px solid #dbe4d4;border-radius:14px;padding:0;width:600px;max-width:calc(100vw - 32px);max-height:90vh;box-shadow:0 25px 100px #17352838;color:var(--text);background:white;overflow:auto}dialog::backdrop{background:#183e3766;backdrop-filter:blur(2px)}.dialog-head{padding:21px 25px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head p{font-size:11px;color:var(--muted);margin:5px 0 0}.dialog-body{padding:24px 25px}.dialog-actions{padding:17px 25px;border-top:1px solid var(--border);background:#fbfcf8;display:flex;align-items:center;justify-content:flex-end;gap:8px;position:sticky;bottom:0;z-index:1}.form-error{color:#ab5d49;background:#fff2ed;border:1px solid #eed3c8;border-radius:6px;padding:10px 13px;font-size:11px;line-height:1.8;margin:0 0 17px}.form-error:empty{display:none}.close-button{border:0;background:transparent;color:#94a38c;font-size:22px;line-height:1;padding:5px 6px;border-radius:5px}.close-button:hover{background:#f0f5eb;color:var(--green)}.flow{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.flow-step{display:flex;align-items:center;gap:7px;padding:10px 13px;background:#f3f7ee;color:#718763;border:1px solid #e0e9d8;border-radius:6px;font-size:11px}.flow-step.active{color:var(--green);background:#eaf4e5;border-color:#a7c7a0}.flow-step strong{display:inline-grid;place-items:center;border-radius:50%;width:20px;height:20px;background:white;color:inherit;font-size:10px}.pay-total{font-size:27px;font-weight:650;color:var(--green);line-height:1.5;letter-spacing:-.5px}.slip{padding:24px}.slip h2{margin-bottom:13px}.slip-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--border);font-size:12px}.slip-row:last-child{border-bottom:0}.slip-row strong{font-weight:600}.slip-row.total{background:#f2f7ed;margin:17px -10px 0;padding:16px 10px;border-radius:7px;color:var(--green)}.slip-row.total strong{font-size:21px}.tab-row{display:flex;gap:18px;align-items:center;border-bottom:1px solid var(--border);margin-bottom:22px}.tab-row button{font:inherit;border:0;background:none;color:#91a087;padding:12px 0;border-bottom:2px solid transparent;font-size:12px}.tab-row button.active{color:var(--green);border-color:var(--green);font-weight:600}.toast{position:fixed;bottom:26px;left:calc(50% + 110px);transform:translateX(-50%);background:var(--teal);color:#f5faf2;box-shadow:0 8px 35px #12372922;border-radius:8px;padding:13px 21px;z-index:100;font-size:12px;line-height:1.8;max-width:calc(100vw - 40px);border:1px solid #406b4d}.toast.error{background:#884d3c;border-color:#aa7059}.import-preview{margin-top:22px;border-top:1px solid var(--border);padding-top:20px}.error-list{color:#ab5d49;background:#fff3ed;border:1px solid #eddbcd;border-radius:7px;font-size:11px;padding:12px 15px 12px 30px;line-height:1.9}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:13px 0 13px 20px;border-left:1px solid #dfe8d8;position:relative;font-size:12px;line-height:1.8}.timeline li:before{content:"";position:absolute;left:-4px;top:21px;width:7px;height:7px;background:#88ac7a;border-radius:50%}.timeline li time{font-size:10px;color:#9aaa90;display:block}.timeline li strong{font-weight:550}.code-text{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.print-only{display:none}
@media(min-width:1600px){.content{padding-left:45px;padding-right:45px}.schedule-cell{padding:9px}.lesson-card{padding:11px 12px}.lesson-name{font-size:12px}}
@media(max-width:1150px){.topbar{padding-left:24px;padding-right:24px}.content{padding:26px 24px 40px}.page-head{align-items:flex-start;gap:15px}.head-actions{justify-content:flex-end}.stats{gap:11px}.stat{padding:17px}.stat-value{font-size:25px}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.three-col{grid-template-columns:1fr 1fr}.scope-control{gap:8px}.identity .muted{display:none}}
@media(max-width:900px){.sidebar{width:174px;padding:26px 10px 17px}.brand{padding:0 12px 28px}.brand-mark{font-size:26px}.brand-sub{font-size:8px;letter-spacing:.3px}.nav-item{padding:12px 11px;font-size:11px;gap:8px}.sidebar-foot{padding-left:12px;padding-right:8px}.main{margin-left:174px}.topbar{gap:12px;padding-left:20px;padding-right:20px}.scope-control{flex-direction:column;align-items:flex-start;gap:3px}.scope-control label{font-size:9px}.scope-control select,#campus-select{min-width:180px;padding:7px 30px 7px 10px;font-size:12px}.content{padding:25px 20px 35px}.page-head{flex-wrap:wrap}.head-actions{justify-content:flex-start}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-height:113px}.two-col{grid-template-columns:1fr;gap:0}.toast{left:calc(50% + 87px)}.toolbar{padding:15px}.panel-head,.panel-body{padding:18px}.check-grid{grid-template-columns:1fr 1fr}.version{font-size:8px}.identity{font-size:11px;gap:6px}.identity .avatar{width:29px;height:29px}}
@media(max-width:650px){html{font-size:13px}.sidebar{width:70px;padding:19px 5px 12px}.brand{padding:0 4px 22px;text-align:center}.brand-mark{font-size:15px;letter-spacing:.5px}.brand-sub{display:none}.sidebar nav{gap:5px}.nav-item{padding:10px 2px;display:flex;flex-direction:column;gap:5px;text-align:center;font-size:8px;line-height:1.4;white-space:normal;min-height:51px}.nav-item .icon,.nav-icon{font-size:16px;width:18px}.nav-item.active{box-shadow:inset 2px 0 #b0d3b7}.sidebar-foot{padding:12px 2px 0;font-size:8px;line-height:1.5;text-align:center}.sidebar-foot strong{font-size:8px}.main{margin-left:70px}.topbar{padding:12px;min-height:78px;gap:8px;flex-wrap:wrap}.scope-control label{font-size:8px}.scope-control select,#campus-select{min-width:140px;max-width:190px;padding:7px 25px 7px 8px;font-size:11px}.version{font-size:8px;letter-spacing:0;padding:3px 4px}.identity{gap:4px;font-size:10px}.identity .avatar{display:none}.content{padding:22px 12px 30px}.page-head{margin-bottom:20px;gap:13px}h1{font-size:23px}.eyebrow{font-size:8px;margin-bottom:7px}.subtitle{font-size:10px}.head-actions{gap:6px;width:100%}.button{font-size:10px;min-height:35px;padding:8px 10px}.button.small{font-size:9px;padding:5px 7px;min-height:28px}.stats{gap:9px;margin-bottom:17px}.stat{padding:15px 12px;min-height:107px;border-radius:9px}.stat-label{font-size:9px}.stat-value{font-size:23px;margin:9px 0 3px}.stat-value small{font-size:9px}.stat-note{font-size:8px}.panel{border-radius:9px;margin-bottom:17px}.panel-head,.panel-body{padding:15px}.panel-head h2{font-size:14px}.toolbar{gap:11px;padding:13px}.toolbar-group{gap:6px}.toolbar h2{font-size:12px}.segmented button{font-size:9px;padding:6px 8px}.alert{font-size:10px;padding:11px 12px;margin-bottom:17px}.version-banner{font-size:9px;padding:10px 12px;align-items:flex-start;margin-bottom:18px}.badge{font-size:8px;padding:2px 5px}.three-col{grid-template-columns:1fr}.two-col{gap:0}.legend{font-size:8px;gap:11px;padding:12px}.campus-strip{padding:10px 12px;gap:6px}.campus-chip{font-size:8px;padding:3px 6px}.campus-chip strong{font-size:10px}.table-scroll table{min-width:580px}th,td{padding:12px 14px}.check-grid{grid-template-columns:1fr 1fr}.check-option{font-size:10px;padding:8px;gap:6px}.form-grid{gap:15px 12px}.field label{font-size:10px}input,select,textarea{font-size:11px;padding:9px}.dialog-head{padding:17px}.dialog-body{padding:18px 17px}.dialog-actions{padding:14px 17px}.dialog-head h2{font-size:15px}.flow{gap:7px}.flow-step{font-size:9px;padding:8px}.flow-step strong{width:17px;height:17px;font-size:8px}.toast{left:calc(50% + 35px);bottom:18px;max-width:calc(100vw - 95px);font-size:10px;padding:11px 15px}.slip{padding:18px}.slip-row{font-size:11px}.slip-row.total strong{font-size:18px}.empty-state{padding:30px 18px;font-size:11px}.empty-state h2{font-size:14px}.empty-state p{font-size:11px}.tab-row{gap:14px;overflow-x:auto;white-space:nowrap}.tab-row button{font-size:10px}}
@media(max-width:400px){.identity{display:none}.topbar .version{margin-left:auto}.head-actions .button{flex:1}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.check-grid{grid-template-columns:1fr}.stat-value{font-size:21px}.stats{gap:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{body{background:white}.sidebar,.topbar,.head-actions,.toolbar,.dialog-actions,.toast,.version-banner,.no-print{display:none!important}.main{margin:0}.content{padding:0;max-width:none}.panel{border-color:#bbb;box-shadow:none;break-inside:avoid}.print-only{display:block}.table-scroll{overflow:visible}.table-scroll table{min-width:0}.two-col,.three-col{display:block}.stat{box-shadow:none}.slip{padding:15px}}

/* Seven-day week, including Sunday teaching. */
.week-grid{grid-template-columns:70px repeat(7,minmax(145px,1fr));min-width:1100px}.brand-sub{display:block}.lesson-card>span{display:block}.campus-chip.active{background:#e2eee3;border-color:#8eae93;color:#215b43}
.recurring-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;border-color:#c9ddce;background:#eef6ed}.recurring-banner strong{color:#35664b}.recurring-banner .toolbar-group{flex-shrink:0}#rule-review:empty{display:none}#rule-preview{margin-top:20px}#rule-review .table-scroll{max-height:250px;overflow:auto}.sidebar .nav-item{padding-top:11px;padding-bottom:11px}@media(max-width:1000px){.recurring-banner{flex-direction:column;align-items:flex-start}}
.lesson-actions{display:flex;flex-wrap:wrap;gap:4px;margin:-3px 0 8px}.lesson-actions .button{min-height:27px;padding:4px 8px;font-size:10px}.latest-transfer{background:#f4f9f2}.latest-transfer td:first-child{border-left:3px solid #579473}#history-search{min-width:220px}.nav-item{padding-top:10px;padding-bottom:10px}
.staff-mode .sidebar,.staff-mode .scope-control{display:none}.staff-mode .main{margin-left:0}.staff-mode .topbar{justify-content:space-between;max-width:none;padding-left:max(24px,calc((100vw - 1240px)/2));padding-right:max(24px,calc((100vw - 1240px)/2))}.staff-mode .topbar:before{content:'TALK.  STAFF';color:#1c4f42;font-weight:800;font-size:23px;letter-spacing:2px}.staff-mode .content{max-width:1240px}.staff-login-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:70px;padding:50px 20px;min-height:70vh}.staff-login-intro h1{font-size:40px;line-height:1.6}.staff-login-intro p{color:#6f837a}.staff-feature-list{display:grid;gap:12px;margin:28px 0;color:#30664e;font-size:16px}.staff-login-panel{box-shadow:0 16px 55px #193e380b}.staff-login-panel .panel-body{padding:30px}.staff-login-button{width:100%;margin-top:10px}.staff-login-panel label{display:block;margin:16px 0 6px;color:#547160;font-size:12px}.staff-login-panel select{width:100%}.staff-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.staff-tabs{display:flex;gap:6px;border-bottom:1px solid #dce6dd;padding-bottom:18px;margin-bottom:25px;overflow:auto}.staff-clock{font-size:35px;font-weight:650;margin-bottom:25px;color:#23523e}.staff-clock span{display:block;font-size:12px;font-weight:400;color:#839386}.staff-punch-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.staff-next-date{font-size:16px;color:#647d68}.staff-next-date strong{color:#24543e;margin-left:10px}.staff-mode .two-col{grid-template-columns:1.3fr 1fr}.staff-mode .toast{left:50%}@media(max-width:800px){.staff-login-layout{gap:30px;padding:20px 0}.staff-login-intro h1{font-size:28px}.staff-mode .two-col{grid-template-columns:1fr}.staff-mode .content{padding:24px 18px}.staff-mode .topbar{padding:15px 18px}.staff-mode .topbar:before{font-size:18px}.staff-welcome{align-items:flex-start;flex-direction:column}.staff-welcome h1{font-size:24px}}@media(max-width:600px){.staff-login-layout{grid-template-columns:1fr;gap:20px}.staff-login-intro h1{font-size:25px}.staff-feature-list{display:flex;flex-wrap:wrap;font-size:12px;gap:15px;margin:14px 0}.staff-login-intro>p{font-size:12px;margin-bottom:10px}.staff-login-panel .panel-body{padding:20px}.staff-mode .identity{display:flex;gap:5px;flex-wrap:wrap}.staff-mode .identity>span:not(.version){display:none}.staff-mode .version{font-size:9px}.staff-mode .topbar:before{font-size:16px;letter-spacing:1px}.staff-mode .topbar{gap:10px}.staff-tabs .button{flex-shrink:0}.staff-mode table{min-width:550px}}
.kiosk-mode .sidebar,.kiosk-mode .scope-control{display:none}.kiosk-mode .main{margin-left:0}.kiosk-mode .content{max-width:1180px}.kiosk-mode .topbar{padding:18px max(24px,calc((100vw - 1180px)/2));justify-content:space-between}.kiosk-mode .topbar:before{content:'TALK.  出退勤タブレット';font-size:22px;letter-spacing:1px;font-weight:750;color:#24513f}.kiosk-mode .toast{left:50%}.kiosk-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.kiosk-clock{font-size:42px;color:#28533e;font-weight:700;text-align:right}.kiosk-clock small{display:block;font-size:12px;font-weight:400;color:#7f917f}.kiosk-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:24px}.kiosk-person{display:flex;align-items:center;gap:12px;padding:22px;border:1px solid #d5e1d5;background:white;border-radius:9px;min-height:95px;text-align:left;color:#284936}.kiosk-person:hover{border-color:#83a88c;background:#f3f8ef}.kiosk-person strong{font-size:17px;flex:1}.kiosk-person .badge{white-space:nowrap}.kiosk-operation,.kiosk-pin-panel{max-width:720px;margin:20px auto}.kiosk-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.kiosk-action-grid .button{font-size:24px;min-height:105px}.kiosk-pin-panel label{display:block;margin:20px 0 8px}.kiosk-pin-panel input{display:block;width:100%;font-size:32px;letter-spacing:12px;text-align:center;padding:18px;margin-bottom:22px}.kiosk-pin-panel button[type=submit]{width:100%;font-size:18px;min-height:60px;margin-bottom:16px}@media(max-width:1000px){.kiosk-roster{grid-template-columns:1fr 1fr}.kiosk-mode .topbar{padding:16px 24px}.kiosk-mode .content{padding:24px}.kiosk-person{padding:18px;gap:8px}.kiosk-person strong{font-size:15px}}@media(max-width:600px){.kiosk-mode .topbar:before{font-size:16px}.kiosk-mode .identity{display:flex;flex-wrap:wrap}.kiosk-mode .content{padding:20px 14px}.kiosk-heading{align-items:flex-start}.kiosk-heading h1{font-size:22px}.kiosk-clock{font-size:30px}.kiosk-roster{grid-template-columns:1fr;padding:15px;gap:10px}.kiosk-person{min-height:75px}.kiosk-action-grid{gap:12px}.kiosk-action-grid .button{min-height:85px;font-size:21px}}
