@font-face{font-family:IMHyemin;src:url(/assets/IM_Hyemin-Bold-xDUcG61q.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}.page{--bg-1: #edf3ff;--bg-2: #f8fbff;--text: #0f172a;--muted: #475569;--line: rgba(255, 255, 255, .46);--glass: rgba(255, 255, 255, .56);--glass-strong: rgba(255, 255, 255, .72);--shadow: 0 10px 30px rgba(15, 23, 42, .12);--shadow-strong: 0 16px 36px rgba(15, 23, 42, .18);--primary: #2563eb;--primary-2: #4f46e5;min-height:100vh;padding:clamp(16px,2.5vw,30px) clamp(12px,2.4vw,26px) 122px;color:var(--text);font-family:IMHyemin,Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at 8% -12%,rgba(37,99,235,.22),transparent 42%),radial-gradient(circle at 92% 0%,rgba(79,70,229,.18),transparent 36%),linear-gradient(180deg,var(--bg-1),var(--bg-2));position:relative}.background-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.2;background:linear-gradient(120deg,rgba(255,255,255,.38),transparent 40%),radial-gradient(circle at 24% 22%,rgba(255,255,255,.4),transparent 45%)}.background-glow{position:absolute;right:-110px;top:-120px;width:360px;height:360px;border-radius:999px;pointer-events:none;background:radial-gradient(circle,rgba(191,219,254,.7),transparent 68%)}.dashboard{max-width:1120px;margin:0 auto;position:relative;z-index:1;display:grid;gap:12px}.app-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4px}.app-header h1{margin:0;font-size:clamp(1.1rem,1.95vw,1.5rem)}.brand-block{display:grid;gap:2px}.brand-link{border:0;background:transparent;padding:0;color:#0b1220;font:inherit;font-family:IMHyemin,SF Pro Display,Pretendard,sans-serif;font-weight:700;font-size:clamp(1.55rem,2.8vw,2rem);letter-spacing:-.01em;line-height:1;cursor:pointer;text-shadow:0 1px 0 rgba(255,255,255,.8)}.brand-link:hover{opacity:.85}.brand-sub{margin:0;color:#4b5563;font-size:12px;font-weight:600;letter-spacing:.01em}.menu-tabs{display:inline-grid;grid-auto-flow:column;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.topbar,.card,.bottom-nav,.chat-panel{border:1px solid var(--line);border-radius:20px;background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.topbar:hover,.card:hover,.chat-panel:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.menu-tabs button,.unit-toggle button,.mode-toggle button,.bottom-nav button,.ghost-btn,.action-btn,.chat-input-row button,.chat-header-tools button,.chat-close-btn{border:1.5px solid rgba(148,163,184,.7);border-radius:12px;min-height:36px;padding:7px 12px;background:linear-gradient(180deg,#ffffffc7,#ffffff94);color:#0f172a;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:all .13s ease;box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #94a3b847,0 2px #94a3b873,0 6px 12px #0f172a14}.menu-tabs button:hover,.unit-toggle button:hover,.mode-toggle button:hover,.ghost-btn:hover,.chat-input-row button:hover,.chat-header-tools button:hover,.chat-close-btn:hover{transform:translateY(-1px);border-color:#3b82f670;box-shadow:inset 0 1px #fffffff2,inset 0 -1px #3b82f640,0 3px #60a5fa59,0 8px 14px #2563eb1f}.menu-tabs button.active,.unit-toggle button.active,.mode-toggle button.active,.bottom-nav button.active,.action-btn{border-color:#2563ebd9;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:inset 0 1px #ffffff47,inset 0 -1px #1e40af61,0 3px #1e40af80,0 10px 18px #4f46e557}.menu-tabs button:active,.unit-toggle button:active,.mode-toggle button:active,.bottom-nav button:active,.ghost-btn:active,.action-btn:active,.chat-input-row button:active,.chat-header-tools button:active,.chat-close-btn:active{transform:translateY(1px);box-shadow:inset 0 1px #0f172a14,inset 0 -1px #ffffff4d,0 1px #94a3b852,0 3px 8px #0f172a14}.content-area{min-width:0}.topbar{margin-bottom:10px;padding:14px 16px}.topbar-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(230px,.8fr);gap:10px;align-items:stretch;margin-bottom:10px}.weather-hero{display:flex;align-items:center;gap:12px;min-width:0;padding:8px 10px;border:1px solid rgba(255,255,255,.45);border-radius:14px;background:linear-gradient(130deg,#fff6,#eff6ff99)}.weather-hero-main{min-width:0}.weather-hero-main h2{margin:0;font-size:clamp(1.1rem,1.8vw,1.35rem);letter-spacing:-.02em}.weather-hero-main p{margin:4px 0 0;color:var(--muted);font-size:13px}.song-card{border:1px solid rgba(255,255,255,.45);border-radius:14px;padding:10px 12px;background:linear-gradient(140deg,#ffffff85,#e0e7ff94);display:grid;align-content:center;gap:2px}.song-label{margin:0;font-size:12px;color:#475569}.song-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.song-refresh-btn{min-width:24px;width:24px;min-height:24px;height:24px;padding:0;border-radius:999px;font-size:13px;line-height:1;border:0;background:transparent;color:#475569;box-shadow:none;cursor:pointer}.song-refresh-btn:hover{background:#94a3b829;color:#1e293b}.song-refresh-btn:active{transform:scale(.96)}.song-card h3{margin:2px 0 0;font-size:1.18rem;line-height:1.1}.song-artist{margin:2px 0 0;font-size:13px;color:#1e293b}.song-vibe{margin:4px 0 0;font-size:11px;color:#64748b}.weather-icon{width:54px;height:54px;border-radius:15px;border:1px solid rgba(255,255,255,.62);background:var(--glass-strong);display:grid;place-items:center;flex:0 0 54px}.weather-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}.weather-sunny{color:#f59e0b}.weather-rain,.weather-shower{color:#2563eb}.weather-snow,.weather-sleet{color:#0891b2}.weather-cloudy{color:#64748b}.workspace-grid{display:grid;gap:12px;grid-template-columns:minmax(0,1.45fr) minmax(280px,.95fr);align-items:start}.input-priority{scroll-margin-top:20px}.card{padding:16px}.card.single{min-height:100%}.side-stack{display:grid;gap:12px;position:sticky;top:14px}.card h3,.info-card h3{margin:4px 0 10px;font-size:1.06rem}.mode-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.mode-actions{display:inline-flex;gap:6px}.ghost-btn{min-height:30px;padding:4px 10px;font-size:11px;color:#1e3a8a}.unit-toggle,.mode-toggle{display:grid;gap:6px;padding:4px;border:1px solid rgba(255,255,255,.58);border-radius:14px;background:#ffffff57}.unit-toggle{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-toggle{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.unit-toggle.compact{width:auto;grid-auto-columns:minmax(88px,auto)}.unit-toggle.compact button{min-height:30px;padding:4px 10px;font-size:12px}.unit-toggle button,.mode-toggle button{text-align:center;min-width:0;width:100%}.mode-toggle button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label{display:block;margin-bottom:8px;font-size:13px;font-weight:700;color:var(--muted)}input{width:100%;margin-top:6px;border:1.5px solid rgba(148,163,184,.72);border-radius:12px;padding:10px 12px;background:linear-gradient(180deg,#ffffffe6,#ffffffc7);color:var(--text);font:inherit;font-size:14px;box-shadow:inset 0 1px #fffffff2,inset 0 -1px #94a3b838,0 2px #94a3b857,0 4px 10px #0f172a0f}input:focus-visible{outline:2px solid rgba(37,99,235,.45);outline-offset:1px;border-color:#2563ebc7;background:linear-gradient(180deg,#fffffffa,#ffffffe6);box-shadow:inset 0 1px #fff,inset 0 -1px #3b82f633,0 2px #60a5fa59,0 8px 16px #2563eb24}.time-row{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.time-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.result{margin-top:10px;padding:14px;border:1px solid rgba(255,255,255,.56);border-radius:14px;background:#ffffff75}.result strong{display:inline-flex;margin-bottom:8px;padding:4px 9px;border-radius:999px;font-size:11px;color:#1d4ed8;background:#bfdbfebf}.result p{margin:0;font-size:clamp(1.32rem,2.2vw,1.72rem);font-weight:800}.result-hint{opacity:.66}.result .sub,.info-card p,.info-card li,.record-note,.record-empty,.record-item time{color:var(--muted)}.info-card .big{margin:2px 0 4px;font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:800}.info-card ul,.tips-grid ul{margin:0;padding-left:18px}.info-card li,.tips-grid li{margin-bottom:7px;font-size:13px;line-height:1.5}.info-card a{display:inline-block;margin-top:8px;font-size:12px;color:#1d4ed8;text-decoration:none}.info-card a:hover{text-decoration:underline}.summary-actions{margin-top:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.record-card{display:grid;gap:10px}.record-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.record-header h3{margin:0}.record-list{display:grid;gap:8px;max-height:300px;overflow:auto;padding-right:2px}.record-item{border:1px solid rgba(255,255,255,.58);border-radius:14px;background:#ffffff85;padding:10px}.record-item strong{font-size:12px}.record-value{margin:5px 0 4px;font-size:18px;font-weight:800;letter-spacing:-.01em}.record-note{margin:0;font-size:12px}.record-item time{display:block;margin-top:6px;font-size:11px}.tips{padding:16px}.tips h2{margin:0 0 10px;font-size:1.2rem}.tips-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tips-grid>div{border:1px solid rgba(255,255,255,.58);border-radius:14px;padding:12px;background:#ffffff80}.tips-grid h3{margin:0 0 8px;font-size:1rem}.course-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.course-sub{margin:6px 0 12px;font-size:12px;color:var(--muted)}.course-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.course-item{border:1px solid rgba(255,255,255,.58);border-radius:14px;background:#ffffff85;padding:10px;display:grid;gap:6px}.course-item strong{font-size:14px}.course-item p{margin:0;font-size:12px;color:var(--muted)}.course-item a{font-size:12px;color:#1d4ed8;text-decoration:none}.course-item a:hover{text-decoration:underline}.chat-fab{position:fixed;right:14px;bottom:78px;z-index:31;border:1px solid transparent;border-radius:14px;min-height:42px;padding:0 16px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 12px 28px #4f46e552}.chat-fab.open{opacity:0;pointer-events:none}.bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;z-index:32;padding:8px;border-radius:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.desktop-only{display:inline-grid}.mobile-only{display:none}.chat-panel{position:fixed;right:14px;bottom:66px;z-index:31;width:min(340px,calc(100vw - 20px));display:none;overflow:hidden}.chat-panel.open{display:block}.chat-panel header{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.5);background:#ffffff70;display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-header-tools{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.chat-header-right{display:flex;align-items:center;gap:8px}.chat-panel header span{font-size:11px;color:var(--muted);white-space:nowrap;max-width:126px;overflow:hidden;text-overflow:ellipsis}.chat-header-tools input{width:94px;margin-top:0;padding:6px 8px;font-size:11px}.name-edit-btn,.name-save-btn{display:inline-flex;align-items:center;justify-content:center;min-height:20px!important;min-width:0;width:auto;padding:0 6px!important;font-size:8px!important;border-radius:8px!important;white-space:nowrap;word-break:keep-all;line-height:1!important}.chat-close-btn{width:28px;min-width:28px;min-height:28px;height:28px;padding:0;border-radius:999px;font-size:18px;line-height:1}.chat-messages{max-height:280px;overflow:auto;padding:10px;display:grid;gap:8px}.chat-item{display:grid;gap:4px;max-width:92%}.chat-item strong{font-size:10px;color:var(--muted)}.chat-item p{margin:0;padding:8px 10px;border-radius:10px;font-size:12px;line-height:1.4}.chat-item.assistant p,.chat-item.other p{background:#ffffff8f;border:1px solid rgba(255,255,255,.64)}.chat-item.me{justify-self:end}.chat-item.me p{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff}.chat-item.system{max-width:100%}.chat-item.system p{background:#94a3b833;color:var(--muted);border:1px dashed rgba(148,163,184,.42)}.chat-input-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px;border-top:1px solid rgba(255,255,255,.5);align-items:center}.chat-input-row input{margin-top:0}.chat-input-row button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 1024px){.topbar{padding:12px}.workspace-grid{grid-template-columns:1fr}.side-stack{position:static}}@media (max-width: 768px){.desktop-only{display:none}.mobile-only{display:grid}.page{padding-bottom:142px}.app-header{margin-bottom:0}.app-header h1{font-size:1rem;margin-left:2px}.brand-sub{font-size:11px}.unit-toggle,.mode-toggle{width:100%}.mode-header{flex-direction:column;align-items:stretch}.mode-actions{justify-content:flex-end}.unit-toggle.compact{width:auto;grid-template-columns:repeat(2,minmax(86px,auto))}.mode-toggle{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-toggle button{min-height:34px;padding:6px 8px;font-size:12px}.time-row,.time-row.two,.tips-grid,.course-grid,.topbar-grid{grid-template-columns:1fr}.chat-fab{right:10px;bottom:82px;min-height:40px;padding:0 14px;font-size:12px}.chat-panel{right:10px;bottom:58px}}@media (max-width: 440px){.page{padding:10px 10px 130px}.topbar,.card{border-radius:14px;padding:10px}.mode-toggle{grid-template-columns:1fr}.topbar h2{font-size:1.04rem}.weather-icon{width:44px;height:44px;flex-basis:44px}.weather-icon svg{width:28px;height:28px}}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;min-height:100%}
