/* Quiet controls around the writing. Paint values live in design-tokens.css. */
body { margin:0; background:var(--gs-canvas); }
#goyu-studio { --gs-bg:var(--gs-canvas); --gs-paper:var(--gs-surface); --gs-ink:var(--gs-text); --gs-muted:var(--gs-text-muted); --gs-line:var(--gs-border); --gs-accent:var(--gs-focus); --gs-on:var(--gs-white); --gs-soft:var(--gs-surface-soft); font-size:14px; line-height:1.7; }
#goyu-studio .gs-shell { background:var(--gs-canvas); }
#goyu-studio .gs-appbar { min-height:72px; padding:0 max(24px,calc((100vw - 1120px)/2)); gap:40px; background:var(--gs-surface); border-bottom:1px solid var(--gs-border); }
#goyu-studio .gs-wordmark { background:var(--gs-transparent); color:var(--gs-ink); min-width:48px; min-height:44px; }
#goyu-studio .gs-main-nav { align-self:stretch; gap:28px; }
#goyu-studio .gs-main-nav button { padding:0 2px; min-width:44px; min-height:44px; border:0; border-bottom:2px solid var(--gs-transparent); border-radius:0; font-size:14px; background:var(--gs-transparent); }
#goyu-studio .gs-main-nav button[aria-current="page"] { color:var(--gs-ink); border-bottom-color:var(--gs-ink); font-weight:500; }
#goyu-studio .gs-app-tools { display:flex; align-items:center; gap:16px; margin-left:auto; }
#goyu-studio .gs-app-tools button { min-height:44px; padding:8px 2px; border:0; border-radius:0; background:var(--gs-transparent); font-size:13px; color:var(--gs-muted); }
#goyu-studio .gs-app-tools button:hover { color:var(--gs-ink); }
#goyu-studio .gs-appbody { grid-template-columns:minmax(0,1fr); }
#goyu-studio .gs-main { max-width:960px; margin-inline:auto; }
#goyu-studio[data-page="editor"] .gs-main { max-width:836px; }
#goyu-studio .gs-content { padding:44px 32px 40px; }
#goyu-studio .gs-footer { background:var(--gs-transparent); border:0; padding:16px 32px 24px; font-size:12px; }
#goyu-studio .gs-footer-actions { gap:16px; }
#goyu-studio button { min-height:44px; }
#goyu-studio .gs-primary { background:var(--gs-brand); color:var(--gs-white); border:1px solid var(--gs-brand); border-radius:4px; padding:10px 16px; font-size:14px; font-weight:500; }
#goyu-studio .gs-primary:hover { background:var(--gs-brand-hover); border-color:var(--gs-brand-hover); }
#goyu-studio .gs-secondary { background:var(--gs-surface); border:1px solid var(--gs-border-strong); border-radius:4px; padding:9px 14px; font-size:13px; text-decoration:none; }
#goyu-studio .gs-secondary:hover { background:var(--gs-surface-soft); text-decoration:none; }
#goyu-studio .gs-link { min-width:44px; padding:8px 2px; font-size:13px; color:var(--gs-muted); background:var(--gs-transparent); text-decoration:underline; text-underline-offset:4px; }
#goyu-studio button:disabled { opacity:.5; }
#goyu-studio button:focus-visible,#goyu-studio input:focus-visible,#goyu-studio textarea:focus-visible,#goyu-studio select:focus-visible,#goyu-studio summary:focus-visible { outline:2px solid var(--gs-focus); outline-offset:3px; }
#goyu-studio textarea,#goyu-studio input,#goyu-studio select { background:var(--gs-surface); border-color:var(--gs-border-strong); border-radius:3px; }
#goyu-studio input,#goyu-studio select { min-height:44px; }
#goyu-studio label { font-size:13px; }
#goyu-studio .gs-caption { color:var(--gs-muted); font-size:12px; }
#goyu-studio h1 { font-family:var(--gs-font); font-size:26px; font-weight:500; letter-spacing:-.03em; }
#goyu-studio h2 { font-size:19px; font-weight:500; }
#goyu-studio h3 { font-size:15px; font-weight:500; }
#goyu-studio summary { min-height:44px; cursor:pointer; padding-block:10px; font-size:13px; }
#goyu-studio .gs-eyebrow { display:block; font-size:12px; font-weight:400; color:var(--gs-muted); margin-bottom:6px; }
#goyu-studio .gs-learning-workspace { width:100%; max-width:756px; margin-inline:auto; }
#goyu-studio .gs-practice-heading,#goyu-studio .gs-library-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
#goyu-studio .gs-practice-heading > div,#goyu-studio .gs-library-heading > div { min-width:0; flex:1; }
#goyu-studio .gs-practice-heading > button,#goyu-studio .gs-library-heading > button { flex-shrink:0; white-space:nowrap; }
#goyu-studio .gs-practice-context { margin:0 0 8px; }
#goyu-studio .gs-practice-context p { font-size:14px; }
#goyu-studio .gs-practice-context .gs-link { display:inline-flex; margin-left:12px; }
#goyu-studio .gs-learning-options { margin:0 0 20px; padding:0; border:0; background:var(--gs-transparent); }
#goyu-studio .gs-learning-options > summary { color:var(--gs-muted); }
#goyu-studio .gs-learning-options[open] { padding-bottom:16px; }
#goyu-studio .gs-learning-options label { margin-top:8px; }
#goyu-studio .gs-learning-options .gs-field { margin:12px 0; }
#goyu-studio .gs-learning-voice input { max-width:100%; }
#goyu-studio .gs-sheet { background:var(--gs-surface); padding:0; border:0; border-radius:0; box-shadow:none; }
#goyu-studio .gs-cue { font-size:22px; line-height:1.7; margin-bottom:12px; }
#goyu-studio .gs-cue-next { padding:8px 0; min-height:44px; min-width:44px; margin:0 0 0 12px; font-size:13px; }
#goyu-studio .gs-writing-help { color:var(--gs-muted); font-size:13px; margin-bottom:20px; }
#goyu-studio .gs-learning-workspace .gs-body-input { min-height:220px; padding:16px; font-family:var(--gs-reading-font); font-size:var(--gs-body-size); line-height:var(--gs-body-leading); border:1px solid var(--gs-border-strong); border-radius:3px; background:var(--gs-surface); }
#goyu-studio .gs-learning-workspace .gs-body-input:focus { border-color:var(--gs-ink); box-shadow:none; }
#goyu-studio .gs-sheet-foot { margin-top:12px; }
#goyu-studio .gs-title-input { border:0; padding:6px 0; background:var(--gs-transparent); font-size:14px; }
#goyu-studio .gs-learning-actions { gap:12px; margin:20px 0 28px; }
#goyu-studio .gs-learning-actions [data-learning-action-status] { flex-basis:100%; }
#goyu-studio .gs-chat { margin:28px 0; padding:28px 0 0; border:0; border-top:1px solid var(--gs-border); border-radius:0; background:var(--gs-transparent); }
#goyu-studio .gs-chat h2 { margin-bottom:20px; font-size:19px; }
#goyu-studio .gs-chat-turn { position:relative; padding:0; margin:0; border:0; scroll-margin-top:24px; }
#goyu-studio .gs-chat-turn > .gs-chat-person { display:none; }
#goyu-studio .gs-coach-source { margin:12px 0; }
#goyu-studio .gs-coach-task { padding:0 0 0 16px; border-left:2px solid var(--gs-ink); background:var(--gs-transparent); border-radius:0; }
#goyu-studio .gs-coach-task p { font-size:16px; line-height:1.85; }
#goyu-studio .gs-coach-task > button { margin-top:12px; }
#goyu-studio .gs-chat-summary { margin:20px 0 12px; font-size:14px; }
#goyu-studio .gs-chat-thread .gs-coach-evidence,#goyu-studio .gs-coach-history { border-top:1px solid var(--gs-border); margin-top:18px; }
#goyu-studio .gs-coach-history .gs-chat-turn { border-top:1px solid var(--gs-border); padding-top:16px; margin:12px 0; }
#goyu-studio .gs-learning-plan { margin:24px 0; }
#goyu-studio .gs-learning-rule { padding:0 0 0 16px; border-radius:0; background:var(--gs-transparent); }
#goyu-studio .gs-learning-rule p { font-size:14px; }
#goyu-studio .gs-learning-pair { gap:24px; margin:16px 0; }
#goyu-studio .gs-learning-pair blockquote { margin:8px 0; font-size:16px; }
#goyu-studio .gs-learning-diff,#goyu-studio .gs-learning-archive { margin:16px 0; border-top:1px solid var(--gs-border); padding-top:4px; }
#goyu-studio .gs-sentence-shelf { border:0; border-block:1px solid var(--gs-border); border-radius:0; background:var(--gs-transparent); padding:0; margin:4px 0 24px; }
#goyu-studio .gs-library-tools { display:grid; grid-template-columns:2fr 1.3fr 1fr; gap:16px; margin-bottom:24px; }
#goyu-studio .gs-library-tools label { display:block; margin-bottom:6px; }
#goyu-studio .gs-library-grid { display:block; margin:12px 0 24px; }
#goyu-studio .gs-library-manuscript { background:var(--gs-transparent); border:0; border-top:1px solid var(--gs-border); border-radius:0; }
#goyu-studio .gs-library-manuscript > .gs-entry { margin:0; padding:22px 0 8px; border:0; background:var(--gs-transparent); }
#goyu-studio .gs-entry:hover strong { text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; }
#goyu-studio .gs-entry strong { font-family:var(--gs-reading-font); font-size:20px; font-weight:400; line-height:1.7; margin:8px 0; }
#goyu-studio .gs-entry p { font-size:14px; line-height:1.8; }
#goyu-studio .gs-entry-meta { display:flex; justify-content:space-between; gap:12px; color:var(--gs-muted); font-size:12px; }
#goyu-studio .gs-skill-tag { display:inline-block; margin-top:12px; font-size:12px; color:var(--gs-muted); background:var(--gs-transparent); border-radius:0; padding:0; }
#goyu-studio .gs-publish-fold { padding:0 0 12px; border:0; }
#goyu-studio .gs-publish-fold summary { color:var(--gs-muted); min-height:44px; font-size:12px; }
#goyu-studio .gs-library-pages { display:flex; align-items:center; justify-content:center; gap:20px; }
#goyu-studio .gs-library-empty { padding:30px 0; text-align:left; }
#goyu-studio .gs-library-empty p { margin:12px 0; }
#goyu-studio .gs-telemetry-rating button { min-width:44px; min-height:44px; padding:8px 12px; }
#goyu-studio .gs-settings { background:var(--gs-surface); border-color:var(--gs-border); border-radius:6px; padding:24px; }
#goyu-studio dialog::backdrop { background:var(--gs-backdrop); }
#goyu-studio .gs-auth-layout { gap:80px; }
#goyu-studio .gs-account-form { background:var(--gs-transparent); padding:0; border:0; border-radius:0; box-shadow:none; }
#goyu-studio .gs-auth-intro h1 { color:var(--gs-ink); }
#goyu-studio .gs-auth-lines span { color:var(--gs-muted); }
#goyu-studio.gs-auth-screen .gs-app-tools { display:none; }
#goyu-studio .gs-account-dialog { background:var(--gs-surface); border-color:var(--gs-border); border-radius:6px; }
@media(min-width:900px) { #goyu-studio[data-page="retro"] .gs-content { padding-top:44px; } }
@media(max-width:620px) {
  #goyu-studio .gs-appbar { display:grid; grid-template-columns:1fr auto; padding:12px 20px 0; gap:6px 16px; min-height:110px; }
  #goyu-studio .gs-wordmark { justify-self:start; font-size:24px; }
  #goyu-studio .gs-app-tools { justify-self:end; gap:16px; }
  #goyu-studio .gs-app-tools button { padding:8px 0; font-size:13px; }
  #goyu-studio .gs-main-nav { grid-column:1/-1; width:100%; display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:16px; }
  #goyu-studio .gs-main-nav button { width:100%; min-height:44px; padding:8px 0; font-size:13px; }
  #goyu-studio .gs-content { padding:24px 20px; }
  #goyu-studio h1 { font-size:24px; }
  #goyu-studio .gs-practice-heading { margin-bottom:16px; }
  #goyu-studio .gs-practice-context .gs-link { display:inline-flex; margin:4px 0 0; padding:4px 0; }
  #goyu-studio .gs-learning-options { margin-bottom:20px; }
  #goyu-studio .gs-cue { font-size:20px; }
  #goyu-studio .gs-writing-help { font-size:13px; }
  #goyu-studio .gs-learning-workspace .gs-body-input { min-height:200px; padding:14px; }
  #goyu-studio .gs-learning-actions { gap:10px; }
  #goyu-studio .gs-library-tools { grid-template-columns:1fr 1fr; gap:12px; }
  #goyu-studio .gs-library-tools > div:first-child { grid-column:1/-1; }
  #goyu-studio .gs-entry strong { font-size:18px; }
  #goyu-studio .gs-footer { padding:16px 20px; }
  #goyu-studio .gs-auth-layout { gap:30px; }
  #goyu-studio .gs-settings { padding:20px 16px; }
}
@media(prefers-reduced-motion:reduce) { #goyu-studio * { scroll-behavior:auto; animation:none; transition:none; } }

/* Past manuscripts open for reading; controls enter editing for the same draft. */
#goyu-studio .gs-manuscript-heading { margin-bottom:28px; }
#goyu-studio .gs-manuscript-heading > .gs-link { display:block; margin-bottom:16px; text-decoration:none; padding:0; }
#goyu-studio .gs-manuscript-heading h1 { font-family:var(--gs-reading-font); font-size:26px; line-height:1.65; font-weight:400; margin-bottom:8px; }
#goyu-studio .gs-manuscript-heading h1:focus { outline:none; }
#goyu-studio .gs-manuscript-body { margin:0 0 24px; }
#goyu-studio .gs-manuscript-body .gs-prose { font-family:var(--gs-reading-font); font-size:var(--gs-body-size); line-height:var(--gs-body-leading); white-space:pre-wrap; }
#goyu-studio .gs-manuscript-title-input { width:100%; font-size:22px; padding:8px 0; margin-bottom:8px; border:0; border-bottom:1px solid var(--gs-border); border-radius:0; }
#goyu-studio .gs-manuscript .gs-body-input { min-height:144px; }
#goyu-studio #gs-manuscript-edit-help { margin:10px 0 6px; }
#goyu-studio .gs-manuscript .gs-learning-actions { margin-top:20px; }
#goyu-studio .gs-manuscript-details { border-top:1px solid var(--gs-border); padding-top:4px; margin-top:24px; }
#goyu-studio .gs-manuscript-question { font-size:15px; margin:8px 0 20px; }
#goyu-studio .gs-manuscript[data-manuscript-mode="read"] .gs-chat { margin-top:24px; }
@media(max-width:620px) { #goyu-studio .gs-manuscript-heading h1 { font-size:24px; } }

/* 기본기와 연습을 연결하되 원고보다 큰 장식은 두지 않는다. */
#goyu-studio .gs-practice-lesson { margin:0 0 20px; }
#goyu-studio .gs-practice-lesson h2 { font-family:var(--gs-reading-font); font-size:23px; line-height:1.6; font-weight:400; margin:4px 0 8px; }
#goyu-studio .gs-practice-lesson > p { margin-bottom:8px; }
#goyu-studio .gs-lesson-example { margin-top:12px; }
#goyu-studio .gs-lesson-example blockquote { font-family:var(--gs-reading-font); font-size:17px; line-height:1.8; white-space:pre-wrap; border-left:2px solid var(--gs-border); padding-left:16px; margin:12px 0; }
#goyu-studio .gs-lesson-example .gs-actions { margin-top:12px; }
#goyu-studio .gs-lesson-example .gs-prose { white-space:pre-wrap; }
#goyu-studio .gs-practice-input-label { font-family:inherit; font-size:15px; line-height:1.6; margin-bottom:8px; }

/* React controls share the existing appbar layout; the manuscript remains native. */
#goyu-studio .gs-appbar-controls { display:contents; }
#goyu-studio .gs-practice-help { margin:8px 0 0; }
#goyu-studio .gs-practice-help > button { padding-inline:0; }
#goyu-studio .gs-practice-example { margin:8px 0 20px; }
#goyu-studio .gs-practice-example blockquote { font-family:var(--gs-reading-font); font-size:18px; line-height:1.9; margin:12px 0; padding-left:16px; border-left:2px solid var(--gs-border-strong); }
#goyu-studio .gs-practice-example p { margin:12px 0; }
#goyu-studio .gs-criterion-control { margin:16px 0; }
#goyu-studio .gs-criterion-control > summary { color:var(--gs-muted); }
#goyu-studio .gs-coach-task blockquote { margin:12px 0; font-family:var(--gs-reading-font); line-height:1.9; }
