:root{color:#171512;font-synthesis:none;--bg:#f6f0e6;--surface:#fffdf8;--surface-strong:#171512;--text:#171512;--muted:#706b63;--line:#dcd3c5;--accent:#b13c00;--accent-contrast:#fff;--accent-soft:#ffe0d2;--green:#195c45;--shadow:0 18px 50px #2b1f1012;background:#f6f0e6;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{color:#f7f0e5;--bg:#171512;--surface:#24211d;--surface-strong:#f7f0e5;--text:#f7f0e5;--muted:#b9b1a5;--line:#494139;--accent:#ff713d;--accent-contrast:#171512;--accent-soft:#4b2a1f;--green:#66c9a5;--shadow:none;background:#171512}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);margin:0}button,input,select{font:inherit}button,input,select,summary{outline-offset:3px}button{cursor:pointer}.date-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.date-controls label{gap:6px;font-size:.85rem;display:grid}.date-controls input,.date-controls button,.settings-card>button,.notice button{background:var(--surface);min-height:44px;color:var(--text);border:1px solid var(--line);border-radius:5px;padding:8px 12px}.date-controls p{color:var(--muted);flex-basis:100%;margin:0;font-size:.8rem}.notice a{color:var(--accent)}.search-results{max-height:350px;overflow-y:auto}.dday-list li{overflow-wrap:anywhere;flex-wrap:wrap}.dday-list li>div{flex:1;min-width:100px}.dday-list button{min-width:44px;min-height:44px}.hero h2{overflow-wrap:anywhere}.section-heading{flex-wrap:wrap}.skip-link{z-index:20;background:var(--surface-strong);color:var(--bg);border-radius:4px;padding:10px 14px;position:fixed;top:-50px;left:12px}.skip-link:focus{top:12px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{width:min(1180px,100% - 28px);margin:0 auto}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:88px;display:flex}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-mark{border:2px solid var(--text);background:var(--accent);width:42px;height:42px;color:var(--accent-contrast);border-radius:50%;place-items:center;font-weight:800;display:grid;transform:rotate(-5deg)}h1,h2,p{margin-top:0}h1{letter-spacing:-.06em;margin-bottom:0;font-size:1.35rem}h2{letter-spacing:-.055em;margin-bottom:0;font-size:clamp(1.5rem,5vw,2.3rem);line-height:1}.eyebrow{color:var(--muted);letter-spacing:.14em;margin-bottom:4px;font-size:.68rem;font-weight:700}.icon-button{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--text);border-radius:6px;font-size:1.25rem}main{padding:30px 0 60px}.hero{align-items:end;gap:24px;padding:20px 0 36px;display:grid}.hero h2{max-width:800px;font-size:clamp(2.4rem,11vw,5.8rem)}.hero>div>p:last-child{color:var(--muted);margin:10px 0 0}.date-line{color:var(--accent);margin-bottom:8px;font-weight:700}.school-search{position:relative}.school-search label{margin-bottom:8px;font-size:.82rem;font-weight:700;display:block}.school-search-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.school-search input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:50px;color:var(--text);border-radius:5px;padding:0 14px}.school-search-row>button{background:var(--accent);color:#fff;border:0;border-radius:5px;min-width:72px;padding:0 14px;font-weight:700}.school-search-row>button:disabled{cursor:wait;opacity:.65}.search-results{z-index:10;border:1px solid var(--line);background:var(--surface);width:100%;box-shadow:var(--shadow);padding:6px;position:absolute;top:82px}.search-results button{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:var(--text);background:0 0;flex-direction:column;gap:4px;padding:12px;display:flex}.search-results button:hover,.search-results button:focus-visible{background:var(--accent-soft)}.search-results span,.search-results p{color:var(--muted);font-size:.78rem}.pulse-card{background:var(--surface-strong);color:var(--bg);box-shadow:var(--shadow);border-radius:8px;gap:26px;padding:24px;display:grid}.pulse-card .eyebrow{color:color-mix(in srgb, var(--bg), transparent 35%)}.status-dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 7px color-mix(in srgb, var(--accent), transparent 80%);border-radius:50%;margin-bottom:14px;display:inline-block}.countdown{letter-spacing:-.07em;color:var(--accent);font-variant-numeric:tabular-nums;margin:10px 0 0;font-size:clamp(2.5rem,14vw,5rem);font-weight:700}.milestones{grid-template-columns:1fr 1fr;align-self:end;gap:10px;display:grid}.milestones div{border:1px solid color-mix(in srgb, var(--bg), transparent 72%);border-radius:5px;padding:16px}.milestones span,.milestones strong{display:block}.milestones span{opacity:.72;margin-bottom:7px;font-size:.75rem}.milestones strong{font-variant-numeric:tabular-nums;font-size:1.15rem}.dashboard-grid{gap:14px;margin-top:14px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0;padding:20px}.section-heading{justify-content:space-between;align-items:start;gap:16px;margin-bottom:22px;display:flex}.section-heading h2{font-size:1.7rem}.segmented{border:1px solid var(--line);border-radius:5px;padding:3px;display:flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:3px;padding:7px 10px;font-size:.78rem}.segmented button[aria-pressed=true]{background:var(--surface-strong);color:var(--bg)}.period-list,.meal-list,.dday-list{margin:0;padding:0;list-style:none}.period-list li{border-top:1px solid var(--line);grid-template-columns:34px 1fr auto;align-items:center;gap:12px;min-height:58px;display:grid}.period-list li:last-child{border-bottom:1px solid var(--line)}.period-list li.empty-state{color:var(--muted);padding:18px 0;font-size:.84rem;display:block}.period-list li.is-current{background:var(--accent-soft);border-color:#0000;margin:0 -10px;padding:0 10px}.period-number{color:var(--muted);font-size:.75rem}.period-list strong,.period-list span{display:block}.period-list div span{color:var(--muted);margin-top:3px;font-size:.75rem}.period-list em{color:var(--accent);letter-spacing:.12em;font-size:.66rem;font-style:normal;font-weight:800}.week-table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px;font-size:.78rem}th,td{border:1px solid var(--line);text-align:center;padding:10px 8px}th{background:var(--accent-soft)}.calorie{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:7px 9px;font-size:.75rem;font-weight:700}.meal-list li{border-bottom:1px solid var(--line);gap:14px;padding:10px 0;display:flex}.meal-list span{color:var(--accent);font-size:.72rem;font-weight:700}details{color:var(--muted);margin-top:16px;font-size:.82rem}summary{cursor:pointer;color:var(--text);font-weight:700}.dday-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:13px 0;display:flex;position:relative}.dday-list li div>span,.dday-list li strong,.dday-list time{display:block}.dday-list li div>span{color:var(--accent);font-size:.64rem;font-weight:700}.dday-list time{color:var(--muted);margin-top:3px;font-size:.72rem}.dday-list b{white-space:nowrap;font-size:1.2rem}.dday-list button{color:var(--muted);background:0 0;border:0;font-size:1.2rem}.dday-form{border-top:2px solid var(--text);gap:10px;margin-top:18px;padding-top:18px;display:grid}.dday-form label,.select-grid label{color:var(--muted);gap:6px;font-size:.72rem;font-weight:700;display:grid}.dday-form input,select{border:1px solid var(--line);background:var(--bg);width:100%;min-height:44px;color:var(--text);border-radius:4px;padding:0 11px}.dday-form button{background:var(--accent);min-height:44px;color:var(--accent-contrast);border:0;border-radius:4px;font-weight:700}.select-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.privacy-note{background:var(--accent-soft);color:var(--muted);margin:18px 0 0;padding:14px;font-size:.8rem;line-height:1.55}.notice{border-left:4px solid var(--accent);background:var(--surface);margin-top:14px;padding:18px 20px;font-size:.82rem;line-height:1.55}.notice p{color:var(--muted);margin:5px 0}.notice time{color:var(--muted);font-size:.72rem}footer{border-top:1px solid var(--line);color:var(--muted);padding:24px 0 34px;font-size:.75rem}@media (width>=700px){.app-shell{width:min(1180px,100% - 56px)}.hero{grid-template-columns:minmax(0,1fr) minmax(280px,360px);padding:46px 0}.pulse-card{grid-template-columns:1.45fr 1fr;padding:34px}.dashboard-grid{grid-template-columns:1.25fr .75fr}.timetable-card{grid-row:span 2}.dday-form{grid-template-columns:1fr 150px auto;align-items:end}}@media (width>=1000px){.dashboard-grid{grid-template-columns:1.1fr .9fr .9fr}.timetable-card{grid-row:span 2}.meal-card{grid-column:2}.dday-card{grid-area:span 2/3}.settings-card{grid-column:2}.dday-form{grid-template-columns:1fr}}@media (prefers-reduced-motion:no-preference){button{transition:transform .16s,background-color .16s}button:active{transform:scale(.97)}}.app-shell{padding-bottom:86px}.official-hero{align-items:center;padding:22px 0}.official-hero h2{font-size:clamp(2rem,7vw,3.6rem)}.hero-copy{min-width:0}.page-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:10px;margin:26px 0 12px;display:flex}.page-heading h2{font-size:clamp(1.8rem,5vw,2.8rem)}.page-heading>p{color:var(--muted);margin:0;font-size:.85rem}.card h3{letter-spacing:-.04em;margin:0;font-size:1.35rem}.official-grid{align-items:start;margin-top:0}.official-grid .timetable-card,.official-grid .dday-card,.official-grid .meal-card{grid-area:auto}.compact-pulse{grid-template-columns:1fr auto;align-items:center;margin-top:12px;padding:20px}.compact-pulse h2{font-size:1.55rem}.compact-pulse .countdown{margin:7px 0 0;font-size:1.05rem}.text-button,.more-button{border:1px solid var(--line);min-height:40px;color:var(--text);background:0 0;border-radius:999px;padding:8px 13px;font-size:.78rem;font-weight:750}.pulse-card .text-button{color:var(--bg);border-color:color-mix(in srgb, var(--bg), transparent 55%)}.more-button{background:var(--accent-soft);width:100%;color:var(--accent);border:0;margin-top:14px}.date-navigator{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;grid-template-columns:44px minmax(0,1fr) 44px auto auto;align-items:center;gap:8px;padding:10px;display:grid}.date-navigator>button{background:var(--bg);min-height:42px;color:var(--text);border:0;border-radius:11px;font-weight:800}.selected-date{text-align:center;min-width:0}.selected-date span,.selected-date strong{display:block}.selected-date span{color:var(--accent);font-size:.76rem;font-weight:800}.selected-date strong{margin-top:2px;font-size:1.08rem}.date-picker input{border:1px solid var(--line);background:var(--bg);width:42px;min-height:42px;color:var(--text);border-radius:11px;padding:5px}.date-navigator .today-button{background:var(--accent);color:var(--accent-contrast);padding:0 13px}.onboarding-card{text-align:center;max-width:640px;margin:18px auto 0;padding:34px 24px}.wide-card{margin-top:18px}.week-table-wrap th span,.week-table-wrap th small{display:block}.week-table-wrap th small{color:var(--muted);margin-top:3px;font-weight:500}.calendar-layout,.settings-layout{align-items:start;gap:14px;margin-top:18px;display:grid}.calendar-card,.calendar-layout .dday-card,.settings-layout .settings-card{grid-area:auto}.calendar-heading{text-align:center;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;margin-bottom:20px;display:grid}.calendar-heading button{border:1px solid var(--line);background:var(--bg);width:44px;height:44px;color:var(--text);border-radius:50%}.calendar-heading h2{font-size:1.65rem}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekdays{color:var(--muted);text-align:center;margin-bottom:6px;font-size:.72rem;font-weight:800}.calendar-grid>span,.calendar-grid>button{aspect-ratio:1}.calendar-grid>button{background:var(--bg);color:var(--text);border:1px solid #0000;border-radius:11px;place-items:center;display:grid;position:relative}.calendar-grid>button.is-today{border-color:var(--accent)}.calendar-grid>button.is-selected{background:var(--accent);color:var(--accent-contrast)}.calendar-grid i{background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;bottom:6px}.selected-day-card h2{font-size:1.65rem}.day-summary{gap:12px;margin-top:20px;display:grid}.day-summary>div{background:var(--bg);border-radius:10px;gap:5px;padding:13px;display:grid}.day-summary span{color:var(--muted);font-size:.82rem;line-height:1.55}.bell-time-list{gap:8px;margin-top:18px;display:grid}.bell-time-row{background:var(--bg);border-radius:10px;grid-template-columns:48px 1fr auto 1fr;align-items:end;gap:8px;padding:10px;display:grid}.bell-time-row>strong{align-self:center;font-size:.82rem}.bell-time-row label{color:var(--muted);gap:4px;font-size:.66rem;display:grid}.bell-time-row input{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:40px;color:var(--text);border-radius:8px;padding:4px 6px}.compact-reset{border:1px solid var(--line);min-height:36px;color:var(--muted);background:0 0;border-radius:8px;margin:28px 0 0;padding:7px 11px;font-size:.76rem;display:block}.settings-notice{margin-top:0}.bottom-nav{z-index:18;left:50%;bottom:max(10px, env(safe-area-inset-bottom));border:1px solid var(--line);background:color-mix(in srgb, var(--surface), transparent 8%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;grid-template-columns:repeat(4,1fr);gap:4px;width:min(560px,100% - 24px);padding:7px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 16px 45px #0000002e}.bottom-nav button{min-height:52px;color:var(--muted);background:0 0;border:0;border-radius:14px;place-items:center;gap:2px;font-size:.7rem;font-weight:750;display:grid}.bottom-nav button span{place-items:center;width:24px;height:24px;font-size:1.15rem;line-height:1;display:grid}.bottom-nav button svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.bottom-nav button[aria-pressed=true]{background:var(--surface-strong);color:var(--bg)}footer{padding-bottom:100px}@media (width<=520px){.app-shell{width:min(100% - 20px,1180px)}.topbar{min-height:72px}main{padding-top:12px}.official-hero{gap:16px}.date-navigator{grid-template-columns:40px minmax(0,1fr) 40px auto}.date-picker{display:none}.date-navigator .today-button{padding:0 10px}.card{border-radius:14px;padding:17px}.section-heading{margin-bottom:14px}.compact-pulse{grid-template-columns:1fr;gap:14px}.bell-time-row{grid-template-columns:44px 1fr 8px 1fr;padding:8px}}@media (width>=700px){.official-hero{grid-template-columns:minmax(0,1fr) minmax(280px,360px);padding:28px 0}.official-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-layout{grid-template-columns:1.25fr .75fr}.calendar-layout .calendar-events{grid-column:1/-1}.settings-layout{grid-template-columns:.8fr 1.2fr}.settings-layout .settings-notice{grid-column:1/-1}}.bell-source-note{border:1px solid color-mix(in srgb, var(--bg), transparent 55%);border-radius:999px;align-self:center;padding:8px 12px;font-size:.76rem;font-weight:800}.date-arrow svg,.date-picker svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.date-arrow{align-self:center;place-items:center;width:100%;height:42px;min-height:42px;padding:0;line-height:0;display:grid}.date-picker{border:1px solid var(--line);background:var(--bg);width:42px;height:42px;color:var(--text);cursor:pointer;border-radius:11px;place-items:center;display:grid;position:relative;overflow:hidden}.date-picker-input{z-index:2;opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.week-table-frame{width:100%;overflow:hidden}.week-table{table-layout:fixed;width:100%;min-width:0;font-size:clamp(.58rem,2.25vw,.78rem)}.week-table th,.week-table td{overflow-wrap:anywhere;word-break:keep-all;padding:8px 3px;line-height:1.25;overflow:hidden}.week-table th:first-child{width:20%}.week-table thead th:not(:first-child){width:16%}.week-table th strong,.week-table th small{display:block}.week-table th small{color:var(--muted);white-space:nowrap;margin-top:3px;font-size:.72em;font-weight:550}.week-table td span{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.week-table .is-selected-day{background:color-mix(in srgb, var(--accent-soft), var(--surface) 25%)}.week-table .is-today-day{box-shadow:inset 0 0 0 2px var(--accent)}footer{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}footer strong{color:var(--text);font-size:.9rem}footer nav{flex-wrap:wrap;gap:8px 12px;margin-left:auto;display:flex}footer a{color:var(--muted);text-underline-offset:3px;text-decoration-thickness:1px}@media (width<=520px){.date-navigator{grid-template-columns:38px minmax(0,1fr) 38px 42px auto;gap:5px;padding:7px}.date-picker{display:grid}.date-navigator .today-button{padding:0 8px;font-size:.78rem}.wide-card.timetable-card{padding:12px 8px}.week-table th,.week-table td{padding:7px 2px}}
