:root{--bg:#f3f8f9;--surface:#fff;--surface-soft:#eaf3f4;--ink:#12313d;--ink-soft:#5b7681;--ink-faint:#93a9b0;--line:#dce8ea;--line-strong:#bfd4d8;--primary:#0b5f73;--primary-dark:#073e4c;--primary-soft:#e3f0f2;--accent:#ffc93c;--accent-ink:#6b4e00;--danger:#eb5757;--danger-soft:#fceaea;--type-lesson:#2d9cdb;--type-freeswim:#27ae60;--type-video:#9b59b6;--type-renew:#f2994a;--type-deadline:#eb5757;--radius-lg:20px;--radius-md:14px;--radius-sm:9px;--font:"Pretendard", -apple-system, BlinkMacSystemFont, "Malgun Gothic", sans-serif;--nav-h:64px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;padding:0}body{overscroll-behavior-y:none}button,input,textarea,select{color:inherit;font-family:inherit}button{cursor:pointer;background:0 0;border:none}a{color:var(--primary)}#root{background:var(--bg);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.app-main{padding:20px 16px calc(var(--nav-h) + 28px);flex:1;min-height:100dvh}.page-title{letter-spacing:-.01em;margin:4px 0;font-size:22px;font-weight:700}.page-sub{color:var(--ink-soft);margin:0 0 20px;font-size:13.5px;line-height:1.5}.section-title{color:var(--ink);margin:28px 0 12px;font-size:15px;font-weight:700}.section-title:first-child{margin-top:0}.btn{border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:6px;padding:11px 18px;font-size:14.5px;font-weight:600;transition:transform 80ms,opacity .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-ghost{background:var(--surface-soft);color:var(--primary-dark)}.btn-outline{border:1.5px solid var(--line-strong);color:var(--ink-soft);background:0 0}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-block{width:100%}.btn-sm{border-radius:8px;padding:7px 12px;font-size:13px}.btn-icon{background:var(--surface-soft);border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--line);padding:14px}.lane-row{background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--line);gap:12px;margin-bottom:10px;padding:12px 14px 12px 16px;display:flex;position:relative;overflow:hidden}.lane-row:before{content:"";background:var(--accent-color,var(--primary));width:5px;position:absolute;top:0;bottom:0;left:0}.lane-row-body{flex:1;min-width:0}.lane-row-title{margin:0 0 3px;font-size:14.5px;font-weight:700}.lane-row-meta{color:var(--ink-soft);font-size:12.5px}.badge{background:var(--surface-soft);color:var(--primary-dark);border-radius:100px;align-items:center;gap:4px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.tag-chip{border:1.5px solid var(--line-strong);color:var(--ink-soft);background:var(--surface);border-radius:100px;align-items:center;padding:5px 11px;font-size:12px;font-weight:600;display:inline-flex}.tag-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.field{margin-bottom:14px}.field-label{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:700;display:block}.input,.textarea,.select{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:10px;outline:none;width:100%;padding:11px 12px;font-size:14.5px}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary)}.textarea{resize:vertical;min-height:74px;line-height:1.5}.chip-select{flex-wrap:wrap;gap:8px;display:flex}.bottom-nav{height:var(--nav-h);background:var(--surface);border-top:1px solid var(--line);z-index:30;display:flex;position:sticky;bottom:0;left:0;right:0}.nav-item{color:var(--ink-faint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11.5px;font-weight:600;display:flex}.nav-item.active{color:var(--primary)}.top-bar{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.sheet-backdrop{z-index:100;background:#0a1e2673;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:480px;max-height:88dvh;padding:18px 18px calc(env(safe-area-inset-bottom,0px) + 22px);border-radius:22px 22px 0 0;animation:.22s sheet-up;overflow-y:auto}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.sheet-handle{background:var(--line-strong);border-radius:4px;width:40px;height:4px;margin:0 auto 14px}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.sheet-title{font-size:17px;font-weight:700}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-head-title{font-size:17px;font-weight:700}.weekday-row{text-align:center;color:var(--ink-faint);grid-template-columns:repeat(7,1fr);padding:6px 0;font-size:11.5px;font-weight:700;display:grid}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-cell{aspect-ratio:1/1.02;border-radius:10px;flex-direction:column;align-items:center;padding-top:6px;display:flex;position:relative}.calendar-cell.today .cell-num{background:var(--primary);color:#fff}.calendar-cell.selected{background:var(--primary-soft)}.calendar-cell.other-month .cell-num{color:var(--ink-faint);opacity:.5}.cell-num{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12.5px;font-weight:600;display:flex}.cell-dots{flex-wrap:wrap;justify-content:center;gap:2px;max-width:34px;margin-top:3px;display:flex}.lane-divider{background:repeating-linear-gradient(90deg, var(--line-strong) 0 10px, transparent 10px 16px);border-radius:3px;height:3px;margin:2px 0 8px}.legend-row{color:var(--ink-soft);flex-wrap:wrap;gap:10px 14px;margin:10px 0 18px;font-size:12px;display:flex}.legend-item{align-items:center;gap:5px;display:flex}.empty-state{text-align:center;color:var(--ink-faint);padding:40px 16px}.empty-state-icon{margin-bottom:10px;font-size:34px}.empty-state-title{color:var(--ink-soft);margin-bottom:4px;font-weight:700}.photo-row{flex-wrap:wrap;gap:8px;display:flex}.photo-thumb{object-fit:cover;border:1px solid var(--line);border-radius:10px;width:68px;height:68px}.photo-thumb-wrap{position:relative}.photo-remove{background:var(--danger);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex;position:absolute;top:-6px;right:-6px}.search-bar{background:var(--surface);border:1.5px solid var(--line-strong);border-radius:100px;align-items:center;gap:8px;margin-bottom:16px;padding:9px 14px;display:flex}.search-bar input{background:0 0;border:none;outline:none;flex:1;font-size:14px}.accordion-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:10px;overflow:hidden}.accordion-head{justify-content:space-between;align-items:center;padding:13px 14px;font-size:14px;font-weight:700;display:flex}.accordion-body{color:var(--ink-soft);padding:0 14px 16px;font-size:13.5px;line-height:1.65}.accordion-body h4{color:var(--ink);margin:14px 0 6px;font-size:13px}.accordion-body h4:first-child{margin-top:0}.accordion-body ul{margin:0;padding-left:18px}.accordion-body li{margin-bottom:4px}.toast{bottom:calc(var(--nav-h) + 14px);background:var(--primary-dark);color:#fff;z-index:200;white-space:nowrap;border-radius:100px;padding:10px 18px;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.check-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;font-size:13.5px;display:flex}.check-row:last-child{border-bottom:none}.check-box{border:1.5px solid var(--line-strong);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex}.check-box.checked{background:var(--primary);border-color:var(--primary);color:#fff}.check-row.checked-text{color:var(--ink-faint);text-decoration:line-through}.link-pill{color:var(--primary-dark);background:var(--primary-soft);border-radius:100px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-flex}hr.hr{border:none;border-top:1px solid var(--line);margin:18px 0}.row-between{justify-content:space-between;align-items:center;display:flex}.flex-gap{gap:8px;display:flex}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.star-btn{font-size:19px;line-height:1}
