/* Route U+274C to a color glyph; reading fonts may contain a monochrome cross. */
@font-face{font-family:'Study Color Cross';src:local('Apple Color Emoji'),local('Segoe UI Emoji'),local('Noto Color Emoji');unicode-range:U+274C;font-weight:100 900;}
@font-face {
    font-family: "IBM Plex Mono";
    src: url("./fonts/IBMPlexMono-Medium.ttf") format("truetype");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
  }

  @font-face {
    font-family: "IBM Plex Mono";
    src: url("./fonts/IBMPlexMono-SemiBold.ttf") format("truetype");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
  }

  @font-face {
    font-family: "IBM Plex Sans KR";
    src: url("./fonts/IBMPlexSansKR-Regular.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
  }

  @font-face {
    font-family: "IBM Plex Sans KR";
    src: url("./fonts/IBMPlexSansKR-Medium.ttf") format("truetype");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
  }

  @font-face {
    font-family: "IBM Plex Sans KR";
    src: url("./fonts/IBMPlexSansKR-SemiBold.ttf") format("truetype");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
  }

  @font-face {
    font-family: "IBM Plex Sans KR";
    src: url("./fonts/IBMPlexSansKR-Bold.ttf") format("truetype");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
  }
  @font-face {
    font-family: "Fraunces";
    src: url("./fonts/Fraunces-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
  }
  @font-face {
    font-family: "Black And White Picture";
    src: url("./fonts/BlackAndWhitePicture-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: "RIDIBatang";
    src: url("./fonts/RIDIBatang.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }
  :root{
    --ui-font-family: 'Pretendard', 'Pretendard Variable', 'IBM Plex Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans KR', sans-serif;
    --reading-font-family: 'IBM Plex Sans KR', sans-serif;
    --bg: #f7f8fa;
    --bg-deep: #f7f8fa;
    --card: #ffffff;
    --card-edge: #e7e9ed;
    --ink: #202328;
    --muted: #737780;
    --accent: #566c62;
    --accent-ink: #ffffff;
    --surface: #f3f5f6;
    --surface-hover: #e9eef0;
    --accent-soft: #edf3ef;
    --focus-ring: rgba(86,108,98,.24);
    --good: #3f8e5b;
    --bad: #c2492f;
    --line: #e7e9ed;

    /* 문장암기 기본 테마. 다른 팔레트는 body의 data-sentence-theme 값으로 덮어쓴다. */
    --sentence-panel-bg:#fff;
    --sentence-panel-border:#e7e9ed;
    --sentence-title:#202328;
    --sentence-card-bg:#fff;
    --sentence-card-border:#e7e9ed;
    --sentence-text:#202328;
    --sentence-muted:#737780;
    --sentence-translation-text:#4f5963;
    --sentence-empty-text:#737780;
    --sentence-soft-bg:#f3f5f6;
    --sentence-editor-bg:#f7f8fa;
    --sentence-editor-border:#e7e9ed;
    --sentence-input-bg:#fff;
    --sentence-input-border:#dfe3e8;
    --sentence-placeholder:#8a9097;
    --sentence-accent:#566c62;
    --sentence-accent-text:#fff;
    --sentence-ghost-bg:#f3f5f6;
    --sentence-ghost-hover:#e9eef0;
    --sentence-line-bg:transparent;
    --sentence-line-border:#dfe3e8;
    --sentence-chip-bg:#edf3ef;
    --sentence-chip-border:#dce5df;
    --sentence-chip-text:#40564b;
    --sentence-handle-bg:rgba(86,108,98,.06);
    --sentence-handle-hover:rgba(86,108,98,.12);
    --sentence-handle-text:#737780;
    --sentence-focus:#566c62;
    --sentence-focus-ring:rgba(86,108,98,.24);
    --sentence-tts-bg:#fff;
    --sentence-tts-hover:#f3f5f6;
    --sentence-tts-border:#dfe3e8;
    --sentence-drag-bg:rgba(86,108,98,.1);

    /* memo 값을 명시적으로 고른 사용자를 위한 로즈 핑크 팔레트. */
    --memo-panel-bg:#fff9fb;
    --memo-panel-border:#e9d5de;
    --memo-title:#684454;
    --memo-card-bg:#fffcfd;
    --memo-card-border:#f0d5e1;
    --memo-text:#4a2b3a;
    --memo-muted:#583a4a;
    --memo-detail-bg:#fff2f7;
    --memo-detail-border:#f3d7e3;
    --memo-detail-text:#4a2b3a;
    --memo-soft-bg:#fff2f7;
    --memo-editor-bg:#fff7fa;
    --memo-editor-border:#e4bfd0;
    --memo-input-bg:#fffcfd;
    --memo-input-border:#e4c2d1;
    --memo-placeholder:#a38190;
    --memo-accent:#e8afc6;
    --memo-accent-text:#5f3a4a;
    --memo-ghost-bg:#f8e2ec;
    --memo-ghost-hover:#f2d4e1;
    --memo-line-bg:transparent;
    --memo-line-border:#dfc0ce;
    --memo-chip-bg:#ffeef7;
    --memo-chip-border:#f6d8e6;
    --memo-chip-text:#705060;
    --memo-chip-strong:#684454;
    --memo-handle-bg:rgba(112,80,96,0.08);
    --memo-handle-hover:rgba(112,80,96,0.15);
    --memo-handle-text:#8a6072;
    --memo-focus:#d88fae;
    --memo-empty-text:#755465;
    --memo-drag-bg:rgba(232,175,198,0.16);

    --pos-noun: #c24769;
    --pos-pronoun: #8f5db7;
    --pos-relative-pronoun: #6861b5;
    --pos-verb: rgb(240, 194, 54);
    --pos-modal: #b85e21;
    --pos-adj: #9fc95d;
    --pos-adv: #6b7280eb;
    --pos-prep: #3674ad;
    --pos-idiom: #9a4f82;
    --pos-conjunction: #277d72;
    --pos-etc: #bfc1c2;
  }

  /* 현재 메모 탭의 핑크를 그대로 사용 */
  body[data-sentence-theme="memo"]{
    --sentence-panel-bg:#fff9fb;
    --sentence-panel-border:#e9d5de;
    --sentence-title:#4b2b3a;
    --sentence-card-bg:#fffcfd;
    --sentence-card-border:#f0d5e1;
    --sentence-text:#4b2b3a;
    --sentence-muted:#593c4c;
    --sentence-translation-text:#4d2d3c;
    --sentence-empty-text:#593c4c;
    --sentence-soft-bg:#fff2f7;
    --sentence-editor-bg:#fff7fa;
    --sentence-editor-border:#e4bfd0;
    --sentence-input-bg:#fffcfd;
    --sentence-input-border:#e4c2d1;
    --sentence-placeholder:#a38190;
    --sentence-accent:#e8afc6;
    --sentence-accent-text:#5f3a4a;
    --sentence-ghost-bg:#f8e2ec;
    --sentence-ghost-hover:#f2d4e1;
    --sentence-line-bg:transparent;
    --sentence-line-border:#dfc0ce;
    --sentence-chip-bg:#ffeef7;
    --sentence-chip-border:#f6d8e6;
    --sentence-chip-text:#705060;
    --sentence-handle-bg:rgba(112,80,96,0.08);
    --sentence-handle-hover:rgba(112,80,96,0.15);
    --sentence-handle-text:#8a6072;
    --sentence-focus:#d88fae;
    --sentence-focus-ring:rgba(216,143,174,0.30);
    --sentence-tts-bg:#fff7fa;
    --sentence-tts-hover:#f8e2ec;
    --sentence-tts-border:#dfc0ce;
    --sentence-drag-bg:rgba(232,175,198,0.16);
  }

  /* 메모 핑크보다 조금 더 맑고 선명한 솜사탕 핑크 */
  body[data-sentence-theme="cotton"]{
    --sentence-panel-bg:#fff7fc;
    --sentence-panel-border:#f0d2e2;
    --sentence-title:#4f2842;
    --sentence-card-bg:#fffafd;
    --sentence-card-border:#f2d8e6;
    --sentence-text:#4f2842;
    --sentence-muted:#5e3b51;
    --sentence-translation-text:#522b45;
    --sentence-empty-text:#5e3b51;
    --sentence-soft-bg:#fdebf5;
    --sentence-editor-bg:#fff3f9;
    --sentence-editor-border:#edc4d9;
    --sentence-input-bg:#fffafd;
    --sentence-input-border:#ebcbdc;
    --sentence-placeholder:#a77d94;
    --sentence-accent:#f0b6d3;
    --sentence-accent-text:#633b50;
    --sentence-ghost-bg:#fae1ee;
    --sentence-ghost-hover:#f5d3e5;
    --sentence-line-bg:#fffdfd;
    --sentence-line-border:#e8bfd4;
    --sentence-chip-bg:#fce5f1;
    --sentence-chip-border:#efc6dc;
    --sentence-chip-text:#70485e;
    --sentence-handle-bg:rgba(112,72,94,0.09);
    --sentence-handle-hover:rgba(112,72,94,0.16);
    --sentence-handle-text:#8a6177;
    --sentence-focus:#dc89b3;
    --sentence-focus-ring:rgba(220,137,179,0.28);
    --sentence-tts-bg:#fff3f9;
    --sentence-tts-hover:#fae1ee;
    --sentence-tts-border:#e8bfd4;
    --sentence-drag-bg:rgba(240,182,211,0.17);
  }

  body[data-sentence-theme="lavender"]{
    --sentence-panel-bg:#fbf8ff;
    --sentence-panel-border:#ddd0ea;
    --sentence-title:#41324c;
    --sentence-card-bg:#fefcff;
    --sentence-card-border:#ded1ea;
    --sentence-text:#41324c;
    --sentence-muted:#544460;
    --sentence-translation-text:#483954;
    --sentence-empty-text:#544460;
    --sentence-soft-bg:#f3edfa;
    --sentence-editor-bg:#f8f4fc;
    --sentence-editor-border:#d7c9e5;
    --sentence-input-bg:#fefcff;
    --sentence-input-border:#d7c9e5;
    --sentence-placeholder:#978aa0;
    --sentence-accent:#cbb7e5;
    --sentence-accent-text:#4e425d;
    --sentence-ghost-bg:#ede4f6;
    --sentence-ghost-hover:#e4d8f0;
    --sentence-line-bg:#fffdfd;
    --sentence-line-border:#d4c5e2;
    --sentence-chip-bg:#f0e8f8;
    --sentence-chip-border:#d7c6e7;
    --sentence-chip-text:#62536e;
    --sentence-handle-bg:#e4d8f0;
    --sentence-handle-hover:#dccdec;
    --sentence-handle-text:#756780;
    --sentence-focus:#b69ad7;
    --sentence-focus-ring:rgba(182,154,215,0.30);
    --sentence-tts-bg:#fffdfd;
    --sentence-tts-hover:#ede4f6;
    --sentence-tts-border:#d4c5e2;
    --sentence-drag-bg:rgba(203,183,229,0.18);
  }

  /* 영자신문·조간신문 (뉴스프린트) 테마: 회갈색 신문 용지와 윤전기 프레스 잉크, 헤드라인 레드 포인트 */
  body[data-sentence-theme="newsprint"]{
    --sentence-panel-bg:#f1ece1;
    --sentence-panel-border:#d8cebc;
    --sentence-title:#141210;
    --sentence-card-bg:#f7f4ec;
    --sentence-card-border:#ded5c4;
    --sentence-text:#181512;
    --sentence-muted:#524c44;
    --sentence-translation-text:#302b25;
    --sentence-empty-text:#665f56;
    --sentence-soft-bg:#e6ddcd;
    --sentence-editor-bg:#ede4d4;
    --sentence-editor-border:#c9beab;
    --sentence-input-bg:#faf7f0;
    --sentence-input-border:#d2c7b5;
    --sentence-placeholder:#7d7569;
    --sentence-accent:#9c3328;
    --sentence-accent-text:#ffffff;
    --sentence-ghost-bg:#e3dacb;
    --sentence-ghost-hover:#d7cdbd;
    --sentence-line-bg:#f7f4ec;
    --sentence-line-border:#cbc0ad;
    --sentence-chip-bg:#e5dcce;
    --sentence-chip-border:#cfc4b2;
    --sentence-chip-text:#3d3429;
    --sentence-handle-bg:rgba(24,21,18,0.07);
    --sentence-handle-hover:rgba(24,21,18,0.14);
    --sentence-handle-text:#6b5f50;
    --sentence-focus:#9c3328;
    --sentence-focus-ring:rgba(156,51,40,0.28);
    --sentence-tts-bg:#fcfaf5;
    --sentence-tts-hover:#e6dece;
    --sentence-tts-border:#cfc4b2;
    --sentence-drag-bg:rgba(156,51,40,0.15);
  }

  body[data-sentence-theme="soda"]{
    --sentence-panel-bg:#f6fbfe;
    --sentence-panel-border:#cfe1ec;
    --sentence-title:#2a4455;
    --sentence-card-bg:#fcfeff;
    --sentence-card-border:#d7e6ef;
    --sentence-text:#2a4455;
    --sentence-muted:#395467;
    --sentence-translation-text:#2f4c5e;
    --sentence-empty-text:#395467;
    --sentence-soft-bg:#eaf4fa;
    --sentence-editor-bg:#f1f8fc;
    --sentence-editor-border:#c8ddea;
    --sentence-input-bg:#fcfeff;
    --sentence-input-border:#c9dce8;
    --sentence-placeholder:#7993a3;
    --sentence-accent:#a9cee3;
    --sentence-accent-text:#314f61;
    --sentence-ghost-bg:#ddeef7;
    --sentence-ghost-hover:#d1e7f3;
    --sentence-line-bg:#fcfeff;
    --sentence-line-border:#bfd6e4;
    --sentence-chip-bg:#e8f4fb;
    --sentence-chip-border:#cce2ee;
    --sentence-chip-text:#506b7b;
    --sentence-handle-bg:rgba(80,107,123,0.08);
    --sentence-handle-hover:rgba(80,107,123,0.15);
    --sentence-handle-text:#6e8998;
    --sentence-focus:#77b4d3;
    --sentence-focus-ring:rgba(119,180,211,0.30);
    --sentence-tts-bg:#f8fcff;
    --sentence-tts-hover:#ddeef7;
    --sentence-tts-border:#bfd6e4;
    --sentence-drag-bg:rgba(169,206,227,0.20);
  }

  body[data-sentence-theme="sage"]{
    --sentence-panel-bg:#f6fbf8;
    --sentence-panel-border:#cee2d7;
    --sentence-title:#2c473c;
    --sentence-card-bg:#fbfefc;
    --sentence-card-border:#d6e8de;
    --sentence-text:#2c473c;
    --sentence-muted:#3a564a;
    --sentence-translation-text:#304e42;
    --sentence-empty-text:#3a564a;
    --sentence-soft-bg:#eaf5ef;
    --sentence-editor-bg:#f1f8f4;
    --sentence-editor-border:#c7ddd1;
    --sentence-input-bg:#fbfefc;
    --sentence-input-border:#c8ddd2;
    --sentence-placeholder:#789388;
    --sentence-accent:#aed5c2;
    --sentence-accent-text:#355347;
    --sentence-ghost-bg:#dcefe5;
    --sentence-ghost-hover:#d0e7da;
    --sentence-line-bg:#fbfefc;
    --sentence-line-border:#bed7ca;
    --sentence-chip-bg:#e8f4ee;
    --sentence-chip-border:#c9e0d5;
    --sentence-chip-text:#4f6c60;
    --sentence-handle-bg:rgba(79,108,96,0.08);
    --sentence-handle-hover:rgba(79,108,96,0.15);
    --sentence-handle-text:#6d897d;
    --sentence-focus:#7fb99c;
    --sentence-focus-ring:rgba(127,185,156,0.30);
    --sentence-tts-bg:#f8fcfa;
    --sentence-tts-hover:#dcefe5;
    --sentence-tts-border:#bed7ca;
    --sentence-drag-bg:rgba(174,213,194,0.20);
  }

  /* 화이트 기본과 메모별 팔레트. memo 값은 :root의 로즈 핑크를 사용한다. */
  body[data-memo-theme="default"]{
    --memo-panel-bg:#fff;
    --memo-panel-border:#e7e9ed;
    --memo-title:#202328;
    --memo-card-bg:#fff;
    --memo-card-border:#e7e9ed;
    --memo-text:#202328;
    --memo-muted:#737780;
    --memo-detail-bg:#f7f8fa;
    --memo-detail-border:#e7e9ed;
    --memo-detail-text:#4f5963;
    --memo-soft-bg:#f3f5f6;
    --memo-editor-bg:#f7f8fa;
    --memo-editor-border:#e7e9ed;
    --memo-input-bg:#fff;
    --memo-input-border:#dfe3e8;
    --memo-placeholder:#8a9097;
    --memo-accent:#566c62;
    --memo-accent-text:#fff;
    --memo-ghost-bg:#f3f5f6;
    --memo-ghost-hover:#e9eef0;
    --memo-line-bg:transparent;
    --memo-line-border:#dfe3e8;
    --memo-chip-bg:#edf3ef;
    --memo-chip-border:#dce5df;
    --memo-chip-text:#40564b;
    --memo-chip-strong:#40564b;
    --memo-handle-bg:rgba(86,108,98,.06);
    --memo-handle-hover:rgba(86,108,98,.12);
    --memo-handle-text:#737780;
    --memo-focus:#566c62;
    --memo-empty-text:#737780;
    --memo-drag-bg:rgba(86,108,98,.1);
  }

  body[data-memo-theme="cotton"]{
    --memo-panel-bg:#fff7fc;
    --memo-panel-border:#f0d2e2;
    --memo-title:#4f2842;
    --memo-card-bg:#fffafd;
    --memo-card-border:#f2d8e6;
    --memo-text:#4f2842;
    --memo-muted:#5e3b51;
    --memo-detail-bg:#fdebf5;
    --memo-detail-border:#f2d1e2;
    --memo-detail-text:#522b45;
    --memo-soft-bg:#fdebf5;
    --memo-editor-bg:#fff3f9;
    --memo-editor-border:#edc4d9;
    --memo-input-bg:#fffafd;
    --memo-input-border:#ebcbdc;
    --memo-placeholder:#a77d94;
    --memo-accent:#f0b6d3;
    --memo-accent-text:#633b50;
    --memo-ghost-bg:#fae1ee;
    --memo-ghost-hover:#f5d3e5;
    --memo-line-bg:#fffdfd;
    --memo-line-border:#e8bfd4;
    --memo-chip-bg:#fce5f1;
    --memo-chip-border:#efc6dc;
    --memo-chip-text:#70485e;
    --memo-chip-strong:#6e4860;
    --memo-handle-bg:rgba(112,72,94,0.09);
    --memo-handle-hover:rgba(112,72,94,0.16);
    --memo-handle-text:#8a6177;
    --memo-focus:#dc89b3;
    --memo-empty-text:#805f71;
    --memo-drag-bg:rgba(240,182,211,0.17);
  }

  body[data-memo-theme="lavender"]{
    --memo-panel-bg:#fbf8ff;
    --memo-panel-border:#ddd0ea;
    --memo-title:#41324c;
    --memo-card-bg:#fefcff;
    --memo-card-border:#ded1ea;
    --memo-text:#41324c;
    --memo-muted:#544460;
    --memo-detail-bg:#f3edfa;
    --memo-detail-border:#ded1ea;
    --memo-detail-text:#483954;
    --memo-soft-bg:#f3edfa;
    --memo-editor-bg:#f8f4fc;
    --memo-editor-border:#d7c9e5;
    --memo-input-bg:#fefcff;
    --memo-input-border:#d7c9e5;
    --memo-placeholder:#978aa0;
    --memo-accent:#cbb7e5;
    --memo-accent-text:#4e425d;
    --memo-ghost-bg:#ede4f6;
    --memo-ghost-hover:#e4d8f0;
    --memo-line-bg:#fffdfd;
    --memo-line-border:#d4c5e2;
    --memo-chip-bg:#f0e8f8;
    --memo-chip-border:#d7c6e7;
    --memo-chip-text:#62536e;
    --memo-chip-strong:#62536e;
    --memo-handle-bg:#e4d8f0;
    --memo-handle-hover:#dccdec;
    --memo-handle-text:#756780;
    --memo-focus:#b69ad7;
    --memo-empty-text:#756780;
    --memo-drag-bg:rgba(203,183,229,0.18);
  }

  body[data-memo-theme="newsprint"]{
    --memo-panel-bg:#f1ece1;
    --memo-panel-border:#d8cebc;
    --memo-title:#141210;
    --memo-card-bg:#f7f4ec;
    --memo-card-border:#ded5c4;
    --memo-text:#181512;
    --memo-muted:#524c44;
    --memo-detail-bg:#ede4d4;
    --memo-detail-border:#ded5c4;
    --memo-detail-text:#302b25;
    --memo-soft-bg:#e6ddcd;
    --memo-editor-bg:#ede4d4;
    --memo-editor-border:#c9beab;
    --memo-input-bg:#faf7f0;
    --memo-input-border:#d2c7b5;
    --memo-placeholder:#7d7569;
    --memo-accent:#9c3328;
    --memo-accent-text:#ffffff;
    --memo-ghost-bg:#e3dacb;
    --memo-ghost-hover:#d7cdbd;
    --memo-line-bg:#f7f4ec;
    --memo-line-border:#cbc0ad;
    --memo-chip-bg:#e5dcce;
    --memo-chip-border:#cfc4b2;
    --memo-chip-text:#3d3429;
    --memo-chip-strong:#141210;
    --memo-handle-bg:rgba(24,21,18,0.07);
    --memo-handle-hover:rgba(24,21,18,0.14);
    --memo-handle-text:#6b5f50;
    --memo-focus:#9c3328;
    --memo-empty-text:#665f56;
    --memo-drag-bg:rgba(156,51,40,0.15);
  }

  body[data-memo-theme="soda"]{
    --memo-panel-bg:#f6fbfe;
    --memo-panel-border:#cfe1ec;
    --memo-title:#2a4455;
    --memo-card-bg:#fcfeff;
    --memo-card-border:#d7e6ef;
    --memo-text:#2a4455;
    --memo-muted:#395467;
    --memo-detail-bg:#eaf4fa;
    --memo-detail-border:#d1e4ef;
    --memo-detail-text:#2f4c5e;
    --memo-soft-bg:#eaf4fa;
    --memo-editor-bg:#f1f8fc;
    --memo-editor-border:#c8ddea;
    --memo-input-bg:#fcfeff;
    --memo-input-border:#c9dce8;
    --memo-placeholder:#7993a3;
    --memo-accent:#a9cee3;
    --memo-accent-text:#314f61;
    --memo-ghost-bg:#ddeef7;
    --memo-ghost-hover:#d1e7f3;
    --memo-line-bg:#fcfeff;
    --memo-line-border:#bfd6e4;
    --memo-chip-bg:#e8f4fb;
    --memo-chip-border:#cce2ee;
    --memo-chip-text:#506b7b;
    --memo-chip-strong:#486476;
    --memo-handle-bg:rgba(80,107,123,0.08);
    --memo-handle-hover:rgba(80,107,123,0.15);
    --memo-handle-text:#6e8998;
    --memo-focus:#77b4d3;
    --memo-empty-text:#577284;
    --memo-drag-bg:rgba(169,206,227,0.20);
  }

  body[data-memo-theme="sage"]{
    --memo-panel-bg:#f6fbf8;
    --memo-panel-border:#cee2d7;
    --memo-title:#2c473c;
    --memo-card-bg:#fbfefc;
    --memo-card-border:#d6e8de;
    --memo-text:#2c473c;
    --memo-muted:#3a564a;
    --memo-detail-bg:#eaf5ef;
    --memo-detail-border:#d1e6da;
    --memo-detail-text:#304e42;
    --memo-soft-bg:#eaf5ef;
    --memo-editor-bg:#f1f8f4;
    --memo-editor-border:#c7ddd1;
    --memo-input-bg:#fbfefc;
    --memo-input-border:#c8ddd2;
    --memo-placeholder:#789388;
    --memo-accent:#aed5c2;
    --memo-accent-text:#355347;
    --memo-ghost-bg:#dcefe5;
    --memo-ghost-hover:#d0e7da;
    --memo-line-bg:#fbfefc;
    --memo-line-border:#bed7ca;
    --memo-chip-bg:#e8f4ee;
    --memo-chip-border:#c9e0d5;
    --memo-chip-text:#4f6c60;
    --memo-chip-strong:#4b665b;
    --memo-handle-bg:rgba(79,108,96,0.08);
    --memo-handle-hover:rgba(79,108,96,0.15);
    --memo-handle-text:#6d897d;
    --memo-focus:#7fb99c;
    --memo-empty-text:#587568;
    --memo-drag-bg:rgba(174,213,194,0.20);
  }


  /* 3가지 신규 독서 최적화 테마: 클래식 북, 포레스트, 미드나잇 다크 */
  body[data-sentence-theme="book"]{
    --sentence-panel-bg:#f8f4e8;
    --sentence-panel-border:#e2d6b5;
    --sentence-title:#2b1d0c;
    --sentence-card-bg:#fefcf6;
    --sentence-card-border:#e5d9ba;
    --sentence-text:#2c2013;
    --sentence-muted:#524030;
    --sentence-translation-text:#3f3022;
    --sentence-empty-text:#695745;
    --sentence-soft-bg:#efe4c9;
    --sentence-editor-bg:#f7edd4;
    --sentence-editor-border:#cebe94;
    --sentence-input-bg:#fffdf7;
    --sentence-input-border:#d8caa4;
    --sentence-placeholder:#87745e;
    --sentence-accent:#be833a;
    --sentence-accent-text:#281805;
    --sentence-ghost-bg:#ebe0c5;
    --sentence-ghost-hover:#dfd2b2;
    --sentence-line-bg:#fffdfa;
    --sentence-line-border:#cebf96;
    --sentence-chip-bg:#eedeb8;
    --sentence-chip-border:#d3bf8f;
    --sentence-chip-text:#45331a;
    --sentence-handle-bg:rgba(69,51,26,0.08);
    --sentence-handle-hover:rgba(69,51,26,0.16);
    --sentence-handle-text:#725732;
    --sentence-focus:#be833a;
    --sentence-focus-ring:rgba(190,131,58,0.32);
    --sentence-tts-bg:#fffaf0;
    --sentence-tts-hover:#ebe0c5;
    --sentence-tts-border:#cebf96;
    --sentence-drag-bg:rgba(190,131,58,0.18);
  }

  body[data-sentence-theme="forest"]{
    --sentence-panel-bg:#f2f6f1;
    --sentence-panel-border:#c5d7c3;
    --sentence-title:#193822;
    --sentence-card-bg:#fafdfa;
    --sentence-card-border:#cde0cb;
    --sentence-text:#1d3d27;
    --sentence-muted:#3f5c48;
    --sentence-translation-text:#2b4a34;
    --sentence-empty-text:#526f5b;
    --sentence-soft-bg:#e2ede0;
    --sentence-editor-bg:#ebf3ea;
    --sentence-editor-border:#b7ceb4;
    --sentence-input-bg:#fafdfa;
    --sentence-input-border:#b9d0b7;
    --sentence-placeholder:#6d8c76;
    --sentence-accent:#4b8f5e;
    --sentence-accent-text:#0e2a16;
    --sentence-ghost-bg:#d6e7d3;
    --sentence-ghost-hover:#c7ddc4;
    --sentence-line-bg:#fafdfa;
    --sentence-line-border:#b2cbb0;
    --sentence-chip-bg:#dcecdc;
    --sentence-chip-border:#bed8bd;
    --sentence-chip-text:#244a2f;
    --sentence-handle-bg:rgba(36,74,47,0.08);
    --sentence-handle-hover:rgba(36,74,47,0.16);
    --sentence-handle-text:#406c4c;
    --sentence-focus:#4b8f5e;
    --sentence-focus-ring:rgba(75,143,94,0.30);
    --sentence-tts-bg:#f4faf3;
    --sentence-tts-hover:#d6e7d3;
    --sentence-tts-border:#b2cbb0;
    --sentence-drag-bg:rgba(75,143,94,0.18);
  }

  /* 모의고사·문제집 테마: 뽀얀 갱지 시험지 톤과 또렷한 문제 인쇄 잉크, 수험 체크펜 블루 포인트 */
  body[data-sentence-theme="workbook"]{
    --sentence-panel-bg:#eef2ec;
    --sentence-panel-border:#c8d4c5;
    --sentence-title:#111b16;
    --sentence-card-bg:#f7f9f6;
    --sentence-card-border:#d0dcd0;
    --sentence-text:#14201a;
    --sentence-muted:#41534a;
    --sentence-translation-text:#23332b;
    --sentence-empty-text:#596e64;
    --sentence-soft-bg:#dfe7dd;
    --sentence-editor-bg:#e7efe5;
    --sentence-editor-border:#bad0be;
    --sentence-input-bg:#f9fbf8;
    --sentence-input-border:#c4d5c4;
    --sentence-placeholder:#6d8277;
    --sentence-accent:#24639c;
    --sentence-accent-text:#ffffff;
    --sentence-ghost-bg:#dbe4da;
    --sentence-ghost-hover:#cedcd0;
    --sentence-line-bg:#f7f9f6;
    --sentence-line-border:#bed0bf;
    --sentence-chip-bg:#dce5dc;
    --sentence-chip-border:#c1d2c1;
    --sentence-chip-text:#1e3529;
    --sentence-handle-bg:rgba(20,32,26,0.07);
    --sentence-handle-hover:rgba(20,32,26,0.14);
    --sentence-handle-text:#496455;
    --sentence-focus:#24639c;
    --sentence-focus-ring:rgba(36,99,156,0.28);
    --sentence-tts-bg:#f9fbf8;
    --sentence-tts-hover:#dbe4da;
    --sentence-tts-border:#bed0bf;
    --sentence-drag-bg:rgba(36,99,156,0.15);
  }

  body[data-memo-theme="book"]{
    --memo-panel-bg:#f8f4e8;
    --memo-panel-border:#e2d6b5;
    --memo-title:#2b1d0c;
    --memo-card-bg:#fefcf6;
    --memo-card-border:#e5d9ba;
    --memo-text:#2c2013;
    --memo-muted:#524030;
    --memo-detail-bg:#f5eedc;
    --memo-detail-border:#e2d4b2;
    --memo-detail-text:#3f3022;
    --memo-soft-bg:#efe4c9;
    --memo-editor-bg:#f7edd4;
    --memo-editor-border:#cebe94;
    --memo-input-bg:#fffdf7;
    --memo-input-border:#d8caa4;
    --memo-placeholder:#87745e;
    --memo-accent:#be833a;
    --memo-accent-text:#281805;
    --memo-ghost-bg:#ebe0c5;
    --memo-ghost-hover:#dfd2b2;
    --memo-line-bg:#fffdfa;
    --memo-line-border:#cebf96;
    --memo-chip-bg:#eedeb8;
    --memo-chip-border:#d3bf8f;
    --memo-chip-text:#45331a;
    --memo-chip-strong:#2b1d0c;
    --memo-handle-bg:rgba(69,51,26,0.08);
    --memo-handle-hover:rgba(69,51,26,0.16);
    --memo-handle-text:#725732;
    --memo-focus:#be833a;
    --memo-empty-text:#695745;
    --memo-drag-bg:rgba(190,131,58,0.18);
  }

  body[data-memo-theme="forest"]{
    --memo-panel-bg:#f2f6f1;
    --memo-panel-border:#c5d7c3;
    --memo-title:#193822;
    --memo-card-bg:#fafdfa;
    --memo-card-border:#cde0cb;
    --memo-text:#1d3d27;
    --memo-muted:#3f5c48;
    --memo-detail-bg:#e6f0e4;
    --memo-detail-border:#c3dac0;
    --memo-detail-text:#2b4a34;
    --memo-soft-bg:#e2ede0;
    --memo-editor-bg:#ebf3ea;
    --memo-editor-border:#b7ceb4;
    --memo-input-bg:#fafdfa;
    --memo-input-border:#b9d0b7;
    --memo-placeholder:#6d8c76;
    --memo-accent:#4b8f5e;
    --memo-accent-text:#0e2a16;
    --memo-ghost-bg:#d6e7d3;
    --memo-ghost-hover:#c7ddc4;
    --memo-line-bg:#fafdfa;
    --memo-line-border:#b2cbb0;
    --memo-chip-bg:#dcecdc;
    --memo-chip-border:#bed8bd;
    --memo-chip-text:#244a2f;
    --memo-chip-strong:#193822;
    --memo-handle-bg:rgba(36,74,47,0.08);
    --memo-handle-hover:rgba(36,74,47,0.16);
    --memo-handle-text:#406c4c;
    --memo-focus:#4b8f5e;
    --memo-empty-text:#526f5b;
    --memo-drag-bg:rgba(75,143,94,0.18);
  }

  body[data-memo-theme="workbook"]{
    --memo-panel-bg:#eef2ec;
    --memo-panel-border:#c8d4c5;
    --memo-title:#111b16;
    --memo-card-bg:#f7f9f6;
    --memo-card-border:#d0dcd0;
    --memo-text:#14201a;
    --memo-muted:#41534a;
    --memo-detail-bg:#e7efe5;
    --memo-detail-border:#d0dcd0;
    --memo-detail-text:#23332b;
    --memo-soft-bg:#dfe7dd;
    --memo-editor-bg:#e7efe5;
    --memo-editor-border:#bad0be;
    --memo-input-bg:#f9fbf8;
    --memo-input-border:#c4d5c4;
    --memo-placeholder:#6d8277;
    --memo-accent:#24639c;
    --memo-accent-text:#ffffff;
    --memo-ghost-bg:#dbe4da;
    --memo-ghost-hover:#cedcd0;
    --memo-line-bg:#f7f9f6;
    --memo-line-border:#bed0bf;
    --memo-chip-bg:#dce5dc;
    --memo-chip-border:#c1d2c1;
    --memo-chip-text:#1e3529;
    --memo-chip-strong:#111b16;
    --memo-handle-bg:rgba(20,32,26,0.07);
    --memo-handle-hover:rgba(20,32,26,0.14);
    --memo-handle-text:#496455;
    --memo-focus:#24639c;
    --memo-empty-text:#596e64;
    --memo-drag-bg:rgba(36,99,156,0.15);
  }

  *{ box-sizing: border-box; }
  html,body{ height:100%; }
  body{
    margin:0;
    background:var(--bg);
    background-attachment: fixed;
    color: var(--ink);
    font-family: var(--ui-font-family);
    padding: 32px 18px 60px;
  }

  .wrap{ max-width: 760px; margin: 0 auto; }

  header.top{
    display:flex; align-items:baseline; justify-content:space-between;
    margin-bottom: 22px; padding: 0 4px;
  }
  header.top h1{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size: 30px;
    color: var(--ink);
    letter-spacing: -0.01em;
    margin:0;
  }
  header.top .sub{
    font-size: 12.5px;
    color: var(--muted);
    margin-top: 4px;
    font-family:'IBM Plex Mono', monospace;
  }

  .tabs{ display:flex; gap:6px; margin-bottom:18px; }
  .tab-btn{
    flex:1;
    padding: 11px 0;
    background: var(--card);
    border: 1px solid var(--line);
    color: var(--muted);
    border-radius: 10px;
    font-family: var(--ui-font-family);
    font-weight:600; font-size:14px;
    cursor:pointer;
    transition: all .12s ease;
  }
  .tab-btn.active{
    background: var(--accent);
    color: var(--accent-ink);
    border-color: var(--accent);
  }

  .panel{ display:none; }
  .panel.active{ display:block; }
  /* Leave room to scroll input actions above the floating worksheet resume button. */
  #panel-input{ padding-bottom:calc(112px + env(safe-area-inset-bottom, 0px)); }

  .card-box{
    background: var(--card);
    border: 1px solid var(--card-edge);
    border-radius: 22px;
    padding: 22px;
    box-shadow: 0 8px 28px rgba(32,35,40,.035);
  }

  h3.section-title{
    font-family: var(--ui-font-family); font-weight:700; letter-spacing:-0.01em;
    font-size: 19px;
    margin: 0 0 14px;
    color: var(--ink);
  }

  label{ font-size:13px; font-weight:600; color: var(--muted); display:block; margin-bottom:6px; }
  input[type=text], textarea{
    width:100%;
    padding: 10px 12px;
    border-radius:9px;
    border:1.5px solid var(--card-edge);
    background:var(--card);
    font-size:15px;
    font-family: var(--ui-font-family);
    color: var(--ink);
  }
  input[type=text]:focus, textarea:focus{ outline:none; border-color: var(--accent); }
  textarea{ font-family:'IBM Plex Mono', monospace; font-size:13.5px; resize:vertical; min-height:140px; line-height:1.6; }

  select{
    padding: 9px 10px;
    border-radius:9px;
    border:1.5px solid var(--card-edge);
    background:var(--card);
    font-size:14px;
    font-family: var(--ui-font-family);
    color: var(--ink);
  }

  .word-field{ margin-bottom:12px; }
  .pronunciation-field{ margin-bottom:16px; }
  .word-example-fields{ display:flex; flex-direction:column; gap:7px; margin:18px 0; }
  .word-example-fields > strong{ font-size:14px; margin-bottom:3px; }
  .word-example-fields > label{ margin:3px 0 0; font-size:13px; }
  .word-example-fields textarea{ width:100%; min-width:0; box-sizing:border-box; resize:vertical; line-height:1.6; }
  .word-example-fields small{ color:var(--muted); font-size:12px; line-height:1.6; }

  .meaning-row{
    display:flex; gap:8px; margin-bottom:8px; align-items:flex-start;
  }
  .meaning-row select{ flex: 0 0 92px; }
  .meaning-row .meaning-input{
    flex:1;
    min-height:68px;
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:15px;
    line-height:1.5;
    resize:vertical;
  }
  .related-word-section{
    margin-top:16px; padding-top:14px; border-top:1px dashed var(--card-edge);
  }
  .related-word-section-label{ display:block; margin-bottom:8px; }
  .related-word-row{
    display:flex; gap:8px; margin-bottom:8px; align-items:center;
  }
  .related-word-row select{ flex:0 0 92px; }
  .related-word-row .related-word-meaning-input{
    flex:0 1 210px; min-width:150px;
  }
  .related-word-row .related-word-input{ flex:1; min-width:180px; }
  .related-word-row[data-study-tag-type="동의어"] select{
    background:#e7f2fb; border-color:#9bc4e1; color:#2d638c;
  }
  .related-word-row[data-study-tag-type="반의어"] select{
    background:#fbe9e6; border-color:#e6aaa2; color:#99483f;
  }
  .related-word-row[data-study-tag-type="파생어"] select{
    background:#e9f4e8; border-color:#a9cda9; color:#47764e;
  }
  .related-word-row[data-study-tag-type="어원"] select{
    background:#f0eafa; border-color:#c3addb; color:#6e518b;
  }
  .related-word-help{
    display:block; margin-top:7px; color:var(--muted); font-size:12px; line-height:1.5;
  }
  .row-remove{
    background:none; border:none; color:#b96a4e; cursor:pointer;
    font-size:18px; padding:4px 8px; line-height:1;
  }

  .btn{
    border:none; border-radius:9px; padding:10px 16px;
    font-family: var(--ui-font-family);
    font-weight:600; font-size:14px; cursor:pointer;
  }
  .btn-accent{ background: var(--accent); color:var(--accent-ink); }
  .btn-ghost{ background:var(--surface); color:var(--ink); }
  .btn-ghost:hover{ background:var(--surface-hover); }
  .btn-ghost.active{ background: var(--accent); color:var(--accent-ink); }
  .btn-danger{ background: transparent; color: var(--bad); border:1.5px solid var(--bad); }
  .btn-good{ background: var(--good); color:#fff; }
  .btn-line{ background:transparent; border:1.5px solid var(--card-edge); color:var(--ink); }
  .btn-line.active{ background: var(--accent); color:var(--accent-ink); border-color: var(--accent); }
  .btn:disabled{ opacity:0.45; cursor:not-allowed; }
  .btn-sm{ font-size:12.5px; padding:6px 10px; }

  .row-gap{ display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }

  .hint-add{
    font-size:13px; color: var(--accent); background:none; border: 1.5px dashed var(--card-edge);
    padding:6px 12px; border-radius:8px; cursor:pointer; margin-bottom:14px;
  }

  .mode-toggle{ display:flex; gap:6px; margin-bottom:18px; }
  .mode-btn{
    flex:1; padding:9px 0; border-radius:9px; border:1.5px solid var(--card-edge);
    background:var(--card); color:var(--muted); font-weight:600; font-size:13.5px; cursor:pointer;
  }
  .mode-btn.active{ background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
  .mode-body{ display:none; }
  .mode-body.active{ display:block; }
  .bulk-example{
    font-size:12px; color:var(--muted); background:var(--surface); border-radius:8px;
    padding:10px 12px; margin-bottom:12px; line-height:1.7; font-family:'IBM Plex Mono', monospace;
  }
  .bulk-example b{ color:var(--accent); font-family:'IBM Plex Sans KR', sans-serif; }

  .list-controls{ margin-bottom:14px; display:flex; gap:8px; }
  .search-field{ position:relative; flex:1; }
  .search-field input{ padding-right:42px; }
  .search-clear{
    position:absolute;
    top:50%;
    right:7px;
    width:30px;
    height:30px;
    padding:0;
    transform:translateY(-50%);
    border:0;
    border-radius:50%;
    background:transparent;
    color:var(--muted);
    font-size:22px;
    line-height:1;
    cursor:pointer;
  }
  .search-clear:hover{ background:var(--surface); color:var(--ink); }
  .search-clear[hidden]{ display:none; }
  .sentence-search-controls{ margin-bottom:14px; }
  #panel-sentences .sentence-search-controls .search-clear{ color:var(--sentence-muted); }
  #panel-sentences .sentence-search-controls .search-clear:hover{
    background:var(--sentence-ghost-bg);
    color:var(--sentence-text);
  }
  /* 목록 탭 상단 헤딩, 메뉴, 정렬, 검색, 일차 필터, 폴더 칩, 뱃지 등 UI 글꼴을 일관된 UI 고딕(Pretendard)으로 완전 통일 */
  .word-list-heading,
  .word-list-heading *,
  #wordListTitle,
  .list-control-group,
  .list-control-group *,
  .list-top-actions,
  .list-top-actions *,
  .list-controls,
  .list-controls *,
  .search-field input,
  .word-taxonomy-filters,
  .word-taxonomy-filter,
  .word-taxonomy-filter *,
  .game-day-picker-trigger-btn,
  .game-day-picker-trigger-btn *,
  .word-folder-bar,
  .word-folder-bar *,
  .word-folder-chips,
  .word-folder-chip,
  .word-taxonomy-badges,
  .word-taxonomy-badge,
  .word-selection-bar,
  .word-selection-bar *,
  .word-progress-line,
  #wordProgressLine {
    font-family: var(--ui-font-family) !important;
  }

  .word-card{
    background:var(--card); border:1px solid var(--card-edge); border-radius:12px;
    padding:14px 16px; margin-bottom:10px;
  }
  .word-card .wc-top{ display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
  .wc-heading-row{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; min-width:0; }
  .wc-stats-actions{ display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
  .wc-title{ font-family:'IBM Plex Mono', monospace; font-weight:600; font-size:17px; }
  .wc-pronunciation{
    color:var(--muted);
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:12.5px;
    font-weight:500;
  }

  .meaning-line{
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    flex-wrap:wrap; margin-top:8px; padding-top:8px; border-top:1px dashed var(--card-edge);
  }
  .meaning-line:first-of-type{ border-top:none; margin-top:10px; padding-top:0; }
  .meaning-left{ display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; }
  .related-word-list{
    display:grid; gap:6px; margin-top:10px; padding-top:9px; border-top:1px dashed var(--card-edge);
  }
  .related-word-line{ display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; }
  .related-word-type{
    flex:0 0 auto; min-width:50px; padding:2px 8px; border-radius:999px;
    color:#fff; font-size:11.5px; font-weight:700; text-align:center;
  }
  .related-word-type.tag-synonym{ background:#4c86b8; }
  .related-word-type.tag-antonym{ background:#c26055; }
  .related-word-type.tag-derivative{ background:#5f9368; }
  .related-word-type.tag-etymology{ background:#8a6daa; }
  .related-word-context{
    color:#6f6249; font-size:12.5px; font-weight:700; line-height:1.55;
  }
  .related-word-context::after{ content:'·'; margin-left:8px; color:#b6a98d; }
  .related-word-values{ color:var(--ink); font-size:13px; line-height:1.55; }
  .meaning-stats{ font-size:12px; color:var(--muted); white-space:nowrap; }
  .meaning-stats .ok{ color: var(--good); font-weight:600; }
  .meaning-stats .no{ color: var(--bad); font-weight:600; }
  .meaning-stats .skip{ color:#8c7d60; font-weight:600; }

  .badge{
    display:inline-flex; align-items:center; gap:6px;
    border-radius:999px; padding:3px 10px 3px 8px;
    font-size:12px; font-weight:600; color:#fff;
  }
  .badge .dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.85); }
  .pos-명사{ background: var(--pos-noun); }
  .pos-대명사{ background: var(--pos-pronoun); }
  .pos-관계대명사{ background: var(--pos-relative-pronoun); }
  .pos-동사{
    background: var(--pos-verb);
    color:#4A3500;
  }
  .pos-동사 .dot{ background:#FFF3B0; }
  .pos-조동사{ background: var(--pos-modal); }
  .pos-형용사{
    background: var(--pos-adj);
    color:#45651F;
  }
  .pos-형용사 .dot{ background:rgba(38,60,8,0.72); }
  .pos-부사{ background: var(--pos-adv); }
  .pos-전치사{ background: var(--pos-prep); }
  .pos-숙어{ background: var(--pos-idiom); }
  .pos-접속사{ background: var(--pos-conjunction); }
  .pos-기타{ background: var(--pos-etc); }
  .def-text{ font-size:13.5px; color:var(--ink); line-height:1.6; }

  .wc-top-actions{ display:flex; align-items:center; gap:8px; flex-shrink:0; margin-left:auto; }
  .tts-btn{
    width:34px;
    min-width:34px;
    height:30px;
    padding:0;
    font-size:15px;
    line-height:1;
  }
  .favorite-btn{
    min-width:38px; padding:3px 8px; font-size:19px; line-height:1.35;
  }
  .favorite-btn.active{
    background:#fff6d8; color:#a86f00; border-color:var(--accent);
  }
  .word-study-check-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:4px;
    min-height:34px; padding:4px 9px; font-family:var(--ui-font-family); white-space:nowrap;
  }
  .word-study-check-btn > span:first-child{
    display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px;
    border:1.5px solid currentColor; border-radius:4px; color:#aaa99e; font-size:12px;
  }
  .word-study-check-btn.active{ background:#dde1df; border-color:#a6aeaa; color:#4b5952; }
  .word-study-check-btn.active > span:first-child{ color:#4b5952; }
  .word-card.word-study-checked{ background:#ededeb; border-color:#d0d2ce; }
  .word-study-checked .wc-title,
  .word-study-checked .wc-pronunciation,
  .word-study-checked .def-text,
  .word-study-checked .related-word-values,
  .word-study-checked .related-word-context,
  .word-study-checked .word-example-source,
  .word-study-checked .word-example-translation{ color:#727970; }
  .word-study-checked .badge,
  .word-study-checked .related-word-type,
  .word-study-checked .word-taxonomy-badge{ filter:grayscale(1); }
  .word-study-checked .word-example-box{ background:#e5e7e3; border-color:#cdd2ca; }
  .wc-actions{ margin-top:12px; display:flex; gap:8px; }
  .word-reset-btn {
    margin-left: auto;
  }

  .empty-msg{ text-align:center; color:#7c8f86; padding: 30px 10px; font-size:14px; }
  .word-list-heading{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    margin-bottom:14px; flex-wrap:wrap;
  }
  .word-list-heading .section-title{ margin:0; }
  .word-list-heading-actions{ display:flex; align-items:center; gap:7px; }
  .word-hidden-toggle.active{
    background:var(--accent); color:var(--accent-ink); border-color:var(--accent);
  }
  .word-folder-bar{
    display:flex; align-items:center; gap:7px; margin:-2px 0 14px;
    padding:9px 10px; border-radius:10px; background:var(--surface); flex-wrap:wrap;
  }
  .word-folder-bar[hidden]{ display:none; }
  .word-folder-chips{
    display:flex; gap:6px; flex:1 1 240px; min-width:0; max-width:100%;
    overflow-x:auto; overflow-y:hidden; padding:2px 1px 5px;
    overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;
    touch-action:auto; scrollbar-width:thin;
    -webkit-user-select:none; user-select:none;
  }
  .word-folder-chips.is-mouse-dragging,
  .word-folder-chips.is-mouse-dragging *{ cursor:grabbing !important; }
  .word-folder-bar > .btn{ flex:0 0 auto; }
  .word-folder-chip{
    flex:0 0 auto; border:1.5px solid var(--card-edge); border-radius:999px;
    background:var(--card); color:var(--muted); padding:6px 10px; font-size:12.5px;
    font-family: var(--ui-font-family);
    font-weight:600; cursor:pointer;
  }
  .word-folder-chip.active{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
  .word-taxonomy-filters{
    display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px;
  }
  .word-taxonomy-filter{
    display:grid; grid-template-columns:auto minmax(0, 1fr); align-items:center; gap:7px;
    min-width:0; padding:7px 9px; border:1px solid var(--card-edge); border-radius:10px;
    background:var(--card); color:var(--muted); font-size:12px; font-weight:700;
  }
  .word-taxonomy-filter select{ width:100%; min-width:0; padding:7px 30px 7px 9px; font-size:12.5px; }
  .word-taxonomy-filter .game-day-picker-trigger-btn{ padding:6px 8px; font-size:12.5px; }
  .word-taxonomy-badges{ display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; margin:0; }
  .word-taxonomy-badge{
    display:inline-flex; align-items:center; min-height:24px; padding:3px 8px;
    border:1px solid #d8ca9d; border-radius:999px; background:#f7efd7;
    color:#66552d; font-size:11.5px; font-weight:750; line-height:1.2;
  }
  .word-taxonomy-badge.day{ border-color:#bfd6cd; background:#edf7f3; color:#356456; }
  .word-card.word-selected{ border-color:var(--accent); box-shadow:0 0 0 2px rgba(242,201,76,0.22); }
  .word-select-box{
    width:20px; height:20px; flex:0 0 20px; accent-color:var(--accent); cursor:pointer;
  }
  .word-card-selectable{ cursor:pointer; }
  .word-selection-bar{
    position:fixed; left:50%; bottom:10px; z-index:50; display:flex; align-items:center;
    justify-content:center; gap:7px; flex-wrap:wrap; width:min(620px, calc(100% - 24px));
    transform:translateX(-50%); padding:10px 12px; border:1px solid #d7c995;
    border-radius:13px; background:rgba(255,253,247,0.97);
    box-shadow:0 10px 28px rgba(45,35,13,0.22); backdrop-filter:blur(8px);
    max-height:45vh; overflow-y:auto;
  }
  .word-selection-bar[hidden]{ display:none; }
  .word-selection-main{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; width:100%; }
  .word-selection-count{ min-width:76px; color:var(--ink); font-size:13px; font-weight:700; }
  .word-selection-help{ margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
  .word-list-selecting{ padding-bottom:200px; }
  .list-top-actions{ display:flex; justify-content:space-between; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
  .list-top-left{ display:flex; gap:6px; flex-wrap:wrap; }
  .list-top-right{ display:flex; gap:6px; flex-wrap:wrap; }
  .list-control-group{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-bottom:14px;
  }
  .list-control-group .list-top-actions,
  .list-control-group .list-controls{ margin-bottom:0; }
  .list-control-group .list-top-left{ align-items:center; }

  .sentence-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:14px;
    flex-wrap:wrap;
  }
  .sentence-list-footer{
    display:flex;
    justify-content:center;
    margin:18px 0 6px;
  }
  .sentence-list-footer .btn{
    min-width:148px;
  }
  .sentence-toolbar .section-title{ margin:0; }
  .sentence-toolbar-heading,
  .memo-toolbar-heading{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
  }
  .sentence-theme-picker,
  .memo-theme-picker{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin:0;
    color:var(--sentence-muted);
    font-size:12px;
    white-space:nowrap;
  }
  .sentence-theme-picker select,
  .memo-theme-picker select{
    width:auto;
    min-width:132px;
    padding:6px 30px 6px 9px;
    border-width:1.5px;
    border-color:var(--sentence-input-border);
    background:var(--sentence-input-bg);
    color:var(--sentence-text);
    font-size:12.5px;
  }
  .sentence-theme-picker select:focus,
  .memo-theme-picker select:focus{
    outline:none;
    border-color:var(--sentence-focus);
  }
  .memo-theme-picker{ color:var(--memo-muted); }
  .memo-theme-picker select{
    border-color:var(--memo-input-border);
    background:var(--memo-input-bg);
    color:var(--memo-text);
  }
  .memo-theme-picker select:focus{ border-color:var(--memo-focus); }
  .sentence-toolbar-actions{ display:flex; gap:7px; flex-wrap:wrap; }
  .hidden-list-toggle{
    min-width:36px;
    padding-left:9px;
    padding-right:9px;
    font-size:16px;
    line-height:1.1;
  }
  .sentence-add-help{
    margin:0 0 12px;
    padding:10px 12px;
    border-radius:8px;
    background:var(--surface);
    color:var(--muted);
    font-size:12.5px;
    line-height:1.65;
  }
  .sentence-add-input{ min-height:230px; font-family:'IBM Plex Sans KR', sans-serif; font-size:14.5px; }
  .sentence-card{
    background:var(--card);
    border:1px solid var(--card-edge);
    border-radius:12px;
    padding:15px 16px;
    margin-bottom:10px;
  }
  .sentence-source{
    flex:1 1 auto;
    min-width:0;
    color:var(--ink);
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:15px;
    font-weight:600;
    line-height:1.65;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    cursor:text;
    -webkit-user-select:text;
    user-select:text;
  }
  .sentence-source-row{
    display:flex;
    align-items:flex-start;
    gap:8px;
  }
  .sentence-gpt-checkbox{
    flex:0 0 20px;
    width:20px;
    height:20px;
    margin:5px 2px 0 0;
    accent-color:var(--sentence-focus);
    cursor:pointer;
  }
  .sentence-gpt-checkbox:disabled{ cursor:not-allowed; opacity:0.38; }
  .sentence-card.sentence-gpt-selected{
    border-color:var(--sentence-accent);
    box-shadow:0 0 0 2px var(--sentence-focus-ring);
  }
  .sentence-favorite-btn{
    flex:0 0 auto;
    margin-top:1px;
  }
  .sentence-tts-btn{ margin-top:1px; }
  .sentence-selection-tools{
    position:fixed;
    z-index:1200;
    display:flex;
    flex-wrap:wrap;
    box-sizing:border-box;
    width:max-content;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:4px;
    border:1px solid #c9ad5d;
    border-radius:999px;
    background:var(--card);
    box-shadow:0 5px 15px rgba(42,33,13,0.22);
    touch-action:manipulation;
    -webkit-user-select:none;
    user-select:none;
  }
  .sentence-selection-tools[hidden]{ display:none; }
  .sentence-selection-tool{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:36px;
    height:34px;
    padding:0 10px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:var(--ink);
    font:700 13px/1 'IBM Plex Sans KR', sans-serif;
    cursor:pointer;
    touch-action:manipulation;
  }
  .sentence-selection-tool:hover{ background:var(--surface-hover); }
  .sentence-selection-tool[hidden]{ display:none; }
  .sentence-selection-tool:focus-visible{
    outline:3px solid rgba(210,169,39,0.35);
    outline-offset:2px;
  }
  .dictionary-selectable{
    cursor:text;
    -webkit-user-select:text;
    user-select:text;
  }
  .sentence-gpt-selection-bar{
    position:fixed;
    left:50%;
    bottom:10px;
    z-index:950;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    flex-wrap:wrap;
    width:min(680px, calc(100% - 24px));
    transform:translateX(-50%);
    padding:10px 12px;
    border:1px solid var(--sentence-panel-border);
    border-radius:13px;
    background:var(--sentence-card-bg);
    box-shadow:0 10px 28px rgba(45,35,13,0.22);
    backdrop-filter:blur(8px);
  }
  .sentence-gpt-selection-bar[hidden]{ display:none; }
  .sentence-gpt-selection-count{
    min-width:76px;
    color:var(--sentence-text);
    font-size:13px;
    font-weight:700;
  }
  .sentence-gpt-dialog{
    width:min(100%, 900px);
    max-height:min(90vh, 900px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .sentence-gpt-output{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    min-height:0;
    overflow-y:auto;
    padding:2px 3px 4px 0;
  }
  .sentence-gpt-output-section{
    padding:12px;
    border:1px solid var(--sentence-panel-border);
    border-radius:10px;
    background:var(--sentence-card-bg);
  }
  .sentence-gpt-output-section h4{
    margin:0 0 8px;
    color:var(--sentence-title);
    font-size:13px;
  }
  .sentence-gpt-output-section pre{
    margin:0;
    color:var(--sentence-text);
    font:12.5px/1.65 'IBM Plex Sans KR', sans-serif;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    user-select:text;
    -webkit-user-select:text;
  }
  .sentence-gpt-output-section textarea{
    min-height:330px;
    resize:vertical;
    padding:11px;
    border-color:var(--sentence-input-border);
    background:var(--sentence-input-bg);
    color:var(--sentence-text);
    font:12.5px/1.65 'IBM Plex Sans KR', sans-serif;
  }
  .sentence-gpt-dialog > .pdf-export-actions{
    flex:0 0 auto;
    padding-top:12px;
  }
  .sentence-translation{
    margin-top:10px;
    padding:9px 11px;
    border-radius:8px;
    background:var(--surface);
    color:#48554f;
    font-size:13.5px;
    line-height:1.65;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
  }
  .sentence-word-list{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    margin-top:10px;
    position:relative;
  }
  .sentence-word-chip,
  .memo-word-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    max-width:100%;
    padding:5px 7px 5px 10px;
    border:1px solid #d9c891;
    border-radius:999px;
    background:#f4e5b8;
    color:#493a18;
    font-size:12.5px;
    line-height:1.35;
  }
  .sentence-word-chip strong,
  .memo-word-chip strong{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    overflow-wrap:anywhere;
  }
  .word-drag-handle{
    flex:0 0 auto;
    width:22px;
    height:22px;
    margin-left:-5px;
    padding:0;
    border:0;
    border-radius:6px;
    background:rgba(73,58,24,0.08);
    color:#7d6b3c;
    font-size:15px;
    line-height:1;
    cursor:grab;
    touch-action:none;
    -webkit-user-select:none;
    user-select:none;
  }
  .word-drag-handle:hover{ background:rgba(73,58,24,0.15); }
  .word-drag-handle:active{ cursor:grabbing; }
  .word-drag-placeholder{
    flex:0 0 auto;
    border:2px dashed #c99a3b;
    border-radius:999px;
    background:rgba(201,154,59,0.12);
  }
  .reorderable-word-chip.word-dragging{
    position:fixed;
    z-index:2200;
    margin:0;
    pointer-events:none;
    opacity:0.96;
    cursor:grabbing;
    box-shadow:0 10px 24px rgba(42,33,13,0.25);
    transform:rotate(-1deg);
  }
  body.word-drag-active{
    cursor:grabbing;
    -webkit-user-select:none;
    user-select:none;
  }
  .sentence-chip-remove{
    flex:0 0 auto;
    width:21px;
    height:21px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(194,73,47,0.10);
    color:var(--bad);
    font-size:16px;
    line-height:1;
    cursor:pointer;
  }
  .sentence-chip-remove:hover{ background:rgba(194,73,47,0.18); }
  .sentence-card-actions{
    display:flex;
    gap:6px;
    margin-top:12px;
    flex-wrap:wrap;
  }
  .sentence-toggle-row{
    display:flex;
    justify-content:flex-end;
    gap:7px;
    margin-top:10px;
  }
  .sentence-details{
    margin-top:2px;
  }
  .sentence-bottom-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:14px;
  }
  .sentence-bottom-right-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:wrap;
  }
  .sentence-delete-btn{ margin-left:0; }
  .sentence-inline-editor{
    margin-top:12px;
    padding:12px;
    border:1px dashed #d3c49b;
    border-radius:9px;
    background:#faf4e4;
  }
  .sentence-word-form{
    display:flex;
    align-items:flex-end;
    gap:7px;
    flex-wrap:wrap;
  }
  .sentence-quick-word-form{
    display:flex;
    align-items:flex-end;
    gap:7px;
    padding-bottom:12px;
    margin-bottom:10px;
    border-bottom:1px dashed var(--sentence-editor-border);
  }
  .sentence-quick-word-form .sentence-word-field{ flex:1 1 auto; }
  .sentence-word-detail-label{
    margin:0 0 7px;
    color:var(--sentence-muted);
    font-size:11.5px;
    font-weight:700;
  }
  .sentence-word-field{ flex:1 1 150px; min-width:0; }
  .sentence-word-field.sentence-pos-field{ flex:0 1 112px; }
  .sentence-word-field label{ margin-bottom:4px; font-size:12px; }
  .sentence-word-field input,
  .sentence-word-field select{ width:100%; padding:8px 10px; font-size:13.5px; }
  .sentence-editor-label{ margin-bottom:7px; }
  .sentence-editor-textarea{
    min-height:120px;
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:14px;
    line-height:1.65;
  }
  .sentence-editor-actions{ display:flex; gap:7px; margin-top:9px; flex-wrap:wrap; }
  .sentence-empty{ padding:34px 10px; }

  /* 문장암기 전용 테마 적용 범위 */
  #panel-sentences .card-box{
    background:var(--sentence-panel-bg);
    border-color:var(--sentence-panel-border);
  }
  #panel-sentences .section-title{ color:var(--sentence-title); }
  #panel-sentences .sentence-card{
    background:var(--sentence-card-bg);
    border-color:var(--sentence-card-border);
  }
  #panel-sentences .sentence-card-collapsed{ cursor:pointer; }
  #panel-sentences .sentence-source{ color:var(--sentence-text); }
  #panel-sentences .sentence-add-help{
    background:var(--sentence-soft-bg);
    color:var(--sentence-muted);
  }
  #panel-sentences .sentence-translation{
    background:var(--sentence-soft-bg);
    color:var(--sentence-translation-text);
  }
  #panel-sentences .sentence-inline-editor{
    background:var(--sentence-editor-bg);
    border-color:var(--sentence-editor-border);
  }
  #panel-sentences label{ color:var(--sentence-muted); }
  #panel-sentences input[type=text],
  #panel-sentences textarea,
  #panel-sentences select{
    background:var(--sentence-input-bg);
    border-color:var(--sentence-input-border);
    color:var(--sentence-text);
  }
  #panel-sentences input[type=text]:focus,
  #panel-sentences textarea:focus,
  #panel-sentences select:focus{ outline:none; border-color:var(--sentence-focus); }
  body:not([data-sentence-theme="default"]) #panel-sentences input::placeholder,
  body:not([data-sentence-theme="default"]) #panel-sentences textarea::placeholder{
    color:var(--sentence-placeholder);
  }
  #panel-sentences .btn-accent{
    background:var(--sentence-accent);
    color:var(--sentence-accent-text);
  }
  #panel-sentences .btn-ghost{
    background:var(--sentence-ghost-bg);
    color:var(--sentence-text);
  }
  #panel-sentences .btn-ghost:hover{ background:var(--sentence-ghost-hover); }
  #panel-sentences .btn-line{
    background:var(--sentence-line-bg);
    border-color:var(--sentence-line-border);
    color:var(--sentence-text);
  }
  #panel-sentences .hidden-list-toggle.active{
    background:var(--sentence-accent);
    border-color:var(--sentence-accent);
    color:var(--sentence-accent-text);
  }
  #panel-sentences .sentence-favorite-btn.active{
    background:var(--sentence-chip-bg);
    border-color:var(--sentence-accent);
    color:var(--sentence-chip-text);
  }
  #panel-sentences .sentence-word-chip,
  body > .sentence-word-chip.word-dragging{
    background:var(--sentence-chip-bg);
    border-color:var(--sentence-chip-border);
    color:var(--sentence-chip-text);
  }
  #panel-sentences .sentence-word-chip strong,
  body > .sentence-word-chip.word-dragging strong{ color:var(--sentence-chip-text); }
  #panel-sentences .sentence-word-chip .word-drag-handle,
  body > .sentence-word-chip.word-dragging .word-drag-handle{
    background:var(--sentence-handle-bg);
    color:var(--sentence-handle-text);
  }
  #panel-sentences .sentence-word-chip .word-drag-handle:hover{
    background:var(--sentence-handle-hover);
  }
  #panel-sentences .word-drag-placeholder{
    border-color:var(--sentence-accent);
    background:var(--sentence-drag-bg);
  }
  #panel-sentences .empty-msg{ color:var(--sentence-empty-text); }
  .tab-btn[data-tab="sentences"].active{
    background:var(--sentence-accent);
    border-color:var(--sentence-accent);
    color:var(--sentence-accent-text);
  }
  .sentence-selection-tools{
    background:var(--sentence-tts-bg);
    border-color:var(--sentence-tts-border);
    color:var(--sentence-text);
  }
  .sentence-selection-tool{ color:var(--sentence-text); }
  .sentence-selection-tool:hover{ background:var(--sentence-tts-hover); }
  .sentence-selection-tool:focus-visible{ outline-color:var(--sentence-focus-ring); }

  .memo-add-input{
    min-height:100px;
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:14.5px;
  }
  .memo-title{
    flex:1 1 auto;
    min-width:0;
    color:var(--memo-title);
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:15px;
    font-weight:700;
    line-height:1.65;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
  }
  .memo-details-list{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-top:10px;
  }
  .memo-detail-item{
    padding:10px 11px;
    border:1px solid var(--memo-detail-border);
    border-radius:8px;
    background:var(--memo-detail-bg);
  }
  .memo-detail-text{
    color:var(--memo-detail-text);
    font-size:13.5px;
    line-height:1.65;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
  }
  .memo-item-actions{
    display:flex;
    justify-content:flex-end;
    gap:6px;
    margin-top:7px;
  }
  .memo-word-list{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    margin-top:10px;
    position:relative;
  }
  .memo-word-chip{
    background:var(--memo-chip-bg);
    border-color:var(--memo-chip-border);
    color:var(--memo-chip-text);
  }
  .memo-word-chip strong{ color:var(--memo-chip-strong); }
  .memo-word-chip .word-drag-handle{
    color:var(--memo-handle-text);
    background:var(--memo-handle-bg);
  }
  .memo-word-chip .word-drag-handle:hover{ background:var(--memo-handle-hover); }
  .memo-empty{ padding:34px 10px; }

  #panel-memos .card-box{
    background:var(--memo-panel-bg);
    border-color:var(--memo-panel-border);
  }
  #panel-memos .section-title{ color:var(--memo-title); }
  #panel-memos .sentence-add-help{
    background:var(--memo-soft-bg);
    color:var(--memo-muted);
  }
  #panel-memos .memo-card{
    background:var(--memo-card-bg);
    border-color:var(--memo-card-border);
  }
  #panel-memos .sentence-inline-editor{
    background:var(--memo-editor-bg);
    border-color:var(--memo-editor-border);
  }
  #panel-memos label{ color:var(--memo-muted); }
  #panel-memos input[type=text],
  #panel-memos textarea{
    background:var(--memo-input-bg);
    border-color:var(--memo-input-border);
    color:var(--memo-text);
  }
  #panel-memos input[type=text]:focus,
  #panel-memos textarea:focus{ border-color:var(--memo-focus); }
  #panel-memos input::placeholder,
  #panel-memos textarea::placeholder{ color:var(--memo-placeholder); }
  #panel-memos .btn-accent{
    background:var(--memo-accent);
    color:var(--memo-accent-text);
  }
  #panel-memos .btn-ghost{
    background:var(--memo-ghost-bg);
    color:var(--memo-text);
  }
  #panel-memos .btn-ghost:hover{ background:var(--memo-ghost-hover); }
  #panel-memos .btn-line{
    background:var(--memo-line-bg);
    border-color:var(--memo-line-border);
    color:var(--memo-text);
  }
  #panel-memos .hidden-list-toggle.active{
    background:var(--memo-accent);
    border-color:var(--memo-accent);
    color:var(--memo-accent-text);
  }
  #panel-memos .empty-msg{ color:var(--memo-empty-text); }

  .memo-card-drag-handle{
    flex:0 0 auto;
    width:24px;
    height:24px;
    margin-top:1px;
    margin-right:4px;
    padding:0;
    border:0;
    border-radius:6px;
    background:var(--memo-handle-bg);
    color:var(--memo-handle-text);
    font-size:16px;
    line-height:1;
    cursor:grab;
    touch-action:none;
    -webkit-user-select:none;
    user-select:none;
  }
  .memo-card-drag-handle:hover{ background:var(--memo-handle-hover); }
  .memo-card-drag-handle:active{ cursor:grabbing; }

  .memo-detail-drag-handle{
    flex:0 0 auto;
    width:20px;
    height:20px;
    margin-top:2px;
    padding:0;
    border:0;
    border-radius:4px;
    background:var(--memo-handle-bg);
    color:var(--memo-handle-text);
    font-size:14px;
    line-height:1;
    cursor:grab;
    touch-action:none;
    -webkit-user-select:none;
    user-select:none;
  }
  .memo-detail-drag-handle:hover{ background:var(--memo-handle-hover); }
  .memo-detail-drag-handle:active{ cursor:grabbing; }

  .memo-card-placeholder{
    border:2px dashed var(--memo-accent);
    border-radius:12px;
    background:var(--memo-drag-bg);
    margin-bottom:10px;
    box-sizing:border-box;
  }

  .memo-detail-placeholder{
    border:2px dashed var(--memo-accent);
    border-radius:8px;
    background:var(--memo-drag-bg);
    margin-bottom:8px;
    box-sizing:border-box;
  }

  .memo-card.memo-card-dragging{
    position:fixed;
    z-index:2500;
    margin:0;
    pointer-events:none;
    opacity:0.94;
    cursor:grabbing;
    box-shadow:0 14px 35px rgba(0,0,0,0.28);
    transform:rotate(-0.5deg);
  }

  .memo-detail-item.memo-detail-dragging{
    position:fixed;
    z-index:2500;
    margin:0;
    pointer-events:none;
    opacity:0.95;
    cursor:grabbing;
    box-shadow:0 10px 24px rgba(0,0,0,0.22);
    transform:rotate(-0.5deg);
  }

  #panel-memos .word-drag-placeholder{
    border-color:var(--memo-accent);
    background:var(--memo-drag-bg);
  }
  body > .memo-word-chip.word-dragging{
    background:var(--memo-chip-bg);
    border-color:var(--memo-chip-border);
    color:var(--memo-chip-text);
  }
  body > .memo-word-chip.word-dragging strong{ color:var(--memo-chip-strong); }
  body > .memo-word-chip.word-dragging .word-drag-handle{
    background:var(--memo-handle-bg);
    color:var(--memo-handle-text);
  }
  .tab-btn[data-tab="memos"].active{
    background:var(--memo-accent);
    border-color:var(--memo-accent);
    color:var(--memo-accent-text);
  }

  #panel-schedule{
    --schedule-panel-bg:var(--card);
    --schedule-panel-border:var(--card-edge);
    --schedule-card-bg:var(--card);
    --schedule-card-border:var(--card-edge);
    --schedule-title:var(--ink);
    --schedule-text:var(--ink);
    --schedule-muted:var(--muted);
    --schedule-soft:var(--surface);
    --schedule-accent:var(--accent-soft);
    --schedule-accent-strong:var(--accent);
    --schedule-line:var(--card-edge);
  }
  #panel-schedule .card-box{
    background:var(--schedule-panel-bg);
    border-color:var(--schedule-panel-border);
  }
  #panel-schedule .section-title{ color:var(--schedule-title); }
  .tab-btn[data-tab="schedule"].active{
    background:#aed5c2;
    border-color:#aed5c2;
    color:#29483b;
  }
  .schedule-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:14px;
  }
  .schedule-toolbar .section-title{ margin:0; }
  .schedule-toolbar-actions{ display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
  #panel-schedule .btn-accent{ background:var(--schedule-accent); color:#29483b; }
  #panel-schedule .btn-ghost{ background:var(--schedule-soft); color:var(--schedule-text); }
  #panel-schedule .btn-ghost:hover{ background:#dcefe5; }
  #panel-schedule .btn-line{
    background:transparent;
    border-color:var(--schedule-line);
    color:var(--schedule-text);
  }
  .schedule-calendar{
    overflow:hidden;
    border:1px solid var(--schedule-line);
    border-radius:13px;
    background:var(--schedule-card-bg);
  }
  .schedule-month-nav{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto auto;
    align-items:center;
    gap:7px;
    padding:11px;
    border-bottom:1px solid var(--schedule-line);
    background:var(--schedule-soft);
  }
  .schedule-month-title{
    margin:0;
    color:var(--schedule-title);
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:17px;
    font-weight:800;
    text-align:center;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:2px;
  }
  .schedule-month-title-button{
    padding:3px 4px;
    border:0;
    border-bottom:1px dashed transparent;
    border-radius:5px;
    background:transparent;
    color:inherit;
    font:inherit;
    cursor:text;
  }
  .schedule-month-title-button:hover,
  .schedule-month-title-button:focus-visible{
    outline:none;
    border-bottom-color:var(--schedule-accent-strong);
    background:rgba(255,255,255,0.5);
  }
  .schedule-month-jump{
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:7px;
    padding:10px 11px;
    border-bottom:1px solid var(--schedule-line);
    background:#f1f8f4;
  }
  .schedule-month-jump[hidden]{ display:none; }
  .schedule-date-pick-banner{
    padding:8px 11px;
    border-bottom:1px solid var(--schedule-line);
    background:#dff2e8;
    color:#365d4c;
    font-size:12px;
    font-weight:750;
    text-align:center;
  }
  .schedule-date-pick-banner[hidden]{ display:none; }
  .schedule-calendar.schedule-date-picking{
    box-shadow:0 0 0 3px rgba(111,169,140,0.24);
  }
  .schedule-month-jump-field{
    display:flex;
    align-items:center;
    gap:5px;
    margin:0;
    color:var(--schedule-text);
  }
  .schedule-month-jump-field input{
    width:88px;
    padding:7px 8px;
    text-align:center;
  }
  .schedule-month-jump-field.month input{ width:62px; }
  .schedule-add-wide{
    width:100%;
    min-height:34px;
    margin-top:9px;
    padding:7px 12px;
    font-size:12.5px;
  }
  .schedule-month-arrow{
    width:36px;
    height:34px;
    padding:0;
    font-size:22px;
    line-height:1;
  }
  .schedule-weekdays,
  .schedule-days{ display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); }
  .schedule-weekday{
    padding:8px 2px;
    color:var(--schedule-muted);
    font-size:11.5px;
    font-weight:700;
    text-align:center;
    border-bottom:1px solid var(--schedule-line);
  }
  .schedule-weekday:first-child{ color:#b45f5f; }
  .schedule-weekday:last-child{ color:#5f78aa; }
  .schedule-day{
    position:relative;
    min-height:76px;
    padding:8px 7px;
    border:0;
    border-right:1px solid #e2eee7;
    border-bottom:1px solid #e2eee7;
    background:var(--schedule-card-bg);
    color:var(--schedule-text);
    font-family:'IBM Plex Sans KR', sans-serif;
    cursor:pointer;
    text-align:left;
  }
  .schedule-day:nth-child(7n){ border-right:0; }
  .schedule-day:nth-last-child(-n+7){ border-bottom:0; }
  .schedule-day:hover{ background:#f0f8f3; }
  .schedule-day.outside{ color:#a9b8b0; background:#f8fbf9; }
  .schedule-day.selected{
    background:#e1f2e9;
    outline:2px solid var(--schedule-accent-strong);
    outline-offset:-2px;
    z-index:1;
  }
  .schedule-day.today .schedule-day-number{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:25px;
    height:25px;
    padding:0 5px;
    border-radius:999px;
    background:var(--schedule-accent-strong);
    color:#fff;
  }
  .schedule-day-number{ font-size:12.5px; font-weight:750; }
  .schedule-day-count{
    display:block;
    width:max-content;
    max-width:100%;
    margin-top:7px;
    padding:2px 6px;
    border-radius:999px;
    background:var(--schedule-soft);
    color:var(--schedule-text);
    font-size:10.5px;
    font-weight:750;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .schedule-day-count.complete{ opacity:0.58; text-decoration:line-through; }
  .schedule-day.has-items{ background:#eef7f1; }
  .schedule-day-priority{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:4px;
    pointer-events:none;
  }
  .schedule-day-priority.priority-high{ background:#d78078; }
  .schedule-day-priority.priority-medium{ background:#d8ad58; }
  .schedule-day-priority.priority-low{ background:#7aa7c9; }
  .selftest-panel{
    margin:0 0 16px;
    padding:14px;
    border:1px solid var(--card-edge);
    border-radius:14px;
    background:var(--card);
    color:var(--ink);
  }
  .selftest-panel[hidden]{ display:none; }
  .selftest-panel h3{ margin:0 0 8px; font-size:16px; }
  .selftest-log{
    max-height:320px;
    overflow:auto;
    margin:10px 0 0;
    padding:10px 12px;
    border-radius:10px;
    background:var(--surface);
    font:12.5px/1.55 'IBM Plex Mono', monospace;
    white-space:pre-wrap;
  }
  .selftest-pass{ color:#34774e; }
  .selftest-fail{ color:#b4413c; }
  .word-drag-handle:focus-visible{
    outline:2px solid var(--accent);
    outline-offset:1px;
  }

  .schedule-selected-section{ margin-top:18px; }
  .schedule-selected-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
  }
  .schedule-selected-heading h4{
    margin:0;
    color:var(--schedule-title);
    font-size:16px;
    line-height:1.45;
  }
  .schedule-selected-count{ color:var(--schedule-muted); font-size:12px; font-weight:650; }
  .schedule-form{
    margin-bottom:14px;
    padding:14px;
    border:1px solid var(--schedule-line);
    border-radius:11px;
    background:#f1f8f4;
  }
  .schedule-form[hidden]{ display:none; }
  .schedule-form-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
  }
  .schedule-form-heading-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
  }
  .schedule-form-title{ margin:0; color:var(--schedule-title); font-size:15px; }
  .schedule-form-grid{
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(110px,0.7fr);
    gap:11px;
  }
  .schedule-field-wide{ grid-column:1 / -1; }
  .schedule-repeat-extra{
    grid-column:1 / -1;
    min-width:0;
    box-sizing:border-box;
    margin:0;
    padding:11px;
    border:1px solid var(--schedule-line);
    border-radius:9px;
    background:rgba(255,255,255,0.46);
  }
  .schedule-repeat-extra[hidden],
  .schedule-sequence-range[hidden]{ display:none; }
  .schedule-repeat-extra legend{
    padding:0 5px;
    color:var(--schedule-muted);
    font-size:12.5px;
    font-weight:700;
  }
  .schedule-weekday-options{
    display:grid;
    grid-template-columns:repeat(7, minmax(0,1fr));
    gap:6px;
  }
  #panel-schedule .schedule-weekday-option{
    position:relative;
    margin:0;
    cursor:pointer;
  }
  .schedule-weekday-option input{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
  }
  .schedule-weekday-option span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    border:1.5px solid var(--schedule-line);
    border-radius:8px;
    background:var(--schedule-card-bg);
    color:var(--schedule-text);
    font-size:12.5px;
    font-weight:700;
  }
  .schedule-weekday-option input:checked + span{
    border-color:var(--schedule-accent-strong);
    background:var(--schedule-accent);
    color:#29483b;
  }
  .schedule-weekday-option input:focus-visible + span{
    outline:2px solid var(--schedule-accent-strong);
    outline-offset:2px;
  }
  #panel-schedule .schedule-sequence-toggle{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    color:var(--schedule-text);
    cursor:pointer;
  }
  .schedule-sequence-toggle input{ width:auto; accent-color:var(--schedule-accent-strong); }
  .schedule-sequence-range{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:end;
    gap:8px;
    margin-top:10px;
  }
  .schedule-sequence-range-mark{
    padding-bottom:10px;
    color:var(--schedule-muted);
    font-weight:800;
  }
  .schedule-sequence-help{
    margin-top:5px;
    color:var(--schedule-muted);
    font-size:11.5px;
    line-height:1.45;
  }
  #panel-schedule label{ color:var(--schedule-muted); }
  #panel-schedule input[type=text],
  #panel-schedule input[type=date],
  #panel-schedule input[type=time],
  #panel-schedule input[type=number],
  #panel-schedule textarea,
  #panel-schedule select{
    width:100%;
    box-sizing:border-box;
    padding:10px 11px;
    border:1.5px solid var(--schedule-line);
    border-radius:9px;
    background:var(--schedule-card-bg);
    color:var(--schedule-text);
    font:14px/1.4 'IBM Plex Sans KR', sans-serif;
  }
  #panel-schedule input:focus,
  #panel-schedule textarea:focus,
  #panel-schedule select:focus{
    outline:none;
    border-color:var(--schedule-accent-strong);
  }
  #panel-schedule textarea{ min-height:82px; resize:vertical; }
  #panel-schedule .schedule-month-jump-field input{ width:88px; }
  #panel-schedule .schedule-month-jump-field.month input{ width:62px; }
  #scheduleDateInput[readonly]{
    cursor:pointer;
    background:#f7fcf9;
  }
  .schedule-list{ display:flex; flex-direction:column; gap:9px; }
  .schedule-item{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:10px;
    align-items:flex-start;
    padding:12px;
    border:1px solid var(--schedule-card-border);
    border-left:4px solid var(--schedule-line);
    border-radius:10px;
    background:var(--schedule-card-bg);
  }
  .schedule-item.priority-high{ border-left-color:#d78078; }
  .schedule-item.priority-medium{ border-left-color:#d8ad58; }
  .schedule-item.priority-low{ border-left-color:#7aa7c9; }
  .schedule-item.completed{ opacity:0.62; }
  .schedule-check{
    display:flex;
    align-items:center;
    justify-content:center;
    width:25px;
    height:25px;
    padding:0;
    margin-top:1px;
    border:1.5px solid var(--schedule-accent-strong);
    border-radius:7px;
    background:#fff;
    color:#fff;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
  }
  .schedule-check.checked{ background:var(--schedule-accent-strong); }
  .schedule-item-main{ min-width:0; }
  .schedule-item-title{
    color:var(--schedule-title);
    font-size:14px;
    font-weight:750;
    line-height:1.5;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
  }
  .schedule-item.completed .schedule-item-title{ text-decoration:line-through; }
  .schedule-item-meta{ display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
  .schedule-badge{
    display:inline-flex;
    align-items:center;
    min-height:23px;
    padding:2px 7px;
    border-radius:999px;
    background:var(--schedule-soft);
    color:var(--schedule-text);
    font-size:11px;
    font-weight:650;
  }
  .schedule-badge.priority-high{ background:#f8dedb; color:#8b403b; }
  .schedule-badge.priority-medium{ background:#f8eccf; color:#7b5a1d; }
  .schedule-badge.priority-low{ background:#e2eef7; color:#3f6682; }
  .schedule-item-memo{
    margin-top:8px;
    padding:8px 9px;
    border-radius:7px;
    background:#f1f8f4;
    color:var(--schedule-muted);
    font-size:12.5px;
    line-height:1.55;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
  }
  .schedule-item-actions{ display:flex; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
  .schedule-empty{
    padding:27px 10px;
    color:var(--schedule-muted);
    font-size:13px;
    text-align:center;
  }

  .sentence-export-modal[hidden]{ display:none; }
  .sentence-filename-field{ margin-top:13px; }

  .quiz-idle{ text-align:center; padding: 30px 10px; }
  .quiz-idle p{ color: var(--muted); font-size:14px; margin-bottom:18px; }

  .flashcard{
    position:relative;
    background: var(--card);
    border:1px solid var(--card-edge);
    border-radius: 14px;
    padding: 38px 24px 26px;
    text-align:center;
    box-shadow: 0 14px 34px rgba(0,0,0,0.25);
    transform: rotate(-0.4deg);
  }
  .flashcard::before{
    content:"";
    position:absolute; top:14px; left:50%; transform:translateX(-50%);
    width:14px; height:14px; border-radius:50%;
    background: var(--bg-deep);
    box-shadow: inset 0 2px 3px rgba(0,0,0,0.5);
  }
  .fc-progress{ font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--muted); margin-bottom:10px; }
  .fc-word{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap:wrap;
    gap: 8px;
    font-family:'IBM Plex Mono', monospace;
    font-weight:600; 
    font-size: 30px; 
    color: var(--ink);
    margin: 6px 0 4px; 
    word-break: break-word;
  }
  .quiz-pronunciation{
    color:var(--muted);
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:14px;
    font-weight:600;
    line-height:1.45;
  }
  .fc-pronunciation{ margin:-1px 0 7px; }
  .quiz-speak-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:36px;
    min-width:36px;
    height:36px;
    padding:0;
    border:1px solid #c9ad5d;
    border-radius:50%;
    background:var(--card);
    color:var(--ink);
    font:16px/1 sans-serif;
    cursor:pointer;
    vertical-align:middle;
  }
  .quiz-speak-btn:hover{ background:var(--surface-hover); }
  .quiz-speak-btn:focus-visible{
    outline:3px solid rgba(210,169,39,0.35);
    outline-offset:2px;
  }
  .game-favorite-btn{
    display:inline-flex; align-items:center; justify-content:center;
    width:36px; min-width:36px; height:36px; padding:0;
    border:1px solid #d8cdae; border-radius:50%; background:var(--card);
    color:#9a8c6b; font:700 20px/1 sans-serif; cursor:pointer;
  }
  .game-favorite-btn:hover{ border-color:var(--accent); background:var(--card); }
  .game-favorite-btn.active{
    border-color:#c69d24; background:#fff1b8; color:#a86f00;
    box-shadow:0 0 0 2px rgba(242,201,76,0.16);
  }
  .game-favorite-btn:focus-visible{
    outline:3px solid rgba(210,169,39,0.35);
    outline-offset:2px;
  }
  .fc-answer-row{ display:flex; gap:8px; margin: 14px 0 6px; }
  .fc-answer-row input{ flex:1; text-align:center; font-size:16px; }
  .meaning-recall-card .fc-answer-row input{min-width:0}
  .meaning-recall-card .fc-answer-row button{flex-shrink:0}
  .meaning-recall-help{font-size:12px;color:var(--muted);line-height:1.6;margin:14px 0 0}
  .meaning-recall-label{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-bottom:5px}
  .meaning-recall-answer-heading{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:5px}
  .meaning-recall-answer-heading .meaning-recall-label{margin:0}
  .meaning-recall-review{display:inline-flex;align-items:center;gap:5px;min-height:28px;margin:0;font-size:12px;font-weight:400;line-height:1.5;color:var(--muted);cursor:pointer}
  .meaning-recall-review input[type="checkbox"]{width:13px;height:13px;min-height:0;padding:0;margin:0;flex:0 0 13px;accent-color:#c58938;cursor:pointer}
  .meaning-recall-review:has(input:checked){color:#ad752e}
  .meaning-recall-input{white-space:pre-wrap;overflow-wrap:anywhere}
  .meaning-recall-footer{margin-top:14px;text-align:left}
  .meaning-recall-pronunciation{font-size:12px;line-height:1.5;font-weight:400;color:#8b9099;overflow-wrap:anywhere}
  .fc-feedback{ min-height: 26px; font-size:14px; font-weight:600; margin-top:6px; }
  .fc-answer-reveal{ margin-top:8px; color:var(--ink); font-size:17px; font-weight:700; line-height:1.6; overflow-wrap:anywhere; }
  .fc-answer-reveal strong{ font-weight:700; }
  .fc-feedback-notice{ margin-top:6px; color:var(--muted); font-size:12px; font-weight:400; line-height:1.6; overflow-wrap:anywhere; }

  .summary{ text-align:center; padding: 10px; }
  .summary h4{ font-family:'Fraunces', serif; font-size:22px; margin-bottom: 14px; }
  .summary-grid{ display:flex; justify-content:center; gap:18px; flex-wrap:wrap; margin-bottom: 20px; }
  .summary-grid div{ font-size:13px; color:var(--muted); }
  .summary-grid strong{ display:block; font-size:22px; color:var(--ink); font-family:'IBM Plex Mono', monospace; }

  .game-menu{ text-align:left; max-width:680px; margin:0 auto; }
  .game-menu h3{ text-align:center; }
  .game-mode-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin:14px 0 18px; }
  .game-mode-card{
    min-height:96px; padding:15px 12px; border:1.5px solid var(--card-edge); border-radius:13px;
    background:var(--card); color:var(--ink); cursor:pointer; text-align:center;
    font-family:'IBM Plex Sans KR', sans-serif;
  }
  .game-mode-card strong{ display:block; font-size:20px; margin-bottom:5px; }
  .game-mode-card span{ color:var(--muted); font-size:12.5px; line-height:1.45; }
  .game-mode-card.active{ border-color:var(--accent); background:var(--accent-soft); box-shadow:0 0 0 2px rgba(242,201,76,0.2); }
  .game-config{ max-width:430px; margin:0 auto; padding:14px; border-radius:12px; background:var(--surface); }
  .game-config select{ width:100%; }
  .game-taxonomy-filters{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:11px; }
  .game-taxonomy-filters label{ min-width:0; margin:0; }
  .game-taxonomy-filters span{ display:block; margin-bottom:5px; color:var(--muted); font-size:12px; font-weight:700; }
  .game-pool-info{ min-height:20px; margin:9px 0 0; color:var(--muted); font-size:12.5px; line-height:1.55; }
  .game-start-row{ display:flex; justify-content:center; margin-top:16px; }
  .quiz-session-toolbar{
    display:flex; justify-content:flex-end; gap:7px; max-width:720px; margin:0 auto 9px;
  }
  .quiz-repeat-btn{
    display:inline-flex; align-items:center; justify-content:center;
    width:40px; min-width:40px; padding:0; font-size:18px;
  }
  .quiz-repeat-btn.active{
    border-color:var(--accent); background:var(--accent-soft); color:var(--accent);
    box-shadow:0 0 0 2px var(--focus-ring);
  }
  .quiz-exit-btn{ color:#8f483d; border-color:#d9b9ae; background:#fffaf7; }
  .quiz-exit-btn:hover{ color:var(--bad); border-color:var(--bad); background:#fff0ed; }

  .spelling-mode-config{ max-width:430px; margin:0 auto 12px; padding:13px 14px; border:1px solid var(--card-edge); border-radius:12px; background:var(--surface); }
  .spelling-mode-config[hidden]{ display:none; }
  .spelling-mode-label{ display:block; margin-bottom:8px; color:var(--muted); font-size:12.5px; font-weight:700; }
  .spelling-mode-toggle{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:7px; }
  .spelling-mode-btn{
    min-height:50px; padding:8px 9px; border:1.5px solid #d8cdae; border-radius:10px;
    background:#fff; color:var(--ink); cursor:pointer; font:700 14px/1.3 'IBM Plex Sans KR', sans-serif;
  }
  .spelling-mode-btn small{ display:block; margin-top:3px; color:var(--muted); font-size:10.5px; font-weight:500; }
  .spelling-mode-btn.active{ border-color:var(--accent); background:var(--accent-soft); box-shadow:0 0 0 2px var(--focus-ring); }

  .spelling-card{
    position:relative; max-width:720px; min-height:460px; margin:0 auto;
    padding:24px 24px 22px; border:1px solid var(--card-edge); border-radius:16px;
    background:var(--card); box-shadow:0 14px 34px rgba(0,0,0,0.22); text-align:center;
  }
  .spelling-topline{ display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--muted); font-size:12px; }
  .spelling-mode-chip{ padding:5px 9px; border-radius:999px; background:var(--surface); color:var(--ink); font-weight:700; white-space:nowrap; }
  .spelling-meaning-stage{ min-height:112px; margin:46px auto 0; display:flex; align-items:center; justify-content:center; }
  .spelling-def-list{ display:grid; gap:9px; width:min(100%, 590px); }
  .spelling-def-row{ display:flex; align-items:flex-start; justify-content:center; gap:8px; color:var(--ink); font-size:20px; line-height:1.5; font-weight:650; }
  .spelling-def-row .badge{ flex:0 0 auto; margin-top:3px; }
  .spelling-answer-zone{ max-width:540px; margin:clamp(48px, 8vh, 78px) auto 0; }
  .spelling-answer-row{ display:flex; gap:8px; align-items:stretch; }
  .spelling-input{ flex:1; min-width:0; text-align:center; font:700 18px/1.4 'IBM Plex Mono', monospace; letter-spacing:.015em; }
  .spelling-input.practice::placeholder{ color:rgba(44, 40, 31, 0.16); opacity:1; }
  .spelling-input.test::placeholder{ color:var(--muted); opacity:.72; font-family:'IBM Plex Sans KR', sans-serif; font-weight:500; letter-spacing:0; }
  .spelling-feedback{ min-height:58px; margin-top:10px; font-size:14px; font-weight:700; line-height:1.55; }
  .spelling-feedback.correct{ color:var(--good); }
  .spelling-feedback.wrong{ color:var(--bad); }
  .spelling-feedback.skip{ color:var(--muted); }
  .answer-diff-line{ color:var(--ink); }
  .spelling-feedback .answer-diff-line,
  .answer-diff{
    color:var(--ink); font-family:'IBM Plex Mono', monospace; font-weight:700;
    letter-spacing:.01em; white-space:pre-wrap; overflow-wrap:anywhere;
  }
  .answer-diff-wrong,
  .answer-diff-missing{
    color:var(--bad); background:rgba(194,73,47,0.10); border-radius:3px;
    font-weight:900; text-decoration:underline 2px var(--bad); text-underline-offset:3px;
  }
  .answer-diff-missing{ padding:0 2px; }
  .spelling-reveal-word{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:7px; margin-top:4px; color:var(--ink); font:700 23px/1.3 'IBM Plex Mono', monospace; }
  .spelling-reveal-word .quiz-speak-btn{ width:31px; min-width:31px; height:31px; font-size:14px; }
  .spelling-reveal-word .game-favorite-btn{ width:31px; min-width:31px; height:31px; font-size:17px; }
  .spelling-reveal-defs{ margin-top:5px; color:var(--muted); font-size:12px; font-weight:500; }
  .spelling-actions{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:13px; }
  .spelling-input.invalid{ animation:spelling-shake .22s linear 1; border-color:var(--bad); }
  @keyframes spelling-shake{
    0%,100%{ transform:translateX(0); }
    25%{ transform:translateX(-5px); }
    75%{ transform:translateX(5px); }
  }

  .tracing-card{
    position:relative; max-width:720px; min-height:500px; margin:0 auto;
    padding:24px 24px 28px; border:1px solid var(--card-edge); border-radius:16px;
    background:var(--card); box-shadow:0 14px 34px rgba(0,0,0,0.22); text-align:center;
  }
  .tracing-topline{ display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--muted); font-size:12px; }
  .tracing-word-row{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:9px; margin:42px 0 3px; }
  .tracing-word{ color:var(--ink); font:700 31px/1.3 'IBM Plex Mono', monospace; word-break:break-word; }
  .tracing-pronunciation{ margin-bottom:26px; }
  .tracing-entry-row{
    display:grid; grid-template-columns:minmax(0,1fr) auto;
    align-items:stretch; gap:8px; width:min(100%, 590px); margin:0 auto;
  }
  .tracing-nav-arrow{
    display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0;
    border:1px solid #d8cdae; border-radius:11px; background:#fff; color:var(--ink);
    font:800 24px/1 'IBM Plex Sans KR', sans-serif; cursor:pointer;
  }
  .tracing-nav-arrow:hover:not(:disabled){ border-color:var(--accent); background:var(--accent-soft); }
  .tracing-nav-arrow:disabled{ opacity:.28; cursor:default; }
  .tracing-input{
    min-width:0; text-align:center; color:var(--ink);
    font:700 17px/1.4 'IBM Plex Mono', monospace;
  }
  .tracing-input.tracing-wrong{ color:var(--bad); }
  .tracing-input.tracing-correct,
  .tracing-input.tracing-correct:disabled{
    opacity:1; color:#176a3a; border-color:#83c79d; background:#eaf8ef;
    -webkit-text-fill-color:#176a3a; cursor:default;
  }
  .tracing-meaning-stage{
    display:grid; grid-template-columns:min(300px, 100%); justify-content:start;
    box-sizing:border-box; width:min(100%, 680px); margin:34px auto 14px;
    padding:0 64px;
  }
  .tracing-meaning-label{ margin-bottom:10px; color:var(--muted); font-size:12px; font-weight:700; }
  .tracing-meaning-list{ display:grid; gap:8px; }
  .tracing-meaning-row{ display:flex; align-items:flex-start; justify-content:center; gap:8px; color:var(--ink); font-size:18px; line-height:1.55; font-weight:650; }
  .tracing-meaning-row .badge{ flex:0 0 auto; margin-top:3px; }
  .tracing-meaning-separator{ color:var(--muted); font-weight:700; }
  .tracing-meaning-entry-row{
    display:grid; grid-template-columns:min(300px, 100%); justify-content:start;
    align-items:center; gap:10px; width:100%; margin:0;
  }
  .tracing-meaning-entry-row .tracing-input{ width:100%; }
  .tracing-meaning-entry-row .btn{ justify-self:center; }
  .tracing-meaning-navigation{
    display:grid; grid-template-columns:52px minmax(0,1fr) 52px;
    align-items:start; gap:12px; width:min(100%, 680px); margin:0 auto;
  }
  .tracing-side-nav{ min-height:170px; font-size:34px; }
  .tracing-meaning-input{
    min-height:170px; padding:18px 20px; resize:vertical; text-align:left;
    font:700 20px/1.65 'IBM Plex Sans KR', sans-serif;
  }
  .tracing-note{ min-height:22px; margin-top:12px; color:var(--muted); font-size:11.5px; }

  .tracing-complete{ max-width:620px; margin:0 auto; padding:54px 24px; text-align:center; }
  .tracing-complete-rate{ color:var(--ink); font:700 58px/1 'IBM Plex Mono', monospace; }
  .tracing-complete h4{ margin:13px 0 7px; font-family:'Fraunces', serif; font-size:25px; }
  .tracing-complete p{ color:var(--muted); font-size:13px; }
  .tracing-complete-actions{ display:flex; justify-content:center; gap:9px; flex-wrap:wrap; margin-top:25px; }

  .quiz-history-nav{ display:flex; align-items:center; justify-content:center; gap:9px; min-height:34px; margin-top:10px; }
  .quiz-history-nav-label{ min-width:104px; color:var(--muted); font-size:11.5px; font-weight:700; }
  .quiz-history-arrow{
    display:inline-flex; align-items:center; justify-content:center; width:34px; min-width:34px; height:30px;
    padding:0; border:1px solid #d8cdae; border-radius:999px; background:#fff; color:var(--ink);
    font:800 21px/1 'IBM Plex Sans KR', sans-serif; cursor:pointer;
  }
  .quiz-history-arrow:hover:not(:disabled){ border-color:var(--accent); background:var(--accent-soft); }
  .quiz-history-arrow:disabled{ opacity:.28; cursor:default; }
  .quiz-history-review{
    max-width:720px; min-height:430px; margin:0 auto; padding:24px; border:1px solid var(--card-edge);
    border-radius:16px; background:var(--card); box-shadow:0 14px 34px rgba(0,0,0,0.22); text-align:center;
  }
  .quiz-history-kicker{ margin-top:38px; color:var(--muted); font-size:12px; font-weight:700; }
  .quiz-history-status{ margin-top:10px; font-size:19px; font-weight:800; }
  .quiz-history-status.correct{ color:var(--good); }
  .quiz-history-status.wrong{ color:var(--bad); }
  .quiz-history-status.skip{ color:var(--muted); }
  .quiz-history-word{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:18px; color:var(--ink); font:700 29px/1.3 'IBM Plex Mono', monospace; }
  .quiz-history-meaning{ max-width:590px; margin:22px auto 0; color:var(--ink); font-size:17px; line-height:1.65; font-weight:650; }
  .quiz-history-detail{ max-width:590px; margin:13px auto 0; color:var(--muted); font-size:12.5px; line-height:1.6; }

  .game-card{
    position:relative; max-width:720px; min-height:430px; margin:0 auto;
    padding:24px 24px 22px; border:1px solid var(--card-edge); border-radius:16px;
    background:var(--card); box-shadow:0 14px 34px rgba(0,0,0,0.22); text-align:center;
  }
  .game-topline{ display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--muted); font-size:12px; }
  .game-score{ white-space:nowrap; }
  .game-timer-wrap{ display:flex; align-items:center; gap:8px; min-width:126px; justify-content:flex-end; }
  .game-timer-number{ width:25px; color:var(--ink); font-family:'IBM Plex Mono', monospace; font-weight:700; }
  .game-timer-track{ width:90px; height:7px; overflow:hidden; border-radius:999px; background:#e8dfc8; }
  .game-timer-fill{ width:100%; height:100%; background:var(--accent); transition:width .1s linear, background .15s ease; }
  .game-timer-fill.danger{ background:var(--bad); }
  .game-word-row{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:9px; margin:54px 0 8px; }
  .game-word{ font:700 31px/1.25 'IBM Plex Mono', monospace; color:var(--ink); word-break:break-word; }
  .game-word-row.has-pronunciation{ margin-bottom:2px; }
  .game-pronunciation{ margin-bottom:8px; }
  .game-pos{ display:flex; justify-content:center; flex-wrap:wrap; gap:6px; margin-bottom:24px; }
  .game-practice-answer-row{ display:flex; justify-content:flex-end; max-width:590px; margin:-9px auto 0; }
  .game-practice-answer-row + .game-choice-list{ margin-top:9px; }
  .game-choice-list{ display:grid; gap:9px; max-width:590px; margin:18px auto 0; }
  .game-choice-btn{
    width:100%; padding:12px 14px; border:1.5px solid #d8cdae; border-radius:11px;
    background:#fff; color:var(--ink); font:600 14px/1.5 'IBM Plex Sans KR', sans-serif;
    cursor:pointer; text-align:left;
  }
  .game-choice-btn:hover{ border-color:var(--accent); background:#fffaf0; }
  .game-choice-number{ display:inline-block; width:26px; color:var(--accent); font-family:'IBM Plex Mono', monospace; }
  .game-card.answered .game-choice-btn{ pointer-events:none; }
  .game-choice-btn.correct-answer{ border-color:var(--good); background:#eef9f1; }
  .game-choice-btn.wrong-answer{ border-color:var(--bad); background:#fff0ed; }
  .game-feedback{ min-height:53px; margin-top:15px; font-weight:700; font-size:14px; line-height:1.55; }
  .game-feedback.correct{ color:var(--good); }
  .game-feedback.wrong{ color:var(--bad); }
  .game-feedback small{ display:block; color:var(--muted); font-size:12.5px; font-weight:500; }
  .game-pass-row{ display:flex; justify-content:center; margin-top:13px; }

  .game-summary{ max-width:760px; margin:0 auto; }
  .game-summary-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; padding:12px 8px 18px; border-bottom:1px solid var(--card-edge); }
  .game-rate{ font:700 52px/1 'IBM Plex Mono', monospace; color:var(--ink); }
  .game-rate small{ font:600 13px/1.3 'IBM Plex Sans KR', sans-serif; color:var(--muted); }
  .game-counts{ padding:9px 15px; border-radius:999px; background:#fff; color:var(--muted); font-weight:700; white-space:nowrap; }
  .game-summary-sub{ margin:9px 8px 0; color:var(--muted); font-size:12.5px; }
  .game-result-controls{ display:flex; justify-content:space-between; align-items:center; gap:8px; margin:15px 0 8px; flex-wrap:wrap; }
  .game-result-list{ border-top:1px solid var(--card-edge); }
  .game-result-row{ display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; align-items:start; padding:16px 6px; border-bottom:1px solid var(--card-edge); text-align:left; }
  .game-result-mark{ font-size:19px; font-weight:800; }
  .game-result-mark.correct{ color:#22a9cd; }
  .game-result-mark.wrong{ color:var(--bad); }
  .game-result-mark.neutral{color:var(--muted);font-size:11px;font-weight:400;line-height:1.6}
  .game-result-word{ font-family:'IBM Plex Mono', monospace; font-weight:700; word-break:break-word; }
  .game-result-word-line{ display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
  .game-result-word-line .quiz-speak-btn{ width:30px; min-width:30px; height:30px; font-size:14px; }
  .game-result-word-line .game-favorite-btn{ width:30px; min-width:30px; height:30px; font-size:17px; }
  .game-result-pronunciation{ margin-top:2px; font-size:12px; font-weight:600; }
  .game-result-word .badge{ margin-top:5px; }
  .game-result-meaning{ color:var(--muted); font-size:13px; line-height:1.55; }
  .game-result-detail{ display:block; margin-top:4px; color:#8c7d60; font-size:11.5px; }
  .game-summary-actions{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:18px; }
  .quiz-result-summary{ padding-bottom:120px; }
  .quiz-result-body{ min-width:0; }
  .quiz-result-row-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
  .quiz-result-row-head .game-result-word{ min-width:0; }
  .quiz-result-selection{ flex-shrink:0; }
  .quiz-result-select{ min-height:36px; white-space:nowrap; font-size:12px; }
  .quiz-result-select.active{ background:#edf6ef; color:#356a49; border-color:#80aa8b; }
  .quiz-result-auto-review{ display:inline-block; padding:9px 0; color:var(--muted); font:600 12px/1.5 'IBM Plex Sans KR',sans-serif; white-space:nowrap; }
  .quiz-result-preview{ margin-top:5px; color:var(--ink); display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; }
  .quiz-result-expansion{ margin-top:6px; }
  .quiz-result-expansion summary{ width:fit-content; min-height:36px; padding:7px 0; cursor:pointer; color:var(--accent); font-weight:600; }
  .quiz-result-expansion summary:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
  .quiz-result-collapse-label{ display:none; }
  .quiz-result-expansion[open] .quiz-result-expand-label{ display:none; }
  .quiz-result-expansion[open] .quiz-result-collapse-label{ display:inline; }
  .quiz-result-expanded{ margin:3px 0 0; padding:14px; background:var(--card); border:1px solid var(--card-edge); border-radius:10px; color:var(--ink); overflow-wrap:anywhere; }
  .quiz-result-meaning-group + .quiz-result-meaning-group{ margin-top:12px; }
  .quiz-result-meaning-group .badge{ margin-bottom:4px; }
  .quiz-result-example{ margin-top:14px; padding-top:12px; border-top:1px solid var(--card-edge); }
  .fc-feedback .quiz-result-example{ color:var(--ink); font-weight:400; text-align:left; }
  .quiz-result-example > strong{ color:var(--muted); font-size:12px; }
  .quiz-result-example-en{ display:flex; gap:8px; align-items:flex-start; margin-top:5px; line-height:1.7; }
  .quiz-result-example-en > span{ flex:1; min-width:0; }
  .quiz-result-example-en .quiz-example-text{ white-space:pre-wrap; cursor:pointer; border-radius:4px; transition:background-color 0.15s ease, opacity 0.15s ease; }
  .quiz-result-example-en .quiz-example-text:hover{ text-decoration:underline; text-decoration-color:var(--accent); }
  .quiz-result-example-en .quiz-example-text:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
  .quiz-result-example-en .quiz-speak-btn{ flex-shrink:0; width:32px; height:32px; font-size:14px; }
  .quiz-result-example-ko{ margin-top:6px; color:var(--muted); line-height:1.7; white-space:pre-line; }
  .quiz-review-bar{ position:fixed; bottom:calc(12px + env(safe-area-inset-bottom, 0px)); left:50%; transform:translateX(-50%); z-index:45; width:calc(100% - 32px); max-width:740px; box-sizing:border-box; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:14px; background:var(--card); border:1px solid var(--card-edge); border-radius:14px; box-shadow:0 4px 24px #564a2526; text-align:left; }
  .quiz-review-count{ color:var(--muted); font-size:12px; line-height:1.5; }
  .quiz-review-bar .btn{ flex-shrink:0; min-height:42px; }
  @media(max-width:560px){
    .quiz-review-bar{ gap:6px; padding:10px 12px; flex-direction:column; }
    .quiz-review-bar .btn{ width:100%; }
    .quiz-result-row-head{ gap:7px; }
    .quiz-result-select{ padding:7px 8px; }
    .quiz-result-expanded{ padding:12px; }
    .tracing-complete.quiz-result-summary{ padding-left:0; padding-right:0; }
  }

  details.help{
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 14px;
    margin-top: 26px;
    color: var(--ink);
    overflow:hidden;
  }
  details.help summary{
    cursor:pointer;
    list-style:none;
    padding: 13px 18px;
    font-weight:600;
    font-size:14.5px;
    display:flex; align-items:center; gap:8px;
    user-select:none;
  }
  details.help summary::-webkit-details-marker{ display:none; }
  details.help summary::before{
    content:"▸";
    display:inline-block;
    transition: transform .15s ease;
    color: var(--accent);
  }
  details.help[open] summary::before{ transform: rotate(90deg); }
  details.help .help-body{
    padding: 4px 20px 18px;
    font-size: 13.5px;
    line-height:1.75;
    color: var(--muted);
  }
  details.help .help-body b{ color: var(--accent); }
  details.help .help-body ul{ margin: 6px 0 14px; padding-left: 18px; }
  details.help .help-body h4{
    margin: 14px 0 4px; font-size:13px; color:var(--ink);
    font-family:'IBM Plex Mono', monospace; letter-spacing:0.02em;
  }
  details.help .help-body h4:first-child{ margin-top:0; }

  #importFileInput,
  #sentenceFileImportInput,
  #memoFileImportInput,
  #bundleImportInput{ display:none; }

  .pdf-modal[hidden]{ display:none; }
  .pdf-modal{
    position:fixed;
    inset:0;
    z-index:1000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
    background:rgba(32,35,40,.28);
    backdrop-filter:blur(3px);
  }
  .pdf-dialog{
    width:min(100%, 450px);
    max-height:calc(100dvh - 36px);
    background:var(--card);
    border:1px solid var(--card-edge);
    border-radius:16px;
    padding:22px;
    box-shadow:0 18px 48px rgba(0,0,0,0.38);
    box-sizing:border-box;
  }
  .pdf-dialog h3{
    margin:0 0 8px;
    font-family:'Fraunces', serif;
    font-size:21px;
  }
  .pdf-dialog-desc{
    margin:0 0 16px;
    color:var(--muted);
    font-size:13px;
    line-height:1.65;
  }
  #bundleImportDescription{ white-space:pre-line; }
  .pdf-option{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0;
    padding:12px 13px;
    border:1.5px solid var(--card-edge);
    border-radius:10px;
    background:var(--card);
    color:var(--ink);
    cursor:pointer;
  }
  .pdf-option input{
    width:18px;
    height:18px;
    margin:0;
    accent-color:var(--accent);
  }
  .pdf-option span{ font-size:14px; font-weight:600; }
  .pdf-export-summary{
    margin-top:12px;
    padding:10px 12px;
    border-radius:9px;
    background:var(--surface);
    color:var(--muted);
    font-size:12.5px;
    line-height:1.65;
  }
  .pdf-export-status{
    min-height:21px;
    margin-top:10px;
    color:var(--muted);
    font-size:12.5px;
  }
  .pdf-export-status.error{ color:var(--bad); }
  .pdf-export-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:8px;
  }
  #memoImportChoiceModal .pdf-export-actions{ flex-wrap:wrap; }
  .wordbook-toolbar{ display:flex; align-items:flex-end; flex-wrap:wrap; gap:9px; margin:0 0 10px; }
  .wordbook-toolbar > label{ display:flex; flex:1 1 220px; flex-direction:column; min-width:0; gap:6px; margin:0; font-size:13px; font-weight:700; }
  .wordbook-toolbar select{ width:100%; min-width:0; min-height:42px; }
  .wordbook-toolbar > .btn{ min-height:42px; }
  .wordbook-help{ margin:0 0 18px; color:var(--muted); font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
  .wordbook-list-toolbar{ margin-bottom:16px; }
  .wordbook-save-result{ margin-top:18px; padding:14px; border:1px solid var(--card-edge); border-radius:11px; background:var(--card); }
  .wordbook-save-result[hidden]{ display:none; }
  .wordbook-save-result p{ margin:0 0 12px; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
  .wordbook-result-actions{ display:flex; flex-wrap:wrap; gap:8px; }
  .wordbook-create-label{ display:flex; flex-direction:column; gap:7px; font-size:13px; }
  .wordbook-create-label input{ width:100%; box-sizing:border-box; }
  #saveWordBtn,#bulkSaveBtn{ max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  @media(max-width:480px){
    .wordbook-toolbar > label{ flex-basis:100%; }
    .wordbook-toolbar > .btn{ flex:1 1 auto; }
    .wordbook-result-actions .btn{ flex:1 1 auto; }
  }
  #appDialogModal.word-registration-modal .pdf-dialog{
    width:min(100%, 660px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .word-registration-modal #appDialogExtra{
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .word-registration-modal #appDialogActions{ flex-shrink:0; flex-wrap:wrap; }
  .word-registration-summary{
    position:sticky;
    top:0;
    z-index:1;
    margin:0 0 12px;
    padding:10px 12px;
    border-radius:9px;
    background:var(--popup-soft, var(--card));
    color:var(--popup-text, var(--ink)) !important;
    font-size:13px;
    font-weight:700;
  }
  .word-duplicate-all{ display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
  .word-duplicate-all span{ width:100%; font-size:12px; color:var(--popup-muted, var(--muted)); }
  .word-duplicate-help{ margin:10px 0 14px; font-size:12px; line-height:1.6; }
  .word-duplicate-card{
    margin:0 0 12px;
    padding:14px;
    border:1px solid var(--popup-border, var(--card-edge));
    border-radius:11px;
    background:var(--popup-card, var(--card));
  }
  .word-duplicate-card h4{ margin:0 0 10px; font-size:18px; overflow-wrap:anywhere; }
  .word-duplicate-meanings{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 12px; }
  .word-duplicate-meanings > div{ min-width:0; }
  .word-duplicate-meanings dt{ margin-bottom:4px; font-size:12px; color:var(--popup-muted, var(--muted)); }
  .word-duplicate-meanings dd{ margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.55; }
  .word-duplicate-action,.word-duplicate-target{ display:flex; flex-direction:column; gap:5px; font-size:12px; }
  .word-duplicate-target{ margin-top:10px; }
  .word-duplicate-target[hidden]{ display:none; }
  .word-duplicate-card select{ width:100%; min-width:0; min-height:40px; font-size:14px; }
  @media(max-width:480px){
    .word-duplicate-meanings{ grid-template-columns:1fr; gap:10px; }
    .word-duplicate-card{ padding:12px; }
    .word-duplicate-all .btn{ flex:1 1 auto; }
  }
  .word-folder-picker-row{
    display:flex;
    align-items:stretch;
    gap:7px;
  }
  .word-folder-picker-row input{ flex:1; min-width:0; }
  .word-folder-dropdown-btn{
    width:44px;
    min-width:44px;
    padding:0;
    border:1.5px solid var(--card-edge);
    border-radius:9px;
    background:var(--card);
    color:var(--ink);
    font-size:17px;
    cursor:pointer;
  }
  .word-folder-dropdown-btn:hover,
  .word-folder-dropdown-btn[aria-expanded="true"]{
    border-color:var(--accent);
    background:var(--accent-soft);
  }
  .word-folder-dropdown-btn:disabled{ cursor:default; opacity:0.45; }
  .word-folder-options{
    max-height:210px;
    margin-top:7px;
    padding:6px;
    overflow-y:auto;
    border:1px solid var(--card-edge);
    border-radius:10px;
    background:var(--card);
    box-shadow:0 8px 20px rgba(42,33,13,0.13);
  }
  .word-folder-options[hidden]{ display:none; }
  .word-folder-option{
    display:block;
    width:100%;
    padding:9px 10px;
    border:0;
    border-radius:7px;
    background:transparent;
    color:var(--ink);
    font:600 13.5px/1.4 'IBM Plex Sans KR', sans-serif;
    text-align:left;
    cursor:pointer;
  }
  .word-folder-option:hover,
  .word-folder-option:focus-visible{
    background:var(--surface);
    outline:none;
  }
  body.pdf-modal-open{ overflow:hidden; }

  .app-find-bar{
    position:fixed;
    z-index:10020;
    top:max(8px, env(safe-area-inset-top));
    right:max(12px, env(safe-area-inset-right));
    width:min(470px, calc(100vw - 24px));
    display:grid;
    grid-template-columns:minmax(120px, 1fr) auto auto auto auto;
    align-items:center;
    gap:5px;
    padding:7px;
    border:1px solid rgba(228,217,184,0.9);
    border-radius:12px;
    background:var(--card);
    color:var(--ink);
    box-shadow:0 12px 34px rgba(0,0,0,0.34);
  }
  .app-find-bar[hidden]{ display:none; }
  .app-find-input{
    min-width:0;
    height:36px;
    padding:7px 10px !important;
    border-radius:8px !important;
    font-size:14px !important;
  }
  .app-find-count{
    min-width:48px;
    color:var(--muted);
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    text-align:center;
    white-space:nowrap;
  }
  .app-find-button{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:0;
    border-radius:8px;
    background:var(--surface);
    color:var(--ink);
    font-family:'IBM Plex Sans KR', sans-serif;
    font-size:18px;
    font-weight:700;
    line-height:1;
    cursor:pointer;
  }
  .app-find-button:hover{ background:var(--surface-hover); }
  .app-find-button:focus-visible{
    outline:2px solid var(--accent);
    outline-offset:1px;
  }
  .app-find-button:disabled{ opacity:0.35; cursor:default; }
  .app-find-close{ background:transparent; font-size:22px; }
  .app-find-highlight{
    padding:0;
    border-radius:2px;
    background:#ffe86b;
    color:inherit;
    box-shadow:0 0 0 1px rgba(173,123,10,0.18);
  }
  .app-find-highlight-current{
    background:#ff9f43;
    box-shadow:0 0 0 2px rgba(161,77,0,0.42);
  }

  .tab-edge-nav{
    position:fixed;
    top:52%;
    z-index:850;
    display:none;
    align-items:center;
    justify-content:center;
    width:46px;
    height:52px;
    padding:0;
    transform:translateY(-50%);
    border:0;
    border-radius:0;
    background:transparent;
    color:var(--ink);
    box-shadow:none;
    text-shadow:none;
    font:600 31px/1 'IBM Plex Sans KR', sans-serif;
    cursor:pointer;
    opacity:0.74;
    -webkit-tap-highlight-color:transparent;
    transition:opacity .12s ease, color .12s ease, text-shadow .12s ease, transform .12s ease;
  }
  .tab-edge-nav-prev{ left:max(6px, env(safe-area-inset-left)); }
  .tab-edge-nav-next{ right:max(6px, env(safe-area-inset-right)); }
  .tab-edge-nav:hover,
  .tab-edge-nav:focus-visible{
    opacity:1;
    background:transparent;
    color:var(--ink);
    text-shadow:none;
  }
  .tab-edge-nav:focus-visible{ outline:none; }
  .tab-edge-nav:active{ transform:translateY(-50%) scale(0.96); }
  .tab-edge-nav:disabled{ opacity:0.2; cursor:default; }
  .tab-edge-nav[hidden],
  body.pdf-modal-open .tab-edge-nav{ display:none !important; }

  /* 태블릿 멀티윈도우는 실제 창이 좁아도 CSS 폭이 900px을 넘길 수 있다.
     설치형 앱과 터치 기기에서는 폭과 관계없이 탭 이동 화살표를 유지한다. */
  @media (max-width: 1200px), (pointer: coarse), (display-mode: standalone){
    .tab-edge-nav{ display:flex; }
  }


  .tabs-board{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
  .tab-cluster{ display:flex; flex-direction:column; gap:6px; }
  .tabs-board .tabs{ margin-bottom:0; }
  .primary-tabs-sticky{
    position:sticky;
    top:max(0px, env(safe-area-inset-top));
    z-index:60;
    margin-bottom:10px;
    padding:8px 0 9px;
    background:rgba(247,248,250,.96);
    box-shadow:0 8px 16px -15px rgba(32,35,40,.14);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }
  .primary-tabs-row{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:stretch;
    gap:8px;
  }
  .primary-tabs-row .tabs{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:6px;
    min-width:0;
    margin:0;
  }
  .study-stopwatch{
    display:flex;
    align-items:center;
    gap:3px;
    min-width:122px;
    height:42px;
    padding:5px 6px 5px 9px;
    border:1px solid var(--line);
    border-radius:10px;
    background:var(--card);
    color:var(--ink);
  }
  .study-stopwatch-time{
    min-width:48px;
    margin-right:2px;
    color:var(--ink);
    font:600 14px/1 'IBM Plex Mono', monospace;
    font-variant-numeric:tabular-nums;
    text-align:center;
    white-space:nowrap;
  }
  .study-stopwatch-control{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:28px;
    padding:0;
    border:0;
    border-radius:7px;
    background:transparent;
    color:var(--muted);
    font:700 14px/1 'IBM Plex Sans KR', sans-serif;
    cursor:pointer;
    touch-action:manipulation;
  }
  .study-stopwatch-control:hover,
  .study-stopwatch-control:focus-visible{
    background:var(--surface);
    color:var(--ink);
  }
  .study-stopwatch-control:focus-visible{
    outline:2px solid rgba(201,154,59,0.72);
    outline-offset:1px;
  }
  .study-stopwatch-control:disabled{
    opacity:0.3;
    cursor:default;
    background:transparent;
  }
  .word-progress-line{
    width:100%;
    margin:0 0 12px;
    color:var(--muted);
    font-size:12.5px;
    line-height:1.55;
  }
  .list-more-wrap{ position:relative; }
  .list-more-menu{
    position:absolute;
    top:calc(100% + 6px);
    left:0;
    z-index:40;
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:188px;
    padding:8px;
    border:1px solid var(--card-edge);
    border-radius:12px;
    background:var(--card);
    box-shadow:0 10px 24px rgba(42,33,13,0.18);
  }
  .list-more-menu[hidden]{ display:none; }
  .list-more-menu .btn{ width:100%; justify-content:center; }
  .app-toast{
    position:fixed;
    left:50%;
    bottom:calc(24px + var(--app-selection-bar-space, 0px));
    z-index:10040;
    pointer-events:none;
    transform:translateX(-50%);
    max-width:min(520px, calc(100% - 24px));
    padding:10px 14px;
    border-radius:999px;
    background:var(--card);
    color:var(--ink);
    font-size:13px;
    box-shadow:0 10px 24px rgba(0,0,0,0.28);
  }
  .app-toast[hidden]{ display:none; }
  .app-undo-bar{
    position:fixed;
    left:50%;
    bottom:calc(18px + var(--app-selection-bar-space, 0px));
    z-index:10030;
    display:flex;
    align-items:center;
    gap:10px;
    width:min(560px, calc(100% - 24px));
    transform:translateX(-50%);
    padding:10px 12px;
    border:1px solid #d7c995;
    border-radius:13px;
    background:rgba(255,253,247,0.97);
    box-shadow:0 10px 28px rgba(45,35,13,0.22);
  }
  .app-undo-bar[hidden]{ display:none; }
  .app-undo-bar span{ flex:1; font-size:13px; color:var(--ink); }
  .storage-banner{
    margin:0 0 14px;
    padding:12px 14px;
    border:1.5px solid #d78078;
    border-radius:12px;
    background:#fff3f0;
    color:#8b403b;
    font-size:13px;
    line-height:1.6;
  }
  .storage-banner[hidden]{ display:none; }
  .storage-banner .row-gap{ margin-top:8px; }
  .settings-modal-dialog{
    width:min(100%, 480px);
    /* Stay within the zoomed viewport, including at 200% on phones. */
    max-height:100%;
    display:flex;
    flex-direction:column;
    padding:18px 20px 16px;
    overflow:hidden;
    box-sizing:border-box;
  }
  .settings-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-bottom:10px;
    margin-bottom:2px;
    border-bottom:1px solid var(--card-edge);
    flex:0 0 auto;
  }
  .settings-modal-header h3{
    margin:0;
    font-size:20px;
  }
  .settings-modal-close-icon{
    background:none;
    border:none;
    font-size:24px;
    line-height:1;
    color:var(--muted);
    cursor:pointer;
    padding:2px 8px;
    border-radius:6px;
    transition:color 0.15s, background 0.15s;
  }
  .settings-modal-close-icon:hover{
    color:var(--ink);
    background:rgba(0,0,0,0.06);
  }
  .settings-modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:10px 4px 10px 0;
    margin-right:-2px;
  }
  .settings-modal-footer{
    flex:0 0 auto;
    margin-top:8px;
    padding-top:10px;
    border-top:1px solid var(--card-edge);
  }
  .settings-grid{
    display:grid;
    gap:11px;
  }
  .settings-grid label{ margin-bottom:4px; font-weight:600; font-size:13.5px; }
  .settings-size-section{
    margin-bottom:16px;
    padding-bottom:16px;
    border-bottom:1px solid var(--card-edge);
  }
  .settings-size-section > label{ display:block; margin-bottom:8px; font-size:15px; font-weight:700; }
  .settings-size-controls{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .settings-size-controls select{ flex:1 1 130px; min-width:0; }
  .settings-size-controls .btn{ flex:0 0 auto; }
  .settings-size-section p{ margin:8px 0; color:var(--muted); font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
  .settings-size-preview{ padding:12px; border:1px solid var(--card-edge); border-radius:9px; line-height:1.6; overflow-wrap:anywhere; }
  .settings-size-preview strong{ display:block; font-family:'IBM Plex Mono', monospace; font-size:17px; }
  .settings-size-preview span{ display:block; font-size:13.5px; }
  .settings-builtin-recovery{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:9px 11px; border:1px solid var(--card-edge); border-radius:10px; background:var(--surface);
  }
  .settings-builtin-recovery strong{ display:block; margin-bottom:2px; }
  .settings-builtin-recovery small{ display:block; color:var(--muted); line-height:1.45; }
  .settings-builtin-recovery .btn{ flex:0 0 auto; }
  .word-taxonomy-dialog{ max-width:460px; }
  .word-taxonomy-modal-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
  .word-taxonomy-modal-grid label{ min-width:0; margin:0; }
  .word-taxonomy-modal-grid select{ width:100%; margin-top:6px; }
  .word-taxonomy-help{
    margin:12px 0 0; padding:10px 11px; border-radius:9px; background:var(--surface);
    color:var(--muted); font-size:12px; line-height:1.55;
  }

  .reading-font-chips-wrap{
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-bottom:6px;
  }
  .reading-font-chips-row{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
  }
  .reading-font-category-badge{
    font-size:11px;
    font-weight:700;
    color:var(--muted);
    padding:3px 7px;
    background:var(--surface);
    border-radius:5px;
    white-space:nowrap;
    flex:0 0 auto;
    letter-spacing:-0.2px;
  }
  .reading-font-chip{
    padding:5px 9px;
    border:1.5px solid var(--card-edge);
    border-radius:7px;
    background:var(--card);
    color:var(--ink);
    font-size:12.5px;
    cursor:pointer;
    transition:all 0.15s ease;
    user-select:none;
    -webkit-tap-highlight-color:transparent;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1.25;
  }
  .reading-font-chip:hover{
    border-color:var(--accent);
    background:var(--surface);
  }
  .reading-font-chip:active{
    transform:scale(0.97);
  }
  .reading-font-chip.active{
    background:var(--accent) !important;
    color:#fff !important;
    border-color:var(--accent) !important;
    font-weight:700;
    box-shadow:0 1px 4px rgba(0,0,0,0.12);
  }


  /* 문장해석·메모 탭 및 단어목록 예문의 실제 학습 본문 텍스트에만 읽기 글꼴 적용 */
  #panel-sentences .sentence-source,
  #panel-sentences .sentence-translation,
  #panel-sentences .sentence-add-input,
  #panel-sentences .sentence-editor-textarea,
  #panel-sentences .sentence-detail-text,
  #panel-sentences .sentence-new-word,
  #panel-sentences .sentence-quick-word,
  #panel-memos .memo-title,
  #panel-memos .memo-detail-text,
  #panel-memos .memo-detail-text *,
  #panel-memos .memo-add-input,
  #panel-memos .memo-editor-textarea,
  #panel-memos .memo-word-chip,
  .word-example-translation {
    font-family: 'Study Color Cross', var(--reading-font-family), var(--ui-font-family);
  }

  /* 문장암기 및 메모 탭의 모든 상단 툴바, 메뉴, 일차 선택, 테마 선택, 폴더 바, 버튼류 UI 글꼴을 기본 고딕으로 확고하게 고정 */
  #panel-sentences .sentence-toolbar,
  #panel-sentences .sentence-toolbar *,
  #panel-sentences .sentence-theme-picker,
  #panel-sentences .sentence-theme-picker *,
  #panel-sentences .sentence-search-controls,
  #panel-sentences .sentence-search-controls input,
  #panel-sentences .sentence-gpt-selection-bar,
  #panel-sentences .sentence-gpt-selection-bar *,
  #panel-sentences .sentence-list-footer,
  #panel-sentences .sentence-list-footer button,
  #panel-sentences .section-title,
  #panel-sentences .btn,
  #panel-sentences button,
  #panel-sentences select,
  #panel-memos .sentence-toolbar,
  #panel-memos .sentence-toolbar *,
  #panel-memos .sentence-theme-picker,
  #panel-memos .sentence-theme-picker *,
  #panel-memos .memo-folder-toolbar,
  #panel-memos .memo-folder-toolbar *,
  #panel-memos .memo-folder-menu,
  #panel-memos .memo-folder-menu *,
  #panel-memos #memoFolderSelectionBar,
  #panel-memos #memoFolderSelectionBar *,
  #panel-memos #memoGptSelectionBar,
  #panel-memos #memoGptSelectionBar *,
  #panel-memos .sentence-list-footer,
  #panel-memos .sentence-list-footer button,
  #panel-memos .section-title,
  #panel-memos .btn,
  #panel-memos button,
  #panel-memos select,
  #panel-schedule,
  #panel-schedule * {
    font-family: var(--ui-font-family) !important;
  }

  /* 시험 글꼴은 영어 학습 내용에만 적용한다. 크기·굵기·줄간격은 기존 값을 유지한다. */
  html[data-english-font="civil-service"] .english-study-text{
    font-family:'Times New Roman', Times, 'Liberation Serif', serif;
  }

  .header-tools{ display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
  .sentence-chip-send{
    flex:0 0 auto;
    height:21px;
    padding:0 6px;
    border:0;
    border-radius:999px;
    background:rgba(73,58,24,0.10);
    color:#7d6b3c;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
  }

  @media (max-width: 480px){
    .tabs-board .tabs{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); }
    .primary-tabs-row{ gap:6px; }
    .primary-tabs-row .tab-btn{ padding-left:3px; padding-right:3px; font-size:12px; }
    .study-stopwatch{ min-width:112px; padding-left:7px; padding-right:4px; }
    .study-stopwatch-time{ min-width:45px; font-size:13px; }
    .study-stopwatch-control{ width:23px; }
  }


  /* 퀴즈 일차 다중 선택 스타일 */
  .game-day-picker-trigger-btn{
    display:flex; align-items:center; justify-content:space-between; gap:6px;
    width:100%; min-width:0; padding:8px 10px; border:1.5px solid var(--card-edge); border-radius:9px;
    background:var(--card); color:var(--ink); font:600 13px/1.4 var(--ui-font-family);
    cursor:pointer; text-align:left;
  }
  .game-day-picker-trigger-btn:hover{ border-color:var(--accent); background:var(--accent-soft); }
  .quiz-day-modal-grid{
    display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:6px; max-height:260px; overflow-y:auto; padding:6px 2px;
  }
  .quiz-day-chip-btn{
    padding:7px 0; border:1.5px solid var(--card-edge); border-radius:8px;
    background:var(--card); color:var(--muted); font:700 12.5px/1.2 var(--ui-font-family);
    cursor:pointer; text-align:center; transition:all .12s ease;
  }
  .quiz-day-chip-btn:hover{ border-color:var(--accent); background:var(--accent-soft); }
  .quiz-day-chip-btn.active{
    border-color:var(--accent); background:var(--accent); color:var(--accent-ink);
  }
  .quiz-day-quick-bar{
    display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; padding-bottom:10px; border-bottom:1px dashed var(--card-edge);
  }
  .quiz-day-quick-btn{
    padding:5px 9px; border:1px solid #d8ca9d; border-radius:999px;
    background:#f7efd7; color:#66552d; font:700 11.5px/1.2 var(--ui-font-family);
    cursor:pointer;
  }
  .quiz-day-quick-btn:hover{ background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
  .quiz-day-quick-btn.active{ background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
  .quiz-day-chip-btn:disabled,
  .quiz-day-quick-btn:disabled{
    opacity:0.35;
    cursor:not-allowed;
    color:var(--muted);
    background:var(--card);
    border-color:var(--line);
    box-shadow:none;
    transform:none;
  }

  @media (max-width: 480px){
    body{ padding-left:12px; padding-right:12px; }
    .app-find-bar{
      right:8px;
      width:calc(100vw - 16px);
      grid-template-columns:minmax(90px, 1fr) auto auto auto auto;
    }
    .app-find-count{ min-width:42px; font-size:11px; }
    .app-find-button{ width:32px; height:32px; }
    .tabs{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); }
    .tab-btn{ font-size:13px; }
    .schedule-toolbar{ align-items:flex-start; flex-direction:column; }
    .schedule-toolbar-actions{ width:100%; justify-content:flex-start; }
    .schedule-month-nav{ grid-template-columns:auto minmax(0,1fr) auto; }
    .schedule-today-btn{ grid-column:1 / -1; }
    .schedule-month-jump{ flex-wrap:wrap; }
    .schedule-month-jump-field{ flex:1 1 110px; justify-content:center; }
    .schedule-day{ min-height:61px; padding:6px 5px; }
    .schedule-day-number{ font-size:11.5px; }
    .schedule-day.today .schedule-day-number{ min-width:22px; height:22px; }
    .schedule-day-count{ margin-top:5px; padding:1px 5px; font-size:9.5px; }
    .schedule-form-grid{ grid-template-columns:1fr; }
    .schedule-field-wide{ grid-column:auto; }
    .schedule-item{ grid-template-columns:auto minmax(0,1fr); }
    .schedule-item-actions{ grid-column:2; justify-content:flex-start; }
    .fc-word{ font-size:24px; }
    .meaning-row{ flex-wrap:wrap; }
    .meaning-row select{ flex: 1 1 100%; }
    .related-word-row{ flex-wrap:wrap; }
    .related-word-row select{ flex:1 1 100%; }
    .related-word-row .related-word-meaning-input,
    .related-word-row .related-word-input{ flex:1 1 100%; min-width:0; }
    .pdf-dialog{ padding:19px; }
    .sentence-card{ padding:14px; }
    .sentence-delete-btn{ margin-left:0; }
    .game-mode-grid{ grid-template-columns:1fr; }
    .word-taxonomy-filters, .word-taxonomy-modal-grid, .game-taxonomy-filters{ grid-template-columns:1fr; }
    .game-card{ min-height:405px; padding:18px 14px; }
    .game-topline{ flex-wrap:wrap; }
    .game-timer-wrap{ flex:1 0 100%; min-width:0; }
    .game-timer-track{ width:calc(100% - 34px); }
    .game-word-row{ margin-top:42px; }
    .game-word{ font-size:26px; }
    .game-result-row{ grid-template-columns:22px minmax(0,1fr); gap:7px; }
    .game-rate{ font-size:42px; }
    .quiz-session-toolbar{ margin-bottom:7px; }
    .tracing-card{ min-height:450px; padding:20px 14px 24px; }
    .tracing-word-row{ margin-top:34px; }
    .tracing-word{ font-size:27px; }
    .tracing-entry-row{ grid-template-columns:minmax(0,1fr) auto; gap:6px; }
    .tracing-entry-row .btn, .tracing-meaning-entry-row .btn{ padding-left:11px; padding-right:11px; }
    .tracing-meaning-row{ font-size:16px; }
    .tracing-meaning-stage{ padding:0 50px; }
    .tracing-meaning-navigation{ grid-template-columns:42px minmax(0,1fr) 42px; gap:8px; }
    .tracing-side-nav{ min-height:160px; font-size:30px; }
    .tracing-meaning-input{ min-height:160px; padding:16px; font-size:18px; }
    .spelling-card{ min-height:420px; padding:18px 14px; }
    .spelling-topline{ flex-wrap:wrap; }
    .spelling-meaning-stage{ margin-top:34px; }
    .spelling-def-row{ font-size:17px; }
    .spelling-answer-zone{ margin-top:42px; }
    .spelling-answer-row{ flex-direction:column; }
    .quiz-history-review{ min-height:405px; padding:18px 14px; }
    .quiz-history-word{ font-size:25px; }
    .quiz-history-meaning{ font-size:15px; }
    .word-selection-bar{ bottom:max(7px, env(safe-area-inset-bottom)); padding:9px; }
  }

  /* 기출보카 단어 상세 예문 박스 */
  .word-example-box{
    margin-top:10px;
    padding:10px 13px;
    border-radius:10px;
    background:var(--surface);
    border-left:3.5px solid var(--accent);
    display:grid;
    gap:5px;
  }
  .word-example-source-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
  }
  .word-example-source{
    color:var(--ink);
    font-size:13.5px;
    font-weight:600;
    line-height:1.5;
    white-space:pre-wrap;
    flex:1 1 auto;
    cursor:pointer;
    border-radius:4px;
    transition:background-color 0.15s ease, opacity 0.15s ease;
  }
  .word-example-source:hover{
    text-decoration:underline;
    text-decoration-color:var(--accent);
  }
  .word-example-source:focus-visible{
    outline:2px solid var(--accent);
    outline-offset:2px;
  }
  .word-example-tts{
    flex:0 0 auto;
    padding:2px 7px;
    font-size:11px;
    line-height:1.3;
    border-radius:6px;
    background:var(--card);
    border:1px solid var(--card-edge);
    cursor:pointer;
    opacity:0.9;
    transition:transform 0.1s ease, opacity 0.15s ease;
  }
  .word-example-tts:hover{
    opacity:1;
    transform:scale(1.05);
  }
  .word-example-translation{
    color:var(--muted);
    font-size:12.5px;
    line-height:1.45;
    white-space:pre-wrap;
  }



  /* 게임/학습 내 [✅ 외웠어요] 버튼 */
  .game-mastered-btn{
    background: rgba(63, 142, 91, 0.12) !important;
    color: #256f3a !important;
    border: 1px solid rgba(63, 142, 91, 0.35) !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    padding: 3px 9px !important;
    border-radius: 999px !important;
    cursor: pointer;
    white-space: nowrap;
    transition: transform 0.12s ease, background 0.15s ease, border-color 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    height: 28px;
    line-height: 1;
  }
  .game-mastered-btn:hover{
    background: rgba(63, 142, 91, 0.24) !important;
    border-color: #3f8e5b !important;
    transform: scale(1.04);
  }
  .game-mastered-btn:active{
    transform: scale(0.97);
  }


.memo-folder-toolbar{display:flex;align-items:center;gap:6px;margin:10px 0}.memo-folder-toolbar>select{width:auto;max-width:calc(100% - 40px);min-width:130px;padding:6px 28px 6px 9px;font-size:12px}
.memo-folder-menu{position:relative}.memo-folder-menu>summary{list-style:none;cursor:pointer;padding:3px 9px;font-weight:bold;color:var(--muted)}.memo-folder-menu>summary::-webkit-details-marker{display:none}
.memo-folder-menu>div{position:absolute;z-index:5;right:0;top:100%;display:grid;min-width:105px;padding:5px;background:var(--surface,#fff8fc);border:1px solid #ddc9d2;border-radius:8px;box-shadow:0 4px 14px #0002}
.memo-folder-badge{flex:0 1 auto;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--muted);border:1px solid #d9c6cf;border-radius:20px;padding:2px 7px;margin-left:auto}
.memo-folder-dialog{width:min(400px,calc(100% - 32px));box-sizing:border-box;padding:24px;border:1px solid #dcc4ce;border-radius:16px;background:#fff8fc;color:#563d4b;font-family:var(--ui-font-family, 'Pretendard', 'IBM Plex Sans KR', sans-serif);max-height:90dvh;overflow:auto}.memo-folder-dialog::backdrop{background:#12241c99}
.memo-folder-dialog h3{margin:0 0 8px;font-size:18px}.memo-folder-dialog p{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.memo-folder-dialog label{display:grid;gap:6px;margin:16px 0;font-size:12px}
.memo-folder-dialog input,.memo-folder-dialog select{box-sizing:border-box;width:100%;padding:10px;border:1px solid #d7bac8;border-radius:8px;background:#fff;color:#563d4b;font:inherit}
.memo-folder-dialog-actions{display:flex;align-items:center;gap:7px;margin-top:20px;flex-wrap:wrap}.memo-folder-dialog-actions>span{flex:1}.memo-folder-dialog #memoFolderDialogError{color:#a32d40}

#memoFolderSelectionBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px;border-radius:9px;background:var(--memo-soft-bg);color:var(--memo-text);margin:8px 0 12px;border:1px solid var(--memo-panel-border)}
#memoFolderSelectionBar[hidden]{display:none}#memoFolderSelectionBar label{display:flex;align-items:center;gap:6px;margin:0;font-size:12px}#memoFolderSelectedCount{font-size:12px;color:var(--memo-muted)}
#panel-memos .memo-folder-check,#memoFolderSelectAll{width:17px;height:17px;min-height:0;flex:0 0 auto;accent-color:var(--memo-accent);cursor:pointer}
#panel-memos .memo-folder-badge{color:var(--memo-muted);border-color:var(--memo-panel-border);background:var(--memo-soft-bg)}
#panel-memos .memo-folder-toolbar{flex-wrap:wrap}#panel-memos .memo-folder-toolbar>select{border-color:var(--memo-input-border);background:var(--memo-input-bg);color:var(--memo-text)}
#panel-memos .memo-card:has(.memo-folder-check:checked){border-color:var(--memo-accent);box-shadow:inset 3px 0 var(--memo-accent)}
#panel-memos .memo-gpt-checkbox{accent-color:var(--memo-focus)}
#panel-memos .memo-card.memo-gpt-selected{border-color:var(--memo-accent);box-shadow:inset 3px 0 var(--memo-accent)}
#memoGptSelectionBar{background:var(--memo-card-bg);border-color:var(--memo-panel-border);color:var(--memo-text)}
#memoGptSelectionCount{color:var(--memo-text)}
#memoGptMode{width:auto;max-width:100%;min-width:0;padding:7px 10px;border:1px solid var(--memo-input-border);border-radius:8px;background:var(--memo-input-bg);color:var(--memo-text);font:inherit;font-size:13px}
#memoGptModeHint{flex-basis:100%;margin:0;color:var(--memo-muted);font-size:12px;line-height:1.5;text-align:center;overflow-wrap:anywhere}

.memo-trash-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;margin:0 0 16px;background:color-mix(in srgb, #ff5c5c 15%, var(--card-bg));border:1px dashed color-mix(in srgb, #ff5c5c 40%, transparent);border-radius:12px;font-size:13px;font-weight:600}
.memo-trash-badge{background:color-mix(in srgb, #ff5c5c 20%, transparent)!important;color:#ff6b6b!important;border-color:color-mix(in srgb, #ff5c5c 40%, transparent)!important}

/* Saved review lists shared by every study game. */
.study-review-entry{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;margin:0 auto 14px;max-width:720px;border:1px solid var(--card-edge);border-radius:14px;background:var(--surface);text-align:left;}
.study-review-entry strong,.study-review-entry small{display:block;}
.study-review-entry small{margin-top:4px;font-size:12px;color:var(--muted);line-height:1.6;}
.study-review-entry>.btn{flex-shrink:0;}
.study-review-hub{width:min(100%,960px);margin:0 auto;padding:4px 0 28px;text-align:left;}
.study-review-heading,.study-review-heading>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.study-review-heading h3{margin:5px 0;font-size:21px;overflow-wrap:anywhere;}
.study-review-help{color:var(--muted);font-size:13px;line-height:1.85;margin:12px 0 18px;}
.study-review-list-cards{display:grid;gap:12px;}
.study-review-list-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border:1px solid var(--card-edge);border-radius:14px;background:var(--card);}
.study-review-list-card h4{margin:0 0 8px;overflow-wrap:anywhere;}
.study-review-list-card p{font-size:12px;color:var(--muted);line-height:1.7;margin:0;}
.study-review-list-card>.btn{flex-shrink:0;}
.study-review-list-card>div{min-width:0}
.study-review-list-kind{margin-bottom:14px}
.study-review-list-choice{display:flex;align-items:center;gap:10px;cursor:pointer;min-height:36px}
.study-review-list-choice input{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent)}
.study-review-list-choice h4{margin:0}
.study-review-list-origin{display:block;font-size:11px;color:var(--muted);margin:5px 0}
.study-review-list-actions{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}
.study-review-archived-index>summary{padding:16px 0;cursor:pointer;font-weight:700}
.study-review-deleted-pages{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:12px 0;font-size:12px}
.study-review-play{padding:16px;border:1px solid var(--card-edge);border-radius:14px;background:var(--surface);margin-bottom:18px;}
.study-review-play>label{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;}
.study-review-hub select,.study-review-picker select,.study-review-picker input,.study-review-tools>input{min-width:0;max-width:100%;border:1px solid var(--card-edge);background:var(--card);color:var(--ink);border-radius:9px;padding:10px 12px;font:inherit;}
.study-review-game-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;}
.study-review-game-buttons .btn{padding:11px 8px;font-size:13px;}
.study-review-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0 12px;}
.study-review-filters{display:flex;gap:6px;flex-wrap:wrap;}
.study-review-tools>input{flex:1 1 180px;font-size:13px;}
.study-review-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0;padding:10px 12px;border-radius:10px;background:var(--surface);font-size:12px;}
.study-review-bulk label{display:flex;align-items:center;gap:7px;}
.study-review-bulk [data-study-review-selection-count]{color:var(--muted);margin-right:auto;}
.study-review-hub input[type=checkbox]{width:17px;height:17px;margin:0;accent-color:var(--accent);flex-shrink:0;}
.study-review-words{display:grid;gap:8px;}
.study-review-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0;padding:12px;border:1px solid var(--card-edge);border-radius:12px;background:var(--surface);}
.study-review-pagination>div{text-align:center;min-width:0;}
.study-review-pagination strong,.study-review-pagination small{display:block;}
.study-review-pagination strong{font-size:14px;}
.study-review-pagination small{margin-top:4px;font-size:12px;color:var(--muted);line-height:1.5;}
.study-review-pagination>.btn{min-height:40px;flex-shrink:0;}
.study-review-page-study{margin:9px 0 0;font-size:12px;color:var(--muted);line-height:1.6;}
.study-review-word{display:flex;align-items:center;gap:12px;border:1px solid var(--card-edge);border-radius:12px;padding:13px 14px;background:var(--card);}
.study-review-word-choice{display:flex;align-items:center;gap:12px;flex:1;min-width:0;cursor:pointer;}
.study-review-word-choice>span{min-width:0;}
.study-review-word strong{font-size:17px;overflow-wrap:anywhere;}
.study-review-word small{display:block;margin-top:5px;color:var(--muted);line-height:1.7;font-size:12px;overflow-wrap:anywhere;}
.study-review-word-actions{display:flex;gap:6px;flex-shrink:0;}
.study-review-status{white-space:nowrap;font-size:11px;color:var(--muted);background:var(--surface);padding:4px 7px;border-radius:6px;}
.study-review-status[data-status=pending]{color:var(--ink);}
.study-review-empty{color:var(--muted);font-size:13px;line-height:1.9;padding:26px 14px;text-align:center;border:1px dashed var(--card-edge);border-radius:12px;}
.study-review-picker{display:grid;gap:9px;text-align:left;margin-top:16px;}
.study-review-picker label{font-size:13px;font-weight:600;margin-top:4px;}
.study-review-picker input:disabled{opacity:.45;}
.study-review-schedule{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px;margin-bottom:14px;border-radius:10px;background:var(--surface);font-size:12px;}
@media(max-width:560px){
  .study-review-entry{padding:13px;gap:10px;}
  .study-review-entry>.btn{font-size:12px;padding:9px 10px;}
  .study-review-heading h3{font-size:18px;}
  .study-review-game-buttons{grid-template-columns:repeat(2,minmax(0,1fr));}
  .study-review-word{gap:8px;padding:12px;flex-wrap:wrap;}
  .study-review-word-choice{flex-basis:calc(100% - 70px);}
  .study-review-word-actions{width:100%;justify-content:flex-end;}
  .study-review-bulk [data-study-review-selection-count]{margin-right:0;}
}
.study-review-word-tools{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;max-width:100%;margin:12px 0 0;padding:10px 0 2px;border-top:1px solid var(--card-edge);text-align:center;}
.study-review-word-tools>small{flex:0 0 100%;min-width:0;font-size:11px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere;}
.study-review-word-tools>.btn{margin:0;min-height:34px;font-size:11px;padding:7px 10px;white-space:normal;}
.study-review-session-summary{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;max-width:100%;margin:18px 0;padding:15px;border:1px solid var(--card-edge);border-radius:12px;background:var(--surface);text-align:center;}
.study-review-session-summary>p{flex:0 0 100%;margin:0 0 3px;font-size:12px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere;}
.study-review-session-summary>.btn{max-width:100%;margin:0;font-size:12px;white-space:normal;}
@media(max-width:420px){
  .study-review-word-tools{gap:6px;padding-top:9px;}
  .study-review-word-tools>.btn{min-height:37px;font-size:11px;padding:7px 9px;}
  .study-review-session-summary{padding:12px;}
  .study-review-session-summary>.btn{flex:1 1 100%;}
}
.study-review-export{display:grid;gap:10px;padding:13px 14px;margin:12px 0;border:1px solid var(--card-edge);border-radius:12px;background:var(--card);}
.study-review-export-heading,.study-review-export-heading>label,.study-review-export-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.study-review-export-heading{justify-content:space-between;}
.study-review-export-heading>label{font-size:12px;font-weight:600;}
.study-review-export-heading select{font-size:12px;padding:8px 10px;}
.study-review-export-heading>span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;}
.study-review-export>small{font-size:11px;color:var(--muted);line-height:1.7;}
.study-review-manual-copy{box-sizing:border-box;width:100%;min-height:240px;max-height:55vh;resize:vertical;margin-top:12px;padding:12px;border:1px solid var(--card-edge);border-radius:10px;background:var(--card);color:var(--ink);font:13px/1.8 var(--font-mono,monospace);white-space:pre;overflow:auto;}
@media(max-width:420px){
  .study-review-export{padding:12px;}
  .study-review-export-actions>.btn{flex:1;min-height:38px;}
  .study-review-export-heading>label{flex-basis:100%;}
  .study-review-export-heading select{flex:1;}
}
