:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17201d;background:#f4f6f3;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17201d;--muted: #66716c;--line: #dce2de;--surface: #ffffff;--soft: #edf2ee;--green: #176b50;--green-dark: #0e503b;--yellow: #e5b94c;--red: #b34a43;--blue: #416b91}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f4f6f3}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:#17201d;color:#f8fbf9;display:flex;flex-direction:column;border-right:1px solid #26352f}.brand-mark{display:flex;align-items:center;gap:11px;padding:0 8px 26px}.brand-mark>span:last-child{display:grid;gap:2px}.brand-mark strong{font-size:17px}.brand-mark small{color:#aebbb5;font-size:12px}.brand-symbol{width:34px;height:34px;display:grid;place-items:center;background:#e5b94c;color:#17201d;font-family:Georgia,serif;font-weight:800;border-radius:6px;flex:0 0 auto}.brand-symbol.large{width:44px;height:44px;font-size:23px}.primary-nav{display:grid;gap:5px}.nav-item{min-height:42px;padding:0 11px;border-radius:6px;display:flex;align-items:center;gap:10px;color:#bfc9c4;border:0;background:transparent;font-size:14px;text-align:left;width:100%}.nav-item:hover,.nav-item.active{color:#fff;background:#26352f}.nav-item.active{box-shadow:inset 3px 0 #5cc59c}.button-reset{appearance:none}.sidebar-foot{margin-top:auto;display:grid;gap:6px}.user-chip{display:flex;align-items:center;gap:10px;margin-top:14px;padding:14px 8px 0;border-top:1px solid #33433d}.user-chip>span:last-child{display:grid;gap:2px;min-width:0}.user-chip small{color:#9eaba5;font-size:11px}.avatar{width:32px;height:32px;border-radius:50%;background:#dbe8e1;color:#174c3c;display:grid;place-items:center;font-weight:700;flex:0 0 auto}.avatar.small{width:30px;height:30px}.content-shell{min-width:0}.content-shell main{min-height:100vh}.mobile-header,.mobile-nav{display:none}.page{width:min(1180px,calc(100% - 56px));margin:0 auto;padding:44px 0 80px}.narrow-page{max-width:820px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-header h1{margin:4px 0 6px;font-family:Georgia,Times New Roman,serif;font-size:34px;font-weight:700;line-height:1.15}.page-header p,.lead{color:var(--muted);line-height:1.65;margin-bottom:0}.eyebrow{color:var(--green);font-size:12px;font-weight:800;text-transform:uppercase}.primary-button,.secondary-button,.icon-button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:6px;font-weight:700}.primary-button{padding:0 18px;color:#fff;background:var(--green)}.primary-button:hover{background:var(--green-dark)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.48}.primary-button.full{width:100%}.secondary-button{padding:0 15px;color:var(--ink);background:var(--surface);border:1px solid var(--line)}.secondary-button:hover{border-color:#9eb2a8;background:#f9fbfa}.icon-button{width:42px;padding:0;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.focus-band{min-height:230px;padding:30px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:32px;color:#fff;background:#1d5948;border-left:7px solid var(--yellow)}.focus-band h2{margin:12px 0 8px;font:700 28px/1.2 Georgia,serif}.focus-band p{color:#d8e7e1;max-width:640px;line-height:1.6}.focus-band .primary-button{margin-top:12px;background:#f3c85c;color:#17201d}.focus-label{display:inline-flex;align-items:center;gap:7px;color:#cfe5dc;font-size:13px;font-weight:700}.focus-progress{width:138px;height:138px;border:1px solid #568474;display:grid;place-content:center;text-align:center}.focus-progress strong{font:700 42px/1 Georgia,serif}.focus-progress strong span{font-size:18px;color:#b7d4c9}.focus-progress small{margin-top:8px;color:#cfe5dc}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-top:0;background:var(--surface)}.metric{min-width:0;padding:20px;border-right:1px solid var(--line);display:grid;gap:7px}.metric:last-child{border-right:0}.metric>span{color:var(--muted);font-size:13px}.metric>strong{font-size:25px;font-family:Georgia,serif}.metric strong small{color:var(--muted);font:500 12px/1 sans-serif}.metric>small{color:var(--muted)}.mini-progress{height:4px;background:#e6ebe8;overflow:hidden}.mini-progress i{display:block;height:100%;background:var(--green)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:38px 0 14px}.section-heading h2{margin:3px 0 0;font-size:21px}.workspace-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.workspace-tile{min-height:112px;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:14px;padding:20px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.workspace-tile:hover{border-color:#93a79e;transform:translateY(-1px)}.workspace-tile h3{margin:0 0 5px;font-size:17px}.workspace-tile p{margin:0;color:var(--muted);font-size:13px}.english-tile>svg{color:var(--green)}.korean-tile>svg{color:var(--blue)}.review-tile>svg{color:var(--red)}.math-tile>svg{color:#9a6b12}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#58a57f}.status-dot.waiting{background:var(--yellow)}.status-line{margin-top:24px;display:flex;align-items:center;gap:8px;color:var(--muted)}.activity-list{border-top:1px solid var(--line)}.activity-row{min-height:65px;display:grid;grid-template-columns:58px 1fr auto;gap:14px;align-items:center;border-bottom:1px solid var(--line)}.activity-type{color:var(--green);font-weight:700;font-size:12px}.activity-row div{display:grid;gap:4px;min-width:0}.activity-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-row small,.muted-line{color:var(--muted)}.activity-score{font-weight:700}.segmented-control{display:inline-flex;padding:4px;gap:3px;background:#e5eae7;border-radius:7px;margin-bottom:22px}.segmented-control button{min-height:36px;padding:0 14px;border:0;border-radius:5px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;gap:7px}.segmented-control button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px #17201d1f}.studio-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;align-items:start}.editor-column,.reference-column{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:22px}.reference-column{position:sticky;top:22px;max-height:calc(100vh - 44px);overflow:auto}.editor-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}.field{display:grid;gap:7px;margin-bottom:17px}.field.grow{flex:1;margin:0}.field.compact{width:210px;margin:0}.field label{font-size:13px;font-weight:700;color:#48544f}.field input,.field textarea,.field select,.code-input-wrap input{width:100%;border:1px solid #cfd8d3;border-radius:6px;background:#fff;color:var(--ink);outline:none}.field input,.field select{height:42px;padding:0 12px}.field textarea{padding:12px;line-height:1.65;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus,.code-input-wrap:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #176b501f}.prompt-input{min-height:88px}.essay-editor{min-height:340px;font-family:Georgia,Times New Roman,serif;font-size:17px}.translation-editor{min-height:170px;font-size:16px}.word-count{color:var(--red);font-size:13px;font-weight:700;white-space:nowrap}.word-count.ready{color:var(--green)}.plan-row{display:flex;align-items:end;gap:10px;margin-bottom:17px}.plan-board{border-left:3px solid var(--green);padding:4px 0 4px 18px;margin:20px 0}.plan-summary{display:grid;gap:5px;margin-bottom:16px}.plan-summary>span{color:var(--green);font-size:12px;font-weight:700}.plan-summary small,.plan-step small{color:var(--muted)}.plan-step{display:grid;grid-template-columns:28px 1fr;gap:10px;margin:12px 0}.plan-step b{width:25px;height:25px;display:grid;place-items:center;background:var(--soft);color:var(--green);border-radius:50%}.plan-step div{display:grid;gap:3px}.plan-step p{margin:0;color:#3e4944}.editor-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.editor-actions>span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.reference-panel h2,.feedback-panel h2{margin:5px 0 12px;font-size:21px}.reference-item{padding:15px 0;border-bottom:1px solid var(--line)}.reference-item p{color:var(--muted);line-height:1.5;margin:6px 0}.reference-item small{display:block;margin-top:5px}.feedback-head{display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.feedback-head p{color:var(--muted);line-height:1.55;margin:0}.score-ring{--score: 0;width:86px;height:86px;border-radius:50%;border:8px solid #dfe6e2;outline:4px solid rgba(23,107,80,.18);display:grid;place-content:center;text-align:center;color:var(--green)}.score-ring strong{font:700 26px/1 Georgia,serif}.score-ring span{font-size:11px;color:var(--muted)}.rubric-list{margin-top:12px}.rubric-row{padding:13px 0;border-bottom:1px solid var(--line)}.rubric-row>div{display:flex;justify-content:space-between;gap:12px}.rubric-row p{margin:6px 0 3px;line-height:1.45}.rubric-row small{color:var(--muted)}.feedback-section{margin-top:22px}.feedback-section h3{font-size:15px}.essay-copy{white-space:pre-wrap;font-family:Georgia,serif;line-height:1.7}.issue-row{display:grid;gap:5px;padding:12px;background:#faf7f5;border-left:3px solid var(--red);margin:8px 0}.issue-row del{color:var(--red)}.issue-row ins{color:var(--green);text-decoration:none}.practice-picker{display:flex;gap:7px;margin-bottom:16px}.practice-picker button{border:1px solid var(--line);background:#fff;min-height:36px;padding:0 12px;border-radius:5px}.practice-picker button.active{color:#fff;background:var(--green);border-color:var(--green)}.source-passage{padding:18px;background:#f2f6f3;border-left:4px solid var(--green);margin-bottom:20px}.source-passage p{margin:8px 0 14px;font:18px/1.65 Georgia,serif}.tag-row,.source-passage>div{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-block;border:1px solid #cbd6d0;color:#45534d;background:#fff;border-radius:4px;padding:4px 7px;font-size:11px}.meaning-status{font-size:11px;font-weight:700}.meaning-status.correct{color:var(--green)}.meaning-status.partial{color:#9a6b12}.meaning-status.missing{color:var(--red)}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.template-card{border:1px solid var(--line);border-radius:7px;padding:20px;background:#fff}.template-card h2{margin:9px 0 7px;font-size:20px}.template-card>p{color:var(--muted);line-height:1.55}.template-head{display:flex;justify-content:space-between;color:var(--green);font-size:12px;font-weight:800}.template-head small{color:var(--muted)}.template-structure{margin:16px 0}.template-structure>div{display:grid;grid-template-columns:24px 1fr;gap:9px;margin:10px 0}.template-structure b{color:var(--green)}.template-structure span{display:grid;gap:3px}.template-structure small{color:var(--muted);overflow-wrap:anywhere}.template-card .secondary-button{margin-top:16px}.review-stage{max-width:720px;margin:20px auto}.review-card{min-height:330px;padding:30px;background:#fff;border:1px solid var(--line);border-top:5px solid var(--green);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.review-card h2{font:700 25px/1.55 Georgia,serif}.review-meta{width:100%;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.review-answer{width:100%;padding-top:20px;border-top:1px solid var(--line)}.review-answer span{color:var(--green);font-size:12px;font-weight:800}.review-answer p{margin:8px 0 0;line-height:1.65}.rating-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.rating-row button{min-height:48px;border:1px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;gap:7px}.rating-row button:hover{border-color:var(--green);color:var(--green)}.count-badge,.status-pill{padding:6px 10px;border-radius:999px;background:#e1eee8;color:var(--green);font-size:12px;font-weight:800}.progress-summary,.owner-summary{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#fff}.progress-summary>div,.owner-summary>div{min-height:105px;padding:18px;display:grid;align-content:center;gap:6px;border-right:1px solid var(--line)}.progress-summary>div:last-child,.owner-summary>div:last-child{border-right:0}.progress-summary span,.owner-summary span{color:var(--muted);font-size:12px}.progress-summary strong,.owner-summary strong{font:700 26px/1 Georgia,serif}.score-history{border-top:1px solid var(--line)}.score-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(100px,2fr) 55px;align-items:center;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}.score-row>div:first-child{display:grid;gap:4px}.score-row small{color:var(--muted)}.score-track{height:7px;background:#dfe6e2}.score-track i{display:block;height:100%;background:var(--green)}.profile-form{margin-top:26px;padding:0 20px 18px;border:1px solid var(--line);background:#fff}.profile-form .section-heading{margin-top:20px}.profile-fields{display:grid;grid-template-columns:2fr .7fr 1fr 1fr;gap:12px}.profile-fields .field{margin-bottom:0}.owner-summary{grid-template-columns:repeat(3,1fr);margin-bottom:18px}.owner-summary>div{grid-template-columns:auto 1fr;column-gap:10px}.owner-summary svg{color:var(--green);grid-row:1 / 3}.owner-layout{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(360px,1.2fr);gap:14px}.learner-list,.owner-detail{border:1px solid var(--line);background:#fff;min-height:360px}.learner-row{width:100%;min-height:82px;padding:14px;border:0;border-bottom:1px solid var(--line);background:#fff;display:grid;grid-template-columns:36px 1fr auto auto;align-items:center;gap:12px;text-align:left}.learner-row.active{background:#edf5f1;box-shadow:inset 3px 0 var(--green)}.learner-row>span:nth-child(2){display:grid;gap:4px;min-width:0}.learner-row small{color:var(--muted)}.learner-metrics{display:grid;text-align:center}.owner-detail{padding:22px}.owner-detail-head{display:flex;justify-content:space-between;align-items:start}.owner-detail-head h2{margin-top:4px}.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin:10px 0 24px}.detail-metrics>div{display:grid;gap:4px;padding:13px;border-right:1px solid var(--line)}.detail-metrics>div:last-child{border-right:0}.detail-metrics span{color:var(--muted);font-size:11px}.detail-metrics strong{font-size:20px}.session-list>div{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.session-list span{display:grid;gap:3px}.session-list button{border:0;background:transparent;color:var(--red)}.owner-attempts{margin-bottom:24px;border-top:1px solid var(--line)}.owner-attempts>div{min-height:58px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.owner-attempts span{display:flex;align-items:center;gap:8px;min-width:0}.owner-attempts b{color:var(--green);font-size:11px}.owner-attempts strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-attempts small{color:var(--muted);white-space:nowrap}.owner-placeholder,.empty-state{min-height:280px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted);padding:30px}.owner-placeholder strong,.empty-state strong{color:var(--ink);margin-top:12px}.empty-state{border:1px dashed #b9c5bf;background:#fff9}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(420px,.95fr);background:#fff}.login-visual{min-height:100vh;position:relative;overflow:hidden;background:#1d5948}.login-visual img{width:100%;height:100%;object-fit:cover;display:block}.login-visual:after{content:"";position:absolute;inset:0;background:#0f282047}.login-brand{position:absolute;z-index:1;left:34px;top:30px;display:flex;align-items:center;gap:12px;color:#fff;font:700 22px/1 Georgia,serif}.login-panel{width:min(430px,calc(100% - 56px));margin:auto}.login-copy h1{font:700 38px/1.15 Georgia,serif;margin:9px 0}.login-copy p{color:var(--muted);line-height:1.65}.login-steps{margin:28px 0;border-top:1px solid var(--line)}.login-steps div{display:flex;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid var(--line);color:#435049;font-size:14px}.login-steps svg{color:var(--green)}.login-form label{display:block;margin-bottom:7px;font-weight:700;font-size:13px}.code-input-wrap{height:58px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #cfd8d3;border-radius:6px}.code-input-wrap input{border:0;height:54px;padding:0;font-size:25px;font-weight:700;letter-spacing:8px;box-shadow:none}.login-form .primary-button{margin-top:12px}.form-error{color:var(--red);font-size:13px;margin:9px 0}.demo-actions{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.demo-actions span{width:100%;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800}.demo-actions button{border:1px solid var(--line);background:#fff;border-radius:5px;padding:8px 11px}.center-screen{min-height:100vh;display:grid;place-content:center}.loading-block,.error-block{display:flex;align-items:center;justify-content:center;gap:9px;min-height:120px;color:var(--muted)}.error-block{color:var(--red)}.error-block button{border:0;background:transparent;color:var(--green);font-weight:700}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:920px){.app-shell{display:block}.sidebar{display:none}.mobile-header{position:sticky;top:0;z-index:10;height:58px;padding:0 16px;background:#f7f8f5f5;border-bottom:1px solid var(--line);display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:10px}.mobile-header strong{text-align:center;font-size:14px}.mobile-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom));padding:6px 10px env(safe-area-inset-bottom);display:flex;justify-content:space-around;background:#fffffff7;border-top:1px solid var(--line)}.mobile-nav-item{min-width:55px;display:grid;justify-items:center;align-content:center;gap:3px;color:var(--muted);font-size:10px}.mobile-nav-item.active{color:var(--green)}.page{width:min(100% - 28px,760px);padding:24px 0 92px}.page-header h1{font-size:28px}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.workspace-grid,.template-grid,.studio-layout,.owner-layout{grid-template-columns:1fr}.reference-column{position:static;max-height:none}.owner-summary{grid-template-columns:repeat(3,1fr)}.login-screen{grid-template-columns:1fr}.login-visual{min-height:210px;height:32vh}.login-panel{padding:34px 0 48px}}@media(max-width:560px){.focus-band{min-height:0;padding:22px;grid-template-columns:1fr}.focus-band h2{font-size:23px}.focus-progress{width:100%;height:70px;grid-auto-flow:column;place-content:center;align-items:center;gap:10px}.metric{padding:15px}.studio-layout>*{padding:16px}.plan-row,.editor-actions{align-items:stretch;flex-direction:column}.field.compact{width:175px}.essay-editor{min-height:300px}.template-grid{display:block}.template-card{margin-bottom:12px}.rating-row,.progress-summary{grid-template-columns:repeat(2,1fr)}.profile-fields{grid-template-columns:1fr 1fr}.progress-summary>div:nth-child(2){border-right:0}.progress-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.owner-summary{grid-template-columns:1fr}.owner-summary>div{border-right:0;border-bottom:1px solid var(--line)}.owner-summary>div:last-child{border-bottom:0}.learner-row{grid-template-columns:32px 1fr auto}.learner-metrics:last-child{display:none}.score-row{grid-template-columns:1fr 48px}.score-track{grid-column:1 / 3;grid-row:2}.feedback-head{grid-template-columns:74px 1fr}.score-ring{width:68px;height:68px;border-width:6px}.profile-fields{grid-template-columns:1fr}}
