/* classroom.css - v1.2.30: 화면 높이에 따라 일정 시작 위치 확보; 기존 급식·시간표 유지. */
:root{color-scheme:dark;font-family:system-ui,-apple-system,"Malgun Gothic",sans-serif;background:#08111f;color:#f3f7ff}
*{box-sizing:border-box}
body{margin:0;min-width:320px;background:radial-gradient(circle at top left,#14253b 0,#08111f 55%)}
button{font:inherit;cursor:pointer;border:1px solid #496180;background:#213752;color:#f3f7ff;padding:9px 12px;border-radius:10px}
button:hover,button:focus-visible{background:#34557d}
button:focus-visible,a:focus-visible{outline:3px solid #80b8ff;outline-offset:2px}
.classroom{max-width:1700px;margin:auto;padding:clamp(14px,2.2vw,36px)}
.class-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:8px 4px 14px}
.school{color:#9fb8d8;font-size:clamp(16px,1.3vw,21px);font-weight:750;letter-spacing:.06em}
h1{font-size:clamp(42px,4vw,72px);margin:0;line-height:1.2;letter-spacing:-.03em}
.class-date{color:#a8c0da;font-size:clamp(14px,1.1vw,18px);margin-top:5px}
.header-right{text-align:right}
.clock{display:block;font-weight:850;letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:clamp(42px,4vw,66px)}
.header-buttons{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:7px}
.refresh-status{font-size:12px;color:#a9c3db}
.daily-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:18px;align-items:stretch}
.panel{background:linear-gradient(145deg,rgba(17,34,55,.98),rgba(12,24,41,.98));border:1px solid #2b415c;border-radius:20px;padding:clamp(15px,1.65vw,26px);min-width:0;box-shadow:0 15px 45px rgba(0,0,0,.17)}
.panel-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;margin-bottom:14px}
h2{margin:0;font-size:clamp(20px,1.6vw,29px)}
.panel-subtitle{font-size:13px;color:#a6bad3}
.next-class{margin-bottom:14px;border:1px solid #3d6088;border-radius:12px;background:#203b59;padding:11px 14px;font-weight:750;color:#d2e9ff;font-size:clamp(14px,1.13vw,19px)}
.period-list{display:grid;gap:9px}
.period{display:flex;align-items:center;gap:14px;border:1px solid #304761;background:#14283f;border-radius:12px;padding:clamp(9px,1vw,14px)}
.period.active{border-color:#86bbfc;background:#23496b;box-shadow:inset 3px 0 #a4d1ff}
.period-number{font-size:clamp(14px,1.15vw,18px);font-weight:850;color:#a9d0ff;min-width:48px}
.period-body{min-width:0;flex:1}
.period-name{font-size:clamp(17px,1.4vw,23px);font-weight:800;overflow-wrap:anywhere}
.period-location,.period-alternate{font-size:clamp(12px,.9vw,15px);color:#b4c8df;overflow-wrap:anywhere;margin-top:3px}
.period-time{color:#aac2dc;font-size:12px;white-space:nowrap}
.badge{display:inline-block;margin-left:7px;font-size:12px;font-weight:800;vertical-align:middle}
.badge.performance{color:#e0b8ff}.badge.homework{color:#ffce9a}
.meals{display:flex;flex-direction:column;gap:12px;min-height:0;flex:1;min-width:0}
.meal-entry{background:#14283f;border:1px solid #304761;border-radius:13px;padding:15px;display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.meal-entry h3{margin:0 0 9px;font-size:19px;color:#b8dcfa}
.meal-entry ul{padding-left:21px;margin:0;line-height:1.75;font-size:clamp(15px,1.2vw,20px)}
.allergens{color:#f2b982;font-size:12px}
.calories{color:#b6d9f7;font-size:16px;margin-top:auto;padding-top:24px}
/* 급식은 해당 행 안에서만 높이를 채우며, 일정 영역을 침범하지 않습니다. */
.meal-panel{display:flex;flex-direction:column;min-width:0}
.meal-entry ul{overflow-wrap:anywhere}
.upcoming-panel{margin-top:max(18px,var(--upcoming-gap,18px))}
.upcoming-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.upcoming-item{background:#14283f;border:1px solid #304761;border-radius:12px;padding:14px;min-width:0}
.upcoming-label{color:#bcd7f7;font-weight:800;font-size:12px}
.upcoming-title{margin-top:7px;font-size:clamp(14px,1.1vw,18px);font-weight:780;overflow-wrap:anywhere}
.upcoming-date{margin-top:7px;color:#a9bdd4;font-size:12px}
.empty{padding:22px;color:#b1c3d8;border:1px dashed #3b5370;border-radius:12px;grid-column:1/-1}
footer{text-align:center;color:#7890ab;font-size:12px;padding:22px}
footer a{color:#a6d2ff}
@media(max-width:980px){.daily-grid{grid-template-columns:1fr}.upcoming-list{grid-template-columns:repeat(2,minmax(0,1fr))}.meals{flex:initial}.meal-entry{flex:initial}.calories{margin-top:12px;padding-top:0}}
@media(max-width:580px){.class-header{align-items:flex-start;flex-wrap:wrap}.header-right{text-align:left}.header-buttons{justify-content:flex-start}.upcoming-list{grid-template-columns:1fr}.period-time{font-size:11px}.period-number{min-width:36px}.period{gap:9px} .panel-header{align-items:start}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
