@font-face{font-family:Park;src:url('../../assets/fonts/Ownglyph-ParkDahyun.ttf') format('truetype');font-display:swap}@font-face{font-family:Pretendard;src:url('../../assets/fonts/Pretendard-Regular.woff2') format('woff2');font-display:swap}:root{font-family:Park,Pretendard,sans-serif;color:#5a4742;background:#f8f2ed;--ink:#5a4742;--muted:#7f6e67;--line:#e0d2ca;--panel:#fffaf6;--soft:#f1e4dc;--accent:#e87961;--accent-text:#b84d35;--header-bg:#5a4742;--header-ink:#FFF7F0}html[data-theme="dark"]{color-scheme:dark;--ink:#f3e9e2;--muted:#b9aba3;--line:#4a3d38;--panel:#2a211e;--soft:#3a2e2a;--accent:#e87961;--accent-text:#b84d35;--attention-wash:#4a2f27;--border-faint:#3b302c;--border-input:#5a4c46;--border-soft:#40342f;--border-strong:#6a5a53;--border-tint:#3b302c;--brown-ink:#d9a994;--coral-ink:#f0957f;--coral-line:#6a3a2f;--danger:#e3867b;--danger-strong:#ff9b94;--danger-wash:#4a2322;--lesson-next-bg:#3a2e2a;--muted-2:#c4b7af;--paper:#221a17;--pay-paid-ink:#9cc0ea;--pay-paid-line:#6f95c6;--pay-settled-bg:#243144;--pay-settled-ink:#b7cdea;--pay-settled-line:#3d5478;--rose-ink:#e2a39a;--row-tint:#332926;--row-tint-soft:#1c1513;--success-bg:#23362b;--success-ink:#9fd1b2;--surface-input:#1f1816;--surface-warm:#2e2522;--white:#2a211e;--faint-ink:#6f615b;--ink-strong:#fff8f2;--danger-line:#8c4a46;--brand-kakao-bg:#FEE500;--brand-kakao-ink:#191919;--brand-google-blue:#4285F4;--brand-google-ink:#3C4043;--gauge-sage:#6f8f7a;--focus-ring:#d9a994;--header-bg:#140f0d;--header-ink:#f3e9e2}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;background:var(--row-tint-soft);color:var(--ink)}button,input{font:inherit}.app-header{height:84px;padding:0 32px;background:var(--header-bg);color:var(--header-ink);display:flex;align-items:center;position:relative;z-index:5}.brand{width:86px;height:58px;object-fit:contain}.top-nav{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px}.top-nav a{width:86px;min-height:var(--control-lg);padding:8px 6px;color:var(--paper);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:var(--text-xl);line-height:1;white-space:nowrap;border-radius:var(--radius-md)}.top-nav a.active,.top-nav a:hover{background:var(--ink);color:var(--white)}.gnb-svg{width:22px;height:22px;display:block;flex:0 0 22px}.profile-menu{margin-left:auto;display:inline-flex;align-items:center;gap:10px;color:var(--paper);text-decoration:none;font-size:var(--text-xl);line-height:1;white-space:nowrap}.profile-avatar{display:block;flex:0 0 21px;width:21px;height:21px;border-radius:50%;object-fit:cover;border:1px solid #f8e9e180}.settings-icon{font-family:Arial,sans-serif;font-size:var(--text-md)}.app-shell{max-width:1180px;margin:0 auto;padding:42px 34px 96px}.view{min-height:680px}.back-link{display:inline-block;color:var(--ink);text-decoration:underline;font-size:var(--text-xl);margin-bottom:26px;cursor:pointer}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:32px}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:var(--text-lg)}.page-heading h1,.profile-card h1{font-size:var(--title-2xl);line-height:1.12;margin:0 0 10px;font-weight:800}.muted{color:var(--muted);font-size:var(--text-xl);margin:0}.button{border:1px solid var(--border-strong);border-radius:var(--radius-button);padding:12px 20px;background:var(--soft);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.button.primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.button.outline{background:transparent}.button.secondary{background:var(--panel)}.button.subtle{background:var(--soft);border-color:transparent}.button-row{display:flex;gap:10px;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.stat-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl)}.stat-card{padding:22px;display:flex;flex-direction:column;gap:5px}.stat-card strong{font-size:var(--title-xl)}.stat-card small,.student-detail small{color:var(--muted)}.panel{padding:26px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.panel h2{font-size:var(--title-md);margin:0}.lesson-row,.record-row,.student-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.lesson-row:last-child,.record-row:last-child,.student-row:last-child{border-bottom:0}.lesson-row strong,.record-row strong{font-size:var(--text-2xl)}.lesson-row p,.record-row p,.student-info p{margin:5px 0 0;color:var(--muted)}.summary-line{display:flex;justify-content:space-between;color:var(--muted);margin:-12px 0 24px;font-size:var(--text-lg)}.report-actions{justify-content:flex-end;margin-top:24px}.check-row{display:flex;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid var(--line)}.check-row small{margin-left:auto;color:var(--muted)}.chat-layout{display:grid;grid-template-columns:280px 1fr;gap:18px}.chat-people h2{margin:0 0 14px}.person-row{width:100%;border:0;border-radius:var(--radius-md);background:transparent;padding:12px;text-align:left;display:flex;align-items:center;gap:10px;color:var(--ink);cursor:pointer}.person-row.selected,.person-row:hover{background:var(--soft)}.person-dot{width:32px;height:32px;border-radius:50%;background:var(--tone-attention-bg);display:inline-flex;align-items:center;justify-content:center}.person-row small{display:block;color:var(--muted);margin-top:3px}.chat-panel{min-height:490px;display:flex;flex-direction:column}.chat-header{display:flex;gap:12px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:16px}.messages{flex:1;display:flex;flex-direction:column;gap:10px;padding:22px 0}.message{max-width:75%;padding:12px 15px;border-radius:var(--radius-lg);background:var(--soft);align-self:flex-start}.message.user{align-self:flex-end;background:var(--ink);color:var(--paper)}.chat-form{display:flex;gap:10px;border-top:1px solid var(--line);padding-top:16px}.chat-form input,.search input,.profile-card input{border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--surface-input);color:var(--ink);padding:13px 15px;min-width:0}.chat-form input{flex:1}.search{display:flex;gap:10px;margin-bottom:24px}.search input{flex:1}.student-panel{padding-top:20px}.student-title{display:flex;align-items:center;gap:10px}.student-title strong{font-size:var(--title-md)}.student-detail{display:grid;gap:5px;margin-top:18px}.modal-backdrop{position:fixed;inset:0;background:#2e211db8;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px}.modal{max-width:700px;width:100%;max-height:90vh;overflow:auto;background:var(--panel);border-radius:24px;padding:28px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.modal-head h2{font-size:var(--title-xl);margin:5px 0 0}.profile-grid{display:grid;gap:10px}.profile-item{border:1px solid var(--line);border-radius:var(--radius-lg);padding:15px;display:grid;gap:5px}.profile-item small{color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.profile-card{max-width:780px;margin:auto}.profile-card form{display:grid;gap:9px}.profile-card label{margin-top:12px;color:var(--ink)}.profile-upload{display:flex;align-items:center;gap:14px;width:100%;border:1px solid var(--border-input);padding:12px;border-radius:var(--radius-md);background:var(--paper);color:var(--ink);cursor:pointer;text-align:left}.profile-upload img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}.profile-upload span:nth-child(2){margin-left:auto}.form-actions{justify-content:flex-end;margin-top:16px}.status-message{color:var(--success-ink);margin:0}.mobile-gnb{display:none}
@media(max-width:760px){html{scrollbar-gutter:auto}.app-header{height:72px;padding:0 18px}.brand{width:78px}.top-nav{display:none}.profile-menu{font-size:var(--text-md);gap:8px}.profile-avatar{flex-basis:18px;width:18px;height:18px}.app-shell{padding:28px 18px 104px}.page-heading{display:block}.page-heading>.button,.page-heading>.button-row{margin-top:18px}.page-heading h1,.profile-card h1{font-size:var(--title-xl)}.muted{font-size:var(--text-lg)}.stat-grid{grid-template-columns:1fr}.summary-line{display:block;line-height:1.8}.chat-layout{grid-template-columns:1fr}.chat-people{order:2}.chat-panel{order:1}.mobile-gnb{position:fixed;bottom:0;left:0;right:0;height:70px;background:var(--ink);color:var(--paper);display:flex;z-index:10;box-shadow:0 -8px 20px #2e211d1a}.mobile-gnb a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:inherit;text-decoration:none;font-size:var(--text-md);line-height:1}.mobile-gnb a.active{background:var(--ink)}.mobile-gnb .gnb-svg{width:22px;height:22px}.student-row{align-items:flex-start}.student-row>.button{margin-top:4px}.modal{padding:20px}.modal-head h2{font-size:var(--title-lg)}.profile-upload img{width:64px;height:64px}}
html{scrollbar-gutter:stable both-edges!important}body.modal-open{overflow:hidden;overscroll-behavior:none}.modal-backdrop{animation:none!important;transition:none!important;will-change:auto;contain:paint;isolation:isolate;overscroll-behavior:contain;background-color:rgba(46,33,29,.72)}

/* 디자인 토큰(값은 기존 화면 값과 같다): 반경·글자 크기·조작 요소 높이. 새 규칙은 직접 숫자 대신 이 변수를 쓴다 */
:root{--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-button:13px;--radius-pill:999px;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-base:15px;--text-lg:16px;--text-xl:18px;--text-2xl:20px;--title-md:24px;--title-lg:28px;--title-xl:32px;--title-2xl:40px;--control-sm:36px;--control-md:42px;--control-lg:44px}

/* 색 토큰(값은 기존 화면 값과 같다): 화면 CSS에 반복되던 색을 역할 이름으로 모았다. 새 규칙은 hex를 직접 쓰지 않는다 */
:root{--attention-wash:#F7DFD3;--border-faint:#E8DBD1;--border-input:#D8C8BF;--border-soft:#EBDCD3;--border-strong:#CDBBB1;--border-tint:#F1E5DC;--brown-ink:#8B5545;--coral-ink:#A84732;--coral-line:#F5CCC2;--danger:#B9574C;--danger-strong:#B91C1C;--danger-wash:#FEE2E2;--lesson-next-bg:#F3E7E0;--muted-2:#85726B;--paper:#FFF7F0;--pay-paid-ink:#2E4F77;--pay-paid-line:#3E6494;--pay-settled-bg:#E8EEF5;--pay-settled-ink:#2B4263;--pay-settled-line:#CBD9EB;--rose-ink:#A65D52;--row-tint:#F4E9E3;--row-tint-soft:#F7F0EC;--success-bg:#DCEFE2;--success-ink:#3F6F55;--surface-input:#FFFDFB;--surface-warm:#FDF9F6;--white:#FFFFFF}

/* 브랜드·보조 색 변수: 소셜 로그인 버튼, 게이지, 포커스 링, 흐린 글자, 강한 글자, 위험 테두리 */
:root{--faint-ink:#B9B2AE;--ink-strong:#3D2820;--danger-line:#E57373;--brand-kakao-bg:#FEE500;--brand-kakao-ink:#191919;--brand-google-blue:#4285F4;--brand-google-ink:#3C4043;--gauge-sage:#9AB3A2;--focus-ring:#A87868}
