@font-face{font-family:Setofont;src:url(/fonts/Setofont.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Setofont;src:url(/fonts/Setofont.ttf) format("truetype");font-weight:700;font-display:swap}:root{--bg: #f5f6f8;--card: #ffffff;--border: #e2e5ea;--text: #1f2430;--muted: #6b7280;--primary: #2563eb;--primary-d: #1d4ed8;--danger: #dc2626}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;background:var(--bg);color:var(--text);font-size:14px}body.font-seto{font-family:Setofont,-apple-system,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;font-size:15.5px}a{color:var(--primary)}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:#fff;border-radius:6px;padding:6px 12px}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.primary:hover{background:var(--primary-d)}button.danger{color:var(--danger);border-color:#f0c2c2}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}label{display:block;font-size:12px;color:var(--muted);margin-bottom:2px}table{border-collapse:collapse;width:100%}th,td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left}th{font-size:12px;color:var(--muted);font-weight:600}.app{display:flex;min-height:100vh}.sidebar{width:200px;background:#1f2430;color:#cdd3df;padding:16px 0;flex-shrink:0}.sidebar h1{font-size:15px;color:#fff;padding:0 16px 12px;margin:0;border-bottom:1px solid #333a4a}.sidebar nav a{display:block;padding:10px 16px;color:#cdd3df;text-decoration:none;font-size:14px}.sidebar nav a.active,.sidebar nav a:hover{background:#2b3242;color:#fff}.sidebar nav .nav-group{padding:12px 16px 4px;font-size:11px;color:#8b93a5;letter-spacing:.04em}.sidebar nav a.sub{padding-left:28px;font-size:13px}.sidebar .logout{margin:16px}.content{flex:1;padding:24px;max-width:1100px}.content h2{margin-top:0}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.field{display:flex;flex-direction:column;gap:2px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--muted)}.error{color:var(--danger);margin:8px 0}.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{width:340px}.week-day{margin-bottom:18px}.week-day h3{margin:0 0 6px;font-size:14px}.lesson-row{display:grid;grid-template-columns:130px 90px 90px 1fr 110px auto;gap:8px;align-items:center;padding:4px 0}.lesson-row input,.lesson-row select{width:100%}.color-dot{width:12px;height:12px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:middle}.day-note{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px}.day-note textarea{width:100%;resize:vertical;background:#fffdf5}.selfstudy-row{display:flex;align-items:center;gap:8px;margin:4px 0}.selfstudy-time{font-size:13px;color:#2563eb;white-space:nowrap;min-width:120px}.selfstudy-row input{flex:1;background:#f0f7ff}.month-study{font-size:11px;color:#1e40af;background:#eef4ff;border-radius:3px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-study.empty{color:#9aa6c2;background:#f4f6fb}.hm-grid{display:grid;gap:3px}.hm-head{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:2px 0}.hm-head.weekend{color:#b45309}.hm-hour{font-size:11px;color:var(--muted);text-align:right;padding-right:6px;line-height:26px}.hm-cell{height:26px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:11px;font-variant-numeric:tabular-nums}.help .card h3{margin-top:0}.help ul,.help ol{margin:6px 0;padding-left:20px}.help li{margin:3px 0;line-height:1.6}.help-pre{background:#f5f6f8;border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:12px;white-space:pre-wrap;line-height:1.6}.month-note{font-size:11px;color:#92760a;background:#fffbe6;border-radius:3px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-head{background:#f8f9fb;border-bottom:1px solid var(--border)}.month-dow{padding:6px 8px;font-size:12px;color:var(--muted);text-align:center;font-weight:600}.month-dow.weekend{color:#b45309}.month-cell{min-height:96px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:4px;cursor:pointer;overflow:visible}.month-cell:nth-child(7n){border-right:none}.month-cell:hover{background:#f5f8ff}.month-cell.out{background:#fafafa;color:#b9bdc6}.month-cell.out .month-chip{opacity:.5}.month-cell.today{background:#fff7ed}.month-cell.today .month-date{color:#b45309;font-weight:700}.month-date{font-size:12px;font-weight:600;margin-bottom:3px}.month-date.weekend{color:#b45309}.month-lessons{display:flex;flex-direction:column;gap:2px}.month-chip{font-size:11px;line-height:1.3;border-radius:3px;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1f2430}.month-chip-time{font-variant-numeric:tabular-nums;opacity:.8}
