:root{--bg:#f7f7f3;--surface:#fff;--surface2:#eef4f2;--ink:#202421;--muted:#68716c;--line:#dce1dd;--accent:#26735f;--accentDark:#1c5748;--warn:#b76016;--danger:#b93838;--shadow:0 14px 34px rgba(32,36,33,.12);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}.password-field{position:relative}.password-field input{width:100%;padding-right:48px}.password-toggle{position:absolute;right:5px;bottom:5px;min-width:32px;height:32px;min-height:32px;padding:0;border:0;background:transparent;font-size:18px;line-height:1}.password-toggle:hover{background:var(--surface2)}button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;min-height:36px;padding:0 12px;cursor:pointer}button:hover{border-color:#a9b3ad;background:#fbfcfb}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.hidden{display:none!important}.login-card{max-width:520px;margin:48px auto}.app{min-height:100vh;display:grid;grid-template-columns:300px minmax(0,1fr)}.sidebar{background:#1f2b27;color:#f8fbf8;padding:22px 18px;display:flex;flex-direction:column;gap:18px}.brand h1{margin:0;font-size:22px}.brand span{color:#b8c7c1;font-size:13px}.nav{display:grid;gap:8px}.nav button{color:#eef6f2;border-color:transparent;background:transparent;text-align:left}.nav button.active,.nav button:hover{background:#31413b;border-color:#455a52}.sidebar-section{border-top:1px solid #3b4b45;padding-top:14px;display:grid;gap:8px}.mini-item,.conflict-item{border:1px solid #41564f;background:#26342f;border-radius:8px;padding:9px 10px;font-size:13px;line-height:1.45}.conflict-item strong{color:#ffd5a8;display:block}.current-user-button{margin-top:auto;width:100%;border-color:#41564f;background:#26342f;color:#f8fbf8;text-align:left;font-weight:700}.current-user-button:hover{background:#31413b;border-color:#6d8c7f}.topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:14px 20px;display:flex;gap:12px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content{padding:20px;display:grid;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.panel-head{min-height:56px;padding:12px 14px;display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fcfdfc}.panel-head h2{margin:0;font-size:18px}.panel-body{padding:14px}.schedule-grid{display:grid;grid-template-columns:82px repeat(7,minmax(150px,1fr));overflow-x:auto}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:86px;padding:8px;background:#fff}.cell.header{min-height:58px;background:var(--surface2);font-weight:700;display:grid;align-content:center;gap:2px;position:sticky;top:65px;z-index:2}.cell.time{background:#fafbf9;color:var(--muted);font-weight:700;text-align:center}.parallel-lessons{display:flex;gap:6px;align-items:stretch;margin-bottom:6px}.parallel-lessons .lesson{flex:1 1 0;min-width:0;margin-bottom:0}.lesson{border-left:4px solid var(--room-color,var(--accent));background:var(--room-background,#f3faf7);border-radius:6px;padding:7px;display:grid;gap:3px;font-size:12px;line-height:1.35;margin-bottom:6px;cursor:pointer}.lesson.conflict{border-left-color:var(--danger)!important;background:#fff3f3}.lesson .name{font-size:13px;font-weight:700}.lesson .meta,.hint{color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}label{font-size:12px;color:var(--muted);font-weight:700}input,select,textarea{width:100%;min-height:38px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:#fff;color:var(--ink)}select[multiple]{min-height:112px}textarea{resize:vertical;min-height:74px}.form-actions{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;min-width:820px;background:#fff}th,td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top;font-size:13px}th{background:var(--surface2);color:#34413c}.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700;background:#e8f2ee;color:var(--accentDark);white-space:nowrap}.badge.warn{background:#fff1df;color:var(--warn)}.badge.danger{background:#ffe8e8;color:var(--danger)}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button.active{border-color:var(--accent);color:var(--accentDark);background:#edf8f4;font-weight:700}.modal-backdrop{position:fixed;inset:0;background:rgba(16,23,20,.48);display:grid;place-items:center;padding:18px;z-index:20}.modal{width:min(820px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.toast{position:fixed;right:18px;bottom:18px;background:#1f2b27;color:#fff;padding:11px 14px;border-radius:7px;box-shadow:var(--shadow);z-index:30;max-width:min(560px,calc(100vw - 36px));white-space:pre-line}.list-actions{display:flex;gap:8px;align-items:center}.view{display:grid;gap:18px}@media(max-width:980px){.app{grid-template-columns:1fr}.topbar{align-items:stretch;flex-direction:column}}@media(max-width:640px){.content{padding:12px}.form-grid{grid-template-columns:1fr}.schedule-grid{grid-template-columns:70px repeat(7,142px)}}
    .time-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.time-range>div{min-width:0}.time-range input{width:100%}.lesson-teachers,.lesson-memo{vertical-align:top}.teacher-picker{display:flex;gap:8px;align-items:center}.teacher-picker select{min-width:0;flex:1}.teacher-picker button{white-space:nowrap}.teacher-summary{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:#f3faf7;color:var(--accentDark);font-weight:700;line-height:1.4}@media (max-width:760px){
      .app{grid-template-columns:1fr}.sidebar{padding:12px;gap:10px}.brand h1{font-size:19px}.nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.nav button{min-height:40px;padding:6px 8px;text-align:center;font-size:13px}.sidebar-section{display:none}.topbar{position:static;padding:10px 12px;align-items:stretch;flex-direction:column}.toolbar{width:100%}.toolbar:first-child{justify-content:space-between}.toolbar:last-child{display:grid;grid-template-columns:minmax(0,1fr) auto}.toolbar:last-child #searchInput{min-width:0;width:100%}.toolbar:last-child #teacherFilter{min-width:0}.toolbar:last-child #newLessonBtn{grid-column:1/-1;width:100%}.content{padding:12px;gap:12px}.panel-head{padding:10px 12px;gap:8px;align-items:flex-start;flex-direction:column}.panel-head h2{font-size:18px}.tabs{width:100%;overflow-x:auto;white-space:nowrap;padding-bottom:2px}.table-wrap{overflow-x:auto}.form-grid{grid-template-columns:1fr}.field.full,.form-actions{grid-column:auto}.modal-backdrop{align-items:flex-start;overflow-y:auto;padding:12px}.modal{width:100%;max-height:none;margin:auto 0}#calendarView{overflow-x:auto}.schedule-grid{min-width:1064px;overflow:visible}.schedule-slot{min-height:62px}.lesson{min-width:0}.login-card{margin:20px 12px}.login-card .panel-body{padding:16px}}
