/* Typing Coach Core v1.87.42 production frontend bundle.
 * Generated in the exact legacy enqueue order to preserve the cascade while
 * reducing the frontend stylesheet request count from 262 to one.
 */

/* ---- typing-coach | assets/css/app.css ---- */
:root{
  --tc-navy:#0b1d34; --tc-navy2:#173a68; --tc-gold:#c79a3b; --tc-ivory:#f7f3e8;
  --tc-rose:#a94d65; --tc-text:#17263a; --tc-muted:#40566c; --tc-line:#d8dde4;
  --tc-white:#fff;
}
.tc-shell,.tc-panel{font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;color:var(--tc-text)}
.tc-shell{max-width:1180px;margin:24px auto;background:var(--tc-white);border:1px solid var(--tc-line);border-radius:22px;box-shadow:0 14px 40px rgba(11,29,52,.08);overflow:hidden}
.tc-brandline{display:flex;align-items:center;gap:10px;background:var(--tc-navy);color:#fff;padding:12px 18px}
.tc-brandline .tc-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--tc-gold);border-radius:10px;color:var(--tc-gold);font-weight:900}
.tc-brandline strong{font-size:19px}.tc-brandline>span:last-child{margin-left:auto;font-size:12px;color:#e7c77f}
.tc-lesson-intro,.tc-ready,.tc-practice,.tc-result{padding:24px}
.tc-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;color:#9a7227}.tc-lesson-intro h2{font-size:30px;line-height:1.35;margin:6px 0 14px}
.tc-chips{display:flex;flex-wrap:wrap;gap:7px}.tc-chips span{border:1px solid var(--tc-line);border-radius:999px;padding:6px 10px;background:#fffdf8;font-size:13px;font-weight:700}
.tc-goals,.tc-guide-choice{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;align-items:center}
.tc-goal,.tc-guide-mode{border:1px solid var(--tc-line);background:#fff;border-radius:999px;padding:9px 14px;font-weight:700;cursor:pointer}
.tc-goal.is-active,.tc-guide-mode.is-active{background:var(--tc-navy);border-color:var(--tc-navy);color:#fff}
.tc-primary,.tc-secondary,.tc-danger-btn,.tc-linkbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:12px;padding:11px 18px;font-weight:800;text-decoration:none;cursor:pointer}
.tc-primary{background:var(--tc-gold);color:var(--tc-navy);border:1px solid #b98a2f}.tc-secondary{background:#fff;color:var(--tc-navy);border:1px solid var(--tc-line)}
.tc-danger-btn{background:#8c2738;color:#fff;border:0}.tc-ready{text-align:center}.tc-ready-word{font-size:56px;font-weight:900;color:var(--tc-navy)}.tc-space{display:inline-block;margin-top:12px;border:1px solid var(--tc-gold);border-radius:14px;padding:10px 34px;font-weight:900}
.tc-countdown{display:grid;place-items:center;min-height:560px;background:var(--tc-navy);color:#fff}.tc-countdown span{font-size:110px;font-weight:900}
.tc-metrics,.tc-result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tc-metrics>div,.tc-result-grid>div{border:1px solid var(--tc-line);border-radius:14px;padding:12px;text-align:center;background:#fff}
.tc-metrics b,.tc-result-grid b{display:block;font-size:27px;color:var(--tc-navy)}.tc-metrics span,.tc-result-grid span{font-size:12px;color:var(--tc-muted)}
.tc-sentence-stage{margin-top:10px;border:1px solid var(--tc-line);border-radius:18px;padding:18px;background:#fffdf8}
.tc-jp{text-align:center;font-size:32px;font-weight:900;line-height:1.45}.tc-kana{text-align:center;font-size:17px;color:var(--tc-muted);margin-top:8px}.tc-roman{text-align:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:22px;margin-top:5px;word-break:break-all}
.tc-roman mark{background:#f6d9e0;color:var(--tc-navy);border-bottom:3px solid var(--tc-rose);padding:0 1px}
.tc-progress{height:6px;background:#e7e9ed;border-radius:999px;margin:12px 0;overflow:hidden}.tc-progress i{display:block;height:100%;width:0;background:var(--tc-gold)}
.tc-coach{font-size:12px;color:var(--tc-muted);border-top:1px dashed var(--tc-line);padding-top:9px}.tc-coach>span{margin-left:8px;color:var(--tc-text)}
.tc-next-finger{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;margin-top:11px;border:1px solid var(--tc-line);border-radius:16px;padding:9px 12px;background:#fff}
.tc-next-key{display:grid;place-items:center;width:56px;height:48px;border-radius:12px;background:#fff7e2;border:1px solid var(--tc-gold);font-size:23px;font-weight:900}.tc-next-finger small{display:block;font-size:10px;letter-spacing:.1em;color:#8a6b2c}.tc-next-finger strong{display:block;font-size:16px}.tc-next-finger em{display:block;font-size:11px;color:var(--tc-muted);font-style:normal}
.tc-hands{display:flex;gap:6px}.tc-hands span{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--tc-line);border-radius:11px;opacity:.45}.tc-hands span.is-active{opacity:1;background:#f7dfe5;border-color:var(--tc-rose)}
.tc-guide-toolbar{font-size:12px;margin:8px 0;color:var(--tc-muted)}.tc-keyboard{max-width:920px;margin:0 auto}.tc-key-row{display:flex;gap:5px;justify-content:center;margin:5px 0}.tc-key{display:grid;place-items:center;min-width:54px;height:36px;border:1px solid #bdc5cf;border-radius:7px;background:#f8f9fb;font-weight:800}.tc-key.space{width:240px}.tc-key.is-target{background:#fff0bf;border:2px solid var(--tc-gold);box-shadow:0 0 0 2px rgba(199,154,59,.15)}
.tc-shell.guide-off .tc-next-finger,.tc-shell.guide-off .tc-keyboard-wrap{display:none}.tc-shell.is-miss .tc-sentence-stage{box-shadow:0 0 0 2px rgba(169,77,101,.32)}
.tc-result-actions{display:flex;gap:9px;margin:18px 0}.tc-feedback{margin-top:16px;border:1px solid var(--tc-line);border-radius:16px;padding:16px;background:#fffdf8}.tc-copyright{text-align:right;padding:8px 18px 16px;font-size:11px;color:var(--tc-muted)}
.tc-ad-slot,.tc-app-ad{margin:20px auto;max-width:970px;min-height:0;text-align:center}.tc-ad-test{border:1px dashed #aeb6c1;background:#f5f6f7;padding:20px;border-radius:10px;color:#5f6875;font-size:13px}
.tc-panel{max-width:1100px;margin:24px auto;padding:22px;background:#fff;border:1px solid var(--tc-line);border-radius:18px}.tc-table-wrap{overflow:auto}.tc-table{width:100%;border-collapse:collapse}.tc-table th,.tc-table td{padding:10px;border-bottom:1px solid var(--tc-line);text-align:left}.tc-table tr.is-me{background:#fff7df;outline:1px solid var(--tc-gold)}
.tc-settings-form{border-top:1px solid var(--tc-line);padding:16px 0}.tc-settings-form input[type=text]{padding:9px;border:1px solid var(--tc-line);border-radius:8px}.tc-notice{padding:10px 12px;background:#eef7ee;border:1px solid #b9d6b9;border-radius:8px}.tc-danger{background:#fff4f4;padding:14px;border-radius:10px}
@media(max-width:760px){.tc-metrics,.tc-result-grid{grid-template-columns:repeat(2,1fr)}.tc-jp{font-size:25px}.tc-roman{font-size:18px}.tc-key{min-width:30px;height:32px;font-size:11px}.tc-key.space{width:150px}.tc-next-finger{grid-template-columns:60px 1fr}.tc-hands{display:none}}


/* v0.3: Stage visibility must win even when a WordPress theme defines [hidden]. */
.tc-shell [hidden]{display:none!important}

/* v0.3: Dedicated full-width application template */
body.tc-standalone-body{
  margin:0!important;
  background:#f4f1e9!important;
  color:var(--tc-text);
}
body.tc-standalone-body #wpadminbar{z-index:999999}
.tc-app-header{
  position:relative;
  z-index:100;
  background:linear-gradient(90deg,#081a31,#0b2340);
  color:#fff;
  border-bottom:1px solid rgba(199,154,59,.25);
}
.tc-app-header__inner{
  max-width:1540px;
  min-height:78px;
  margin:0 auto;
  padding:0 26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.tc-app-logo{
  color:#fff!important;
  text-decoration:none!important;
  display:flex;
  align-items:center;
  gap:12px;
}
.tc-app-logo__mark{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:2px solid var(--tc-gold);
  color:#f0c35d;
  border-radius:14px;
  font-family:Georgia,serif;
  font-size:19px;
  font-weight:900;
}
.tc-app-logo strong{
  display:block;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:24px;
  line-height:1.05;
}
.tc-app-logo small{
  display:block;
  color:#e2b95d;
  font-size:10px;
  letter-spacing:.14em;
  margin-top:4px;
  font-weight:800;
}
.tc-app-nav{
  display:flex;
  align-items:center;
  gap:8px;
}
.tc-app-nav a{
  color:#f7f8fb!important;
  text-decoration:none!important;
  font-size:14px;
  font-weight:750;
  padding:10px 12px;
  border-radius:9px;
}
.tc-app-nav a:hover,
.tc-app-nav a:focus-visible{
  background:rgba(255,255,255,.08);
  outline:2px solid rgba(231,199,127,.72);
  outline-offset:2px;
}
.tc-app-main{
  width:100%;
  padding:22px 22px 34px;
  box-sizing:border-box;
}
.tc-standalone-body .tc-shell{
  width:min(100%,1500px);
  max-width:1500px;
  margin:0 auto;
  min-height:calc(100vh - 134px);
  border-radius:18px;
}
.tc-standalone-body .tc-shell>.tc-brandline{display:none}
.tc-standalone-body .tc-lesson-intro{padding:28px 32px 30px}
.tc-standalone-body .tc-lesson-intro h2{font-size:clamp(28px,2.2vw,38px)}
.tc-standalone-body .tc-practice{padding:18px 26px 20px}
.tc-standalone-body .tc-countdown{
  min-height:calc(100vh - 170px);
  border-radius:18px;
}
.tc-standalone-body .tc-ready{
  min-height:calc(100vh - 220px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.tc-standalone-body .tc-ready[hidden]{display:none!important}
.tc-standalone-body .tc-keyboard{max-width:1120px}
.tc-standalone-body .tc-key{
  min-width:62px;
  height:42px;
  font-size:15px;
}
.tc-standalone-body .tc-key.space{width:310px}
.tc-standalone-body .tc-jp{font-size:clamp(30px,2.8vw,44px)}
.tc-standalone-body .tc-kana{font-size:clamp(17px,1.4vw,22px)}
.tc-standalone-body .tc-roman{font-size:clamp(21px,1.8vw,29px)}
.tc-standalone-body .tc-next-finger{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}
.tc-standalone-body .tc-copyright{padding-right:28px}

@media(max-width:900px){
  .tc-app-header__inner{min-height:66px;padding:0 14px}
  .tc-app-logo strong{font-size:20px}
  .tc-app-logo__mark{width:42px;height:42px}
  .tc-app-nav{gap:2px;overflow:auto}
  .tc-app-nav a{font-size:12px;padding:8px}
  .tc-app-main{padding:12px}
  .tc-standalone-body .tc-lesson-intro{padding:20px}
}


/* v0.4 — Formal start screen */
.tc-standalone-body .tc-shell{
  min-height:0;
}
.tc-standalone-body .tc-lesson-intro{
  padding:34px 38px 28px;
}
.tc-intro-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,390px);
  gap:34px;
  align-items:start;
}
.tc-intro-main{
  min-width:0;
}
.tc-intro-copy{
  max-width:790px;
  margin:10px 0 18px;
  font-size:16px;
  line-height:1.9;
  color:var(--tc-muted);
}
.tc-standalone-body .tc-chips{
  margin-bottom:24px;
}
.tc-option-block{
  margin-top:18px;
  padding:18px 20px;
  border:1px solid #e1e4e9;
  border-radius:16px;
  background:#fffdfa;
}
.tc-option-heading{
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:13px;
}
.tc-option-heading .tc-option-no{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:var(--tc-navy);
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
}
.tc-option-heading strong{
  display:block;
  font-size:17px;
}
.tc-option-heading small{
  display:block;
  margin-top:2px;
  color:var(--tc-muted);
  font-size:12px;
}
.tc-option-block .tc-goals,
.tc-option-block .tc-guide-choice{
  margin-top:0;
}
.tc-option-block .tc-goals{
  display:grid;
  grid-template-columns:repeat(5,minmax(105px,1fr));
  gap:8px;
}
.tc-option-block .tc-goal{
  min-height:70px;
  border-radius:12px;
  padding:10px 8px;
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.tc-option-block .tc-goal b{
  display:block;
  font-size:14px;
}
.tc-option-block .tc-goal small{
  display:block;
  margin-top:4px;
  font-size:10px;
  color:var(--tc-muted);
  font-weight:600;
}
.tc-option-block .tc-goal.is-active small{
  color:#dbe6f2;
}
.tc-option-block .tc-guide-choice{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.tc-option-block .tc-guide-mode{
  min-height:64px;
  border-radius:12px;
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.tc-option-block .tc-guide-mode b{
  display:block;
  font-size:14px;
}
.tc-option-block .tc-guide-mode small{
  display:block;
  margin-top:4px;
  color:var(--tc-muted);
  font-size:10px;
  font-weight:600;
}
.tc-option-block .tc-guide-mode.is-active small{
  color:#dbe6f2;
}
.tc-session-card{
  position:sticky;
  top:22px;
  border:1px solid #d8dde4;
  border-radius:20px;
  padding:24px;
  background:
    radial-gradient(circle at 88% 4%,rgba(199,154,59,.13),transparent 28%),
    linear-gradient(180deg,#fff,#fbfaf7);
  box-shadow:0 12px 28px rgba(11,29,52,.07);
}
.tc-session-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  background:var(--tc-navy);
  color:#f1c55d;
  border-radius:16px;
  font-size:25px;
  margin-bottom:12px;
}
.tc-session-label{
  display:block;
  color:#9a7227;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}
.tc-session-card h3{
  margin:4px 0 14px;
  font-size:23px;
  color:var(--tc-navy);
}
.tc-session-data{
  margin:0;
  border-top:1px solid var(--tc-line);
}
.tc-session-data>div{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:11px 0;
  border-bottom:1px solid var(--tc-line);
}
.tc-session-data dt{
  color:var(--tc-muted);
  font-size:12px;
}
.tc-session-data dd{
  margin:0;
  color:var(--tc-navy);
  font-size:13px;
  font-weight:800;
  text-align:right;
}
.tc-ready-note{
  margin:16px 0;
  padding:12px 14px;
  border-radius:12px;
  background:#f2f5f8;
}
.tc-ready-note strong{
  display:block;
  color:var(--tc-navy);
  font-size:13px;
}
.tc-ready-note span{
  display:block;
  margin-top:4px;
  color:var(--tc-muted);
  font-size:11px;
  line-height:1.6;
}
.tc-start-button{
  width:100%;
  min-height:66px;
  flex-direction:column;
  border-radius:14px;
  box-shadow:0 8px 18px rgba(199,154,59,.22);
}
.tc-start-button span{
  font-size:17px;
}
.tc-start-button small{
  font-size:10px;
  opacity:.78;
  font-weight:700;
}
.tc-standalone-body .tc-copyright{
  padding:10px 28px 18px;
}
.tc-standalone-body .tc-app-ad:empty{
  display:none;
}

@media(max-width:1080px){
  .tc-intro-layout{
    grid-template-columns:1fr;
  }
  .tc-session-card{
    position:static;
    display:grid;
    grid-template-columns:auto 1fr;
    column-gap:16px;
  }
  .tc-session-card .tc-session-icon{grid-row:1/4}
  .tc-session-card .tc-session-data,
  .tc-session-card .tc-ready-note,
  .tc-session-card .tc-start-button{
    grid-column:1/-1;
  }
  .tc-option-block .tc-goals{
    grid-template-columns:repeat(3,1fr);
  }
}
@media(max-width:700px){
  .tc-standalone-body .tc-lesson-intro{padding:22px 18px}
  .tc-option-block{padding:14px}
  .tc-option-block .tc-goals{grid-template-columns:1fr 1fr}
  .tc-option-block .tc-guide-choice{grid-template-columns:1fr}
}


/* v0.5 — READY guidance + large formal keyboard */
.tc-standalone-body .tc-ready{
  min-height:calc(100vh - 210px);
  padding:26px;
  box-sizing:border-box;
}
.tc-ready-inner{
  width:min(100%,1040px);
  margin:auto;
  text-align:center;
}
.tc-ready-lead{
  margin:12px auto 22px;
  max-width:760px;
  font-size:17px;
  line-height:1.8;
  color:var(--tc-text);
}
.tc-home-guide{
  display:grid;
  grid-template-columns:90px 1fr 90px;
  gap:16px;
  align-items:center;
  width:min(100%,820px);
  margin:0 auto;
  padding:18px 22px;
  border:1px solid var(--tc-line);
  border-radius:18px;
  background:#fffdfa;
}
.tc-home-hand{
  color:var(--tc-muted);
  font-weight:800;
}
.tc-home-hand-icon{
  display:block;
  font-size:34px;
  line-height:1;
}
.tc-home-hand small{
  display:block;
  margin-top:4px;
  font-size:9px;
  letter-spacing:.14em;
}
.tc-home-keys{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}
.tc-home-keys>span:not(.tc-home-gap){
  position:relative;
  width:48px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid #bdc5cf;
  border-radius:8px;
  background:#fff;
  color:var(--tc-navy);
  font-weight:850;
}
.tc-home-keys .is-home{
  border:2px solid var(--tc-gold)!important;
  background:#fff3c8!important;
}
.tc-home-keys .is-home i{
  position:absolute;
  bottom:5px;
  width:13px;
  height:2px;
  border-radius:999px;
  background:#9b752c;
}
.tc-home-gap{width:14px}
.tc-ready-tip{
  width:min(100%,720px);
  margin:16px auto 18px;
  padding:12px 16px;
  border-radius:12px;
  background:#f1f4f7;
  text-align:left;
}
.tc-ready-tip strong{
  display:block;
  color:var(--tc-navy);
  font-size:13px;
}
.tc-ready-tip span{
  display:block;
  margin-top:3px;
  color:var(--tc-muted);
  font-size:12px;
  line-height:1.6;
}
.tc-ready .tc-space{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  min-width:190px;
  margin-top:0;
  padding:11px 32px;
  cursor:default;
}
.tc-ready .tc-space b{
  font-size:18px;
}
.tc-ready .tc-space small{
  margin-top:2px;
  font-size:9px;
  color:var(--tc-muted);
}

/* Active practice vertical re-balance */
.tc-standalone-body .tc-practice{
  padding:14px 24px 16px;
}
.tc-standalone-body .tc-metrics{
  gap:10px;
}
.tc-standalone-body .tc-metrics>div{
  padding:10px 12px;
}
.tc-standalone-body .tc-metrics b{
  font-size:28px;
}
.tc-standalone-body .tc-sentence-stage{
  margin-top:10px;
  padding:17px 20px 15px;
}
.tc-standalone-body .tc-jp{
  font-size:clamp(30px,2.45vw,42px);
}
.tc-standalone-body .tc-kana{
  margin-top:5px;
}
.tc-standalone-body .tc-next-finger{
  min-height:64px;
  padding:8px 13px;
}
.tc-standalone-body .tc-next-key{
  width:58px;
  height:50px;
}
.tc-keyboard-wrap{
  margin-top:4px;
}
.tc-standalone-body .tc-guide-toolbar{
  max-width:1250px;
  margin:7px auto 6px;
}
.tc-standalone-body .tc-keyboard{
  width:min(100%,1260px);
  max-width:1260px;
  margin:0 auto;
  padding:5px 8px 7px;
  box-sizing:border-box;
}
.tc-standalone-body .tc-key-row{
  gap:5px;
  margin:5px 0;
  justify-content:center;
}
.tc-standalone-body .tc-key{
  position:relative;
  min-width:58px;
  width:58px;
  height:42px;
  padding:0 4px;
  box-sizing:border-box;
  border-radius:7px;
  font-size:13px;
  flex:0 0 auto;
}
.tc-standalone-body .tc-key.key-wide{width:108px}
.tc-standalone-body .tc-key.key-tab{width:82px}
.tc-standalone-body .tc-key.key-smallwide{width:76px}
.tc-standalone-body .tc-key.key-caps{width:96px}
.tc-standalone-body .tc-key.key-enter{width:118px}
.tc-standalone-body .tc-key.key-shift{width:132px}
.tc-standalone-body .tc-key.key-mod{width:82px}
.tc-standalone-body .tc-key.key-space{
  width:430px;
  min-width:430px;
}
.tc-home-bump{
  position:absolute;
  bottom:4px;
  width:12px;
  height:2px;
  border-radius:999px;
  background:#8792a0;
}
.tc-key.is-target .tc-home-bump{
  background:#8d651e;
}
.tc-standalone-body .tc-secondary[data-action="quit"]{
  margin-top:5px;
  padding:8px 14px;
  font-size:12px;
}

/* Keep the formal keyboard on one screen across common laptop widths */
@media(max-width:1360px){
  .tc-standalone-body .tc-keyboard{width:min(100%,1120px)}
  .tc-standalone-body .tc-key{min-width:49px;width:49px;height:38px;font-size:12px}
  .tc-standalone-body .tc-key.key-wide{width:98px}
  .tc-standalone-body .tc-key.key-tab{width:74px}
  .tc-standalone-body .tc-key.key-smallwide{width:68px}
  .tc-standalone-body .tc-key.key-caps{width:86px}
  .tc-standalone-body .tc-key.key-enter{width:105px}
  .tc-standalone-body .tc-key.key-shift{width:118px}
  .tc-standalone-body .tc-key.key-mod{width:72px}
  .tc-standalone-body .tc-key.key-space{width:360px;min-width:360px}
}
@media(max-width:900px){
  .tc-home-guide{grid-template-columns:1fr}
  .tc-home-hand{display:none}
  .tc-home-keys{overflow:auto;justify-content:flex-start}
  .tc-standalone-body .tc-keyboard{overflow-x:auto;justify-content:flex-start}
  .tc-standalone-body .tc-key-row{min-width:900px;justify-content:flex-start}
}

/* ==========================================================
   v0.6 — Adaptive one-screen practice layout
   ========================================================== */
.tc-standalone-body{min-height:100dvh}
.tc-standalone-body .tc-app-main{padding-top:14px;padding-bottom:14px}
.tc-standalone-body .tc-shell{min-height:0}
.tc-standalone-body .tc-practice:not([hidden]){
  height:var(--tc-available-h,760px);
  min-height:500px;
  max-height:var(--tc-available-h,760px);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto;
  gap:6px;
  box-sizing:border-box;
}
.tc-standalone-body .tc-practice .tc-sentence-stage{
  min-height:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.tc-standalone-body .tc-practice .tc-keyboard-wrap{min-height:0}
.tc-standalone-body .tc-practice .tc-keyboard{transform-origin:top center}
.tc-standalone-body .tc-practice .tc-secondary[data-action="quit"]{justify-self:start}
.tc-shell.tc-vh-compact .tc-practice{padding:10px 18px 10px;gap:4px}
.tc-shell.tc-vh-compact .tc-metrics>div{padding:7px 10px}
.tc-shell.tc-vh-compact .tc-metrics b{font-size:23px}
.tc-shell.tc-vh-compact .tc-metrics span{font-size:10px}
.tc-shell.tc-vh-compact .tc-sentence-stage{padding:11px 15px 10px;margin-top:4px}
.tc-shell.tc-vh-compact .tc-jp{font-size:clamp(25px,2.15vw,34px);line-height:1.3}
.tc-shell.tc-vh-compact .tc-kana{font-size:15px;line-height:1.35}
.tc-shell.tc-vh-compact .tc-roman{font-size:20px;margin-top:3px;line-height:1.3}
.tc-shell.tc-vh-compact .tc-progress{margin:7px 0}
.tc-shell.tc-vh-compact .tc-coach{padding-top:6px}
.tc-shell.tc-vh-compact .tc-next-finger{min-height:54px;margin-top:6px;padding:6px 10px}
.tc-shell.tc-vh-compact .tc-next-key{width:50px;height:44px}
.tc-shell.tc-vh-compact .tc-guide-toolbar{margin:3px auto;font-size:11px}
.tc-shell.tc-vh-compact .tc-key-row{margin:3px 0;gap:4px}
.tc-shell.tc-vh-compact .tc-key{height:34px}
.tc-shell.tc-vh-compact .tc-secondary[data-action="quit"]{margin-top:0;padding:6px 12px}
.tc-shell.tc-vh-tight .tc-practice{padding:7px 14px}
.tc-shell.tc-vh-tight .tc-metrics{gap:6px}
.tc-shell.tc-vh-tight .tc-metrics>div{padding:5px 8px}
.tc-shell.tc-vh-tight .tc-metrics b{font-size:20px}
.tc-shell.tc-vh-tight .tc-jp{font-size:clamp(22px,1.9vw,30px)}
.tc-shell.tc-vh-tight .tc-kana{font-size:13px}
.tc-shell.tc-vh-tight .tc-roman{font-size:18px}
.tc-shell.tc-vh-tight .tc-coach{font-size:10px}
.tc-shell.tc-vh-tight .tc-next-finger{min-height:48px;grid-template-columns:58px 1fr auto}
.tc-shell.tc-vh-tight .tc-next-key{width:44px;height:38px;font-size:20px}
.tc-shell.tc-vh-tight .tc-next-finger strong{font-size:14px}
.tc-shell.tc-vh-tight .tc-next-finger em{font-size:9px}
.tc-shell.tc-vh-tight .tc-key{height:30px!important;font-size:11px!important}
.tc-shell.tc-vh-tight .tc-key-row{margin:2px 0}
.tc-shell.tc-vh-ultra .tc-practice{padding:5px 10px}
.tc-shell.tc-vh-ultra .tc-metrics>div{padding:4px 6px}
.tc-shell.tc-vh-ultra .tc-metrics b{font-size:18px}
.tc-shell.tc-vh-ultra .tc-metrics span{font-size:9px}
.tc-shell.tc-vh-ultra .tc-sentence-stage{padding:7px 10px}
.tc-shell.tc-vh-ultra .tc-jp{font-size:22px}
.tc-shell.tc-vh-ultra .tc-kana{font-size:12px}
.tc-shell.tc-vh-ultra .tc-roman{font-size:16px}
.tc-shell.tc-vh-ultra .tc-next-finger{min-height:43px;padding:4px 8px}
.tc-shell.tc-vh-ultra .tc-key{height:27px!important}
.tc-shell.tc-vh-ultra .tc-guide-toolbar{display:none}


/* ==========================================================
   v0.7 — Formal Design Comp UI
   Visual source of truth: approved Typing Coach formal comp.
   ========================================================== */

.tc-standalone-body{
  background:#f6f2e9!important;
}
.tc-app-header{
  background:linear-gradient(90deg,#06162f 0%,#071a36 55%,#06162f 100%);
  border-bottom:0;
  box-shadow:none;
}
.tc-app-header__inner{
  max-width:1660px;
  min-height:76px;
  padding:0 28px;
}
.tc-app-logo__mark{
  width:50px;height:50px;
  border:2px solid #d4a536;
  border-radius:15px;
  color:#efc354;
  box-shadow:inset 0 0 0 2px rgba(212,165,54,.08);
}
.tc-app-logo strong{
  font-size:25px;
  letter-spacing:.01em;
}
.tc-app-logo small{
  color:#e4b94f;
  font-size:10px;
  letter-spacing:.18em;
}
.tc-app-nav a{
  font-size:14px;
  font-weight:800;
  padding:10px 14px;
}
.tc-app-main{
  padding:12px 12px 14px!important;
}
.tc-standalone-body .tc-shell{
  width:min(calc(100% - 4px),1620px);
  max-width:1620px;
  margin:0 auto;
  border:1px solid rgba(196,151,54,.45);
  border-radius:12px;
  box-shadow:0 8px 24px rgba(11,29,52,.06);
  overflow:hidden;
  background:#fff;
}
.tc-standalone-body .tc-shell>.tc-copyright{
  display:none;
}

/* Practice is the approved comp's compact information hierarchy */
.tc-practice-formal:not([hidden]){
  padding:10px 38px 10px!important;
  gap:7px!important;
  background:#fff;
  grid-template-rows:auto auto minmax(0,1fr) auto auto!important;
}
.tc-practice-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:48px;
}
.tc-practice-title{
  display:flex;
  align-items:center;
  min-width:0;
  gap:13px;
}
.tc-practice-title-icon{
  flex:0 0 auto;
  width:42px;height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(180deg,#c79732,#a9751b);
  color:#fff;
}
.tc-practice-title-icon svg{
  width:24px;height:24px;
  fill:currentColor;
}
.tc-practice-title h2{
  margin:0;
  color:#071a36;
  font-size:clamp(20px,1.55vw,28px);
  line-height:1.2;
  font-weight:850;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tc-practice-chips{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.tc-practice-chips span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:4px 14px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:12px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
}
.tc-chip-gold{background:#fff6dc;border-color:#edd89b!important;color:#715219}
.tc-chip-blue{background:#edf4ff;border-color:#c6d6ef!important;color:#173a68}
.tc-chip-green{background:#edf7ef;border-color:#cde4d0!important;color:#315d3b}
.tc-chip-rose{background:#fff0f3;border-color:#ebcbd3!important;color:#7e4050}

/* Metric cards */
.tc-metrics-formal{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
}
.tc-metrics-formal .tc-metric-card{
  min-height:96px;
  display:grid;
  grid-template-columns:66px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:11px 17px!important;
  border:1px solid #d7dce3;
  border-radius:6px;
  background:#fff;
  text-align:left;
}
.tc-metric-icon{
  width:54px;height:54px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#061a39;
  color:#fff;
}
.tc-metric-icon svg{width:31px;height:31px;fill:currentColor}
.tc-metric-icon-x{
  font-family:Arial,sans-serif;
  font-size:39px;
  font-weight:500;
  line-height:1;
}
.tc-metric-copy{min-width:0}
.tc-metric-label{
  display:block;
  font-size:14px!important;
  color:#071a36!important;
  font-weight:850;
  line-height:1.15;
  white-space:nowrap;
}
.tc-metric-label small{
  font-size:9px;
  font-weight:700;
}
.tc-metrics-formal .tc-metric-copy b{
  display:block;
  margin:1px 0 0;
  color:#061a39;
  font-family:Arial,"Noto Sans JP",sans-serif;
  font-size:clamp(28px,2.65vw,46px)!important;
  line-height:1;
  letter-spacing:.01em;
}
.tc-metric-sub{
  display:block;
  margin-top:3px;
  color:#334762!important;
  font-size:10px!important;
  font-weight:800;
  line-height:1.15;
}

/* Sentence area: large and calm like approved comp */
.tc-sentence-formal{
  margin:0!important;
  padding:10px 120px 5px!important;
  border:0!important;
  border-radius:0!important;
  background:#fff!important;
  justify-content:center!important;
}
.tc-sentence-formal .tc-jp{
  color:#071a36;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size:clamp(31px,3.35vw,52px)!important;
  line-height:1.28!important;
  font-weight:650!important;
  letter-spacing:.05em;
  border-bottom:1px dashed #c9cdd3;
  padding-bottom:5px;
}
.tc-sentence-formal .tc-kana{
  margin-top:4px!important;
  color:#0d2340;
  font-size:clamp(15px,1.4vw,21px)!important;
  line-height:1.3!important;
  letter-spacing:.12em;
}
.tc-sentence-formal .tc-roman{
  margin-top:3px!important;
  color:#071a36;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:clamp(18px,1.65vw,25px)!important;
  line-height:1.3!important;
  font-weight:750;
  letter-spacing:.13em;
}
.tc-sentence-formal .tc-roman mark{
  background:#f5d9df;
  color:#071a36;
  border-bottom:3px solid #a84e65;
  border-radius:2px;
  padding:1px 3px;
}
.tc-progress-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  margin:8px auto 7px;
  width:min(100%,1080px);
}
.tc-progress-row .tc-progress{
  margin:0!important;
  height:7px;
  background:#e7e4dd;
}
.tc-progress-row .tc-progress i{
  background:linear-gradient(90deg,#b27819,#d1a13a);
}
.tc-char-progress{
  min-width:78px;
  color:#26384f;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

/* NEXT FINGER full-width bar */
.tc-next-finger-formal{
  width:min(100%,1215px);
  max-width:none!important;
  margin:0 auto!important;
  min-height:74px!important;
  grid-template-columns:76px minmax(0,1fr) 165px!important;
  gap:14px!important;
  padding:8px 14px!important;
  border:1px solid #d8b36b!important;
  border-radius:5px!important;
  background:linear-gradient(90deg,#fffdf7,#fff)!important;
  box-shadow:none!important;
}
.tc-next-finger-formal .tc-next-key{
  width:62px!important;height:56px!important;
  background:#fff!important;
  border:1px solid #d5a331!important;
  border-radius:9px!important;
  color:#071a36;
  font-size:30px!important;
  box-shadow:0 4px 10px rgba(184,132,29,.12);
}
.tc-next-finger-copy{
  align-self:center;
}
.tc-next-finger-copy>small{
  color:#a36d19!important;
  font-size:11px!important;
  letter-spacing:.12em;
  font-weight:850;
}
.tc-next-finger-copy>strong{
  color:#071a36;
  font-size:23px!important;
  line-height:1.15;
}
.tc-next-finger-copy>em{
  display:block;
  margin-top:2px;
  color:#526175!important;
  font-size:10px!important;
}
.tc-hands-formal{
  justify-content:flex-end;
  align-items:center;
  gap:8px!important;
}
.tc-hands-formal span{
  width:66px!important;height:58px!important;
  display:flex!important;
  flex-direction:column;
  gap:1px;
  border:0!important;
  background:transparent!important;
  opacity:.4;
  border-radius:7px;
}
.tc-hands-formal span i{
  font-style:normal;
  font-size:31px;
  line-height:1;
}
.tc-hands-formal span small{
  font-size:9px;
  color:#3c4a5d;
  font-weight:800;
}
.tc-hands-formal span.is-active{
  opacity:1!important;
  background:#fff1c9!important;
  outline:1px solid #d6a339;
}

/* Guide strip directly above keyboard */
.tc-guide-toolbar-formal{
  width:min(100%,1215px);
  min-height:34px;
  margin:5px auto 0!important;
  padding:3px 8px;
  display:flex;
  align-items:center;
  gap:7px;
  border:1px solid #dad7d0;
  border-radius:4px;
  background:#f7f5f1;
  color:#071a36;
  box-sizing:border-box;
}
.tc-guide-label{
  padding:0 10px;
  font-size:12px;
  font-weight:850;
}
.tc-practice-guide{
  height:26px;
  min-width:104px;
  border:1px solid #bfc5ce;
  border-radius:999px;
  background:#fff;
  color:#0b1d34;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.tc-practice-guide.is-active{
  border-color:#071a36;
  background:#071a36;
  color:#fff;
}
.tc-practice-guide b{
  margin-left:4px;
  color:#fff;
}
.tc-guide-help{
  margin-left:5px;
  color:#5a6470;
  font-size:9px;
  font-weight:650;
}
.tc-coach-formal{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
  padding:0!important;
  margin:0!important;
}

/* Formal JIS-like keyboard */
.tc-keyboard-wrap-formal{
  margin:0!important;
}
.tc-keyboard-wrap-formal .tc-keyboard{
  width:min(100%,1215px)!important;
  max-width:1215px!important;
  margin:0 auto!important;
  padding:0!important;
  overflow:visible!important;
}
.tc-keyboard-wrap-formal .tc-key-row{
  display:flex!important;
  min-width:0!important;
  gap:4px!important;
  margin:4px 0!important;
  justify-content:center!important;
}
.tc-keyboard-wrap-formal .tc-key{
  flex:1 1 0!important;
  min-width:0!important;
  width:auto!important;
  height:39px!important;
  padding:2px 4px!important;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  border:1px solid #c8cdd4!important;
  border-radius:4px!important;
  background:linear-gradient(180deg,#fff,#f6f6f4)!important;
  color:#071a36!important;
  box-shadow:0 1px 2px rgba(15,32,53,.08);
  font-weight:750!important;
  font-size:12px!important;
  line-height:1!important;
}
.tc-key-main{
  display:block;
  font-size:12px;
  line-height:1;
}
.tc-key-sub{
  display:block;
  margin-top:3px;
  color:#586474;
  font-size:8px;
  line-height:1;
  font-weight:650;
}
.tc-keyboard-wrap-formal .tc-key.is-target{
  border:2px solid #d3a034!important;
  background:#ffefb5!important;
  box-shadow:0 0 0 2px rgba(211,160,52,.12)!important;
}
.tc-keyboard-wrap-formal .tc-key.is-target .tc-key-sub{
  color:#5d4310;
}
.tc-keyboard-wrap-formal .tc-key.key-jis-half{flex:1.45!important}
.tc-keyboard-wrap-formal .tc-key.key-backspace{flex:1.55!important}
.tc-keyboard-wrap-formal .tc-key.key-tab{flex:1.55!important}
.tc-keyboard-wrap-formal .tc-key.key-enter{flex:1.55!important}
.tc-keyboard-wrap-formal .tc-key.key-enter-tail{flex:.75!important;visibility:hidden}
.tc-keyboard-wrap-formal .tc-key.key-caps{flex:1.65!important}
.tc-keyboard-wrap-formal .tc-key.key-shift{flex:2.05!important}
.tc-keyboard-wrap-formal .tc-key.key-mod{flex:1.2!important}
.tc-keyboard-wrap-formal .tc-key.key-mod-small{flex:.85!important}
.tc-keyboard-wrap-formal .tc-key.key-convert{flex:1.5!important}
.tc-keyboard-wrap-formal .tc-key.key-kana{flex:1.75!important}
.tc-keyboard-wrap-formal .tc-key.key-space{flex:5.5!important}
.tc-home-bump{
  bottom:3px!important;
  width:12px!important;
}

/* Footer like approved comp */
.tc-practice-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:32px;
}
.tc-quit-button{
  padding:5px 11px!important;
  border-color:#09203d!important;
  color:#071a36!important;
  font-size:11px!important;
  border-radius:4px!important;
}
.tc-practice-copyright{
  color:#9aa1aa;
  font-size:10px;
}

/* OFF remains a focus mode but the selector bar stays available */
.tc-shell.guide-off .tc-next-finger-formal{
  display:none!important;
}
.tc-shell.guide-off .tc-keyboard-wrap-formal{
  display:none!important;
}
.tc-shell.guide-off .tc-guide-toolbar-formal{
  display:flex!important;
  margin-top:auto!important;
}
.tc-shell.guide-off .tc-sentence-formal{
  padding-top:60px!important;
  padding-bottom:60px!important;
}

/* Height adaptation keeps the formal visual hierarchy */
.tc-shell.tc-vh-compact .tc-practice-formal{
  padding:7px 24px 7px!important;
}
.tc-shell.tc-vh-compact .tc-practice-head{min-height:40px}
.tc-shell.tc-vh-compact .tc-practice-title-icon{width:36px;height:36px}
.tc-shell.tc-vh-compact .tc-practice-title-icon svg{width:20px;height:20px}
.tc-shell.tc-vh-compact .tc-practice-chips span{min-height:25px;padding:3px 10px;font-size:10px}
.tc-shell.tc-vh-compact .tc-metrics-formal .tc-metric-card{min-height:76px;padding:7px 13px!important;grid-template-columns:50px 1fr}
.tc-shell.tc-vh-compact .tc-metric-icon{width:44px;height:44px}
.tc-shell.tc-vh-compact .tc-metric-icon svg{width:25px;height:25px}
.tc-shell.tc-vh-compact .tc-sentence-formal{padding:5px 90px 3px!important}
.tc-shell.tc-vh-compact .tc-next-finger-formal{min-height:61px!important}
.tc-shell.tc-vh-compact .tc-keyboard-wrap-formal .tc-key{height:32px!important}
.tc-shell.tc-vh-compact .tc-keyboard-wrap-formal .tc-key-row{margin:3px 0!important}
.tc-shell.tc-vh-tight .tc-practice-head{min-height:34px}
.tc-shell.tc-vh-tight .tc-practice-title h2{font-size:19px}
.tc-shell.tc-vh-tight .tc-practice-title-icon{width:30px;height:30px}
.tc-shell.tc-vh-tight .tc-practice-chips span{min-height:22px;font-size:9px;padding:2px 8px}
.tc-shell.tc-vh-tight .tc-metrics-formal .tc-metric-card{min-height:63px;padding:5px 10px!important;grid-template-columns:42px 1fr}
.tc-shell.tc-vh-tight .tc-metric-icon{width:37px;height:37px}
.tc-shell.tc-vh-tight .tc-metric-copy b{font-size:24px!important}
.tc-shell.tc-vh-tight .tc-sentence-formal{padding:3px 70px 2px!important}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-jp{font-size:27px!important}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-kana{font-size:13px!important}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-roman{font-size:17px!important}
.tc-shell.tc-vh-tight .tc-progress-row{margin:4px auto}
.tc-shell.tc-vh-tight .tc-next-finger-formal{min-height:52px!important}
.tc-shell.tc-vh-tight .tc-next-finger-formal .tc-next-key{height:42px!important;width:48px!important;font-size:23px!important}
.tc-shell.tc-vh-tight .tc-next-finger-copy>strong{font-size:17px!important}
.tc-shell.tc-vh-tight .tc-hands-formal span{height:42px!important}
.tc-shell.tc-vh-tight .tc-hands-formal span i{font-size:23px}
.tc-shell.tc-vh-tight .tc-guide-toolbar-formal{min-height:28px}
.tc-shell.tc-vh-tight .tc-keyboard-wrap-formal .tc-key{height:27px!important}
.tc-shell.tc-vh-tight .tc-keyboard-wrap-formal .tc-key-row{margin:2px 0!important}
.tc-shell.tc-vh-tight .tc-key-main{font-size:10px}
.tc-shell.tc-vh-tight .tc-key-sub{font-size:7px;margin-top:2px}
.tc-shell.tc-vh-ultra .tc-practice-chips{display:none}
.tc-shell.tc-vh-ultra .tc-metric-sub{display:none}
.tc-shell.tc-vh-ultra .tc-metrics-formal .tc-metric-card{min-height:54px}
.tc-shell.tc-vh-ultra .tc-sentence-formal{padding-left:45px!important;padding-right:45px!important}
.tc-shell.tc-vh-ultra .tc-next-finger-copy>em{display:none}
.tc-shell.tc-vh-ultra .tc-guide-help{display:none}
.tc-shell.tc-vh-ultra .tc-keyboard-wrap-formal .tc-key{height:24px!important}

/* 1366px class laptops: keep whole keyboard in one visual field */
@media(max-width:1400px){
  .tc-practice-formal:not([hidden]){padding-left:22px!important;padding-right:22px!important}
  .tc-sentence-formal{padding-left:70px!important;padding-right:70px!important}
  .tc-practice-chips span{padding-left:10px;padding-right:10px}
  .tc-keyboard-wrap-formal .tc-keyboard,
  .tc-next-finger-formal,
  .tc-guide-toolbar-formal{width:min(100%,1120px)!important}
}
@media(max-width:1050px){
  .tc-practice-head{align-items:flex-start;flex-direction:column;gap:6px}
  .tc-practice-chips{justify-content:flex-start}
  .tc-sentence-formal{padding-left:25px!important;padding-right:25px!important}
  .tc-metrics-formal .tc-metric-card{grid-template-columns:42px 1fr}
  .tc-metric-icon{width:38px;height:38px}
  .tc-metric-label small{display:none}
}

.tc-app-nav-formal{gap:3px}
.tc-app-nav-formal>a>span{margin-right:4px;color:#f1c654}
.tc-user-greeting{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding-left:13px;
  margin-left:5px;
  border-left:1px solid rgba(255,255,255,.25);
  color:#fff;
  font-size:11px;
  font-weight:750;
  white-space:nowrap;
}
.tc-user-greeting i{
  width:23px;height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f5f5f3;
  color:#86909c;
  font-size:7px;
  font-style:normal;
}
@media(max-width:1250px){.tc-user-greeting{display:none}}


/* ==========================================================
   v0.8 — Formal comp fidelity pass
   ========================================================== */

/* Keep the lesson chips visible in normal laptop/desktop viewports. */
.tc-practice-formal .tc-practice-chips{
  display:flex!important;
}
.tc-shell.tc-vh-compact .tc-practice-chips{
  display:flex!important;
}
.tc-shell.tc-vh-tight .tc-practice-chips{
  display:flex!important;
}
.tc-shell.tc-vh-ultra .tc-practice-chips{
  display:none!important;
}

/* Formal title row */
.tc-practice-formal .tc-practice-head{
  min-height:50px;
}
.tc-practice-formal .tc-practice-title h2{
  font-size:clamp(22px,1.65vw,30px);
}
.tc-practice-formal .tc-practice-chips span{
  min-height:28px;
  padding:4px 14px;
  font-size:11px;
}

/* KPI cards: closer to approved visual, without sacrificing one-screen fit */
.tc-practice-formal .tc-metrics-formal .tc-metric-card{
  min-height:88px;
  border-color:#d8d9dc;
  box-shadow:0 1px 2px rgba(11,29,52,.03);
}
.tc-practice-formal .tc-metric-icon{
  width:52px;
  height:52px;
}
.tc-practice-formal .tc-metric-label{
  font-size:15px!important;
}
.tc-practice-formal .tc-metric-copy b{
  font-size:clamp(31px,2.7vw,45px)!important;
}
.tc-practice-formal .tc-metric-sub{
  display:block!important;
  margin-top:2px;
  font-size:9px!important;
}

/* Sentence is the visual hero */
.tc-practice-formal .tc-sentence-formal{
  padding-top:7px!important;
  padding-bottom:4px!important;
}
.tc-practice-formal .tc-sentence-formal .tc-jp{
  font-size:clamp(34px,3.55vw,55px)!important;
  font-weight:650!important;
  letter-spacing:.055em!important;
}
.tc-practice-formal .tc-sentence-formal .tc-kana{
  margin-top:3px!important;
  font-size:clamp(16px,1.45vw,22px)!important;
}
.tc-practice-formal .tc-sentence-formal .tc-roman{
  margin-top:2px!important;
  font-size:clamp(19px,1.7vw,26px)!important;
}

/* NEXT FINGER: stronger, closer to approved comp */
.tc-practice-formal .tc-next-finger-formal{
  min-height:78px!important;
  grid-template-columns:82px minmax(0,1fr) 190px!important;
  padding:8px 14px!important;
}
.tc-practice-formal .tc-next-finger-formal .tc-next-key{
  width:66px!important;
  height:60px!important;
  font-size:31px!important;
}
.tc-practice-formal .tc-next-finger-copy>small{
  font-size:12px!important;
}
.tc-practice-formal .tc-next-finger-copy>strong{
  font-size:25px!important;
}
.tc-practice-formal .tc-next-finger-copy>em{
  font-size:10px!important;
}
.tc-practice-formal .tc-hands-formal{
  gap:11px!important;
}
.tc-practice-formal .tc-hands-formal span{
  width:76px!important;
  height:62px!important;
}
.tc-practice-formal .tc-hands-formal span i{
  font-size:34px!important;
}
.tc-practice-formal .tc-hands-formal span small{
  font-size:10px!important;
}

/* The guide selector must remain visible even in compact modes. */
.tc-practice-formal .tc-guide-toolbar-formal{
  display:flex!important;
  min-height:32px!important;
  margin-top:4px!important;
}
.tc-shell.tc-vh-compact .tc-guide-toolbar-formal,
.tc-shell.tc-vh-tight .tc-guide-toolbar-formal,
.tc-shell.tc-vh-ultra .tc-guide-toolbar-formal{
  display:flex!important;
}
.tc-practice-formal .tc-guide-label{
  font-size:12px;
}
.tc-practice-formal .tc-practice-guide{
  min-width:112px;
  height:27px;
}
.tc-practice-formal .tc-guide-help{
  display:inline!important;
}
.tc-shell.tc-vh-ultra .tc-guide-help{
  display:none!important;
}

/* JIS keyboard: slightly larger characters and stronger physical-key feeling */
.tc-practice-formal .tc-keyboard-wrap-formal .tc-key{
  height:40px!important;
  border-color:#c8cbd0!important;
  box-shadow:
    0 1px 2px rgba(11,29,52,.07),
    inset 0 -1px 0 rgba(11,29,52,.05);
}
.tc-practice-formal .tc-key-main{
  font-size:12.5px;
  font-weight:800;
}
.tc-practice-formal .tc-key-sub{
  margin-top:3px;
  font-size:8.5px;
}
.tc-practice-formal .tc-key.is-home-key .tc-home-bump{
  height:2px;
  background:#6b7787;
}

/* Subtle finger-zone underlines. Color is supplemental only; key target still
   uses border/background/weight so guidance never relies on color alone. */
.tc-practice-formal .tc-key[class*="finger-"]::after{
  content:"";
  position:absolute;
  left:6px;
  right:6px;
  bottom:1px;
  height:2px;
  border-radius:999px;
  opacity:.42;
}
.tc-practice-formal .tc-key.finger-lf-pinky::after,
.tc-practice-formal .tc-key.finger-rt-pinky::after{background:#cf7188}
.tc-practice-formal .tc-key.finger-lf-ring::after,
.tc-practice-formal .tc-key.finger-rt-ring::after{background:#7095d4}
.tc-practice-formal .tc-key.finger-lf-middle::after,
.tc-practice-formal .tc-key.finger-rt-middle::after{background:#72a881}
.tc-practice-formal .tc-key.finger-lf-index::after,
.tc-practice-formal .tc-key.finger-rt-index::after{background:#d0a647}
.tc-practice-formal .tc-key.is-target::after{
  height:3px;
  opacity:1;
  background:#9a6b18!important;
}

/* Compact mode: keep visual hierarchy, trim spacing rather than hiding content */
.tc-shell.tc-vh-compact .tc-practice-formal{
  padding:6px 22px 6px!important;
}
.tc-shell.tc-vh-compact .tc-practice-head{
  min-height:40px;
}
.tc-shell.tc-vh-compact .tc-practice-title h2{
  font-size:21px;
}
.tc-shell.tc-vh-compact .tc-practice-chips span{
  min-height:23px;
  padding:2px 9px;
  font-size:9px;
}
.tc-shell.tc-vh-compact .tc-metrics-formal .tc-metric-card{
  min-height:68px!important;
  grid-template-columns:44px 1fr!important;
  padding:5px 10px!important;
}
.tc-shell.tc-vh-compact .tc-metric-icon{
  width:39px!important;
  height:39px!important;
}
.tc-shell.tc-vh-compact .tc-metric-copy b{
  font-size:25px!important;
}
.tc-shell.tc-vh-compact .tc-metric-sub{
  font-size:8px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-jp{
  font-size:30px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-kana{
  font-size:14px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-roman{
  font-size:18px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-formal{
  min-height:58px!important;
  grid-template-columns:61px minmax(0,1fr) 150px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-formal .tc-next-key{
  width:50px!important;
  height:44px!important;
  font-size:24px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-copy>strong{
  font-size:19px!important;
}
.tc-shell.tc-vh-compact .tc-hands-formal span{
  width:60px!important;
  height:45px!important;
}
.tc-shell.tc-vh-compact .tc-hands-formal span i{
  font-size:25px!important;
}
.tc-shell.tc-vh-compact .tc-keyboard-wrap-formal .tc-key{
  height:31px!important;
}
.tc-shell.tc-vh-compact .tc-key-main{font-size:10.5px}
.tc-shell.tc-vh-compact .tc-key-sub{font-size:7px}

/* Tight mode trims further, but still retains guide selector. */
.tc-shell.tc-vh-tight .tc-practice-title-icon{
  width:28px!important;
  height:28px!important;
}
.tc-shell.tc-vh-tight .tc-practice-title h2{
  font-size:18px!important;
}
.tc-shell.tc-vh-tight .tc-practice-chips span{
  min-height:20px;
  padding:1px 7px;
  font-size:8px;
}
.tc-shell.tc-vh-tight .tc-metrics-formal .tc-metric-card{
  min-height:56px!important;
}
.tc-shell.tc-vh-tight .tc-metric-sub{
  display:none!important;
}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-jp{
  font-size:25px!important;
}
.tc-shell.tc-vh-tight .tc-next-finger-formal{
  min-height:49px!important;
}
.tc-shell.tc-vh-tight .tc-keyboard-wrap-formal .tc-key{
  height:25px!important;
}

/* On user-facing pages the admin bar won't exist; logged-in test view still fits. */
body.admin-bar .tc-app-main{
  padding-top:10px!important;
}


/* ==========================================================
   v0.9 — Preserve formal information hierarchy at all PC heights
   ========================================================== */

/* Never hide the formal metadata / KPI goal / guide explanation on PC.
   Low-height viewports compress them instead. */
.tc-practice-formal .tc-practice-chips,
.tc-shell.tc-vh-compact .tc-practice-chips,
.tc-shell.tc-vh-tight .tc-practice-chips,
.tc-shell.tc-vh-ultra .tc-practice-chips{
  display:flex!important;
}
.tc-practice-formal .tc-metric-sub,
.tc-shell.tc-vh-compact .tc-metric-sub,
.tc-shell.tc-vh-tight .tc-metric-sub,
.tc-shell.tc-vh-ultra .tc-metric-sub{
  display:block!important;
}
.tc-practice-formal .tc-guide-help,
.tc-shell.tc-vh-compact .tc-guide-help,
.tc-shell.tc-vh-tight .tc-guide-help,
.tc-shell.tc-vh-ultra .tc-guide-help{
  display:inline!important;
}

/* Use a strict two-column title row so the chips cannot collapse out of view. */
.tc-practice-formal .tc-practice-head{
  display:grid!important;
  grid-template-columns:minmax(390px,1fr) auto!important;
  align-items:center!important;
  column-gap:18px!important;
}
.tc-practice-formal .tc-practice-chips{
  flex-wrap:nowrap!important;
  justify-content:flex-end!important;
  min-width:0;
}
.tc-practice-formal .tc-practice-chips span{
  flex:0 0 auto;
}

/* Make KPI goals clearly visible like the approved comp. */
.tc-practice-formal .tc-metric-card{
  overflow:visible!important;
}
.tc-practice-formal .tc-metric-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:64px;
}
.tc-practice-formal .tc-metric-sub{
  color:#273a54!important;
  opacity:1!important;
  font-size:10px!important;
  font-weight:850!important;
  line-height:1.1!important;
}

/* Guide explanation gets the remaining horizontal space instead of disappearing. */
.tc-practice-formal .tc-guide-toolbar-formal{
  overflow:hidden;
}
.tc-practice-formal .tc-guide-help{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#535f6f!important;
  opacity:1!important;
  font-size:10px!important;
}

/* Slightly stronger NEXT FINGER information hierarchy. */
.tc-practice-formal .tc-next-finger-copy>small{
  letter-spacing:.13em!important;
}
.tc-practice-formal .tc-next-finger-copy>strong{
  font-weight:850!important;
}
.tc-practice-formal .tc-hands-formal span.is-active{
  border-radius:8px!important;
  box-shadow:inset 0 0 0 1px rgba(211,160,52,.38);
}

/* Formal comp's Japanese line should feel primary, but do not push keyboard out. */
.tc-practice-formal .tc-sentence-formal .tc-jp{
  max-width:1220px;
  margin-left:auto;
  margin-right:auto;
}
.tc-practice-formal .tc-sentence-formal .tc-kana,
.tc-practice-formal .tc-sentence-formal .tc-roman{
  max-width:1220px;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Compact mode: shrink instead of hide. */
.tc-shell.tc-vh-compact .tc-practice-formal .tc-practice-head{
  grid-template-columns:minmax(330px,1fr) auto!important;
}
.tc-shell.tc-vh-compact .tc-practice-chips span{
  min-height:21px!important;
  padding:2px 8px!important;
  font-size:8.5px!important;
}
.tc-shell.tc-vh-compact .tc-metric-sub{
  font-size:7.8px!important;
}
.tc-shell.tc-vh-compact .tc-guide-help{
  font-size:8.5px!important;
}
.tc-shell.tc-vh-compact .tc-guide-toolbar-formal{
  min-height:27px!important;
}
.tc-shell.tc-vh-compact .tc-practice-guide{
  height:23px!important;
  min-width:95px!important;
  font-size:9.5px!important;
}

/* Tight mode remains complete, just more compact. */
.tc-shell.tc-vh-tight .tc-practice-formal{
  padding:4px 18px 4px!important;
  gap:3px!important;
}
.tc-shell.tc-vh-tight .tc-practice-formal .tc-practice-head{
  min-height:31px!important;
  grid-template-columns:minmax(280px,1fr) auto!important;
}
.tc-shell.tc-vh-tight .tc-practice-title-icon{
  width:26px!important;
  height:26px!important;
}
.tc-shell.tc-vh-tight .tc-practice-title h2{
  font-size:17px!important;
}
.tc-shell.tc-vh-tight .tc-practice-chips{
  gap:4px!important;
}
.tc-shell.tc-vh-tight .tc-practice-chips span{
  min-height:18px!important;
  padding:1px 6px!important;
  font-size:7.5px!important;
}
.tc-shell.tc-vh-tight .tc-metrics-formal{
  gap:5px!important;
}
.tc-shell.tc-vh-tight .tc-metrics-formal .tc-metric-card{
  min-height:52px!important;
  grid-template-columns:35px 1fr!important;
  padding:3px 7px!important;
}
.tc-shell.tc-vh-tight .tc-metric-icon{
  width:31px!important;
  height:31px!important;
}
.tc-shell.tc-vh-tight .tc-metric-label{
  font-size:10px!important;
}
.tc-shell.tc-vh-tight .tc-metric-copy b{
  font-size:20px!important;
}
.tc-shell.tc-vh-tight .tc-metric-sub{
  font-size:6.8px!important;
  margin-top:1px!important;
}
.tc-shell.tc-vh-tight .tc-sentence-formal{
  padding-top:1px!important;
  padding-bottom:1px!important;
}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-jp{
  font-size:23px!important;
  line-height:1.18!important;
  padding-bottom:2px!important;
}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-kana{
  font-size:11px!important;
}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-roman{
  font-size:15px!important;
}
.tc-shell.tc-vh-tight .tc-progress-row{
  margin:2px auto!important;
}
.tc-shell.tc-vh-tight .tc-next-finger-formal{
  min-height:43px!important;
  grid-template-columns:48px minmax(0,1fr) 118px!important;
  padding:3px 7px!important;
}
.tc-shell.tc-vh-tight .tc-next-finger-formal .tc-next-key{
  width:38px!important;
  height:34px!important;
  font-size:19px!important;
}
.tc-shell.tc-vh-tight .tc-next-finger-copy>small{
  font-size:8px!important;
}
.tc-shell.tc-vh-tight .tc-next-finger-copy>strong{
  font-size:15px!important;
}
.tc-shell.tc-vh-tight .tc-next-finger-copy>em{
  font-size:7px!important;
}
.tc-shell.tc-vh-tight .tc-hands-formal span{
  width:47px!important;
  height:34px!important;
}
.tc-shell.tc-vh-tight .tc-hands-formal span i{
  font-size:19px!important;
}
.tc-shell.tc-vh-tight .tc-hands-formal span small{
  font-size:7px!important;
}
.tc-shell.tc-vh-tight .tc-guide-toolbar-formal{
  min-height:24px!important;
  margin-top:2px!important;
  padding:1px 5px!important;
}
.tc-shell.tc-vh-tight .tc-guide-label{
  padding:0 6px!important;
  font-size:9px!important;
}
.tc-shell.tc-vh-tight .tc-practice-guide{
  height:20px!important;
  min-width:80px!important;
  font-size:8.5px!important;
}
.tc-shell.tc-vh-tight .tc-guide-help{
  font-size:7.5px!important;
}
.tc-shell.tc-vh-tight .tc-keyboard-wrap-formal .tc-key{
  height:23px!important;
}
.tc-shell.tc-vh-tight .tc-keyboard-wrap-formal .tc-key-row{
  margin:1px 0!important;
}
.tc-shell.tc-vh-tight .tc-key-main{
  font-size:8.5px!important;
}
.tc-shell.tc-vh-tight .tc-key-sub{
  margin-top:1px!important;
  font-size:5.8px!important;
}
.tc-shell.tc-vh-tight .tc-practice-footer{
  min-height:25px!important;
}

/* Ultra: still no information hiding. At this point the key labels/spacing are
   aggressively compressed to preserve the no-scroll requirement. */
.tc-shell.tc-vh-ultra .tc-practice-formal .tc-practice-head{
  grid-template-columns:minmax(230px,1fr) auto!important;
}
.tc-shell.tc-vh-ultra .tc-practice-title h2{
  font-size:15px!important;
}
.tc-shell.tc-vh-ultra .tc-practice-chips span{
  font-size:6.5px!important;
  padding:1px 4px!important;
  min-height:16px!important;
}
.tc-shell.tc-vh-ultra .tc-metric-sub{
  font-size:5.8px!important;
}
.tc-shell.tc-vh-ultra .tc-guide-help{
  font-size:6.5px!important;
}
.tc-shell.tc-vh-ultra .tc-keyboard-wrap-formal .tc-key{
  height:20px!important;
}
.tc-shell.tc-vh-ultra .tc-key-main{
  font-size:7.5px!important;
}
.tc-shell.tc-vh-ultra .tc-key-sub{
  font-size:5px!important;
}

/* If the viewport becomes too narrow for a formal desktop keyboard, use a
   horizontal page-safe fallback rather than silently dropping information. */
@media(max-width:1150px){
  .tc-practice-formal .tc-practice-head{
    grid-template-columns:1fr!important;
    row-gap:5px!important;
  }
  .tc-practice-formal .tc-practice-chips{
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
  }
}


/* ==========================================================
   v1.0 — Formal UI milestone
   Use the available vertical space instead of compressing prematurely.
   ========================================================== */

/* The practice layout no longer gives the sentence area a flexible track.
   The keyboard track receives remaining space and can use it. */
.tc-practice-formal:not([hidden]){
  grid-template-rows:auto auto auto minmax(150px,1fr) auto!important;
  align-content:stretch!important;
}

/* Sentence content ends immediately after the guide strip. */
.tc-practice-formal .tc-sentence-formal{
  justify-content:flex-start!important;
  min-height:0!important;
}

/* Keyboard consumes the reclaimed vertical space. */
.tc-practice-formal .tc-keyboard-wrap-formal{
  min-height:0!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-keyboard{
  width:min(100%,1215px)!important;
  height:auto!important;
  display:grid!important;
  grid-template-rows:repeat(5,var(--tc-key-h,40px))!important;
  row-gap:4px!important;
  align-content:start!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-key-row{
  height:var(--tc-key-h,40px)!important;
  min-height:0!important;
  margin:0!important;
  gap:4px!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-key{
  height:var(--tc-key-h,40px)!important;
  min-height:0!important;
  max-height:none!important;
}

/* v0.9 screenshot had an unnecessary empty band before the keyboard. */
.tc-practice-formal .tc-guide-toolbar-formal{
  margin-bottom:4px!important;
}

/* Restore formal-comp-friendly sizing for common desktop/laptop heights. */
.tc-practice-formal .tc-practice-chips span{
  min-height:26px!important;
  padding:3px 12px!important;
  font-size:10px!important;
}
.tc-practice-formal .tc-metric-sub{
  font-size:9px!important;
}
.tc-practice-formal .tc-guide-help{
  font-size:9px!important;
}
.tc-practice-formal .tc-key-main{
  font-size:clamp(10px,calc(var(--tc-key-h,40px) * .31),13px)!important;
}
.tc-practice-formal .tc-key-sub{
  font-size:clamp(6.5px,calc(var(--tc-key-h,40px) * .20),8.5px)!important;
}

/* Wider visual rhythm, closer to the approved comp. */
.tc-practice-formal .tc-next-finger-formal,
.tc-practice-formal .tc-guide-toolbar-formal,
.tc-practice-formal .tc-keyboard-wrap-formal .tc-keyboard{
  width:min(100%,1240px)!important;
  max-width:1240px!important;
}
.tc-practice-formal .tc-progress-row{
  width:min(100%,1120px)!important;
}
.tc-practice-formal .tc-sentence-formal .tc-jp,
.tc-practice-formal .tc-sentence-formal .tc-kana,
.tc-practice-formal .tc-sentence-formal .tc-roman{
  max-width:1260px!important;
}

/* The approved comp has stronger vertical presence in the sentence. */
.tc-practice-formal .tc-sentence-formal .tc-jp{
  font-size:clamp(36px,3.65vw,56px)!important;
}
.tc-practice-formal .tc-sentence-formal .tc-kana{
  font-size:clamp(16px,1.48vw,22px)!important;
}
.tc-practice-formal .tc-sentence-formal .tc-roman{
  font-size:clamp(19px,1.72vw,26px)!important;
}

/* Make the finger strip look like a deliberate premium component. */
.tc-practice-formal .tc-next-finger-formal{
  border-color:#d2a44a!important;
  background:linear-gradient(90deg,#fffdf8 0%,#ffffff 58%,#fffdf8 100%)!important;
}
.tc-practice-formal .tc-next-key{
  box-shadow:0 3px 8px rgba(183,128,28,.10)!important;
}

/* Keep the selector and help readable. */
.tc-practice-formal .tc-guide-toolbar-formal{
  min-height:30px!important;
}
.tc-practice-formal .tc-practice-guide{
  height:25px!important;
  min-width:105px!important;
}
.tc-practice-formal .tc-guide-help{
  white-space:nowrap!important;
  text-overflow:clip!important;
}

/* Last-resort compact modes. They are only reached on genuinely short viewports. */
.tc-shell.tc-vh-compact .tc-practice-formal{
  padding:4px 18px 4px!important;
  gap:3px!important;
}
.tc-shell.tc-vh-compact .tc-practice-head{
  min-height:34px!important;
}
.tc-shell.tc-vh-compact .tc-practice-title h2{
  font-size:18px!important;
}
.tc-shell.tc-vh-compact .tc-practice-chips span{
  min-height:19px!important;
  padding:1px 6px!important;
  font-size:7.5px!important;
}
.tc-shell.tc-vh-compact .tc-metrics-formal .tc-metric-card{
  min-height:54px!important;
  grid-template-columns:36px 1fr!important;
  padding:3px 7px!important;
}
.tc-shell.tc-vh-compact .tc-metric-icon{
  width:32px!important;height:32px!important;
}
.tc-shell.tc-vh-compact .tc-metric-label{
  font-size:10px!important;
}
.tc-shell.tc-vh-compact .tc-metric-copy b{
  font-size:21px!important;
}
.tc-shell.tc-vh-compact .tc-metric-sub{
  font-size:6.8px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-jp{
  font-size:25px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-kana{
  font-size:11px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-roman{
  font-size:15px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-formal{
  min-height:45px!important;
  grid-template-columns:48px minmax(0,1fr) 120px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-formal .tc-next-key{
  width:38px!important;height:35px!important;font-size:19px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-copy>strong{
  font-size:15px!important;
}
.tc-shell.tc-vh-compact .tc-hands-formal span{
  width:48px!important;height:35px!important;
}
.tc-shell.tc-vh-compact .tc-hands-formal span i{
  font-size:19px!important;
}
.tc-shell.tc-vh-compact .tc-guide-toolbar-formal{
  min-height:23px!important;
}
.tc-shell.tc-vh-compact .tc-guide-help{
  font-size:7px!important;
}
.tc-shell.tc-vh-compact .tc-practice-guide{
  height:19px!important;
  min-width:77px!important;
  font-size:8px!important;
}

.tc-shell.tc-vh-tight .tc-practice-chips span{
  font-size:6.8px!important;
}
.tc-shell.tc-vh-tight .tc-guide-help{
  font-size:6px!important;
}
.tc-shell.tc-vh-tight .tc-sentence-formal .tc-jp{
  font-size:22px!important;
}

.tc-shell.tc-vh-ultra .tc-practice-chips{
  display:flex!important;
}
.tc-shell.tc-vh-ultra .tc-metric-sub{
  display:block!important;
}
.tc-shell.tc-vh-ultra .tc-guide-help{
  display:inline!important;
}

/* CUD: finger colors remain supplementary; active key has shape/border/fill. */
.tc-practice-formal .tc-key.is-target{
  border-width:2px!important;
  font-weight:900!important;
}

/* Test environment admin bar only; public users get the full extra height. */
body.admin-bar .tc-practice-formal:not([hidden]){
  border-radius:0!important;
}


/* ==========================================================
   v1.1 — Formal Design Comp fidelity, no compromise pass
   ========================================================== */

/* Dedicated app view gets the whole viewport. */
html:has(body.tc-standalone-body){
  margin-top:0!important;
  overflow:hidden;
}
body.tc-standalone-body{
  margin:0!important;
  height:100dvh;
  overflow:hidden!important;
}
body.tc-standalone-body #wpadminbar{
  display:none!important;
}

/* Header proportions closer to formal comp */
.tc-app-header__inner{
  min-height:70px!important;
  height:70px;
  max-width:1840px!important;
  padding:0 26px!important;
}
.tc-app-logo__mark{
  width:48px!important;
  height:48px!important;
}
.tc-app-logo strong{
  font-size:24px!important;
}
.tc-app-logo small{
  font-size:9.5px!important;
}
.tc-app-nav-formal a{
  font-size:13px!important;
  padding:8px 12px!important;
}
.tc-nav-icon{
  color:#efbf4c;
  margin-right:5px;
}

/* Use almost the whole browser, like the approved comp. */
.tc-app-main{
  height:calc(100dvh - 70px)!important;
  padding:8px 12px 10px!important;
  overflow:hidden!important;
  box-sizing:border-box;
}
.tc-standalone-body .tc-shell{
  width:min(calc(100% - 2px),1840px)!important;
  max-width:1840px!important;
  height:100%!important;
  margin:0 auto!important;
  border-radius:10px!important;
  box-sizing:border-box;
}

/* Formal practice grid: no unexplained empty bands. */
.tc-practice-formal:not([hidden]){
  height:100%!important;
  max-height:none!important;
  min-height:0!important;
  padding:8px 36px 7px!important;
  gap:5px!important;
  grid-template-rows:48px 102px minmax(205px,1fr) auto auto!important;
}

/* Title and chips */
.tc-practice-formal .tc-practice-head{
  min-height:48px!important;
  height:48px!important;
  grid-template-columns:minmax(560px,1fr) auto!important;
}
.tc-practice-formal .tc-practice-title{
  gap:12px!important;
}
.tc-practice-formal .tc-practice-title-icon{
  width:41px!important;
  height:41px!important;
}
.tc-practice-formal .tc-practice-title h2{
  font-size:27px!important;
}
.tc-practice-formal .tc-practice-chips{
  gap:9px!important;
}
.tc-practice-formal .tc-practice-chips span{
  min-height:29px!important;
  padding:4px 14px!important;
  font-size:11px!important;
}

/* KPI cards: formal-comp weight */
.tc-practice-formal .tc-metrics-formal{
  height:102px!important;
  gap:10px!important;
}
.tc-practice-formal .tc-metrics-formal .tc-metric-card{
  min-height:102px!important;
  height:102px!important;
  grid-template-columns:64px minmax(0,1fr)!important;
  gap:12px!important;
  padding:10px 17px!important;
}
.tc-practice-formal .tc-metric-icon{
  width:54px!important;
  height:54px!important;
}
.tc-practice-formal .tc-metric-label{
  font-size:15px!important;
}
.tc-practice-formal .tc-metric-label small{
  font-size:9px!important;
}
.tc-practice-formal .tc-metric-copy b{
  font-size:43px!important;
  line-height:.98!important;
}
.tc-practice-formal .tc-metric-sub{
  margin-top:3px!important;
  font-size:9.5px!important;
}

/* Sentence block: the actual hero of the page */
.tc-practice-formal .tc-sentence-formal{
  height:100%!important;
  padding:7px 92px 3px!important;
  display:grid!important;
  grid-template-rows:auto auto auto auto auto auto!important;
  align-content:center!important;
}
.tc-practice-formal .tc-sentence-formal .tc-jp{
  font-size:48px!important;
  line-height:1.20!important;
  letter-spacing:.065em!important;
  padding-bottom:5px!important;
}
.tc-practice-formal .tc-sentence-formal .tc-kana{
  margin-top:3px!important;
  font-size:19px!important;
  line-height:1.25!important;
}
.tc-practice-formal .tc-sentence-formal .tc-roman{
  margin-top:2px!important;
  font-size:23px!important;
  line-height:1.25!important;
}
.tc-practice-formal .tc-progress-row{
  width:min(100%,1180px)!important;
  margin:7px auto 6px!important;
}
.tc-practice-formal .tc-progress-row .tc-progress{
  height:7px!important;
}

/* NEXT FINGER formal component */
.tc-practice-formal .tc-next-finger-formal{
  width:min(100%,1320px)!important;
  max-width:1320px!important;
  min-height:76px!important;
  grid-template-columns:78px minmax(0,1fr) 180px!important;
  padding:7px 13px!important;
  margin:0 auto!important;
}
.tc-practice-formal .tc-next-finger-formal .tc-next-key{
  width:62px!important;
  height:58px!important;
  font-size:31px!important;
}
.tc-practice-formal .tc-next-finger-copy>small{
  font-size:11px!important;
}
.tc-practice-formal .tc-next-finger-copy>strong{
  font-size:25px!important;
}
.tc-practice-formal .tc-next-finger-copy>em{
  font-size:9.5px!important;
}
.tc-practice-formal .tc-hands-formal{
  gap:10px!important;
}
.tc-practice-formal .tc-hands-formal span{
  width:70px!important;
  height:58px!important;
  color:#aeb5bd;
}
.tc-practice-formal .tc-hands-formal span.is-active{
  color:#071a36!important;
  background:#fff3cb!important;
}
.tc-hand-svg{
  display:block!important;
  width:34px!important;
  height:34px!important;
  line-height:1!important;
}
.tc-hand-svg svg{
  width:34px!important;
  height:34px!important;
  fill:currentColor;
}
.tc-hand-svg--right svg{
  transform:scaleX(-1);
}
.tc-practice-formal .tc-hands-formal span small{
  font-size:9px!important;
  color:inherit!important;
}

/* Guide bar */
.tc-practice-formal .tc-guide-toolbar-formal{
  width:min(100%,1320px)!important;
  max-width:1320px!important;
  min-height:33px!important;
  height:33px!important;
  margin:5px auto 0!important;
  padding:3px 8px!important;
}
.tc-practice-formal .tc-guide-label{
  font-size:11px!important;
}
.tc-practice-formal .tc-practice-guide{
  height:26px!important;
  min-width:108px!important;
  font-size:10.5px!important;
}
.tc-practice-formal .tc-guide-help{
  font-size:9px!important;
}

/* Keyboard: large, physical, and close to approved comp */
.tc-practice-formal .tc-keyboard-wrap-formal{
  min-height:0!important;
  align-items:center!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-keyboard{
  width:min(100%,1320px)!important;
  max-width:1320px!important;
  grid-template-rows:repeat(5,var(--tc-key-h,44px))!important;
  row-gap:4px!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-key-row{
  height:var(--tc-key-h,44px)!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-key{
  height:var(--tc-key-h,44px)!important;
  border-radius:5px!important;
}
.tc-practice-formal .tc-key-main{
  font-size:13px!important;
}
.tc-practice-formal .tc-key-sub{
  margin-top:3px!important;
  font-size:8px!important;
}

/* Footer */
.tc-practice-formal .tc-practice-footer{
  min-height:32px!important;
  height:32px!important;
}
.tc-practice-formal .tc-quit-button{
  min-height:30px!important;
  padding:5px 12px!important;
  font-size:11px!important;
}
.tc-practice-formal .tc-practice-copyright{
  font-size:10px!important;
}

/* Only genuinely short displays enter compact mode. */
.tc-shell.tc-vh-compact .tc-practice-formal{
  padding:4px 20px!important;
  grid-template-rows:34px 62px minmax(160px,1fr) auto auto!important;
}
.tc-shell.tc-vh-compact .tc-practice-head{
  height:34px!important;
  min-height:34px!important;
  grid-template-columns:minmax(350px,1fr) auto!important;
}
.tc-shell.tc-vh-compact .tc-practice-title-icon{
  width:28px!important;height:28px!important;
}
.tc-shell.tc-vh-compact .tc-practice-title h2{
  font-size:18px!important;
}
.tc-shell.tc-vh-compact .tc-practice-chips span{
  min-height:19px!important;
  padding:1px 6px!important;
  font-size:7px!important;
}
.tc-shell.tc-vh-compact .tc-metrics-formal{
  height:62px!important;
}
.tc-shell.tc-vh-compact .tc-metrics-formal .tc-metric-card{
  min-height:62px!important;
  height:62px!important;
  grid-template-columns:38px 1fr!important;
  padding:4px 8px!important;
}
.tc-shell.tc-vh-compact .tc-metric-icon{
  width:34px!important;height:34px!important;
}
.tc-shell.tc-vh-compact .tc-metric-copy b{
  font-size:23px!important;
}
.tc-shell.tc-vh-compact .tc-metric-sub{
  font-size:6px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-jp{
  font-size:27px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-kana{
  font-size:12px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-roman{
  font-size:16px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-formal{
  min-height:46px!important;
}
.tc-shell.tc-vh-compact .tc-keyboard-wrap-formal .tc-key{
  height:var(--tc-key-h,31px)!important;
}
.tc-shell.tc-vh-compact .tc-key-main{
  font-size:9px!important;
}
.tc-shell.tc-vh-compact .tc-key-sub{
  font-size:6px!important;
}

/* Common 1920x900-class screens should NOT be in compact mode.
   The public view now has no WP admin toolbar, so formal dimensions fit. */


/* ==========================================================
   v1.2 — Approved Formal Comp Reference Geometry
   This final layer intentionally overrides earlier prototype CSS.
   ========================================================== */

:root{
  --tc-ref-content: 1710px;
  --tc-ref-center: 1450px;
  --tc-ref-keyboard: 1460px;
}

/* ---------- Header ---------- */
.tc-app-header{
  height:82px!important;
  min-height:82px!important;
  background:linear-gradient(90deg,#06162f 0%,#071a38 54%,#06162f 100%)!important;
}
.tc-app-header__inner{
  width:min(100%,1860px)!important;
  max-width:1860px!important;
  height:82px!important;
  min-height:82px!important;
  padding:0 28px!important;
}
.tc-app-logo{
  gap:13px!important;
}
.tc-app-logo__mark.tc-app-logo__shield{
  width:58px!important;
  height:66px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  padding:0!important;
}
.tc-app-logo__shield svg{
  display:block;
  width:58px;
  height:66px;
  overflow:visible;
}
.tc-shield-outline{
  fill:#071a38;
  stroke:#d4a339;
  stroke-width:3;
}
.tc-shield-inner{
  fill:none;
  stroke:#d4a339;
  stroke-width:1.5;
  opacity:.9;
}
.tc-app-logo__shield text{
  fill:#f0c659;
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:800;
}
.tc-shield-star{
  fill:#d4a339;
}
.tc-app-logo__wordmark strong{
  font-size:28px!important;
  line-height:1!important;
}
.tc-app-logo__wordmark small{
  margin-top:5px!important;
  font-size:10px!important;
  letter-spacing:.18em!important;
}
.tc-app-nav-formal{
  gap:8px!important;
}
.tc-app-nav-formal a{
  font-size:14px!important;
  padding:9px 12px!important;
}
.tc-user-greeting{
  font-size:11px!important;
}

/* ---------- Whole app ---------- */
.tc-app-main{
  height:calc(100dvh - 82px)!important;
  padding:10px 14px 12px!important;
  overflow:hidden!important;
}
.tc-standalone-body .tc-shell{
  width:min(calc(100% - 2px),1880px)!important;
  max-width:1880px!important;
  height:100%!important;
  border:1px solid #dbc58f!important;
  border-radius:13px!important;
  background:#fff!important;
  overflow:hidden!important;
}

/* ---------- Formal practice grid ---------- */
.tc-practice-formal:not([hidden]){
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  box-sizing:border-box!important;
  padding:10px 32px 8px!important;
  display:grid!important;
  grid-template-rows:52px 112px minmax(300px,1fr) auto 34px!important;
  gap:6px!important;
  overflow:hidden!important;
}

/* ---------- Title row ---------- */
.tc-practice-formal .tc-practice-head{
  width:100%!important;
  max-width:none!important;
  height:52px!important;
  min-height:52px!important;
  display:grid!important;
  grid-template-columns:minmax(620px,1fr) auto!important;
  align-items:center!important;
  column-gap:20px!important;
}
.tc-practice-formal .tc-practice-title{
  gap:14px!important;
}
.tc-practice-formal .tc-practice-title-icon{
  width:44px!important;
  height:44px!important;
}
.tc-practice-formal .tc-practice-title-icon svg{
  width:25px!important;
  height:25px!important;
}
.tc-practice-formal .tc-practice-title h2{
  font-size:29px!important;
  font-weight:850!important;
  letter-spacing:.01em!important;
}
.tc-practice-formal .tc-practice-chips{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
  justify-content:flex-end!important;
}
.tc-practice-formal .tc-practice-chips span{
  min-height:30px!important;
  padding:4px 15px!important;
  font-size:11px!important;
}

/* ---------- KPI ---------- */
.tc-practice-formal .tc-metrics-formal{
  width:100%!important;
  max-width:none!important;
  height:112px!important;
  gap:11px!important;
}
.tc-practice-formal .tc-metrics-formal .tc-metric-card{
  height:112px!important;
  min-height:112px!important;
  grid-template-columns:70px minmax(0,1fr)!important;
  gap:14px!important;
  padding:12px 18px!important;
  border-radius:7px!important;
}
.tc-practice-formal .tc-metric-icon{
  width:58px!important;
  height:58px!important;
  color:#fff!important;
}
.tc-practice-formal .tc-metric-icon svg{
  width:34px!important;
  height:34px!important;
  fill:#fff!important;
}
.tc-practice-formal .tc-metric-icon-x{
  color:#fff!important;
  font-size:42px!important;
}
.tc-practice-formal .tc-metric-label{
  font-size:16px!important;
}
.tc-practice-formal .tc-metric-label small{
  font-size:9.5px!important;
}
.tc-practice-formal .tc-metric-copy b{
  font-size:48px!important;
  line-height:.96!important;
}
.tc-practice-formal .tc-metric-sub{
  margin-top:4px!important;
  font-size:10px!important;
}

/* ---------- CRITICAL FIX: full-width sentence stage ---------- */
.tc-practice-formal .tc-sentence-stage.tc-sentence-formal{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:100%!important;
  justify-self:stretch!important;
  align-self:stretch!important;
  box-sizing:border-box!important;
  padding:7px 0 3px!important;
  margin:0!important;
  display:grid!important;
  grid-template-rows:auto auto auto auto auto auto!important;
  align-content:center!important;
  justify-items:stretch!important;
  overflow:visible!important;
}
.tc-practice-formal .tc-sentence-formal .tc-jp,
.tc-practice-formal .tc-sentence-formal .tc-kana,
.tc-practice-formal .tc-sentence-formal .tc-roman{
  width:min(100%,var(--tc-ref-center))!important;
  max-width:var(--tc-ref-center)!important;
  box-sizing:border-box!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center!important;
}
.tc-practice-formal .tc-sentence-formal .tc-jp{
  font-size:52px!important;
  line-height:1.18!important;
  letter-spacing:.07em!important;
  padding-bottom:6px!important;
  border-bottom:1px dashed #c8cbd0!important;
}
.tc-practice-formal .tc-sentence-formal .tc-kana{
  margin-top:4px!important;
  font-size:20px!important;
  line-height:1.25!important;
  letter-spacing:.11em!important;
}
.tc-practice-formal .tc-sentence-formal .tc-roman{
  margin-top:3px!important;
  font-size:25px!important;
  line-height:1.24!important;
  letter-spacing:.13em!important;
}
.tc-practice-formal .tc-progress-row{
  width:min(100%,1360px)!important;
  max-width:1360px!important;
  margin:8px auto 7px!important;
}
.tc-practice-formal .tc-progress-row .tc-progress{
  height:8px!important;
}
.tc-practice-formal .tc-char-progress{
  font-size:12px!important;
  min-width:90px!important;
}

/* ---------- Full-width NEXT FINGER ---------- */
.tc-practice-formal .tc-next-finger.tc-next-finger-formal{
  width:min(100%,1420px)!important;
  max-width:1420px!important;
  min-width:0!important;
  min-height:84px!important;
  justify-self:center!important;
  box-sizing:border-box!important;
  grid-template-columns:88px minmax(0,1fr) 205px!important;
  gap:16px!important;
  padding:9px 16px!important;
  margin:0 auto!important;
}
.tc-practice-formal .tc-next-finger-formal .tc-next-key{
  width:70px!important;
  height:64px!important;
  font-size:34px!important;
}
.tc-practice-formal .tc-next-finger-copy>small{
  font-size:12px!important;
}
.tc-practice-formal .tc-next-finger-copy>strong{
  font-size:27px!important;
  line-height:1.1!important;
}
.tc-practice-formal .tc-next-finger-copy>em{
  margin-top:3px!important;
  font-size:10px!important;
}
.tc-practice-formal .tc-hands-formal{
  gap:12px!important;
}
.tc-practice-formal .tc-hands-formal span{
  width:82px!important;
  height:66px!important;
}
.tc-practice-formal .tc-hand-svg,
.tc-practice-formal .tc-hand-svg svg{
  width:39px!important;
  height:39px!important;
}
.tc-practice-formal .tc-hands-formal span small{
  font-size:10px!important;
}

/* ---------- Guide strip ---------- */
.tc-practice-formal .tc-guide-toolbar.tc-guide-toolbar-formal{
  width:min(100%,1420px)!important;
  max-width:1420px!important;
  height:36px!important;
  min-height:36px!important;
  justify-self:center!important;
  box-sizing:border-box!important;
  margin:6px auto 0!important;
  padding:3px 10px!important;
}
.tc-practice-formal .tc-guide-label{
  font-size:12px!important;
}
.tc-practice-formal .tc-practice-guide{
  height:28px!important;
  min-width:116px!important;
  font-size:11px!important;
}
.tc-practice-formal .tc-guide-help{
  font-size:9.5px!important;
}

/* ---------- Keyboard ---------- */
.tc-practice-formal .tc-keyboard-wrap.tc-keyboard-wrap-formal{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  overflow:hidden!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-keyboard{
  width:min(100%,var(--tc-ref-keyboard))!important;
  max-width:var(--tc-ref-keyboard)!important;
  min-width:0!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-rows:repeat(5,var(--tc-key-h,47px))!important;
  row-gap:5px!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-key-row{
  width:100%!important;
  height:var(--tc-key-h,47px)!important;
  gap:5px!important;
}
.tc-practice-formal .tc-keyboard-wrap-formal .tc-key{
  height:var(--tc-key-h,47px)!important;
  border-radius:6px!important;
  box-shadow:0 2px 4px rgba(10,28,51,.09),inset 0 -1px 0 rgba(10,28,51,.07)!important;
}
.tc-practice-formal .tc-key-main{
  font-size:14px!important;
}
.tc-practice-formal .tc-key-sub{
  margin-top:3px!important;
  font-size:8.5px!important;
}
.tc-practice-formal .tc-key.is-target{
  border:2px solid #d29d2e!important;
  background:#ffedaa!important;
  box-shadow:0 0 0 2px rgba(210,157,46,.18),0 3px 6px rgba(133,91,14,.14)!important;
}

/* ---------- Footer ---------- */
.tc-practice-formal .tc-practice-footer{
  width:100%!important;
  height:34px!important;
  min-height:34px!important;
}
.tc-practice-formal .tc-quit-button{
  height:32px!important;
  min-height:32px!important;
  padding:5px 13px!important;
  font-size:11.5px!important;
}
.tc-practice-formal .tc-practice-copyright{
  font-size:10.5px!important;
}

/* ---------- Reference comp sizing for common laptop heights ---------- */
.tc-shell.tc-vh-compact .tc-practice-formal{
  grid-template-rows:40px 76px minmax(220px,1fr) auto 30px!important;
  padding:5px 22px!important;
}
.tc-shell.tc-vh-compact .tc-practice-head{
  height:40px!important;
  min-height:40px!important;
}
.tc-shell.tc-vh-compact .tc-practice-title h2{
  font-size:21px!important;
}
.tc-shell.tc-vh-compact .tc-practice-title-icon{
  width:34px!important;height:34px!important;
}
.tc-shell.tc-vh-compact .tc-practice-chips span{
  min-height:22px!important;
  padding:2px 8px!important;
  font-size:8.5px!important;
}
.tc-shell.tc-vh-compact .tc-metrics-formal{
  height:76px!important;
}
.tc-shell.tc-vh-compact .tc-metrics-formal .tc-metric-card{
  height:76px!important;
  min-height:76px!important;
  grid-template-columns:45px 1fr!important;
  padding:5px 10px!important;
}
.tc-shell.tc-vh-compact .tc-metric-icon{
  width:40px!important;height:40px!important;
}
.tc-shell.tc-vh-compact .tc-metric-copy b{
  font-size:28px!important;
}
.tc-shell.tc-vh-compact .tc-metric-sub{
  font-size:7px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-jp{
  font-size:32px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-kana{
  font-size:14px!important;
}
.tc-shell.tc-vh-compact .tc-sentence-formal .tc-roman{
  font-size:18px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger.tc-next-finger-formal{
  min-height:56px!important;
  grid-template-columns:58px minmax(0,1fr) 145px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-formal .tc-next-key{
  width:47px!important;height:43px!important;font-size:23px!important;
}
.tc-shell.tc-vh-compact .tc-next-finger-copy>strong{
  font-size:18px!important;
}
.tc-shell.tc-vh-compact .tc-guide-toolbar.tc-guide-toolbar-formal{
  height:27px!important;
  min-height:27px!important;
}
.tc-shell.tc-vh-compact .tc-practice-guide{
  height:22px!important;
  min-width:90px!important;
}
.tc-shell.tc-vh-compact .tc-guide-help{
  font-size:7.5px!important;
}
.tc-shell.tc-vh-compact .tc-keyboard-wrap-formal .tc-keyboard{
  row-gap:3px!important;
}
.tc-shell.tc-vh-compact .tc-keyboard-wrap-formal .tc-key-row{
  gap:4px!important;
}
.tc-shell.tc-vh-compact .tc-key-main{
  font-size:10px!important;
}
.tc-shell.tc-vh-compact .tc-key-sub{
  font-size:6.5px!important;
}

/* 1366-width safety without collapsing the main central axis */
@media(max-width:1450px){
  :root{
    --tc-ref-center: 1180px;
    --tc-ref-keyboard: 1240px;
  }
  .tc-practice-formal .tc-next-finger.tc-next-finger-formal,
  .tc-practice-formal .tc-guide-toolbar.tc-guide-toolbar-formal{
    max-width:1240px!important;
  }
  .tc-practice-formal .tc-practice-title h2{
    font-size:25px!important;
  }
  .tc-practice-formal .tc-practice-chips{
    gap:6px!important;
  }
  .tc-practice-formal .tc-practice-chips span{
    padding:3px 10px!important;
    font-size:9.5px!important;
  }
}

/* Explicitly prevent theme/global CSS from shrinking the text block. */
.tc-standalone-body .tc-practice-formal > .tc-sentence-formal{
  inline-size:100%!important;
  max-inline-size:none!important;
}

/* ---- typing-coach-formal-v13 | assets/css/formal-v13.css ---- */
/* Typing Coach Formal UI v1.7.0
   Reference-canvas implementation. Valid multiline CSS; loaded after app.css. */
:root{
  --tc-navy:#061a38;
  --tc-gold:#c7962e;
  --tc-ivory:#f7f3ea;
  --tc-line:#d8dde4;
}
html,body.tc-standalone-body{margin:0!important;height:100%;}
body.tc-standalone-body{background:var(--tc-ivory)!important;color:#071a36;}
body.tc-stage-practice{overflow:hidden!important;}
body.tc-stage-intro,body.tc-stage-result{overflow:hidden!important;}
.tc-app-header{height:76px!important;min-height:76px!important;background:linear-gradient(90deg,#06162f,#071a38 55%,#06162f)!important;}
.tc-app-header__inner{height:82px!important;min-height:82px!important;width:min(100%,1860px)!important;max-width:1860px!important;padding:0 28px!important;}
.tc-app-main{height:calc(100dvh - 82px)!important;padding:10px 14px 12px!important;box-sizing:border-box!important;overflow:hidden!important;}
.tc-standalone-body .tc-shell{height:100%!important;width:min(calc(100% - 2px),1880px)!important;max-width:1880px!important;margin:0 auto!important;border:1px solid #dbc58f!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important;box-sizing:border-box!important;}

/* Intro: never clip inaccessible content. Fits common desktop heights, scrolls only as fallback. */
.tc-stage-intro .tc-lesson-intro:not([hidden]){height:100%!important;overflow-y:auto!important;overflow-x:hidden!important;padding:24px 34px 18px!important;box-sizing:border-box!important;}
.tc-stage-intro .tc-intro-layout{grid-template-columns:minmax(0,1fr) minmax(330px,390px)!important;gap:28px!important;align-items:start!important;}
.tc-stage-intro .tc-intro-copy{margin:7px 0 12px!important;line-height:1.75!important;}
.tc-stage-intro .tc-chips{margin-bottom:15px!important;}
.tc-stage-intro .tc-option-block{margin-top:12px!important;padding:14px 16px!important;}
.tc-stage-intro .tc-option-heading{margin-bottom:10px!important;}
.tc-stage-intro .tc-option-block .tc-goal{min-height:60px!important;}
.tc-stage-intro .tc-option-block .tc-guide-mode{min-height:56px!important;}
.tc-stage-intro .tc-session-card{position:static!important;padding:20px!important;}
.tc-stage-intro .tc-session-data>div{padding:9px 0!important;}
.tc-stage-intro .tc-ready-note{margin:12px 0!important;padding:10px 12px!important;}
.tc-stage-intro .tc-start-button{min-height:58px!important;}

/* READY remains simple and centered. */
.tc-stage-ready .tc-ready:not([hidden]){height:100%!important;min-height:0!important;padding:18px!important;box-sizing:border-box!important;overflow:hidden!important;}

/* PRACTICE: fixed reference canvas, uniformly scaled to viewport. */
.tc-practice-formal:not([hidden]){position:relative!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;padding:0!important;margin:0!important;overflow:hidden!important;background:#fff!important;display:block!important;}
.tc-practice-fit{position:absolute!important;inset:0!important;overflow:hidden!important;display:flex!important;justify-content:center!important;align-items:flex-start!important;padding-top:3px!important;box-sizing:border-box!important;}
.tc-practice-canvas{width:1600px!important;height:690px!important;flex:0 0 1600px!important;box-sizing:border-box!important;padding:6px 28px 4px!important;background:#fff!important;display:grid!important;grid-template-rows:48px 104px 142px 76px 32px 228px 28px!important;row-gap:3px!important;transform:scale(var(--tc-practice-scale,1))!important;transform-origin:top center!important;}

/* Row 1: lesson identity */
.tc-practice-canvas .tc-practice-head{height:48px!important;min-height:48px!important;width:100%!important;display:grid!important;grid-template-columns:minmax(620px,1fr) auto!important;align-items:center!important;gap:18px!important;}
.tc-practice-canvas .tc-practice-title{display:flex!important;align-items:center!important;gap:13px!important;}
.tc-practice-canvas .tc-practice-title-icon{width:40px!important;height:40px!important;flex:0 0 40px!important;}
.tc-practice-canvas .tc-practice-title h2{margin:0!important;font-size:27px!important;line-height:1.15!important;white-space:nowrap!important;}
.tc-practice-canvas .tc-practice-chips{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-end!important;gap:9px!important;}
.tc-practice-canvas .tc-practice-chips span{min-height:28px!important;padding:4px 14px!important;font-size:11px!important;}

/* Row 2: KPI */
.tc-practice-canvas .tc-metrics-formal{height:104px!important;width:100%!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important;}
.tc-practice-canvas .tc-metric-card{height:104px!important;min-height:104px!important;box-sizing:border-box!important;display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;align-items:center!important;gap:13px!important;padding:12px 17px!important;border:1px solid #d7dce3!important;border-radius:6px!important;background:#fff!important;}
.tc-practice-canvas .tc-metric-icon{width:52px!important;height:52px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:#061a39!important;color:#fff!important;}
.tc-practice-canvas .tc-metric-icon svg{width:33px!important;height:33px!important;fill:#fff!important;}
.tc-practice-canvas .tc-metric-icon-x{font-size:41px!important;}
.tc-practice-canvas .tc-metric-label{font-size:15px!important;font-weight:850!important;}
.tc-practice-canvas .tc-metric-label small{font-size:9px!important;}
.tc-practice-canvas .tc-metric-copy b{display:block!important;font-size:43px!important;line-height:.98!important;color:#061a39!important;}
.tc-practice-canvas .tc-metric-sub{display:block!important;margin-top:3px!important;font-size:9.5px!important;font-weight:800!important;color:#334762!important;}

/* Row 3: sentence only — always centered across the full canvas. */
.tc-practice-canvas .tc-sentence-formal{width:100%!important;max-width:none!important;height:142px!important;min-height:142px!important;margin:0!important;padding:7px 50px 0!important;box-sizing:border-box!important;border:0!important;border-radius:0!important;background:#fff!important;display:grid!important;grid-template-rows:60px 25px 31px 20px!important;align-content:start!important;justify-items:stretch!important;overflow:visible!important;}
.tc-practice-canvas .tc-sentence-formal .tc-jp{width:1360px!important;max-width:1360px!important;margin:0 auto!important;padding:0 0 5px!important;box-sizing:border-box!important;text-align:center!important;font-family:"Yu Mincho","Hiragino Mincho ProN",serif!important;font-size:49px!important;line-height:1.22!important;letter-spacing:.055em!important;font-weight:650!important;border-bottom:1px dashed #c8cbd0!important;}
.tc-practice-canvas .tc-sentence-formal .tc-kana{width:1360px!important;max-width:1360px!important;margin:2px auto 0!important;text-align:center!important;font-size:18.5px!important;line-height:1.25!important;letter-spacing:.10em!important;color:#0d2340!important;}
.tc-practice-canvas .tc-sentence-formal .tc-roman{width:1360px!important;max-width:1360px!important;margin:1px auto 0!important;text-align:center!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;font-size:23.5px!important;line-height:1.25!important;letter-spacing:.115em!important;font-weight:750!important;color:#071a36!important;}
.tc-practice-canvas .tc-progress-row{width:1180px!important;max-width:1180px!important;margin:2px auto 0!important;display:grid!important;grid-template-columns:minmax(0,1fr) 92px!important;align-items:center!important;gap:14px!important;}
.tc-practice-canvas .tc-progress-row .tc-progress{height:7px!important;margin:0!important;}
.tc-practice-canvas .tc-char-progress{font-size:11px!important;font-weight:800!important;}

/* Row 4: NEXT FINGER */
.tc-practice-canvas .tc-next-finger-formal{width:1280px!important;max-width:1280px!important;height:82px!important;min-height:82px!important;margin:0 auto!important;padding:8px 14px!important;box-sizing:border-box!important;display:grid!important;grid-template-columns:74px minmax(0,1fr) 176px!important;align-items:center!important;gap:14px!important;border:1px solid #d5a747!important;border-radius:5px!important;background:linear-gradient(90deg,#fffdf7,#fff 55%,#fffdf7)!important;}
.tc-practice-canvas .tc-next-key{width:58px!important;height:54px!important;border:1px solid #d4a238!important;border-radius:9px!important;background:#fff!important;font-size:31px!important;}
.tc-practice-canvas .tc-next-finger-copy>small{font-size:11px!important;letter-spacing:.12em!important;color:#9b6917!important;}
.tc-practice-canvas .tc-next-finger-copy>strong{display:block!important;font-size:25px!important;line-height:1.12!important;color:#071a36!important;}
.tc-practice-canvas .tc-next-finger-copy>em{display:block!important;margin-top:2px!important;font-size:9.5px!important;color:#526175!important;}
.tc-practice-canvas .tc-hands-formal{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;}
.tc-practice-canvas .tc-hands-formal span{width:68px!important;height:54px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;border-radius:7px!important;color:#aeb5bd!important;}
.tc-practice-canvas .tc-hands-formal span.is-active{color:#071a36!important;background:#fff1c9!important;outline:1px solid #d6a339!important;}
.tc-practice-canvas .tc-hand-svg,.tc-practice-canvas .tc-hand-svg svg{width:34px!important;height:34px!important;}
.tc-practice-canvas .tc-hands-formal span small{font-size:9px!important;color:inherit!important;}

/* Row 5: guide selector */
.tc-practice-canvas .tc-guide-toolbar-formal{width:1280px!important;max-width:1280px!important;height:32px!important;min-height:32px!important;margin:0 auto!important;padding:3px 8px!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;gap:7px!important;border:1px solid #d9d7d1!important;border-radius:4px!important;background:#f7f5f1!important;}
.tc-practice-canvas .tc-guide-label{padding:0 10px!important;font-size:11px!important;font-weight:850!important;}
.tc-practice-canvas .tc-practice-guide{height:25px!important;min-width:108px!important;border-radius:999px!important;font-size:10.5px!important;}
.tc-practice-canvas .tc-guide-help{font-size:9px!important;color:#596473!important;white-space:nowrap!important;}

/* Row 6: complete 5-row JIS guide, no clipping. */
.tc-practice-canvas .tc-keyboard-wrap-formal{width:100%!important;height:228px!important;min-height:228px!important;margin:0!important;display:flex!important;justify-content:center!important;align-items:flex-start!important;overflow:visible!important;}
.tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{width:1320px!important;max-width:1320px!important;height:224px!important;margin:0 auto!important;padding:0!important;display:grid!important;grid-template-rows:repeat(5,42px)!important;row-gap:4px!important;overflow:visible!important;}
.tc-practice-canvas .tc-key-row{width:100%!important;height:42px!important;min-width:0!important;margin:0!important;display:flex!important;gap:4px!important;justify-content:center!important;}
.tc-practice-canvas .tc-key{position:relative!important;height:42px!important;min-width:0!important;width:auto!important;flex:1 1 0!important;padding:2px 4px!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;border:1px solid #c7ccd2!important;border-radius:5px!important;background:linear-gradient(180deg,#fff,#f5f5f3)!important;box-shadow:0 1px 2px rgba(11,29,52,.08)!important;color:#071a36!important;}
.tc-practice-canvas .tc-key-main{font-size:13px!important;font-weight:800!important;}
.tc-practice-canvas .tc-key-sub{margin-top:3px!important;font-size:8px!important;color:#586474!important;}
.tc-practice-canvas .tc-key.key-jis-half{flex:1.45!important}.tc-practice-canvas .tc-key.key-backspace{flex:1.55!important}.tc-practice-canvas .tc-key.key-tab{flex:1.55!important}.tc-practice-canvas .tc-key.key-enter{flex:1.55!important}.tc-practice-canvas .tc-key.key-enter-tail{flex:.75!important;visibility:hidden!important}.tc-practice-canvas .tc-key.key-caps{flex:1.65!important}.tc-practice-canvas .tc-key.key-shift{flex:2.05!important}.tc-practice-canvas .tc-key.key-mod{flex:1.2!important}.tc-practice-canvas .tc-key.key-mod-small{flex:.85!important}.tc-practice-canvas .tc-key.key-convert{flex:1.5!important}.tc-practice-canvas .tc-key.key-kana{flex:1.75!important}.tc-practice-canvas .tc-key.key-space{flex:5.5!important}.tc-practice-canvas .tc-key.is-target{border:2px solid #d19c2d!important;background:#ffedaa!important;font-weight:900!important;box-shadow:0 0 0 2px rgba(209,156,45,.16)!important;}
.tc-practice-canvas .tc-key[class*="finger-"]::after{content:"";position:absolute;left:6px;right:6px;bottom:1px;height:2px;border-radius:999px;opacity:.42}.tc-practice-canvas .tc-key.finger-lf-pinky::after,.tc-practice-canvas .tc-key.finger-rt-pinky::after{background:#cf7188}.tc-practice-canvas .tc-key.finger-lf-ring::after,.tc-practice-canvas .tc-key.finger-rt-ring::after{background:#7095d4}.tc-practice-canvas .tc-key.finger-lf-middle::after,.tc-practice-canvas .tc-key.finger-rt-middle::after{background:#72a881}.tc-practice-canvas .tc-key.finger-lf-index::after,.tc-practice-canvas .tc-key.finger-rt-index::after{background:#d0a647}.tc-practice-canvas .tc-key.is-target::after{height:3px;opacity:1;background:#966715!important;}

/* Row 7: footer */
.tc-practice-canvas .tc-practice-footer{width:100%!important;height:28px!important;min-height:28px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;}
.tc-practice-canvas .tc-quit-button{height:27px!important;min-height:27px!important;padding:5px 12px!important;border-radius:4px!important;font-size:11px!important;}
.tc-practice-canvas .tc-practice-copyright{font-size:10px!important;color:#9aa1aa!important;}

/* Focus mode keeps selector but hides detailed guide components. */
.tc-shell.guide-off .tc-practice-canvas .tc-next-finger-formal,.tc-shell.guide-off .tc-practice-canvas .tc-keyboard-wrap-formal{visibility:hidden!important;}
.tc-shell.guide-off .tc-practice-canvas .tc-guide-toolbar-formal{visibility:visible!important;}

@media(max-width:900px){
  body.tc-stage-practice{overflow:auto!important}.tc-practice-fit{min-width:720px!important;}
}

/* v1.4 intro fit refinement */
.tc-stage-intro .tc-lesson-intro:not([hidden]){
  scrollbar-gutter:stable;
}
.tc-stage-intro .tc-intro-layout{
  min-height:0!important;
}
.tc-stage-intro .tc-option-block{
  padding-top:12px!important;
  padding-bottom:12px!important;
}
.tc-stage-intro .tc-option-block .tc-goal{
  min-height:56px!important;
}
.tc-stage-intro .tc-option-block .tc-guide-mode{
  min-height:52px!important;
}
.tc-stage-intro .tc-session-card{
  padding-top:17px!important;
  padding-bottom:17px!important;
}
.tc-stage-intro .tc-session-card h3{
  margin-bottom:9px!important;
}
.tc-stage-intro .tc-session-data>div{
  padding:7px 0!important;
}
.tc-stage-intro .tc-ready-note{
  margin:9px 0!important;
  padding:8px 11px!important;
}
.tc-stage-intro .tc-start-button{
  min-height:54px!important;
}

/* When the viewport is just a little short, keep the important CTA accessible
   and let only the intro content scroll. */
@media (max-height:760px){
  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    padding-top:16px!important;
    padding-bottom:12px!important;
  }
  .tc-stage-intro .tc-option-block{
    margin-top:8px!important;
  }
  .tc-stage-intro .tc-option-block .tc-goal{
    min-height:50px!important;
  }
  .tc-stage-intro .tc-option-block .tc-guide-mode{
    min-height:48px!important;
  }
}


/* ==========================================================
   v1.5 intro — first-view complete layout
   Target: title, both option groups and the session CTA visible together.
   ========================================================== */
.tc-stage-intro .tc-lesson-intro:not([hidden]){
  height:100%!important;
  padding:16px 30px 12px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.tc-stage-intro .tc-intro-layout{
  grid-template-columns:minmax(0,1fr) minmax(320px,372px)!important;
  gap:24px!important;
  align-items:start!important;
}
.tc-stage-intro .tc-kicker{
  margin:0 0 5px!important;
  font-size:10px!important;
  line-height:1.2!important;
}
.tc-stage-intro .tc-intro-main h2{
  margin:0!important;
  font-size:30px!important;
  line-height:1.18!important;
}
.tc-stage-intro .tc-intro-copy{
  margin:7px 0 8px!important;
  max-width:860px!important;
  font-size:14px!important;
  line-height:1.62!important;
}
.tc-stage-intro .tc-chips{
  margin:0 0 8px!important;
  gap:6px!important;
}
.tc-stage-intro .tc-chips span{
  padding:5px 10px!important;
  font-size:11px!important;
}
.tc-stage-intro .tc-option-block{
  margin-top:7px!important;
  padding:9px 12px!important;
  border-radius:13px!important;
}
.tc-stage-intro .tc-option-heading{
  margin-bottom:6px!important;
  gap:8px!important;
}
.tc-stage-intro .tc-option-heading .tc-option-no{
  width:27px!important;
  height:27px!important;
  border-radius:7px!important;
  font-size:9px!important;
}
.tc-stage-intro .tc-option-heading strong{
  font-size:14px!important;
  line-height:1.2!important;
}
.tc-stage-intro .tc-option-heading small{
  margin-top:1px!important;
  font-size:9px!important;
}
.tc-stage-intro .tc-option-block .tc-goals{
  gap:6px!important;
}
.tc-stage-intro .tc-option-block .tc-goal{
  min-height:46px!important;
  padding:6px 7px!important;
  border-radius:9px!important;
}
.tc-stage-intro .tc-option-block .tc-goal b{
  font-size:12px!important;
}
.tc-stage-intro .tc-option-block .tc-goal small{
  margin-top:2px!important;
  font-size:8px!important;
}
.tc-stage-intro .tc-option-block .tc-guide-choice{
  gap:7px!important;
}
.tc-stage-intro .tc-option-block .tc-guide-mode{
  min-height:44px!important;
  padding:6px 9px!important;
  border-radius:9px!important;
}
.tc-stage-intro .tc-option-block .tc-guide-mode b{
  font-size:12px!important;
}
.tc-stage-intro .tc-option-block .tc-guide-mode small{
  margin-top:2px!important;
  font-size:8px!important;
}

/* Session card: compact but still premium. */
.tc-stage-intro .tc-session-card{
  padding:14px 16px!important;
  border-radius:18px!important;
}
.tc-stage-intro .tc-session-icon{
  width:44px!important;
  height:44px!important;
  margin-bottom:7px!important;
  border-radius:12px!important;
  font-size:20px!important;
}
.tc-stage-intro .tc-session-label{
  font-size:9px!important;
}
.tc-stage-intro .tc-session-card h3{
  margin:2px 0 8px!important;
  font-size:20px!important;
}
.tc-stage-intro .tc-session-data>div{
  padding:6px 0!important;
}
.tc-stage-intro .tc-session-data dt{
  font-size:10px!important;
}
.tc-stage-intro .tc-session-data dd{
  font-size:11px!important;
}
.tc-stage-intro .tc-ready-note{
  margin:8px 0!important;
  padding:7px 10px!important;
  border-radius:9px!important;
}
.tc-stage-intro .tc-ready-note strong{
  font-size:11px!important;
}
.tc-stage-intro .tc-ready-note span{
  margin-top:2px!important;
  font-size:8.5px!important;
  line-height:1.35!important;
}
.tc-stage-intro .tc-start-button{
  min-height:48px!important;
  height:48px!important;
  border-radius:11px!important;
}
.tc-stage-intro .tc-start-button span{
  font-size:14px!important;
}
.tc-stage-intro .tc-start-button small{
  font-size:8px!important;
}

/* Common desktop height: no visible scrollbar should be necessary. */
@media (min-height:780px){
  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    overflow-y:hidden!important;
  }
}

/* Truly short displays retain intro-only scrolling as a safe fallback. */
@media (max-height:779px){
  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    overflow-y:auto!important;
  }
}


/* v1.6 — initial intro and returned intro must be identical */
body.tc-stage-intro .tc-lesson-intro:not([hidden]){
  box-sizing:border-box!important;
}
@media (min-height:780px){
  body.tc-stage-intro .tc-lesson-intro:not([hidden]){
    overflow-y:hidden!important;
  }
}


/* ==========================================================
   v1.7 — Restore responsive behavior and premium vertical rhythm
   ========================================================== */

/* Desktop intro: restore visual presence without losing the CTA. */
@media (min-width:1101px) and (min-height:780px){
  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    padding:22px 34px 18px!important;
    display:flex!important;
    align-items:center!important;
  }
  .tc-stage-intro .tc-intro-layout{
    width:100%!important;
    min-height:548px!important;
    grid-template-columns:minmax(0,1fr) minmax(350px,395px)!important;
    gap:30px!important;
    align-items:stretch!important;
  }
  .tc-stage-intro .tc-intro-main{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  .tc-stage-intro .tc-intro-main h2{font-size:32px!important;}
  .tc-stage-intro .tc-intro-copy{
    font-size:15px!important;
    line-height:1.72!important;
    margin:9px 0 11px!important;
  }
  .tc-stage-intro .tc-option-block{
    margin-top:10px!important;
    padding:12px 14px!important;
  }
  .tc-stage-intro .tc-option-block .tc-goal{min-height:54px!important;}
  .tc-stage-intro .tc-option-block .tc-guide-mode{min-height:52px!important;}
  .tc-stage-intro .tc-session-card{
    min-height:520px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:20px!important;
  }
  .tc-stage-intro .tc-session-data>div{padding:8px 0!important;}
  .tc-stage-intro .tc-start-button{
    height:54px!important;
    min-height:54px!important;
  }
}

/* Result: use the vertical canvas instead of leaving a large empty lower half. */
body.tc-stage-result .tc-result:not([hidden]){
  height:100%!important;
  box-sizing:border-box!important;
  padding:28px 34px 20px!important;
  display:grid!important;
  grid-template-rows:auto 138px minmax(168px,1fr) auto auto auto!important;
  gap:15px!important;
  align-content:stretch!important;
  overflow-y:auto!important;
}
.tc-result-head{padding:3px 4px 0;}
.tc-result-head .tc-kicker{display:block;margin-bottom:4px;}
.tc-result-head h2{
  margin:0;
  color:#071a36;
  font-size:30px;
  line-height:1.2;
}
.tc-result-head p{
  margin:5px 0 0;
  color:#667385;
  font-size:14px;
}
body.tc-stage-result .tc-result-grid{
  height:138px!important;
  gap:12px!important;
}
body.tc-stage-result .tc-result-grid>div{
  min-height:138px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:16px!important;
}
body.tc-stage-result .tc-result-grid b{
  font-size:38px!important;
  line-height:1!important;
}
body.tc-stage-result .tc-result-grid span{
  margin-top:14px!important;
  font-size:13px!important;
}
body.tc-stage-result .tc-feedback{
  margin:0!important;
  min-height:168px!important;
  padding:24px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  border-radius:18px!important;
}
body.tc-stage-result .tc-feedback h3{
  margin:8px 0 4px!important;
  font-size:20px!important;
  line-height:1.55!important;
}
body.tc-stage-result .tc-feedback p{
  margin:2px 0 0!important;
  font-size:14px!important;
  line-height:1.6!important;
}
body.tc-stage-result .tc-result-actions{
  margin:0!important;
  gap:12px!important;
}
body.tc-stage-result .tc-result-actions .tc-primary,
body.tc-stage-result .tc-result-actions .tc-secondary{
  min-height:54px!important;
  padding:12px 22px!important;
}
.tc-result-copyright{
  text-align:right;
  color:#9aa1aa;
  font-size:10px;
  padding-right:4px;
}

/* ---------------- Tablet ---------------- */
@media (max-width:1100px){
  html,body.tc-standalone-body{height:auto!important;min-height:100%!important;}
  body.tc-standalone-body,
  body.tc-stage-intro,
  body.tc-stage-ready,
  body.tc-stage-practice,
  body.tc-stage-result{
    overflow:auto!important;
  }
  .tc-app-header{
    height:auto!important;
    min-height:68px!important;
  }
  .tc-app-header__inner{
    height:auto!important;
    min-height:68px!important;
    padding:8px 16px!important;
    gap:12px!important;
  }
  .tc-app-logo__mark.tc-app-logo__shield{
    width:46px!important;
    height:54px!important;
  }
  .tc-app-logo__shield svg{
    width:46px!important;
    height:54px!important;
  }
  .tc-app-logo__wordmark strong{font-size:22px!important;}
  .tc-app-logo__wordmark small{font-size:8px!important;}
  .tc-user-greeting{display:none!important;}
  .tc-app-nav-formal{gap:2px!important;}
  .tc-app-nav-formal a{
    font-size:12px!important;
    padding:7px 8px!important;
  }
  .tc-app-main{
    height:auto!important;
    min-height:calc(100dvh - 72px)!important;
    overflow:visible!important;
    padding:8px!important;
  }
  .tc-standalone-body .tc-shell{
    height:auto!important;
    min-height:calc(100dvh - 88px)!important;
  }

  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    height:auto!important;
    min-height:calc(100dvh - 96px)!important;
    overflow:visible!important;
    padding:22px!important;
  }
  .tc-stage-intro .tc-intro-layout{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .tc-stage-intro .tc-session-card{min-height:0!important;}

  body.tc-stage-result .tc-result:not([hidden]){
    height:auto!important;
    min-height:calc(100dvh - 96px)!important;
    grid-template-rows:auto auto auto auto auto auto!important;
  }
}

/* ---------------- Tablet/mobile Practice: fluid, no 720px forced width ---------------- */
@media (max-width:900px){
  .tc-practice-formal:not([hidden]){
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  .tc-practice-fit{
    position:relative!important;
    inset:auto!important;
    min-width:0!important;
    width:100%!important;
    height:auto!important;
    overflow:visible!important;
    display:block!important;
    padding:8px!important;
  }
  .tc-practice-canvas{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    flex:0 1 auto!important;
    padding:10px!important;
    transform:none!important;
    display:grid!important;
    grid-template-rows:auto auto auto auto auto auto auto!important;
    row-gap:9px!important;
  }
  .tc-practice-canvas .tc-practice-head{
    height:auto!important;
    min-height:0!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .tc-practice-canvas .tc-practice-title h2{
    font-size:22px!important;
    white-space:normal!important;
  }
  .tc-practice-canvas .tc-practice-chips{
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
  }
  .tc-practice-canvas .tc-metrics-formal{
    height:auto!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tc-practice-canvas .tc-metric-card{
    height:82px!important;
    min-height:82px!important;
    grid-template-columns:46px 1fr!important;
    padding:8px!important;
  }
  .tc-practice-canvas .tc-metric-icon{
    width:40px!important;height:40px!important;
  }
  .tc-practice-canvas .tc-metric-copy b{font-size:27px!important;}

  .tc-practice-canvas .tc-sentence-formal{
    height:auto!important;
    min-height:0!important;
    padding:12px 6px!important;
    display:block!important;
  }
  .tc-practice-canvas .tc-jp{
    height:auto!important;
    font-size:30px!important;
    line-height:1.35!important;
    white-space:normal!important;
  }
  .tc-practice-canvas .tc-kana{
    height:auto!important;
    font-size:14px!important;
    margin-top:6px!important;
  }
  .tc-practice-canvas .tc-roman{
    height:auto!important;
    font-size:17px!important;
    margin-top:4px!important;
    word-break:break-all!important;
  }
  .tc-practice-canvas .tc-progress-row{
    width:100%!important;
    max-width:none!important;
    margin:8px 0 0!important;
  }
  .tc-practice-canvas .tc-next-finger-formal{
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:70px!important;
    grid-template-columns:62px minmax(0,1fr) auto!important;
    padding:8px!important;
  }
  .tc-practice-canvas .tc-guide-toolbar-formal{
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:34px!important;
    flex-wrap:wrap!important;
  }
  .tc-practice-canvas .tc-keyboard-wrap-formal{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    grid-template-rows:repeat(5,34px)!important;
    row-gap:3px!important;
  }
  .tc-practice-canvas .tc-key-row{
    height:34px!important;
    gap:3px!important;
  }
  .tc-practice-canvas .tc-key{
    height:34px!important;
    padding:1px 2px!important;
  }
  .tc-practice-canvas .tc-key-main{font-size:10px!important;}
  .tc-practice-canvas .tc-key-sub{
    font-size:6px!important;
    margin-top:1px!important;
  }
  .tc-practice-canvas .tc-practice-footer{
    height:auto!important;
    min-height:34px!important;
  }
}

/* ---------------- Smartphone ---------------- */
@media (max-width:700px){
  .tc-app-header__inner{
    flex-direction:column!important;
    align-items:stretch!important;
    padding:8px 12px 7px!important;
  }
  .tc-app-logo{justify-content:center!important;}
  .tc-app-nav-formal{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(4,1fr)!important;
  }
  .tc-app-nav-formal a{
    min-width:0!important;
    padding:7px 3px!important;
    text-align:center!important;
    font-size:10px!important;
    white-space:nowrap!important;
  }
  .tc-app-nav-formal .tc-nav-icon{
    display:block!important;
    margin:0 0 2px!important;
  }
  .tc-app-main{padding:5px!important;}
  .tc-standalone-body .tc-shell{border-radius:10px!important;}

  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    padding:16px 14px!important;
  }
  .tc-stage-intro .tc-intro-main h2{font-size:26px!important;}
  .tc-stage-intro .tc-intro-copy{font-size:13px!important;}
  .tc-stage-intro .tc-goals{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tc-stage-intro .tc-goal:last-child{grid-column:1/-1;}
  .tc-stage-intro .tc-guide-choice{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .tc-stage-ready .tc-ready:not([hidden]){
    height:auto!important;
    min-height:calc(100dvh - 130px)!important;
    padding:18px 10px!important;
    overflow:visible!important;
  }
  .tc-ready-word{font-size:46px!important;}
  .tc-ready-lead{font-size:14px!important;}
  .tc-home-guide{
    width:100%!important;
    padding:12px 8px!important;
    grid-template-columns:34px minmax(0,1fr) 34px!important;
  }
  .tc-home-hand-icon{font-size:28px!important;}
  .tc-home-keys{gap:4px!important;}
  .tc-home-keys span{
    width:36px!important;
    min-width:0!important;
    height:44px!important;
    font-size:15px!important;
  }
  .tc-home-gap{width:6px!important;}
  .tc-ready-tip{width:100%!important;}

  .tc-practice-canvas .tc-metric-card{
    grid-template-columns:1fr!important;
    text-align:center!important;
    height:78px!important;
    min-height:78px!important;
    gap:2px!important;
  }
  .tc-practice-canvas .tc-metric-icon{display:none!important;}
  .tc-practice-canvas .tc-metric-label{font-size:10px!important;}
  .tc-practice-canvas .tc-metric-copy b{font-size:24px!important;}
  .tc-practice-canvas .tc-jp{font-size:25px!important;}
  .tc-practice-canvas .tc-roman{font-size:15px!important;}
  .tc-practice-canvas .tc-next-finger-formal{
    grid-template-columns:54px minmax(0,1fr)!important;
  }
  .tc-practice-canvas .tc-hands-formal{display:none!important;}
  .tc-practice-canvas .tc-guide-help{width:100%!important;}
  .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
    grid-template-rows:repeat(5,30px)!important;
  }
  .tc-practice-canvas .tc-key-row{
    height:30px!important;
    gap:2px!important;
  }
  .tc-practice-canvas .tc-key{
    height:30px!important;
    border-radius:3px!important;
  }
  .tc-practice-canvas .tc-key-sub{display:none!important;}
  .tc-practice-canvas .tc-key-main{font-size:8px!important;}

  body.tc-stage-result .tc-result:not([hidden]){
    padding:18px 14px!important;
  }
  .tc-result-head h2{font-size:26px!important;}
  body.tc-stage-result .tc-result-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    height:auto!important;
  }
  body.tc-stage-result .tc-result-grid>div{min-height:105px!important;}
  body.tc-stage-result .tc-result-grid b{font-size:30px!important;}
  body.tc-stage-result .tc-feedback{
    min-height:140px!important;
    padding:18px!important;
  }
  body.tc-stage-result .tc-result-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
}

/* Narrow phones */
@media (max-width:420px){
  .tc-app-logo__mark.tc-app-logo__shield{
    width:38px!important;height:45px!important;
  }
  .tc-app-logo__wordmark strong{font-size:19px!important;}
  .tc-app-logo__wordmark small{font-size:7px!important;}
  .tc-home-keys span{
    width:30px!important;height:40px!important;font-size:13px!important;
  }
  .tc-practice-canvas{padding:7px!important;}
  .tc-practice-canvas .tc-practice-title h2{font-size:19px!important;}
  .tc-practice-canvas .tc-practice-chips span{
    font-size:8px!important;padding:3px 7px!important;
  }
  .tc-practice-canvas .tc-jp{font-size:22px!important;}
}

/* v1.85.52 short-practice safety geometry. Keep this in the formal base as a
   second line of defense for sites that combine/reorder enqueued styles. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas{
  grid-template-rows:48px 64px 182px 76px 32px 228px 28px!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metrics-formal{
  height:64px!important;min-height:64px!important;max-height:64px!important;overflow:hidden!important;grid-row:2!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card{
  height:64px!important;min-height:64px!important;max-height:64px!important;overflow:hidden!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-sentence-formal{
  grid-row:3!important;height:182px!important;min-height:182px!important;max-height:182px!important;overflow:hidden!important;position:relative!important;z-index:2!important;background:#fff!important;
}

/* ---- typing-coach-responsive-v18 | assets/css/responsive-v18.css ---- */

/* Typing Coach Responsive Stabilizer v1.8.0
   Loaded last. Desktop formal UI remains unchanged.
   <=1100px switches from viewport-locked app to normal document flow. */

@media (max-width:1100px){

  /* -------------------------------------------------------
     1) Release every desktop viewport lock.
     ------------------------------------------------------- */
  html{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }
  body.tc-standalone-body,
  body.tc-stage-intro,
  body.tc-stage-ready,
  body.tc-stage-countdown,
  body.tc-stage-practice,
  body.tc-stage-result{
    height:auto!important;
    min-height:100dvh!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }

  .tc-app-main{
    height:auto!important;
    min-height:calc(100dvh - 72px)!important;
    overflow:visible!important;
    padding:10px!important;
  }
  .tc-standalone-body .tc-shell{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    margin:0!important;
  }

  /* Every visible stage participates in normal flow.
     This prevents zero-height / blank responsive screens. */
  .tc-shell > [data-stage]:not([hidden]){
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }

  /* -------------------------------------------------------
     2) Header
     ------------------------------------------------------- */
  .tc-app-header{
    height:auto!important;
    min-height:68px!important;
  }
  .tc-app-header__inner{
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:68px!important;
    padding:8px 16px!important;
    gap:12px!important;
  }
  .tc-app-logo__mark.tc-app-logo__shield{
    width:46px!important;
    height:54px!important;
  }
  .tc-app-logo__shield svg{
    width:46px!important;
    height:54px!important;
  }
  .tc-app-logo__wordmark strong{font-size:22px!important;}
  .tc-app-logo__wordmark small{font-size:8px!important;}
  .tc-user-greeting{display:none!important;}
  .tc-app-nav-formal{gap:2px!important;}
  .tc-app-nav-formal a{
    font-size:12px!important;
    padding:7px 8px!important;
  }

  /* -------------------------------------------------------
     3) Intro
     ------------------------------------------------------- */
  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    display:block!important;
    padding:24px!important;
    overflow:visible!important;
  }
  .tc-stage-intro .tc-intro-layout{
    width:100%!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:20px!important;
  }
  .tc-stage-intro .tc-intro-main{
    display:block!important;
  }
  .tc-stage-intro .tc-session-card{
    width:100%!important;
    min-height:0!important;
    position:relative!important;
    top:auto!important;
    padding:20px!important;
  }
  .tc-stage-intro .tc-start-button{
    width:100%!important;
    min-height:54px!important;
  }

  /* -------------------------------------------------------
     4) READY: normal height, never clipped.
     ------------------------------------------------------- */
  .tc-stage-ready .tc-ready:not([hidden]){
    display:block!important;
    height:auto!important;
    min-height:0!important;
    padding:36px 20px!important;
    overflow:visible!important;
  }
  .tc-ready-inner{
    width:min(100%,900px)!important;
    margin:0 auto!important;
  }
  .tc-ready-word{
    font-size:clamp(48px,8vw,72px)!important;
  }
  .tc-ready-lead{
    margin:12px auto 22px!important;
    font-size:16px!important;
  }
  .tc-home-guide{
    width:100%!important;
    max-width:820px!important;
  }
  .tc-ready-tip{
    width:100%!important;
    max-width:720px!important;
  }

  /* -------------------------------------------------------
     5) PRACTICE: disable fixed Reference Canvas and transform.
     ------------------------------------------------------- */
  .tc-practice-formal:not([hidden]){
    display:block!important;
    position:relative!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    padding:0!important;
  }
  .tc-practice-fit{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    display:block!important;
    padding:0!important;
  }
  .tc-practice-canvas{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    flex:0 1 auto!important;
    transform:none!important;
    transform-origin:initial!important;
    padding:14px!important;
    display:grid!important;
    grid-template-rows:auto auto auto auto auto auto auto!important;
    row-gap:10px!important;
    overflow:visible!important;
  }

  .tc-practice-canvas .tc-practice-head{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .tc-practice-canvas .tc-practice-title h2{
    font-size:24px!important;
    white-space:normal!important;
  }
  .tc-practice-canvas .tc-practice-chips{
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
  }

  .tc-practice-canvas .tc-metrics-formal{
    width:100%!important;
    height:auto!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .tc-practice-canvas .tc-metric-card{
    height:88px!important;
    min-height:88px!important;
    grid-template-columns:44px minmax(0,1fr)!important;
    gap:7px!important;
    padding:8px!important;
  }
  .tc-practice-canvas .tc-metric-icon{
    width:38px!important;
    height:38px!important;
  }
  .tc-practice-canvas .tc-metric-icon svg{
    width:24px!important;
    height:24px!important;
  }
  .tc-practice-canvas .tc-metric-label{
    font-size:11px!important;
  }
  .tc-practice-canvas .tc-metric-label small{
    font-size:7px!important;
  }
  .tc-practice-canvas .tc-metric-copy b{
    font-size:27px!important;
  }
  .tc-practice-canvas .tc-metric-sub{
    font-size:7px!important;
  }

  .tc-practice-canvas .tc-sentence-formal{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    display:block!important;
    padding:16px 8px 8px!important;
    overflow:visible!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-jp,
  .tc-practice-canvas .tc-sentence-formal .tc-kana,
  .tc-practice-canvas .tc-sentence-formal .tc-roman{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-jp{
    font-size:clamp(30px,5vw,42px)!important;
    line-height:1.35!important;
    white-space:normal!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-kana{
    margin-top:6px!important;
    font-size:15px!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-roman{
    margin-top:4px!important;
    font-size:18px!important;
    line-height:1.35!important;
    word-break:break-all!important;
  }
  .tc-practice-canvas .tc-progress-row{
    width:100%!important;
    max-width:100%!important;
    margin:8px 0 0!important;
  }

  .tc-practice-canvas .tc-next-finger-formal{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:70px!important;
    grid-template-columns:62px minmax(0,1fr) 150px!important;
    padding:8px 10px!important;
  }
  .tc-practice-canvas .tc-guide-toolbar-formal{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:34px!important;
    flex-wrap:wrap!important;
  }

  .tc-practice-canvas .tc-keyboard-wrap-formal{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    display:block!important;
    overflow:visible!important;
  }
  .tc-practice-canvas .tc-key-row{
    width:100%!important;
    min-width:0!important;
    height:36px!important;
    display:flex!important;
    gap:3px!important;
    margin:3px 0!important;
  }
  .tc-practice-canvas .tc-key{
    min-width:0!important;
    width:auto!important;
    height:36px!important;
    padding:1px 2px!important;
  }
  .tc-practice-canvas .tc-key-main{font-size:10px!important;}
  .tc-practice-canvas .tc-key-sub{
    margin-top:1px!important;
    font-size:6px!important;
  }
  .tc-practice-canvas .tc-practice-footer{
    width:100%!important;
    height:auto!important;
    min-height:38px!important;
  }

  /* -------------------------------------------------------
     6) RESULT: page flow, no nested scrollbar.
     ------------------------------------------------------- */
  body.tc-stage-result .tc-result:not([hidden]){
    display:grid!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    padding:24px!important;
    grid-template-rows:auto auto auto auto auto auto!important;
    gap:16px!important;
  }
  body.tc-stage-result .tc-result-grid{
    width:100%!important;
    height:auto!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    min-height:120px!important;
  }
  body.tc-stage-result .tc-feedback{
    min-height:150px!important;
  }
  .tc-result-copyright{
    padding:8px 2px 0!important;
  }
}

/* ---------------------------------------------------------
   Smartphone
   --------------------------------------------------------- */
@media (max-width:700px){

  .tc-app-header__inner{
    flex-direction:column!important;
    align-items:stretch!important;
    padding:8px 10px!important;
  }
  .tc-app-logo{
    justify-content:center!important;
  }
  .tc-app-nav-formal{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
  }
  .tc-app-nav-formal a{
    min-width:0!important;
    padding:7px 2px!important;
    font-size:10px!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .tc-app-nav-formal .tc-nav-icon{
    display:block!important;
    margin:0 0 2px!important;
  }

  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    padding:16px 12px!important;
  }
  .tc-stage-intro .tc-intro-main h2{
    font-size:25px!important;
  }
  .tc-stage-intro .tc-goals{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tc-stage-intro .tc-goal:last-child{
    grid-column:1/-1!important;
  }
  .tc-stage-intro .tc-guide-choice{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  .tc-stage-ready .tc-ready:not([hidden]){
    padding:26px 10px!important;
  }
  .tc-ready-word{
    font-size:46px!important;
  }
  .tc-ready-lead{
    font-size:14px!important;
    line-height:1.65!important;
  }
  .tc-home-guide{
    padding:12px 6px!important;
    grid-template-columns:34px minmax(0,1fr) 34px!important;
    gap:5px!important;
  }
  .tc-home-hand-icon{
    font-size:27px!important;
  }
  .tc-home-keys{
    gap:3px!important;
  }
  .tc-home-keys>span:not(.tc-home-gap){
    width:34px!important;
    min-width:0!important;
    height:42px!important;
    font-size:14px!important;
  }
  .tc-home-gap{width:5px!important;}

  .tc-practice-canvas{
    padding:9px!important;
  }
  .tc-practice-canvas .tc-practice-title h2{
    font-size:20px!important;
  }
  .tc-practice-canvas .tc-metrics-formal{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tc-practice-canvas .tc-metric-card{
    min-height:80px!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-jp{
    font-size:25px!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-kana{
    font-size:12px!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-roman{
    font-size:15px!important;
  }
  .tc-practice-canvas .tc-next-finger-formal{
    grid-template-columns:54px minmax(0,1fr)!important;
  }
  .tc-practice-canvas .tc-hands-formal{
    display:none!important;
  }
  .tc-practice-canvas .tc-guide-help{
    width:100%!important;
  }
  .tc-practice-canvas .tc-key-row{
    height:31px!important;
    gap:2px!important;
    margin:2px 0!important;
  }
  .tc-practice-canvas .tc-key{
    height:31px!important;
    border-radius:3px!important;
  }
  .tc-practice-canvas .tc-key-main{
    font-size:8px!important;
  }
  .tc-practice-canvas .tc-key-sub{
    display:none!important;
  }

  body.tc-stage-result .tc-result:not([hidden]){
    padding:16px 12px!important;
  }
  body.tc-stage-result .tc-result-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    min-height:105px!important;
  }
  body.tc-stage-result .tc-result-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
}

/* ---------------------------------------------------------
   Narrow smartphone
   --------------------------------------------------------- */
@media (max-width:430px){
  .tc-app-logo__mark.tc-app-logo__shield{
    width:38px!important;
    height:45px!important;
  }
  .tc-app-logo__wordmark strong{
    font-size:19px!important;
  }
  .tc-app-logo__wordmark small{
    font-size:7px!important;
  }
  .tc-home-keys>span:not(.tc-home-gap){
    width:29px!important;
    height:38px!important;
    font-size:12px!important;
  }
  .tc-ready-tip{
    padding:10px!important;
  }
  .tc-practice-canvas .tc-practice-title h2{
    font-size:18px!important;
  }
  .tc-practice-canvas .tc-jp{
    font-size:22px!important;
  }
  .tc-practice-canvas .tc-key-row{
    gap:1px!important;
  }
  .tc-practice-canvas .tc-key{
    padding:1px!important;
  }
  .tc-practice-canvas .tc-key-main{
    font-size:7px!important;
  }
}


/* Desktop result should also be a single clean screen, not a nested scroll box. */
@media (min-width:1101px){
  body.tc-stage-result .tc-result:not([hidden]){
    overflow:hidden!important;
    max-height:none!important;
  }
}

/* ---- typing-coach-polish-v19 | assets/css/polish-v19.css ---- */
/* Typing Coach UI Polish v1.9.0
   Loaded after formal-v13.css and responsive-v18.css.
   Desktop polish only unless explicitly marked responsive. */

/* ---------------------------------------------------------
   Shared: subtle copyright consistency
   --------------------------------------------------------- */
.tc-stage-copyright{
  color:#9aa1aa;
  font-size:10px;
  line-height:1;
  text-align:right;
  pointer-events:none;
}

/* ---------------------------------------------------------
   Desktop Intro: use the full vertical canvas more elegantly.
   --------------------------------------------------------- */
@media (min-width:1101px){
  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    padding:22px 38px 30px!important;
  }
  .tc-stage-intro .tc-intro-layout{
    width:100%!important;
    height:596px!important;
    min-height:596px!important;
    grid-template-columns:minmax(0,1fr) minmax(355px,405px)!important;
    gap:34px!important;
    align-items:center!important;
  }
  .tc-stage-intro .tc-intro-main{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  .tc-stage-intro .tc-kicker{
    margin-bottom:7px!important;
    font-size:11px!important;
    letter-spacing:.15em!important;
  }
  .tc-stage-intro .tc-intro-main h2{
    font-size:34px!important;
    line-height:1.18!important;
  }
  .tc-stage-intro .tc-intro-copy{
    max-width:940px!important;
    margin:11px 0 14px!important;
    font-size:15.5px!important;
    line-height:1.75!important;
  }
  .tc-stage-intro .tc-chips{
    margin-bottom:13px!important;
    gap:7px!important;
  }
  .tc-stage-intro .tc-chips span{
    padding:6px 11px!important;
    font-size:11.5px!important;
  }
  .tc-stage-intro .tc-option-block{
    margin-top:10px!important;
    min-height:116px!important;
    padding:14px 16px!important;
  }
  .tc-stage-intro .tc-option-heading{
    margin-bottom:9px!important;
  }
  .tc-stage-intro .tc-option-block .tc-goal{
    min-height:58px!important;
  }
  .tc-stage-intro .tc-option-block .tc-guide-mode{
    min-height:56px!important;
  }
  .tc-stage-intro .tc-session-card{
    min-height:560px!important;
    padding:24px 22px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  .tc-stage-intro .tc-session-icon{
    width:52px!important;
    height:52px!important;
    margin-bottom:10px!important;
  }
  .tc-stage-intro .tc-session-card h3{
    margin:4px 0 12px!important;
    font-size:24px!important;
  }
  .tc-stage-intro .tc-session-data>div{
    padding:9px 0!important;
  }
  .tc-stage-intro .tc-ready-note{
    margin:12px 0!important;
    padding:10px 12px!important;
  }
  .tc-stage-intro .tc-start-button{
    height:58px!important;
    min-height:58px!important;
  }
  .tc-intro-copyright{
    position:absolute;
    right:28px;
    bottom:14px;
  }

  /* READY is already strong; only restore subtle software copyright. */
  .tc-stage-ready .tc-ready:not([hidden]){
    position:relative!important;
  }
  .tc-ready-copyright{
    position:absolute;
    right:28px;
    bottom:15px;
  }
}

/* ---------------------------------------------------------
   Desktop Practice: closer to approved design comp.
   Wider canvas and larger central guidance/keyboard.
   --------------------------------------------------------- */
@media (min-width:1101px){
  .tc-practice-canvas{
    width:1740px!important;
    flex:0 0 1740px!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-jp,
  .tc-practice-canvas .tc-sentence-formal .tc-kana,
  .tc-practice-canvas .tc-sentence-formal .tc-roman{
    width:1500px!important;
    max-width:1500px!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-jp{
    font-size:52px!important;
    letter-spacing:.052em!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-kana{
    font-size:19px!important;
  }
  .tc-practice-canvas .tc-sentence-formal .tc-roman{
    font-size:24px!important;
  }
  .tc-practice-canvas .tc-progress-row{
    width:1360px!important;
    max-width:1360px!important;
  }
  .tc-practice-canvas .tc-next-finger-formal{
    width:1450px!important;
    max-width:1450px!important;
    grid-template-columns:82px minmax(0,1fr) 205px!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .tc-practice-canvas .tc-next-key{
    width:64px!important;
    height:58px!important;
    font-size:34px!important;
  }
  .tc-practice-canvas .tc-next-finger-copy>small{
    font-size:11.5px!important;
  }
  .tc-practice-canvas .tc-next-finger-copy>strong{
    font-size:27px!important;
  }
  .tc-practice-canvas .tc-hands-formal span{
    width:80px!important;
    height:58px!important;
  }
  .tc-practice-canvas .tc-hand-svg,
  .tc-practice-canvas .tc-hand-svg svg{
    width:39px!important;
    height:39px!important;
  }
  .tc-practice-canvas .tc-guide-toolbar-formal{
    width:1450px!important;
    max-width:1450px!important;
  }
  .tc-practice-canvas .tc-guide-label{
    font-size:12px!important;
  }
  .tc-practice-canvas .tc-practice-guide{
    min-width:118px!important;
    font-size:11px!important;
  }
  .tc-practice-canvas .tc-guide-help{
    font-size:9.5px!important;
  }
  .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
    width:1480px!important;
    max-width:1480px!important;
  }
  .tc-practice-canvas .tc-key-main{
    font-size:13.5px!important;
  }
  .tc-practice-canvas .tc-key-sub{
    font-size:8.2px!important;
  }
}

/* ---------------------------------------------------------
   Desktop Result: guaranteed one-screen fit with full buttons visible.
   --------------------------------------------------------- */
@media (min-width:1101px){
  body.tc-stage-result .tc-result:not([hidden]){
    height:100%!important;
    min-height:0!important;
    padding:22px 30px 16px!important;
    display:grid!important;
    grid-template-rows:86px 150px 190px 56px 0 18px!important;
    gap:10px!important;
    align-content:center!important;
    overflow:hidden!important;
  }
  .tc-result-head{
    padding:0 4px!important;
    align-self:center!important;
  }
  .tc-result-head .tc-kicker{
    margin-bottom:5px!important;
    font-size:11px!important;
    letter-spacing:.14em!important;
  }
  .tc-result-head h2{
    font-size:31px!important;
  }
  .tc-result-head p{
    margin-top:5px!important;
    font-size:13.5px!important;
  }
  body.tc-stage-result .tc-result-grid{
    height:150px!important;
    min-height:150px!important;
    gap:12px!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    height:150px!important;
    min-height:150px!important;
    padding:12px!important;
  }
  body.tc-stage-result .tc-result-grid b{
    font-size:39px!important;
  }
  body.tc-stage-result .tc-result-grid span{
    margin-top:12px!important;
  }
  body.tc-stage-result .tc-feedback{
    height:190px!important;
    min-height:190px!important;
    padding:22px 28px!important;
    box-sizing:border-box!important;
  }
  body.tc-stage-result .tc-feedback h3{
    font-size:19px!important;
    line-height:1.55!important;
  }
  body.tc-stage-result .tc-feedback p{
    font-size:13.5px!important;
  }
  body.tc-stage-result .tc-result-actions{
    height:56px!important;
    min-height:56px!important;
    align-items:stretch!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    min-height:52px!important;
    height:52px!important;
    padding:10px 22px!important;
  }
  body.tc-stage-result .tc-app-ad:empty{
    display:none!important;
  }
  .tc-result-copyright{
    align-self:end!important;
    padding:0 4px!important;
  }
}

/* ---------------------------------------------------------
   Responsive stages: copyrights remain in normal flow.
   --------------------------------------------------------- */
@media (max-width:1100px){
  .tc-intro-copyright,
  .tc-ready-copyright{
    position:static!important;
    margin-top:18px!important;
    padding:0 4px 4px!important;
  }
}

/* ---- typing-coach-polish-v110 | assets/css/polish-v110.css ---- */
/* Typing Coach UI Polish v1.10.0
   Final visual layer loaded after v1.9.
   Adds controlled CUD-friendly color, removes desktop nested scroll,
   widens READY SPACE control and improves result first-view balance. */

:root{
  --tc110-gold:#c9952e;
  --tc110-gold-soft:#fff6df;
  --tc110-blue:#4f79a7;
  --tc110-blue-soft:#edf4fb;
  --tc110-green:#5b876b;
  --tc110-green-soft:#eef7f0;
  --tc110-rose:#b86478;
  --tc110-rose-soft:#fff0f3;
  --tc110-ink:#071b38;
  --tc110-line:#d7dee7;
}

/* ---------------------------------------------------------
   Shared interactive polish
   --------------------------------------------------------- */
.tc-goal,
.tc-guide-mode,
.tc-practice-guide,
.tc-start-button,
.tc-result-actions a,
.tc-result-actions button,
.tc-ready .tc-space{
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.tc-goal:focus-visible,
.tc-guide-mode:focus-visible,
.tc-practice-guide:focus-visible,
.tc-start-button:focus-visible,
.tc-result-actions a:focus-visible,
.tc-result-actions button:focus-visible{
  outline:3px solid rgba(79,121,167,.28)!important;
  outline-offset:3px!important;
}

/* ---------------------------------------------------------
   INTRO — remove nested scrollbar and add restrained color
   --------------------------------------------------------- */
@media (min-width:1101px){
  .tc-stage-intro .tc-lesson-intro:not([hidden]){
    height:100%!important;
    overflow:hidden!important;
    padding:22px 38px 26px!important;
  }
  .tc-stage-intro .tc-intro-layout{
    height:560px!important;
    min-height:560px!important;
    align-items:center!important;
  }
  .tc-stage-intro .tc-session-card{
    min-height:536px!important;
    border-color:#ead8aa!important;
    background:
      radial-gradient(circle at 88% 8%,rgba(201,149,46,.13),transparent 28%),
      linear-gradient(145deg,#ffffff 0%,#fffdf8 58%,#fff7e7 100%)!important;
    box-shadow:0 18px 38px rgba(7,27,56,.08)!important;
  }
  .tc-stage-intro .tc-option-block{
    background:linear-gradient(180deg,#fff 0%,#fffdfa 100%)!important;
  }
}

/* Content chips: same text meaning, color is supplemental only. */
.tc-stage-intro .tc-chips span{
  font-weight:700!important;
}
.tc-stage-intro .tc-chips span:nth-child(1){
  background:var(--tc110-gold-soft)!important;
  border-color:#ead69f!important;
}
.tc-stage-intro .tc-chips span:nth-child(2){
  background:var(--tc110-blue-soft)!important;
  border-color:#c9d9eb!important;
}
.tc-stage-intro .tc-chips span:nth-child(3){
  background:var(--tc110-green-soft)!important;
  border-color:#cee2d4!important;
}
.tc-stage-intro .tc-chips span:nth-child(4){
  background:#f0f5fb!important;
  border-color:#cbd9e8!important;
}
.tc-stage-intro .tc-chips span:nth-child(5){
  background:var(--tc110-rose-soft)!important;
  border-color:#edcbd3!important;
}

/* Goal cards: subtle accent strips keep the premium look. */
.tc-stage-intro .tc-goal:not(.is-active){
  background:#fff!important;
}
.tc-stage-intro .tc-goal:nth-child(1):not(.is-active){
  box-shadow:inset 4px 0 0 var(--tc110-green)!important;
  background:linear-gradient(90deg,var(--tc110-green-soft),#fff 26%)!important;
}
.tc-stage-intro .tc-goal:nth-child(2):not(.is-active){
  box-shadow:inset 4px 0 0 var(--tc110-gold)!important;
  background:linear-gradient(90deg,var(--tc110-gold-soft),#fff 26%)!important;
}
.tc-stage-intro .tc-goal:nth-child(3):not(.is-active){
  box-shadow:inset 4px 0 0 var(--tc110-rose)!important;
  background:linear-gradient(90deg,var(--tc110-rose-soft),#fff 26%)!important;
}
.tc-stage-intro .tc-goal:nth-child(4):not(.is-active){
  box-shadow:inset 4px 0 0 var(--tc110-blue)!important;
  background:linear-gradient(90deg,var(--tc110-blue-soft),#fff 26%)!important;
}
.tc-stage-intro .tc-goal:nth-child(5):not(.is-active){
  box-shadow:inset 4px 0 0 #738b70!important;
  background:linear-gradient(90deg,#f1f6ed,#fff 26%)!important;
}
.tc-stage-intro .tc-goal.is-active{
  box-shadow:inset 4px 0 0 var(--tc110-gold)!important;
}

/* Guide choice: ON is navy, OFF has a quiet blue tint. */
.tc-stage-intro .tc-guide-mode:not(.is-active){
  background:linear-gradient(135deg,#fff,#f6f9fc)!important;
  border-color:#cfdae6!important;
}
.tc-stage-intro .tc-option-block:nth-of-type(3){
  background:linear-gradient(180deg,#fff,#f9fbfd)!important;
}

/* ---------------------------------------------------------
   READY — wider SPACE control and gentle color
   --------------------------------------------------------- */
.tc-home-guide{
  border-color:#d5deea!important;
  background:
    linear-gradient(90deg,#fffaf0 0%,#fff 18%,#f7fbff 50%,#fff 82%,#fffaf0 100%)!important;
  box-shadow:0 8px 22px rgba(7,27,56,.035)!important;
}
.tc-ready-tip{
  border:1px solid #d5e0ec!important;
  background:linear-gradient(135deg,#eef4fa 0%,#f5f8fb 100%)!important;
}
.tc-ready .tc-space{
  width:370px!important;
  min-width:370px!important;
  min-height:86px!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  padding:12px 48px!important;
  border:1.5px solid var(--tc110-gold)!important;
  background:linear-gradient(135deg,#fffdf7 0%,#fff4d6 100%)!important;
  box-shadow:0 10px 22px rgba(201,149,46,.10)!important;
}
.tc-ready .tc-space b{
  color:var(--tc110-ink)!important;
  letter-spacing:.025em!important;
}
.tc-ready .tc-space small{
  color:#5d6877!important;
}
.tc-ready .tc-space:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(201,149,46,.16)!important;
}

/* ---------------------------------------------------------
   PRACTICE — more color, still calm and readable
   --------------------------------------------------------- */
@media (min-width:1101px){
  .tc-practice-canvas .tc-metric-card{
    position:relative!important;
    overflow:hidden!important;
    box-shadow:0 5px 14px rgba(7,27,56,.025)!important;
  }
  .tc-practice-canvas .tc-metric-card::before{
    content:"";
    position:absolute;
    left:0;right:0;top:0;
    height:4px;
  }
  .tc-practice-canvas .tc-metric-card:nth-child(1){
    background:linear-gradient(180deg,#f5f9fd 0%,#fff 48%)!important;
  }
  .tc-practice-canvas .tc-metric-card:nth-child(1)::before{background:var(--tc110-blue);}
  .tc-practice-canvas .tc-metric-card:nth-child(2){
    background:linear-gradient(180deg,var(--tc110-green-soft) 0%,#fff 48%)!important;
  }
  .tc-practice-canvas .tc-metric-card:nth-child(2)::before{background:var(--tc110-green);}
  .tc-practice-canvas .tc-metric-card:nth-child(3){
    background:linear-gradient(180deg,var(--tc110-rose-soft) 0%,#fff 48%)!important;
  }
  .tc-practice-canvas .tc-metric-card:nth-child(3)::before{background:var(--tc110-rose);}
  .tc-practice-canvas .tc-metric-card:nth-child(4){
    background:linear-gradient(180deg,var(--tc110-gold-soft) 0%,#fff 48%)!important;
  }
  .tc-practice-canvas .tc-metric-card:nth-child(4)::before{background:var(--tc110-gold);}

  .tc-practice-canvas .tc-sentence-formal{
    background:linear-gradient(180deg,#fff 0%,#fffdf8 100%)!important;
  }
  .tc-practice-canvas .tc-next-finger-formal{
    border-color:#dfbd6c!important;
    background:linear-gradient(90deg,#fffaf0 0%,#fff 42%,#fffaf0 100%)!important;
    box-shadow:0 6px 15px rgba(201,149,46,.06)!important;
  }
  .tc-practice-canvas .tc-guide-toolbar-formal{
    border-color:#d7e0ea!important;
    background:linear-gradient(90deg,#f9fbfd,#f5f8fb)!important;
  }
}

/* ---------------------------------------------------------
   RESULT — keep title visible and add metric/coach color
   --------------------------------------------------------- */
@media (min-width:1101px){
  body.tc-stage-result .tc-result:not([hidden]){
    padding:18px 30px 14px!important;
    grid-template-rows:76px 152px 212px 56px 18px!important;
    gap:0!important;
    align-content:space-between!important;
  }
  .tc-result-head{
    align-self:start!important;
    padding:2px 4px 0!important;
    overflow:visible!important;
  }
  .tc-result-head .tc-kicker{
    display:block!important;
    color:#a86f13!important;
  }
  .tc-result-head h2{
    margin-top:1px!important;
  }

  body.tc-stage-result .tc-result-grid>div{
    position:relative!important;
    overflow:hidden!important;
    box-shadow:0 6px 18px rgba(7,27,56,.035)!important;
  }
  body.tc-stage-result .tc-result-grid>div::before{
    content:"";
    position:absolute;left:0;right:0;top:0;height:5px;
  }
  body.tc-stage-result .tc-result-grid>div:nth-child(1){
    background:linear-gradient(180deg,#f3f8fc,#fff 45%)!important;
  }
  body.tc-stage-result .tc-result-grid>div:nth-child(1)::before{background:var(--tc110-blue);}
  body.tc-stage-result .tc-result-grid>div:nth-child(2){
    background:linear-gradient(180deg,var(--tc110-green-soft),#fff 45%)!important;
  }
  body.tc-stage-result .tc-result-grid>div:nth-child(2)::before{background:var(--tc110-green);}
  body.tc-stage-result .tc-result-grid>div:nth-child(3){
    background:linear-gradient(180deg,var(--tc110-rose-soft),#fff 45%)!important;
  }
  body.tc-stage-result .tc-result-grid>div:nth-child(3)::before{background:var(--tc110-rose);}
  body.tc-stage-result .tc-result-grid>div:nth-child(4){
    background:linear-gradient(180deg,var(--tc110-gold-soft),#fff 45%)!important;
  }
  body.tc-stage-result .tc-result-grid>div:nth-child(4)::before{background:var(--tc110-gold);}

  body.tc-stage-result .tc-feedback{
    position:relative!important;
    border-color:#e5d4aa!important;
    border-left:6px solid var(--tc110-gold)!important;
    background:
      radial-gradient(circle at 92% 12%,rgba(79,121,167,.07),transparent 30%),
      linear-gradient(135deg,#fffaf0,#fffdf9)!important;
    box-shadow:0 7px 22px rgba(7,27,56,.035)!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary{
    box-shadow:0 7px 16px rgba(201,149,46,.13)!important;
  }
  body.tc-stage-result .tc-result-actions .tc-secondary{
    border-color:#b9cde0!important;
    background:linear-gradient(135deg,#fff,#eef5fb)!important;
  }
}

/* ---------------------------------------------------------
   Responsive: keep the v1.8 structure; only scale the wider SPACE.
   --------------------------------------------------------- */
@media (max-width:1100px){
  .tc-ready .tc-space{
    width:min(370px,100%)!important;
    min-width:0!important;
  }

  /* Color treatment stays subtle on smaller screens too. */
  .tc-practice-canvas .tc-metric-card:nth-child(2){
    background:linear-gradient(180deg,var(--tc110-green-soft),#fff 52%)!important;
  }
  .tc-practice-canvas .tc-metric-card:nth-child(3){
    background:linear-gradient(180deg,var(--tc110-rose-soft),#fff 52%)!important;
  }
  .tc-practice-canvas .tc-metric-card:nth-child(4){
    background:linear-gradient(180deg,var(--tc110-gold-soft),#fff 52%)!important;
  }
}

@media (max-width:430px){
  .tc-ready .tc-space{
    min-height:76px!important;
    padding:10px 24px!important;
  }
}

/* ---- typing-coach-polish-v111 | assets/css/polish-v111.css ---- */
/* Typing Coach UI Polish v1.11.0
   Fixes v1.10 result clipping and preserves the approved screen balance. */

/* The result screen has SIX children:
   1 head / 2 metrics / 3 feedback / 4 actions / 5 ad / 6 copyright.
   v1.10 accidentally defined only five explicit rows. */
@media (min-width:1101px){
  body.tc-stage-result .tc-result:not([hidden]){
    height:100%!important;
    min-height:0!important;
    padding:16px 30px 14px!important;
    display:grid!important;
    grid-template-rows:94px 142px 188px 54px 0 16px!important;
    gap:8px!important;
    align-content:center!important;
    overflow:hidden!important;
  }

  .tc-result-head{
    height:94px!important;
    min-height:94px!important;
    padding:1px 4px 0!important;
    box-sizing:border-box!important;
    overflow:visible!important;
    align-self:stretch!important;
  }
  .tc-result-head .tc-kicker{
    margin:0 0 5px!important;
    line-height:1.2!important;
  }
  .tc-result-head h2{
    margin:0!important;
    font-size:31px!important;
    line-height:1.25!important;
  }
  .tc-result-head p{
    margin:7px 0 0!important;
    font-size:13.5px!important;
    line-height:1.45!important;
  }

  body.tc-stage-result .tc-result-grid{
    height:142px!important;
    min-height:142px!important;
    align-self:stretch!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    height:142px!important;
    min-height:142px!important;
  }

  body.tc-stage-result .tc-feedback{
    height:188px!important;
    min-height:188px!important;
    padding:21px 28px!important;
    box-sizing:border-box!important;
  }

  body.tc-stage-result .tc-result-actions{
    height:54px!important;
    min-height:54px!important;
    margin:0!important;
    align-items:center!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:52px!important;
    min-height:52px!important;
    box-sizing:border-box!important;
  }

  body.tc-stage-result .tc-app-ad[data-ad-slot="RESULT_AFTER_ACTIONS"]{
    min-height:0!important;
    height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  .tc-result-copyright{
    height:16px!important;
    min-height:16px!important;
    line-height:16px!important;
    align-self:center!important;
    padding:0 4px!important;
  }

  /* Managed descriptions may be a little longer; keep intro graceful. */
  .tc-stage-intro .tc-intro-copy{
    max-width:970px!important;
    max-height:82px!important;
    overflow:hidden!important;
  }
}

/* Responsive result remains document-flow based from v1.8.
   Only protect long managed titles/descriptions from horizontal overflow. */
@media (max-width:1100px){
  .tc-stage-intro .tc-intro-main h2,
  .tc-practice-canvas .tc-practice-title h2{
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .tc-stage-intro .tc-intro-copy{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

/* ---- typing-coach-polish-v112 | assets/css/polish-v112.css ---- */
/* Typing Coach UI Polish v1.12.0
   - Prominent red/white practice exit button
   - Advanced server-evidence 5D result dashboard
   - Keeps approved READY / Intro / Practice visual language
*/

:root{
  --tc112-danger:#b84655;
  --tc112-danger-dark:#963846;
  --tc112-danger-ring:rgba(184,70,85,.24);
}

/* ---------------------------------------------------------
   Practice: "練習を終了" must be unmistakable.
   --------------------------------------------------------- */
.tc-practice-footer .tc-quit-button,
.tc-standalone-body .tc-practice .tc-secondary[data-action="quit"]{
  min-width:148px!important;
  min-height:42px!important;
  margin:0!important;
  padding:9px 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  border:1px solid var(--tc112-danger-dark)!important;
  border-radius:8px!important;
  background:linear-gradient(180deg,#c55463 0%,var(--tc112-danger) 100%)!important;
  color:#fff!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1!important;
  box-shadow:0 5px 12px rgba(150,56,70,.16)!important;
  text-decoration:none!important;
}
.tc-practice-footer .tc-quit-button span{
  color:#fff!important;
  font-size:15px!important;
}
@media (hover:hover) and (pointer:fine){
  .tc-practice-footer .tc-quit-button:hover,
  .tc-standalone-body .tc-practice .tc-secondary[data-action="quit"]:hover{
    background:linear-gradient(180deg,#b94757 0%,var(--tc112-danger-dark) 100%)!important;
    transform:translateY(-1px);
  }
}
.tc-practice-footer .tc-quit-button:focus-visible{
  outline:3px solid var(--tc112-danger-ring)!important;
  outline-offset:3px!important;
}

/* ---------------------------------------------------------
   Result: data-rich but still one-screen on ordinary desktop.
   Seven explicit rows:
   head / base KPI / 5D / insights / actions / ad / copyright
   --------------------------------------------------------- */
@media (min-width:1101px){
  body.tc-stage-result .tc-result:not([hidden]){
    padding:13px 28px 12px!important;
    grid-template-rows:64px 96px 126px 154px 50px 0 14px!important;
    gap:7px!important;
    align-content:center!important;
  }

  .tc-result-head{
    height:64px!important;
    min-height:64px!important;
    padding:0 4px!important;
  }
  .tc-result-head .tc-kicker{
    margin-bottom:2px!important;
    font-size:9.5px!important;
  }
  .tc-result-head h2{
    font-size:27px!important;
    line-height:1.15!important;
  }
  .tc-result-head p{
    margin-top:4px!important;
    font-size:11.5px!important;
    line-height:1.3!important;
  }

  body.tc-stage-result .tc-result-grid{
    height:96px!important;
    min-height:96px!important;
    gap:10px!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    height:96px!important;
    min-height:96px!important;
    padding:8px 12px!important;
  }
  body.tc-stage-result .tc-result-grid b{
    font-size:31px!important;
  }
  body.tc-stage-result .tc-result-grid span{
    margin-top:5px!important;
    font-size:11px!important;
  }

  .tc-advanced-analysis{
    height:126px;
    display:grid;
    grid-template-columns:220px minmax(0,1fr) 315px;
    gap:10px;
    min-width:0;
  }
  .tc-tci-card,
  .tc-5d-profile,
  .tc-flow-card{
    min-width:0;
    border:1px solid #d9e1e9;
    border-radius:15px;
    background:#fff;
    box-sizing:border-box;
  }
  .tc-tci-card{
    padding:13px 17px;
    background:
      radial-gradient(circle at 88% 16%,rgba(201,149,46,.16),transparent 34%),
      linear-gradient(145deg,#fffaf0,#fff);
    border-color:#e4cf9c;
  }
  .tc-tci-card .tc-kicker{
    font-size:9px;
    letter-spacing:.12em;
    color:#a36c10;
  }
  .tc-tci-value{
    display:flex;
    align-items:baseline;
    gap:5px;
    margin-top:3px;
  }
  .tc-tci-value b{
    font-size:41px;
    line-height:1;
    color:#071b38;
  }
  .tc-tci-value small{
    font-size:10px;
    color:#697686;
  }
  .tc-tci-value em{
    margin-left:auto;
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#071b38;
    color:#fff;
    font-size:18px;
    font-weight:900;
    font-style:normal;
  }
  .tc-tci-card p{
    margin:6px 0 0;
    font-size:9px;
    line-height:1.35;
    color:#697686;
  }

  .tc-5d-profile{
    padding:9px 14px;
    background:linear-gradient(180deg,#fbfdff,#fff);
  }
  .tc-5d-head{
    display:flex;
    align-items:baseline;
    gap:10px;
    margin-bottom:5px;
  }
  .tc-5d-head strong{
    color:#a36c10;
    font-size:9px;
    letter-spacing:.12em;
  }
  .tc-5d-head span{
    font-size:8.5px;
    color:#7c8794;
  }
  .tc-5d-row{
    display:grid;
    grid-template-columns:62px minmax(0,1fr) 27px;
    align-items:center;
    gap:7px;
    min-height:18px;
  }
  .tc-5d-row>span{
    font-size:9.5px;
    font-weight:700;
    color:#263b55;
  }
  .tc-5d-row>i{
    height:7px;
    border-radius:999px;
    background:#e9eef3;
    overflow:hidden;
  }
  .tc-5d-row>i>b{
    display:block;
    width:0;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#4f79a7,#5b876b,#c9952e);
    transition:width .45s ease;
  }
  .tc-5d-row>em{
    font-size:9.5px;
    font-weight:800;
    color:#071b38;
    text-align:right;
    font-style:normal;
  }

  .tc-flow-card{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:24px 1fr;
    padding:9px 11px 10px;
    background:linear-gradient(135deg,#fff,#f7fafc);
  }
  .tc-flow-card>.tc-kicker{
    grid-column:1/-1;
    font-size:9px;
    color:#a36c10;
    letter-spacing:.12em;
  }
  .tc-flow-card>div{
    min-width:0;
    padding:5px 8px 0;
    border-left:1px solid #e0e6ec;
  }
  .tc-flow-card>div:nth-of-type(1){border-left:0;}
  .tc-flow-card>div b{
    display:block;
    min-height:27px;
    font-size:20px;
    line-height:1.1;
    color:#071b38;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .tc-flow-card>div small{
    display:block;
    margin-top:5px;
    font-size:8.5px;
    color:#697686;
  }

  .tc-result-insights{
    height:154px;
    min-height:154px;
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);
    gap:10px;
    min-width:0;
  }
  .tc-coach-analysis,
  .tc-growth-analysis{
    min-width:0;
    height:154px;
    box-sizing:border-box;
    border:1px solid #e4d5ab;
    border-radius:16px;
    padding:13px 17px;
    overflow:hidden;
  }
  .tc-coach-analysis{
    border-left:6px solid #c9952e;
    background:
      radial-gradient(circle at 96% 10%,rgba(79,121,167,.06),transparent 28%),
      linear-gradient(135deg,#fffaf0,#fff);
  }
  .tc-growth-analysis{
    border-color:#cbd9e6;
    background:linear-gradient(135deg,#f3f8fc,#fff);
  }
  .tc-coach-analysis>.tc-kicker,
  .tc-growth-analysis>.tc-kicker{
    display:block;
    margin-bottom:6px;
    color:#a36c10;
    font-size:9px;
    letter-spacing:.12em;
  }
  .tc-coach-analysis dl{
    margin:0;
    display:grid;
    gap:5px;
  }
  .tc-coach-analysis dl>div{
    display:grid;
    grid-template-columns:84px minmax(0,1fr);
    align-items:start;
    gap:9px;
  }
  .tc-coach-analysis dt{
    font-size:9px;
    font-weight:800;
    color:#516174;
  }
  .tc-coach-analysis dd{
    margin:0;
    font-size:11.5px;
    font-weight:700;
    line-height:1.45;
    color:#071b38;
  }
  .tc-coach-analysis .tc-next-action{
    margin-top:2px;
    padding-top:5px;
    border-top:1px dashed #dec990;
  }
  .tc-coach-analysis .tc-next-action dt{
    color:#a36c10;
  }
  .tc-growth-analysis p{
    margin:7px 0 0;
    font-size:10.5px;
    line-height:1.55;
    color:#20354f;
  }
  .tc-growth-analysis .tc-weak-summary{
    font-weight:700;
  }
  .tc-growth-analysis .tc-growth-summary{
    padding-top:7px;
    border-top:1px solid #d9e3ec;
    color:#526375;
  }

  body.tc-stage-result .tc-result-actions{
    height:50px!important;
    min-height:50px!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:48px!important;
    min-height:48px!important;
    padding:8px 21px!important;
  }
  body.tc-stage-result .tc-app-ad[data-ad-slot="RESULT_AFTER_ACTIONS"]{
    height:0!important;
    min-height:0!important;
  }
  .tc-result-copyright{
    height:14px!important;
    min-height:14px!important;
    line-height:14px!important;
  }
}

/* ---------------------------------------------------------
   Responsive: advanced result reflows instead of clipping.
   --------------------------------------------------------- */
@media (max-width:1100px){
  .tc-advanced-analysis{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:14px;
  }
  .tc-tci-card,
  .tc-5d-profile,
  .tc-flow-card{
    border:1px solid #d9e1e9;
    border-radius:14px;
    padding:14px;
  }
  .tc-tci-value{
    display:flex;
    align-items:baseline;
    gap:6px;
  }
  .tc-tci-value b{font-size:38px;}
  .tc-tci-value em{
    margin-left:10px;
    width:34px;height:34px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:#071b38;color:#fff;font-style:normal;font-weight:900;
  }
  .tc-5d-row{
    display:grid;
    grid-template-columns:76px minmax(0,1fr) 32px;
    gap:8px;
    align-items:center;
    margin:7px 0;
  }
  .tc-5d-row>i{
    height:8px;background:#e9eef3;border-radius:999px;overflow:hidden;
  }
  .tc-5d-row>i>b{
    display:block;height:100%;border-radius:inherit;
    background:linear-gradient(90deg,#4f79a7,#5b876b,#c9952e);
  }
  .tc-5d-row>em{font-style:normal;text-align:right;font-weight:800;}
  .tc-flow-card{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .tc-flow-card>.tc-kicker{grid-column:1/-1;}
  .tc-flow-card>div b{display:block;font-size:20px;}
  .tc-flow-card>div small{font-size:10px;color:#697686;}

  .tc-result-insights{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:12px;
  }
  .tc-coach-analysis,
  .tc-growth-analysis{
    border:1px solid #e4d5ab;
    border-radius:14px;
    padding:16px;
  }
  .tc-coach-analysis{
    border-left:5px solid #c9952e;
    background:#fffaf0;
  }
  .tc-growth-analysis{
    border-color:#cbd9e6;background:#f5f9fc;
  }
  .tc-coach-analysis dl{margin:8px 0 0;}
  .tc-coach-analysis dl>div{margin:8px 0;}
  .tc-coach-analysis dt{font-weight:800;font-size:12px;}
  .tc-coach-analysis dd{margin:3px 0 0;line-height:1.5;}
  .tc-growth-analysis p{line-height:1.55;}
}

@media (max-width:700px){
  .tc-flow-card{
    grid-template-columns:1fr;
  }
  .tc-flow-card>.tc-kicker{grid-column:auto;}
  .tc-practice-footer .tc-quit-button,
  .tc-standalone-body .tc-practice .tc-secondary[data-action="quit"]{
    min-width:136px!important;
    min-height:44px!important;
    font-size:13px!important;
  }
}

/* ---- typing-coach-polish-v113 | assets/css/polish-v113.css ---- */
/* Typing Coach UI Polish v1.13.0
   Screenshot review:
   - prevents quit button from overlapping the keyboard
   - restores fully visible result heading
   - removes FLOW DATA ellipsis
   - adds a beginner-friendly WPM explanation
*/

@media (min-width:1101px){

  /* ------------------------------------------------------
     PRACTICE
     Keep the larger red CTA, but allocate a true footer row.
     The keyboard is reduced only 3px per key row.
     ------------------------------------------------------ */
  .tc-practice-canvas{
    grid-template-rows:48px 104px 142px 76px 32px 214px 42px!important;
  }
  .tc-practice-canvas .tc-keyboard-wrap-formal{
    height:214px!important;
    min-height:214px!important;
  }
  .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
    height:211px!important;
    grid-template-rows:repeat(5,39px)!important;
    row-gap:4px!important;
  }
  .tc-practice-canvas .tc-key-row,
  .tc-practice-canvas .tc-key{
    height:39px!important;
  }
  .tc-practice-canvas .tc-practice-footer{
    height:42px!important;
    min-height:42px!important;
    align-items:flex-end!important;
  }
  .tc-practice-footer .tc-quit-button{
    height:40px!important;
    min-height:40px!important;
    min-width:154px!important;
    padding:8px 18px!important;
  }

  /* ------------------------------------------------------
     RESULT
     v1.12 content was vertically centered and could push the
     title above the safe area on real browser viewports.
     Use a top-anchored explicit layout instead.
     ------------------------------------------------------ */
  body.tc-stage-result .tc-result:not([hidden]){
    height:100%!important;
    min-height:0!important;
    padding:14px 28px 12px!important;
    display:grid!important;
    grid-template-rows:76px 106px 140px 178px 52px 0 14px!important;
    gap:7px!important;
    align-content:start!important;
    overflow:hidden!important;
  }

  .tc-result-head{
    height:76px!important;
    min-height:76px!important;
    padding:7px 4px 0!important;
    box-sizing:border-box!important;
    overflow:visible!important;
    align-self:start!important;
  }
  .tc-result-head .tc-kicker{
    display:block!important;
    margin:0 0 3px!important;
    font-size:9.5px!important;
    line-height:1.2!important;
  }
  .tc-result-head h2{
    margin:0!important;
    font-size:28px!important;
    line-height:1.18!important;
  }
  .tc-result-head p{
    margin:5px 0 0!important;
    font-size:11.5px!important;
    line-height:1.35!important;
  }

  body.tc-stage-result .tc-result-grid{
    height:106px!important;
    min-height:106px!important;
    gap:10px!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    height:106px!important;
    min-height:106px!important;
    padding:7px 12px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
  }
  body.tc-stage-result .tc-result-grid b{
    font-size:30px!important;
    line-height:1!important;
  }
  body.tc-stage-result .tc-result-grid span{
    margin-top:5px!important;
    font-size:10.5px!important;
    line-height:1.1!important;
  }
  .tc-result-wpm .tc-wpm-help{
    display:block!important;
    width:100%!important;
    max-width:210px!important;
    margin-top:4px!important;
    color:#6a7787!important;
    font-size:8px!important;
    line-height:1.3!important;
    font-weight:600!important;
    text-align:center!important;
  }

  .tc-advanced-analysis{
    height:140px!important;
    min-height:140px!important;
    grid-template-columns:220px minmax(0,1fr) 330px!important;
  }
  .tc-tci-card,
  .tc-5d-profile,
  .tc-flow-card{
    height:140px!important;
    min-height:140px!important;
  }
  .tc-tci-card{
    padding:15px 17px!important;
  }
  .tc-5d-profile{
    padding:10px 14px!important;
  }
  .tc-5d-row{
    min-height:19px!important;
  }

  /* FLOW values must not be replaced by "…" */
  .tc-flow-card{
    padding:10px 11px!important;
    grid-template-rows:24px 1fr!important;
  }
  .tc-flow-card>div{
    display:flex!important;
    min-width:0!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  .tc-flow-card>div b{
    display:block!important;
    width:100%!important;
    min-height:34px!important;
    color:#071b38!important;
    font-size:16px!important;
    line-height:1.2!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
  }
  .tc-flow-card>div small{
    margin-top:5px!important;
    font-size:8.5px!important;
    line-height:1.2!important;
  }

  .tc-result-insights{
    height:178px!important;
    min-height:178px!important;
  }
  .tc-coach-analysis,
  .tc-growth-analysis{
    height:178px!important;
    min-height:178px!important;
    padding:15px 18px!important;
  }
  .tc-coach-analysis dl{
    gap:7px!important;
  }
  .tc-coach-analysis dd{
    font-size:11.5px!important;
    line-height:1.45!important;
  }
  .tc-growth-analysis p{
    font-size:10.5px!important;
    line-height:1.5!important;
  }

  body.tc-stage-result .tc-result-actions{
    height:52px!important;
    min-height:52px!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:50px!important;
    min-height:50px!important;
  }

  .tc-result-copyright{
    height:14px!important;
    min-height:14px!important;
    line-height:14px!important;
  }
}

/* Responsive result: WPM help and FLOW values remain readable. */
@media (max-width:1100px){
  .tc-result-wpm .tc-wpm-help{
    display:block;
    max-width:230px;
    margin:5px auto 0;
    color:#6a7787;
    font-size:10px;
    line-height:1.4;
    text-align:center;
  }
  .tc-flow-card>div b{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
  }
}

/* Narrow screens: quit button stays a clear destructive action,
   but never becomes wider than the available column. */
@media (max-width:700px){
  .tc-practice-footer .tc-quit-button{
    width:auto!important;
    max-width:100%!important;
    min-width:148px!important;
  }
}

/* ---- typing-coach-polish-v114 | assets/css/polish-v114.css ---- */
/* Typing Coach UI Polish v1.14.0
   Primary goals:
   - keep the rich v1.13 result analysis inside an ordinary PC viewport
   - never hide Retry / Ranking / Copyright
   - preserve legibility and premium spacing
   - retain the approved READY / Top / Practice layouts
*/

@media (min-width:1101px){

  /* Result is now a truly adaptive one-screen dashboard.
     Fixed heights on child cards were the reason v1.13 could overflow
     when OS/browser scaling reduced the CSS-pixel viewport height. */
  body.tc-stage-result .tc-result:not([hidden]){
    height:100%!important;
    min-height:0!important;
    box-sizing:border-box!important;
    padding:10px 28px 9px!important;
    display:grid!important;
    grid-template-rows:
      58px
      88px
      116px
      minmax(112px,1fr)
      44px
      0
      12px!important;
    gap:5px!important;
    align-content:stretch!important;
    overflow:hidden!important;
  }

  /* Header */
  body.tc-stage-result .tc-result-head{
    height:100%!important;
    min-height:0!important;
    padding:2px 4px 0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  body.tc-stage-result .tc-result-head .tc-kicker{
    margin:0 0 2px!important;
    font-size:8.5px!important;
    line-height:1.15!important;
  }
  body.tc-stage-result .tc-result-head h2{
    margin:0!important;
    font-size:25px!important;
    line-height:1.1!important;
  }
  body.tc-stage-result .tc-result-head p{
    margin:3px 0 0!important;
    font-size:10px!important;
    line-height:1.25!important;
  }

  /* 4 headline metrics */
  body.tc-stage-result .tc-result-grid{
    height:100%!important;
    min-height:0!important;
    gap:9px!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    height:100%!important;
    min-height:0!important;
    padding:5px 10px!important;
    box-sizing:border-box!important;
  }
  body.tc-stage-result .tc-result-grid b{
    font-size:27px!important;
    line-height:1!important;
  }
  body.tc-stage-result .tc-result-grid span{
    margin-top:3px!important;
    font-size:9.5px!important;
    line-height:1.05!important;
  }
  body.tc-stage-result .tc-result-wpm .tc-wpm-help{
    max-width:240px!important;
    margin-top:3px!important;
    font-size:7.5px!important;
    line-height:1.2!important;
    color:#667688!important;
  }

  /* TCI / 5D / FLOW */
  body.tc-stage-result .tc-advanced-analysis{
    height:100%!important;
    min-height:0!important;
    grid-template-columns:205px minmax(0,1fr) 320px!important;
    gap:9px!important;
  }
  body.tc-stage-result .tc-tci-card,
  body.tc-stage-result .tc-5d-profile,
  body.tc-stage-result .tc-flow-card{
    height:100%!important;
    min-height:0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  body.tc-stage-result .tc-tci-card{
    padding:10px 14px!important;
  }
  body.tc-stage-result .tc-tci-card .tc-kicker{
    font-size:8px!important;
  }
  body.tc-stage-result .tc-tci-value{
    margin-top:2px!important;
  }
  body.tc-stage-result .tc-tci-value b{
    font-size:35px!important;
  }
  body.tc-stage-result .tc-tci-value em{
    width:31px!important;
    height:31px!important;
    font-size:16px!important;
  }
  body.tc-stage-result .tc-tci-card p{
    margin-top:4px!important;
    font-size:7.8px!important;
    line-height:1.25!important;
  }

  body.tc-stage-result .tc-5d-profile{
    padding:7px 12px!important;
  }
  body.tc-stage-result .tc-5d-head{
    margin-bottom:2px!important;
  }
  body.tc-stage-result .tc-5d-head strong{
    font-size:8px!important;
  }
  body.tc-stage-result .tc-5d-head span{
    font-size:7.5px!important;
  }
  body.tc-stage-result .tc-5d-row{
    grid-template-columns:58px minmax(0,1fr) 25px!important;
    gap:6px!important;
    min-height:15px!important;
  }
  body.tc-stage-result .tc-5d-row>span,
  body.tc-stage-result .tc-5d-row>em{
    font-size:8.5px!important;
  }
  body.tc-stage-result .tc-5d-row>i{
    height:6px!important;
  }

  body.tc-stage-result .tc-flow-card{
    padding:7px 10px!important;
    grid-template-rows:19px 1fr!important;
  }
  body.tc-stage-result .tc-flow-card>.tc-kicker{
    font-size:8px!important;
  }
  body.tc-stage-result .tc-flow-card>div{
    padding:3px 7px 0!important;
    justify-content:center!important;
  }
  body.tc-stage-result .tc-flow-card>div b{
    min-height:28px!important;
    font-size:14px!important;
    line-height:1.15!important;
  }
  body.tc-stage-result .tc-flow-card>div small{
    margin-top:3px!important;
    font-size:7.5px!important;
    line-height:1.15!important;
  }

  /* Coach + Growth.
     Use the remaining flexible height rather than demanding 178px. */
  body.tc-stage-result .tc-result-insights{
    height:100%!important;
    min-height:0!important;
    grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr)!important;
    gap:9px!important;
    overflow:hidden!important;
  }
  body.tc-stage-result .tc-coach-analysis,
  body.tc-stage-result .tc-growth-analysis{
    height:100%!important;
    min-height:0!important;
    padding:10px 15px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  body.tc-stage-result .tc-coach-analysis>.tc-kicker,
  body.tc-stage-result .tc-growth-analysis>.tc-kicker{
    margin-bottom:4px!important;
    font-size:8px!important;
  }
  body.tc-stage-result .tc-coach-analysis dl{
    gap:3px!important;
  }
  body.tc-stage-result .tc-coach-analysis dl>div{
    grid-template-columns:82px minmax(0,1fr)!important;
    gap:8px!important;
  }
  body.tc-stage-result .tc-coach-analysis dt{
    font-size:8px!important;
  }
  body.tc-stage-result .tc-coach-analysis dd{
    font-size:10px!important;
    line-height:1.3!important;
  }
  body.tc-stage-result .tc-coach-analysis .tc-next-action{
    margin-top:1px!important;
    padding-top:4px!important;
  }
  body.tc-stage-result .tc-growth-analysis p{
    margin:5px 0 0!important;
    font-size:9px!important;
    line-height:1.35!important;
  }
  body.tc-stage-result .tc-growth-analysis .tc-growth-summary{
    padding-top:5px!important;
  }

  /* Actions must always remain visible. */
  body.tc-stage-result .tc-result-actions{
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:42px!important;
    min-height:42px!important;
    padding:7px 18px!important;
    font-size:12px!important;
    line-height:1!important;
  }

  body.tc-stage-result .tc-app-ad[data-ad-slot="RESULT_AFTER_ACTIONS"]{
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  body.tc-stage-result .tc-result-copyright{
    height:12px!important;
    min-height:12px!important;
    margin:0!important;
    line-height:12px!important;
    font-size:8px!important;
  }
}

/* Extra compact safety mode for short laptop/browser viewports.
   This catches browser toolbars, OS scaling, and 125%/150% display scaling. */
@media (min-width:1101px) and (max-height:820px){
  body.tc-stage-result .tc-result:not([hidden]){
    padding-top:7px!important;
    padding-bottom:6px!important;
    grid-template-rows:
      52px
      80px
      105px
      minmax(102px,1fr)
      40px
      0
      10px!important;
    gap:4px!important;
  }
  body.tc-stage-result .tc-result-head h2{font-size:23px!important;}
  body.tc-stage-result .tc-result-grid b{font-size:25px!important;}
  body.tc-stage-result .tc-tci-value b{font-size:32px!important;}
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:38px!important;
    min-height:38px!important;
  }
}

/* Responsive behavior remains vertical and scroll-safe. */
@media (max-width:1100px){
  body.tc-stage-result .tc-result:not([hidden]){
    overflow:auto!important;
  }
  .tc-result-wpm .tc-wpm-help{
    font-size:10px!important;
    line-height:1.35!important;
  }
}

/* ---- typing-coach-polish-v115 | assets/css/polish-v115.css ---- */
/* Typing Coach UI Polish v1.15.0
   Readability / senior-friendly revision.
   Principle:
   - READY + active practice remain one-screen / no-scroll on desktop.
   - Result screen may scroll slightly so text never needs to be tiny.
   - Raise secondary text sizes instead of shrinking information.
*/

@media (min-width:1101px){

  /* ========================================================
     TOP / INTRO
     Keep current successful layout, restore readable helper text.
     ======================================================== */
  .tc-stage-intro .tc-option-heading strong{
    font-size:15px!important;
  }
  .tc-stage-intro .tc-option-heading small{
    font-size:10.5px!important;
    line-height:1.35!important;
  }
  .tc-stage-intro .tc-option-block .tc-goal b,
  .tc-stage-intro .tc-option-block .tc-guide-mode b{
    font-size:13px!important;
  }
  .tc-stage-intro .tc-option-block .tc-goal small,
  .tc-stage-intro .tc-option-block .tc-guide-mode small{
    font-size:10px!important;
    line-height:1.3!important;
  }
  .tc-stage-intro .tc-session-label{
    font-size:10.5px!important;
  }
  .tc-stage-intro .tc-session-data dt{
    font-size:11.5px!important;
  }
  .tc-stage-intro .tc-session-data dd{
    font-size:13px!important;
  }
  .tc-stage-intro .tc-ready-note strong{
    font-size:12px!important;
  }
  .tc-stage-intro .tc-ready-note span{
    font-size:10px!important;
    line-height:1.4!important;
  }
  .tc-stage-intro .tc-start-button small{
    font-size:10px!important;
  }

  /* ========================================================
     ACTIVE PRACTICE
     Do NOT alter the no-scroll geometry.
     Only enlarge tiny explanatory labels.
     ======================================================== */
  .tc-practice-canvas .tc-metric-label small{
    font-size:10.5px!important;
    line-height:1.2!important;
  }
  .tc-practice-canvas .tc-next-finger-copy>small{
    font-size:12px!important;
  }
  .tc-practice-canvas .tc-next-finger-copy>em{
    font-size:10.5px!important;
    line-height:1.3!important;
  }
  .tc-practice-canvas .tc-guide-help{
    font-size:10px!important;
  }
  .tc-practice-footer .tc-quit-button{
    font-size:12.5px!important;
  }

  /* ========================================================
     RESULT
     v1.14 proved the layout. v1.15 prioritizes readability:
     slightly taller content + small internal scroll is allowed.
     ======================================================== */
  body.tc-stage-result .tc-result:not([hidden]){
    height:100%!important;
    min-height:0!important;
    box-sizing:border-box!important;
    padding:18px 28px 16px!important;
    display:grid!important;
    grid-template-rows:
      auto
      auto
      auto
      auto
      auto
      0
      auto!important;
    gap:11px!important;
    align-content:start!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scrollbar-gutter:stable!important;
    overscroll-behavior:contain!important;
  }

  /* Subtle, non-distracting inner scrollbar. */
  body.tc-stage-result .tc-result:not([hidden]){
    scrollbar-width:thin;
    scrollbar-color:#aeb7c3 transparent;
  }
  body.tc-stage-result .tc-result:not([hidden])::-webkit-scrollbar{
    width:9px;
  }
  body.tc-stage-result .tc-result:not([hidden])::-webkit-scrollbar-track{
    background:transparent;
  }
  body.tc-stage-result .tc-result:not([hidden])::-webkit-scrollbar-thumb{
    background:#aeb7c3;
    border-radius:999px;
    border:2px solid #fff;
  }

  /* Result heading */
  body.tc-stage-result .tc-result-head{
    height:auto!important;
    min-height:72px!important;
    padding:2px 5px 4px!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-result-head .tc-kicker{
    margin:0 0 4px!important;
    font-size:11px!important;
    line-height:1.25!important;
    letter-spacing:.14em!important;
  }
  body.tc-stage-result .tc-result-head h2{
    font-size:31px!important;
    line-height:1.16!important;
  }
  body.tc-stage-result .tc-result-head p{
    margin-top:6px!important;
    font-size:14px!important;
    line-height:1.45!important;
  }

  /* 4 headline metrics */
  body.tc-stage-result .tc-result-grid{
    height:auto!important;
    min-height:118px!important;
    gap:12px!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    height:auto!important;
    min-height:118px!important;
    padding:12px 14px!important;
  }
  body.tc-stage-result .tc-result-grid b{
    font-size:36px!important;
  }
  body.tc-stage-result .tc-result-grid span{
    margin-top:7px!important;
    font-size:14px!important;
    line-height:1.2!important;
  }
  body.tc-stage-result .tc-result-wpm .tc-wpm-help{
    max-width:280px!important;
    margin-top:6px!important;
    font-size:11px!important;
    line-height:1.35!important;
    font-weight:600!important;
  }

  /* TCI / 5D / Flow */
  body.tc-stage-result .tc-advanced-analysis{
    height:auto!important;
    min-height:162px!important;
    grid-template-columns:230px minmax(0,1fr) 345px!important;
    gap:12px!important;
  }
  body.tc-stage-result .tc-tci-card,
  body.tc-stage-result .tc-5d-profile,
  body.tc-stage-result .tc-flow-card{
    height:auto!important;
    min-height:162px!important;
    overflow:visible!important;
  }

  body.tc-stage-result .tc-tci-card{
    padding:17px 18px!important;
  }
  body.tc-stage-result .tc-tci-card .tc-kicker{
    font-size:11px!important;
  }
  body.tc-stage-result .tc-tci-value{
    margin-top:5px!important;
  }
  body.tc-stage-result .tc-tci-value b{
    font-size:44px!important;
  }
  body.tc-stage-result .tc-tci-value small{
    font-size:12px!important;
  }
  body.tc-stage-result .tc-tci-value em{
    width:39px!important;
    height:39px!important;
    font-size:19px!important;
  }
  body.tc-stage-result .tc-tci-card p{
    margin-top:8px!important;
    font-size:11px!important;
    line-height:1.45!important;
  }

  body.tc-stage-result .tc-5d-profile{
    padding:12px 16px!important;
  }
  body.tc-stage-result .tc-5d-head{
    margin-bottom:7px!important;
  }
  body.tc-stage-result .tc-5d-head strong{
    font-size:11.5px!important;
  }
  body.tc-stage-result .tc-5d-head span{
    font-size:10.5px!important;
  }
  body.tc-stage-result .tc-5d-row{
    grid-template-columns:72px minmax(0,1fr) 34px!important;
    gap:9px!important;
    min-height:23px!important;
  }
  body.tc-stage-result .tc-5d-row>span,
  body.tc-stage-result .tc-5d-row>em{
    font-size:12px!important;
    line-height:1.2!important;
  }
  body.tc-stage-result .tc-5d-row>i{
    height:8px!important;
  }

  body.tc-stage-result .tc-flow-card{
    padding:12px 13px!important;
    grid-template-rows:26px 1fr!important;
  }
  body.tc-stage-result .tc-flow-card>.tc-kicker{
    font-size:11px!important;
  }
  body.tc-stage-result .tc-flow-card>div{
    padding:7px 10px 2px!important;
  }
  body.tc-stage-result .tc-flow-card>div b{
    min-height:42px!important;
    font-size:18px!important;
    line-height:1.2!important;
  }
  body.tc-stage-result .tc-flow-card>div small{
    margin-top:6px!important;
    font-size:10.5px!important;
    line-height:1.3!important;
  }

  /* Coaching / growth — core reading area. */
  body.tc-stage-result .tc-result-insights{
    height:auto!important;
    min-height:205px!important;
    grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr)!important;
    gap:12px!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-coach-analysis,
  body.tc-stage-result .tc-growth-analysis{
    height:auto!important;
    min-height:205px!important;
    padding:18px 20px!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-coach-analysis>.tc-kicker,
  body.tc-stage-result .tc-growth-analysis>.tc-kicker{
    margin-bottom:9px!important;
    font-size:11px!important;
  }
  body.tc-stage-result .tc-coach-analysis dl{
    gap:8px!important;
  }
  body.tc-stage-result .tc-coach-analysis dl>div{
    grid-template-columns:100px minmax(0,1fr)!important;
    gap:12px!important;
  }
  body.tc-stage-result .tc-coach-analysis dt{
    font-size:12px!important;
    line-height:1.4!important;
  }
  body.tc-stage-result .tc-coach-analysis dd{
    font-size:14px!important;
    line-height:1.55!important;
  }
  body.tc-stage-result .tc-coach-analysis .tc-next-action{
    margin-top:3px!important;
    padding-top:9px!important;
  }
  body.tc-stage-result .tc-growth-analysis p{
    margin:8px 0 0!important;
    font-size:13px!important;
    line-height:1.55!important;
  }
  body.tc-stage-result .tc-growth-analysis .tc-growth-summary{
    padding-top:9px!important;
  }

  /* Buttons: comfortably readable and easy to hit. */
  body.tc-stage-result .tc-result-actions{
    height:auto!important;
    min-height:56px!important;
    gap:12px!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:54px!important;
    min-height:54px!important;
    padding:11px 22px!important;
    font-size:15px!important;
    line-height:1.2!important;
  }

  body.tc-stage-result .tc-result-copyright{
    height:auto!important;
    min-height:16px!important;
    padding:0 4px 1px!important;
    font-size:10px!important;
    line-height:1.4!important;
  }

  /* v1.14's forced compact mode is intentionally neutralized for result.
     Short desktop screens simply scroll a little instead of shrinking text. */
}
@media (min-width:1101px) and (max-height:820px){
  body.tc-stage-result .tc-result:not([hidden]){
    padding:16px 24px 14px!important;
    grid-template-rows:auto auto auto auto auto 0 auto!important;
    gap:10px!important;
    overflow-y:auto!important;
  }
  body.tc-stage-result .tc-result-head h2{
    font-size:29px!important;
  }
  body.tc-stage-result .tc-result-grid b{
    font-size:34px!important;
  }
  body.tc-stage-result .tc-tci-value b{
    font-size:42px!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:52px!important;
    min-height:52px!important;
  }
}

/* Tablet / phone: prioritize readability over compression as well. */
@media (max-width:1100px){
  body.tc-stage-result .tc-result:not([hidden]){
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
  .tc-result-wpm .tc-wpm-help{
    font-size:11px!important;
    line-height:1.45!important;
  }
}

/* Mobile: avoid tiny support copy. */
@media (max-width:760px){
  .tc-stage-intro .tc-option-block .tc-goal small,
  .tc-stage-intro .tc-option-block .tc-guide-mode small,
  .tc-stage-intro .tc-ready-note span,
  .tc-stage-intro .tc-start-button small{
    font-size:10px!important;
  }
  body.tc-stage-result .tc-coach-analysis dd,
  body.tc-stage-result .tc-growth-analysis p{
    font-size:13px!important;
  }
}

/* ---- typing-coach-polish-v116 | assets/css/polish-v116.css ---- */
/* Typing Coach UI Polish v1.16.0
   Result Intelligence Expansion
   - Active practice remains one-screen/no-scroll on desktop.
   - Result screen is intentionally scrollable and information-rich.
   - Differentiation comes from server-evidence analysis, not decorative density.
*/

@media (min-width:1101px){

  /* Preserve the successful READY / intro / practice geometry. */
  .tc-practice-canvas .tc-metric-label small{
    font-size:11px!important;
  }
  .tc-practice-canvas .tc-next-finger-copy>em{
    font-size:11px!important;
  }
  .tc-practice-canvas .tc-guide-help{
    font-size:10.5px!important;
  }

  /* Result now has room to breathe. */
  body.tc-stage-result .tc-result:not([hidden]){
    padding:24px 32px 22px!important;
    gap:14px!important;
    grid-template-rows:auto auto auto auto auto auto 0 auto!important;
    overflow-y:auto!important;
    align-content:start!important;
  }

  body.tc-stage-result .tc-result-head{
    min-height:78px!important;
  }
  body.tc-stage-result .tc-result-head h2{
    font-size:34px!important;
  }
  body.tc-stage-result .tc-result-head p{
    font-size:15px!important;
  }

  body.tc-stage-result .tc-result-grid{
    min-height:126px!important;
    gap:14px!important;
  }
  body.tc-stage-result .tc-result-grid>div{
    min-height:126px!important;
    padding:15px 16px!important;
  }
  body.tc-stage-result .tc-result-grid b{
    font-size:40px!important;
  }
  body.tc-stage-result .tc-result-grid span{
    font-size:15px!important;
  }
  body.tc-stage-result .tc-result-wpm .tc-wpm-help{
    font-size:12px!important;
    line-height:1.4!important;
  }

  /* Existing 5D block: enlarge rather than compress. */
  body.tc-stage-result .tc-advanced-analysis{
    min-height:178px!important;
    grid-template-columns:245px minmax(0,1fr) 360px!important;
    gap:14px!important;
  }
  body.tc-stage-result .tc-tci-card,
  body.tc-stage-result .tc-5d-profile,
  body.tc-stage-result .tc-flow-card{
    min-height:178px!important;
  }
  body.tc-stage-result .tc-tci-card .tc-kicker,
  body.tc-stage-result .tc-5d-head strong,
  body.tc-stage-result .tc-flow-card>.tc-kicker{
    font-size:12px!important;
  }
  body.tc-stage-result .tc-tci-value b{
    font-size:48px!important;
  }
  body.tc-stage-result .tc-tci-card p{
    font-size:12px!important;
  }
  body.tc-stage-result .tc-5d-row{
    min-height:25px!important;
    grid-template-columns:78px minmax(0,1fr) 38px!important;
  }
  body.tc-stage-result .tc-5d-row>span,
  body.tc-stage-result .tc-5d-row>em{
    font-size:13px!important;
  }
  body.tc-stage-result .tc-flow-card>div b{
    font-size:20px!important;
  }
  body.tc-stage-result .tc-flow-card>div small{
    font-size:11.5px!important;
  }

  /* --------------------------------------------------------
     SESSION SIGNATURE + PACE MAP
     -------------------------------------------------------- */
  .tc-signature-analysis{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(390px,.75fr);
    gap:14px;
    min-height:250px;
  }
  .tc-session-signature-card,
  .tc-pace-map-card{
    border:1px solid #d8e0ea;
    border-radius:20px;
    background:linear-gradient(135deg,#fffdfa 0%,#ffffff 58%,#f7fbff 100%);
    box-shadow:0 12px 28px rgba(9,34,64,.045);
  }
  .tc-session-signature-card{
    padding:20px 22px;
    border-left:7px solid #c9982c;
  }
  .tc-pace-map-card{
    padding:20px 22px;
    background:linear-gradient(145deg,#f8fbff,#fffdf7);
  }
  .tc-section-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
  }
  .tc-section-title-row h3,
  .tc-pace-map-card h3,
  .tc-personal-plan h3{
    margin:5px 0 0;
    color:#071d3b;
    font-size:21px;
    line-height:1.3;
  }
  .tc-verification-badge{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:7px 11px;
    border-radius:999px;
    background:#f2f5f8;
    color:#526274;
    font-size:11.5px;
    font-weight:800;
    white-space:nowrap;
  }
  .tc-verification-badge.is-verified{
    background:#edf7f0;
    color:#286347;
    border:1px solid #cce3d4;
  }
  .tc-session-type{
    margin-top:13px;
    padding:14px 16px;
    border-radius:14px;
    background:#f8fafc;
    border:1px solid #e3e9f0;
  }
  .tc-session-type strong{
    display:block;
    color:#0b1d34;
    font-size:18px;
    line-height:1.3;
  }
  .tc-session-type p{
    margin:5px 0 0;
    color:#526274;
    font-size:13px;
    line-height:1.55;
  }
  .tc-signature-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
    margin-top:12px;
  }
  .tc-signature-metrics>div{
    min-height:96px;
    padding:12px 13px;
    border:1px solid #e0e6ed;
    border-radius:14px;
    background:#fff;
  }
  .tc-signature-metrics b{
    display:block;
    color:#071d3b;
    font-size:25px;
    line-height:1.1;
  }
  .tc-signature-metrics span{
    display:block;
    margin-top:7px;
    color:#142b49;
    font-size:13px;
    font-weight:800;
  }
  .tc-signature-metrics small{
    display:block;
    margin-top:4px;
    color:#677688;
    font-size:10.5px;
    line-height:1.35;
  }

  .tc-pace-help{
    margin:7px 0 14px;
    color:#69788a;
    font-size:12px;
    line-height:1.4;
  }
  .tc-pace-row{
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 50px;
    align-items:center;
    gap:10px;
    min-height:32px;
  }
  .tc-pace-row>span,
  .tc-pace-row>em{
    color:#20344f;
    font-size:13px;
    font-style:normal;
    font-weight:800;
  }
  .tc-pace-row>em{
    text-align:right;
  }
  .tc-pace-row>i{
    display:block;
    height:10px;
    overflow:hidden;
    border-radius:999px;
    background:#e8edf3;
  }
  .tc-pace-row>i>b{
    display:block;
    width:0;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#4b7dad,#6c9a7b 48%,#c9982c);
    transition:width .35s ease;
  }
  .tc-pace-summary{
    margin:13px 0 0;
    padding-top:12px;
    border-top:1px dashed #d9c48c;
    color:#0d2645;
    font-size:13px;
    line-height:1.55;
    font-weight:700;
  }

  /* Existing coaching/growth: more room and larger reading text. */
  body.tc-stage-result .tc-result-insights{
    min-height:238px!important;
    grid-template-columns:minmax(0,1.45fr) minmax(390px,.75fr)!important;
    gap:14px!important;
  }
  body.tc-stage-result .tc-coach-analysis,
  body.tc-stage-result .tc-growth-analysis{
    min-height:238px!important;
    padding:21px 23px!important;
  }
  body.tc-stage-result .tc-coach-analysis>.tc-kicker,
  body.tc-stage-result .tc-growth-analysis>.tc-kicker{
    font-size:12px!important;
  }
  body.tc-stage-result .tc-coach-analysis dt{
    font-size:13px!important;
  }
  body.tc-stage-result .tc-coach-analysis dd{
    font-size:15px!important;
    line-height:1.6!important;
  }
  body.tc-stage-result .tc-growth-analysis p{
    font-size:14px!important;
    line-height:1.6!important;
  }

  .tc-growth-stats{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:14px;
  }
  .tc-growth-stats>div{
    min-height:70px;
    padding:10px 12px;
    border-radius:12px;
    background:#fff;
    border:1px solid #dce5ee;
  }
  .tc-growth-stats b{
    display:block;
    color:#071d3b;
    font-size:19px;
    line-height:1.15;
  }
  .tc-growth-stats small{
    display:block;
    margin-top:5px;
    color:#69788a;
    font-size:10.5px;
    line-height:1.35;
  }

  /* --------------------------------------------------------
     PERSONAL PRACTICE PLAN
     -------------------------------------------------------- */
  .tc-personal-plan{
    padding:22px 24px;
    border:1px solid #e3d3a6;
    border-radius:20px;
    background:linear-gradient(135deg,#fffaf0 0%,#fff 58%,#f7fbff 100%);
    box-shadow:0 12px 28px rgba(9,34,64,.04);
  }
  .tc-personal-plan-head p{
    margin:7px 0 0;
    color:#607083;
    font-size:13px;
    line-height:1.5;
  }
  .tc-plan-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:11px;
    margin-top:16px;
  }
  .tc-plan-grid>div{
    position:relative;
    min-height:130px;
    padding:16px 17px 16px 50px;
    border:1px solid #dde5ed;
    border-radius:16px;
    background:#fff;
  }
  .tc-plan-grid>div>span{
    position:absolute;
    top:15px;
    left:14px;
    display:grid;
    place-items:center;
    width:28px;
    height:28px;
    border-radius:9px;
    background:#0b2343;
    color:#fff;
    font-size:11px;
    font-weight:900;
  }
  .tc-plan-grid small{
    display:block;
    color:#a16f11;
    font-size:11px;
    font-weight:900;
    letter-spacing:.09em;
  }
  .tc-plan-grid strong{
    display:block;
    margin-top:8px;
    color:#102845;
    font-size:14px;
    line-height:1.55;
  }
  .tc-evidence-note{
    margin-top:14px;
    padding:15px 17px;
    border-radius:14px;
    background:#f6f8fb;
    border:1px solid #dfe6ed;
  }
  .tc-evidence-note>strong{
    color:#0b2343;
    font-size:13px;
  }
  .tc-evidence-note>p{
    margin:6px 0 0;
    color:#42556d;
    font-size:13px;
    line-height:1.55;
  }
  .tc-evidence-note details{
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid #dce3ea;
  }
  .tc-evidence-note summary{
    cursor:pointer;
    color:#173a68;
    font-size:13px;
    font-weight:800;
  }
  .tc-method-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px 16px;
    margin-top:12px;
  }
  .tc-method-grid p{
    margin:0;
    padding:11px 12px;
    border-radius:11px;
    background:#fff;
    border:1px solid #e2e8ef;
  }
  .tc-method-grid b{
    display:block;
    color:#9a6a12;
    font-size:11px;
    letter-spacing:.06em;
  }
  .tc-method-grid span{
    display:block;
    margin-top:4px;
    color:#44576f;
    font-size:12px;
    line-height:1.5;
  }
  .tc-evidence-note details>small{
    display:block;
    margin-top:10px;
    color:#748296;
    font-size:11px;
    line-height:1.5;
  }

  body.tc-stage-result .tc-result-actions{
    min-height:60px!important;
  }
  body.tc-stage-result .tc-result-actions .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    height:56px!important;
    min-height:56px!important;
    font-size:16px!important;
  }
}

/* Result content becomes stacked on narrower layouts. */
@media (max-width:1300px) and (min-width:761px){
  .tc-signature-analysis{
    grid-template-columns:1fr;
  }
  .tc-signature-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .tc-plan-grid{
    grid-template-columns:1fr;
  }
}

/* Tablet / mobile: preserve readable text, use natural document flow. */
@media (max-width:1100px){
  .tc-signature-analysis{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  .tc-session-signature-card,
  .tc-pace-map-card,
  .tc-personal-plan{
    padding:18px;
    border:1px solid #dce4ec;
    border-radius:16px;
    background:#fff;
  }
  .tc-session-signature-card{
    border-left:5px solid #c9982c;
  }
  .tc-section-title-row{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:10px;
  }
  .tc-section-title-row h3,
  .tc-pace-map-card h3,
  .tc-personal-plan h3{
    margin:5px 0 0;
    font-size:20px;
  }
  .tc-verification-badge{
    padding:7px 10px;
    border-radius:999px;
    background:#edf7f0;
    color:#286347;
    font-size:11px;
    font-weight:800;
  }
  .tc-session-type{
    margin-top:12px;
    padding:13px;
    border-radius:12px;
    background:#f7f9fb;
  }
  .tc-session-type strong{
    font-size:17px;
  }
  .tc-session-type p{
    font-size:13px;
    line-height:1.55;
  }
  .tc-signature-metrics{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:12px;
  }
  .tc-signature-metrics>div,
  .tc-growth-stats>div{
    padding:11px;
    border:1px solid #e0e6ed;
    border-radius:12px;
  }
  .tc-signature-metrics b{
    font-size:23px;
  }
  .tc-signature-metrics span{
    font-size:13px;
  }
  .tc-signature-metrics small{
    font-size:10.5px;
  }
  .tc-pace-row{
    display:grid;
    grid-template-columns:45px minmax(0,1fr) 48px;
    gap:8px;
    align-items:center;
    min-height:32px;
  }
  .tc-pace-row>i{
    display:block;
    height:9px;
    border-radius:999px;
    overflow:hidden;
    background:#e8edf3;
  }
  .tc-pace-row>i>b{
    display:block;
    height:100%;
    background:linear-gradient(90deg,#4b7dad,#6c9a7b,#c9982c);
  }
  .tc-pace-row>span,
  .tc-pace-row>em{
    font-size:12px;
    font-style:normal;
    font-weight:800;
  }
  .tc-pace-summary,
  .tc-pace-help{
    font-size:12px;
    line-height:1.55;
  }
  .tc-growth-stats{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:12px;
  }
  .tc-growth-stats b{
    font-size:18px;
  }
  .tc-growth-stats small{
    display:block;
    margin-top:4px;
    font-size:10.5px;
  }
  .tc-plan-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    margin-top:14px;
  }
  .tc-plan-grid>div{
    position:relative;
    padding:14px 14px 14px 48px;
    min-height:92px;
    border:1px solid #dfe6ed;
    border-radius:13px;
  }
  .tc-plan-grid>div>span{
    position:absolute;
    left:12px;
    top:13px;
    display:grid;
    place-items:center;
    width:27px;
    height:27px;
    border-radius:8px;
    background:#0b2343;
    color:#fff;
    font-size:10px;
    font-weight:900;
  }
  .tc-plan-grid small{
    color:#a16f11;
    font-size:10.5px;
    font-weight:900;
  }
  .tc-plan-grid strong{
    display:block;
    margin-top:6px;
    font-size:13.5px;
    line-height:1.55;
  }
  .tc-evidence-note{
    margin-top:12px;
    padding:13px;
    border-radius:12px;
    background:#f6f8fb;
  }
  .tc-evidence-note p,
  .tc-evidence-note summary{
    font-size:12.5px;
    line-height:1.55;
  }
  .tc-method-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:10px;
  }
  .tc-method-grid p{
    padding:10px;
    background:#fff;
    border:1px solid #e2e8ef;
    border-radius:10px;
  }
  .tc-method-grid b{
    display:block;
    font-size:10.5px;
  }
  .tc-method-grid span{
    display:block;
    margin-top:3px;
    font-size:12px;
    line-height:1.5;
  }
}

/* ---- typing-coach-polish-v117 | assets/css/polish-v117.css ---- */
/* Typing Coach UI Polish v1.17.0
   - Strong red lesson CTA on intro / post-quit intro.
   - Result page uses natural vertical flow: no section overlap.
   - Adds Evidence Quality, Key & Finger Insight and Longitudinal Growth.
*/

:root{
  --tc117-red:#b94155;
  --tc117-red-hover:#a73348;
  --tc117-blue:#4f7fab;
  --tc117-green:#5f8d72;
  --tc117-rose:#bd6075;
  --tc117-gold:#c99528;
}

/* ----------------------------------------------------------
   INTRO CTA: clearly visible, CUD-friendly red with white text
   ---------------------------------------------------------- */
.tc-stage-intro .tc-start-button{
  background:var(--tc117-red)!important;
  border-color:var(--tc117-red)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(185,65,85,.20)!important;
}
.tc-stage-intro .tc-start-button span,
.tc-stage-intro .tc-start-button small{
  color:#fff!important;
}
.tc-stage-intro .tc-start-button:hover{
  background:var(--tc117-red-hover)!important;
  border-color:var(--tc117-red-hover)!important;
  transform:translateY(-1px);
}
.tc-stage-intro .tc-start-button:focus-visible{
  outline:3px solid rgba(185,65,85,.28)!important;
  outline-offset:3px;
}

/* ----------------------------------------------------------
   RESULT FLOW FIX
   The result screen may scroll. Children must determine their
   own height so rich analysis can never overlap the next block.
   ---------------------------------------------------------- */
body.tc-stage-result .tc-result:not([hidden]){
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:16px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:24px 32px 28px!important;
}
body.tc-stage-result .tc-result:not([hidden])>*{
  flex:0 0 auto!important;
}
body.tc-stage-result .tc-signature-analysis,
body.tc-stage-result .tc-result-insights,
body.tc-stage-result .tc-evidence-intelligence,
body.tc-stage-result .tc-longitudinal-growth,
body.tc-stage-result .tc-personal-plan{
  min-height:0!important;
  height:auto!important;
  position:relative!important;
}
body.tc-stage-result .tc-session-signature-card,
body.tc-stage-result .tc-pace-map-card,
body.tc-stage-result .tc-coach-analysis,
body.tc-stage-result .tc-growth-analysis{
  min-height:0!important;
  height:auto!important;
  overflow:visible!important;
}

/* Result readability */
body.tc-stage-result .tc-result-head h2{font-size:36px!important;}
body.tc-stage-result .tc-result-head p{font-size:16px!important;}
body.tc-stage-result .tc-result-grid span{font-size:15px!important;}
body.tc-stage-result .tc-result-wpm .tc-wpm-help{font-size:12.5px!important;}
body.tc-stage-result .tc-session-type p,
body.tc-stage-result .tc-pace-summary,
body.tc-stage-result .tc-coach-analysis dd,
body.tc-stage-result .tc-growth-analysis p,
body.tc-stage-result .tc-personal-plan-head p,
body.tc-stage-result .tc-plan-grid strong,
body.tc-stage-result .tc-evidence-note>p{
  font-size:14px!important;
  line-height:1.6!important;
}

/* Signature becomes stable and cannot be covered by the next section. */
body.tc-stage-result .tc-signature-analysis{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)!important;
  gap:14px!important;
  align-items:stretch!important;
}
body.tc-stage-result .tc-signature-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
body.tc-stage-result .tc-signature-metrics>div{
  min-height:108px!important;
}
body.tc-stage-result .tc-signature-metrics b{
  font-size:27px!important;
}
body.tc-stage-result .tc-signature-metrics span{
  font-size:13.5px!important;
}
body.tc-stage-result .tc-signature-metrics small{
  font-size:11px!important;
  line-height:1.4!important;
}

/* ----------------------------------------------------------
   Evidence Quality + Key timing
   ---------------------------------------------------------- */
.tc-evidence-intelligence{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
}
.tc-evidence-quality-card,
.tc-key-timing-card{
  padding:20px 22px;
  border:1px solid #dce4ec;
  border-radius:20px;
  background:linear-gradient(145deg,#ffffff,#f8fbfe);
  box-shadow:0 10px 24px rgba(9,34,64,.04);
}
.tc-evidence-quality-card{
  border-left:7px solid var(--tc117-green);
}
.tc-key-timing-card{
  border-left:7px solid var(--tc117-blue);
}
.tc-evidence-quality-card h3,
.tc-key-timing-card h3,
.tc-longitudinal-growth h3{
  margin:5px 0 0;
  color:#071d3b;
  font-size:22px;
  line-height:1.3;
}
.tc-evidence-level{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:74px;
  min-height:36px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid #d0dfd5;
  background:#eef7f1;
  color:#2c6549;
  font-size:13px;
  font-weight:900;
}
.tc-evidence-score-row{
  display:grid;
  grid-template-columns:auto auto minmax(110px,1fr);
  align-items:end;
  gap:4px 10px;
  margin-top:16px;
}
.tc-evidence-score-row>b{
  color:#071d3b;
  font-size:42px;
  line-height:1;
}
.tc-evidence-score-row>small{
  color:#68788a;
  font-size:14px;
  padding-bottom:4px;
}
.tc-evidence-score-row>i{
  display:block;
  align-self:center;
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:#e8edf3;
}
.tc-evidence-score-row>i>span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--tc117-blue),var(--tc117-green),var(--tc117-gold));
  transition:width .35s ease;
}
.tc-evidence-quality-note,
.tc-key-timing-help{
  margin:12px 0 0;
  color:#53657a;
  font-size:13.5px;
  line-height:1.6;
}
.tc-evidence-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:14px;
}
.tc-evidence-facts>div{
  padding:12px 13px;
  border:1px solid #e0e6ed;
  border-radius:13px;
  background:#fff;
}
.tc-evidence-facts b{
  display:block;
  color:#0b2343;
  font-size:21px;
}
.tc-evidence-facts span{
  display:block;
  margin-top:5px;
  color:#66778a;
  font-size:11px;
  line-height:1.35;
}

.tc-slow-key-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:15px;
}
.tc-slow-key-item{
  min-height:84px;
  padding:11px 12px;
  border:1px solid #dfe6ed;
  border-radius:13px;
  background:#fff;
}
.tc-slow-key-item b{
  display:inline-grid;
  place-items:center;
  min-width:34px;
  height:34px;
  padding:0 7px;
  border-radius:9px;
  background:#0b2343;
  color:#fff;
  font-size:16px;
}
.tc-slow-key-item span{
  display:inline-block;
  margin-left:7px;
  color:#0b2343;
  font-size:15px;
  font-weight:900;
}
.tc-slow-key-item small{
  display:block;
  margin-top:7px;
  color:#69798b;
  font-size:10.5px;
  line-height:1.35;
}
.tc-empty-insight{
  grid-column:1/-1;
  color:#6b7b8e;
  font-size:13px;
}
.tc-hand-load{
  margin-top:15px;
  padding-top:13px;
  border-top:1px dashed #d9e0e8;
}
.tc-hand-load-row{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 44px;
  align-items:center;
  gap:9px;
  min-height:30px;
}
.tc-hand-load-row span,
.tc-hand-load-row em{
  color:#20344f;
  font-size:12.5px;
  font-style:normal;
  font-weight:800;
}
.tc-hand-load-row em{text-align:right;}
.tc-hand-load-row i{
  display:block;
  height:9px;
  overflow:hidden;
  border-radius:999px;
  background:#e8edf3;
}
.tc-hand-load-row i b{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--tc117-blue),var(--tc117-gold));
  transition:width .35s ease;
}

/* ----------------------------------------------------------
   Longitudinal Growth
   ---------------------------------------------------------- */
.tc-longitudinal-growth{
  padding:21px 23px;
  border:1px solid #d9e3ec;
  border-radius:20px;
  background:linear-gradient(135deg,#f8fbff 0%,#ffffff 55%,#fffaf0 100%);
  box-shadow:0 10px 24px rgba(9,34,64,.035);
}
.tc-longitudinal-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.tc-longitudinal-head p{
  margin:6px 0 0;
  color:#627287;
  font-size:13.5px;
  line-height:1.55;
}
.tc-longitudinal-badges{
  display:grid;
  grid-template-columns:repeat(2,minmax(120px,1fr));
  gap:8px;
}
.tc-longitudinal-badges>span{
  min-width:126px;
  padding:10px 12px;
  border:1px solid #dce4ec;
  border-radius:13px;
  background:#fff;
}
.tc-longitudinal-badges b{
  display:block;
  color:#071d3b;
  font-size:20px;
}
.tc-longitudinal-badges small{
  display:block;
  margin-top:4px;
  color:#69798b;
  font-size:10.5px;
}
.tc-history-chart{
  display:grid;
  gap:10px;
  margin-top:16px;
}
.tc-history-row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 96px;
  align-items:center;
  gap:12px;
  min-height:86px;
  padding:10px 12px;
  border:1px solid #e0e6ed;
  border-radius:14px;
  background:#fff;
}
.tc-history-row>strong{
  color:#173a68;
  font-size:14px;
}
.tc-history-row>em{
  color:#54667b;
  font-size:12px;
  font-style:normal;
  text-align:right;
}
.tc-history-bars{
  display:flex;
  align-items:flex-end;
  gap:8px;
  height:62px;
}
.tc-history-bar-cell{
  display:grid;
  grid-template-rows:44px 16px;
  justify-items:center;
  gap:2px;
  min-width:44px;
  flex:1;
}
.tc-history-bar-cell i{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  width:100%;
  height:44px;
  border-radius:7px;
  overflow:hidden;
  background:#edf2f6;
}
.tc-history-bar-cell i b{
  display:block;
  width:100%;
  min-height:4px;
  background:linear-gradient(180deg,#6a97bd,#3f719f);
  border-radius:7px 7px 0 0;
}
.tc-history-bar-cell.is-current i b{
  background:linear-gradient(180deg,#d6ad4a,#b98216);
}
.tc-history-bar-cell span{
  color:#5d6e82;
  font-size:10px;
  white-space:nowrap;
}
.tc-history-empty{
  align-self:center;
  color:#718195;
  font-size:13px;
}
.tc-history-note{
  margin:13px 0 0;
  color:#4f6278;
  font-size:13px;
  line-height:1.55;
}

/* Existing result coaching blocks: larger type and natural size. */
body.tc-stage-result .tc-result-insights{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)!important;
  gap:14px!important;
  align-items:stretch!important;
}
body.tc-stage-result .tc-coach-analysis,
body.tc-stage-result .tc-growth-analysis{
  padding:21px 23px!important;
}
body.tc-stage-result .tc-coach-analysis dt{font-size:13.5px!important;}
body.tc-stage-result .tc-coach-analysis dd{font-size:15px!important;}
body.tc-stage-result .tc-growth-analysis p{font-size:14px!important;}
body.tc-stage-result .tc-growth-stats b{font-size:20px!important;}
body.tc-stage-result .tc-growth-stats small{font-size:11px!important;}

/* Practice plan: reduce dead space while allowing bigger text. */
body.tc-stage-result .tc-plan-grid>div{
  min-height:104px!important;
  padding-top:15px!important;
  padding-bottom:15px!important;
}
body.tc-stage-result .tc-plan-grid strong{
  font-size:14.5px!important;
}

/* More comfortable bottom actions */
body.tc-stage-result .tc-result-actions{
  min-height:64px!important;
  margin-top:2px!important;
}
body.tc-stage-result .tc-result-actions .tc-primary,
body.tc-stage-result .tc-result-actions .tc-secondary{
  min-height:58px!important;
  height:58px!important;
  font-size:16px!important;
}

/* ----------------------------------------------------------
   Responsive result sections
   ---------------------------------------------------------- */
@media (max-width:1450px) and (min-width:1101px){
  body.tc-stage-result .tc-signature-analysis,
  body.tc-stage-result .tc-result-insights{
    grid-template-columns:1fr!important;
  }
  .tc-evidence-intelligence{
    grid-template-columns:1fr;
  }
}

@media (max-width:1100px){
  body.tc-stage-result .tc-result:not([hidden]){
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-signature-analysis,
  body.tc-stage-result .tc-result-insights,
  .tc-evidence-intelligence{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  body.tc-stage-result .tc-signature-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tc-evidence-quality-card,
  .tc-key-timing-card,
  .tc-longitudinal-growth{
    padding:17px;
    border-radius:16px;
  }
  .tc-evidence-facts,
  .tc-slow-key-list{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .tc-longitudinal-head{
    display:grid;
    gap:12px;
  }
  .tc-longitudinal-badges{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .tc-history-row{
    grid-template-columns:62px minmax(0,1fr);
  }
  .tc-history-row>em{
    grid-column:2;
    text-align:left;
  }
}

@media (max-width:640px){
  .tc-evidence-facts,
  .tc-slow-key-list,
  .tc-longitudinal-badges{
    grid-template-columns:1fr;
  }
  .tc-history-row{
    grid-template-columns:1fr;
  }
  .tc-history-row>em{
    grid-column:auto;
  }
  .tc-history-bars{
    min-width:0;
    gap:5px;
  }
  .tc-history-bar-cell{
    min-width:0;
  }
}

/* ---- typing-coach-polish-v118 | assets/css/polish-v118.css ---- */
/* Typing Coach UI Polish v1.18.0
   Plain-language result UX.
   Advanced analysis remains rich, but numbers/units are understandable
   without prior knowledge of typing metrics or engineering units.
*/

.tc-result-reading-guide{
  padding:18px 20px;
  border:1px solid #d8e3ed;
  border-left:7px solid #4f7fab;
  border-radius:18px;
  background:linear-gradient(135deg,#f7fbff 0%,#ffffff 58%,#fffaf1 100%);
  box-shadow:0 8px 22px rgba(9,34,64,.035);
}
.tc-result-reading-guide-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
}
.tc-result-reading-guide-head h3{
  margin:4px 0 0;
  color:#071d3b;
  font-size:22px;
  line-height:1.25;
}
.tc-result-reading-guide-head>p{
  margin:0;
  max-width:720px;
  color:#56697f;
  font-size:13.5px;
  line-height:1.6;
}
.tc-reading-guide-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.tc-reading-guide-grid>div{
  min-height:112px;
  padding:13px 14px;
  border:1px solid #dce4ec;
  border-radius:14px;
  background:#fff;
}
.tc-reading-guide-grid b{
  display:inline-flex;
  align-items:center;
  min-height:29px;
  padding:4px 9px;
  border-radius:999px;
  background:#0b2343;
  color:#fff;
  font-size:12px;
  letter-spacing:.03em;
}
.tc-reading-guide-grid strong{
  display:block;
  margin-top:8px;
  color:#102642;
  font-size:15px;
  line-height:1.35;
}
.tc-reading-guide-grid span{
  display:block;
  margin-top:5px;
  color:#5f7186;
  font-size:12px;
  line-height:1.55;
}

.tc-plain-analysis-title{
  display:block;
  margin:6px 0 2px;
  color:#102642;
  font-size:15px;
  line-height:1.35;
}
.tc-flow-card>.tc-plain-analysis-title{
  grid-column:1/-1;
}
.tc-growth-readable-title{
  margin:5px 0 10px;
  color:#102642;
  font-size:20px;
  line-height:1.35;
}

/* Don't let unexplained unit-like data look like engineering telemetry. */
.tc-signature-metrics span{
  line-height:1.35!important;
}
.tc-signature-metrics small{
  max-width:230px;
  line-height:1.45!important;
}
.tc-slow-key-item span{
  font-variant-numeric:tabular-nums;
}
.tc-key-timing-help{
  max-width:900px;
}

/* Pace values are a local WPM-equivalent reference, not the session WPM. */
.tc-pace-row em{
  min-width:112px!important;
  font-size:12.5px!important;
  font-weight:800!important;
}
.tc-pace-help{
  line-height:1.6!important;
}

/* The result screen is intentionally scrollable; prioritize readability. */
body.tc-stage-result .tc-result:not([hidden]){
  gap:16px!important;
}
body.tc-stage-result .tc-kicker{
  letter-spacing:.12em;
}
body.tc-stage-result .tc-evidence-quality-note,
body.tc-stage-result .tc-key-timing-help,
body.tc-stage-result .tc-history-note{
  font-size:13.5px!important;
}

/* Longitudinal badges now contain explanatory labels. */
.tc-longitudinal-badges small{
  line-height:1.35!important;
}

/* The glossary may be used by novice users, so keep it comfortably readable. */
.tc-method-grid p span{
  font-size:13px!important;
  line-height:1.6!important;
}
.tc-method-grid p b{
  font-size:12.5px!important;
}

/* Responsive */
@media (max-width:1180px){
  .tc-result-reading-guide-head{
    display:grid;
    gap:8px;
  }
  .tc-reading-guide-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .tc-result-reading-guide{
    padding:15px;
  }
  .tc-reading-guide-grid{
    grid-template-columns:1fr;
  }
  .tc-reading-guide-grid>div{
    min-height:0;
  }
}

/* ---- typing-coach-polish-v119 | assets/css/polish-v119.css ---- */
/* Typing Coach UI Polish v1.19.0
   Result-guide discoverability:
   The advanced metric glossary is now a prominent native <details> card
   directly under "数字の見方", instead of a subtle text disclosure near
   the bottom of the result screen.
*/

.tc-analysis-guide{
  margin-top:15px;
  border:1px solid #c8d8e8;
  border-radius:16px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 7px 20px rgba(8,35,67,.045);
}
.tc-analysis-guide>summary{
  list-style:none;
  display:grid;
  grid-template-columns:46px minmax(0,1fr) auto;
  align-items:center;
  gap:13px;
  min-height:76px;
  padding:13px 16px;
  cursor:pointer;
  background:linear-gradient(90deg,#eef6ff 0%,#f9fcff 48%,#fff9ed 100%);
  border-left:5px solid #d39a25;
  transition:background .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tc-analysis-guide>summary::-webkit-details-marker{display:none}
.tc-analysis-guide>summary:hover{
  background:linear-gradient(90deg,#e7f2ff 0%,#f6fbff 48%,#fff4dc 100%);
}
.tc-analysis-guide>summary:focus-visible{
  outline:3px solid rgba(60,125,185,.45);
  outline-offset:-3px;
}
.tc-analysis-guide-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#0b2343;
  color:#fff;
  font-size:20px;
  font-weight:900;
  box-shadow:0 4px 12px rgba(7,29,59,.13);
}
.tc-analysis-guide-copy{
  min-width:0;
}
.tc-analysis-guide-copy strong{
  display:block;
  color:#0b2343;
  font-size:17px;
  line-height:1.35;
}
.tc-analysis-guide-copy small{
  display:block;
  margin-top:4px;
  color:#5b6e83;
  font-size:12.5px;
  line-height:1.55;
}
.tc-analysis-guide-action{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:84px;
  justify-content:flex-end;
  color:#0b2343;
}
.tc-analysis-guide-action b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  min-height:30px;
  padding:5px 10px;
  border:1px solid #d6a53c;
  border-radius:999px;
  background:#fff8e5;
  color:#74500b;
  font-size:12px;
}
.tc-analysis-guide-action i{
  display:inline-block;
  font-style:normal;
  font-size:24px;
  line-height:1;
  transform:translateY(-2px);
  transition:transform .18s ease;
}
.tc-analysis-guide[open]>summary{
  background:linear-gradient(90deg,#e9f4ff 0%,#f7fbff 48%,#fff3d5 100%);
  border-bottom:1px solid #d9e3ec;
}
.tc-analysis-guide[open] .tc-analysis-guide-action i{
  transform:rotate(180deg) translateY(2px);
}
.tc-analysis-guide[open] .tc-analysis-guide-open-label{
  font-size:0;
}
.tc-analysis-guide[open] .tc-analysis-guide-open-label::after{
  content:"閉じる";
  font-size:12px;
}
.tc-analysis-guide-body{
  padding:17px 18px 16px;
  background:#fff;
}
.tc-analysis-guide .tc-method-grid{
  margin-top:0!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
.tc-analysis-guide .tc-method-grid p{
  margin:0!important;
  min-height:88px;
  padding:13px 14px!important;
  border:1px solid #dce5ed!important;
  border-radius:12px!important;
  background:#f9fbfd!important;
}
.tc-analysis-guide .tc-method-grid p b{
  display:block!important;
  margin:0 0 5px!important;
  color:#0b2343!important;
  font-size:14px!important;
  line-height:1.3!important;
}
.tc-analysis-guide .tc-method-grid p span{
  display:block!important;
  color:#586b80!important;
  font-size:13px!important;
  line-height:1.62!important;
}
.tc-analysis-guide-note{
  margin:13px 0 0;
  padding-top:11px;
  border-top:1px solid #e2e8ee;
  color:#6e7d8e;
  font-size:12.5px;
  line-height:1.55;
}

/* The old bottom disclosure was intentionally removed; the personal
   practice plan should stay focused on action, not definitions. */
.tc-evidence-note>details{
  display:none!important;
}

/* Keep the result screen readable even when the guide is expanded. */
body.tc-stage-result .tc-result:not([hidden]){
  padding-bottom:22px!important;
}

@media (max-width:820px){
  .tc-analysis-guide>summary{
    grid-template-columns:42px minmax(0,1fr);
  }
  .tc-analysis-guide-action{
    grid-column:2;
    justify-content:flex-start;
    min-width:0;
    margin-top:-3px;
  }
  .tc-analysis-guide .tc-method-grid{
    grid-template-columns:1fr!important;
  }
}
@media (max-width:520px){
  .tc-analysis-guide>summary{
    padding:12px;
    gap:10px;
  }
  .tc-analysis-guide-copy strong{
    font-size:16px;
  }
  .tc-analysis-guide-copy small{
    font-size:12px;
  }
  .tc-analysis-guide-body{
    padding:12px;
  }
}

/* ---- typing-coach-polish-v120 | assets/css/polish-v120.css ---- */
/* Typing Coach UI Polish v1.20.0
   Motivation & Reflection Layer
   - Personal result framing
   - Data-driven encouragement without empty praise
   - One-click reflection that carries the learner's intention into retry
   - Pace-map value clipping fix
*/

/* ------------------------------------------------------------------
   PERSONAL RESULT HEADER
   ------------------------------------------------------------------ */
body.tc-stage-result .tc-result-head{
  position:relative;
  padding-left:4px!important;
}
body.tc-stage-result .tc-result-head h2{
  letter-spacing:.01em;
}
body.tc-stage-result .tc-result-head p{
  max-width:760px;
}

/* ------------------------------------------------------------------
   MOTIVATION & REFLECTION LAYER
   ------------------------------------------------------------------ */
.tc-motivation-reflection{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:14px;
  align-items:stretch;
}
.tc-motivation-card,
.tc-reflection-card{
  position:relative;
  min-width:0;
  border:1px solid #d7e1ea;
  border-radius:18px;
  box-shadow:0 8px 24px rgba(8,34,65,.04);
}
.tc-motivation-card{
  padding:20px 22px;
  border-left:7px solid #d29a2c;
  background:linear-gradient(135deg,#fffaf0 0%,#ffffff 62%,#f7fbff 100%);
}
.tc-reflection-card{
  padding:20px;
  border-top:4px solid #4e7dab;
  background:linear-gradient(145deg,#f7fbff 0%,#ffffff 66%,#fffaf0 100%);
}
.tc-motivation-card h3,
.tc-reflection-card h3{
  margin:5px 0 10px;
  color:#0b2343;
  font-size:22px;
  line-height:1.3;
}
.tc-motivation-card>strong{
  display:block;
  color:#0a2446;
  font-size:20px;
  line-height:1.55;
}
.tc-motivation-card>p{
  margin:8px 0 0;
  color:#51677f;
  font-size:15px;
  line-height:1.75;
}
.tc-motivation-focus{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:11px;
  align-items:center;
  margin-top:15px;
  padding:12px 14px;
  border:1px solid #ead8aa;
  border-radius:13px;
  background:#fffdf8;
}
.tc-motivation-focus span{
  color:#80601a;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
}
.tc-motivation-focus b{
  min-width:0;
  color:#102642;
  font-size:15px;
  line-height:1.5;
}
.tc-reflection-question{
  margin:0 0 12px;
  color:#243c58;
  font-size:15px;
  line-height:1.65;
  font-weight:700;
}
.tc-reflection-options{
  display:grid;
  gap:8px;
}
.tc-reflection-choice{
  appearance:none;
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-height:64px;
  padding:10px 12px 10px 14px;
  border:1px solid #d7e1ea;
  border-radius:13px;
  background:#fff;
  color:#102642;
  text-align:left;
  cursor:pointer;
  transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}
.tc-reflection-choice:hover{
  border-color:#8aa8c4;
  box-shadow:0 5px 14px rgba(20,58,94,.08);
  transform:translateY(-1px);
}
.tc-reflection-choice:focus-visible{
  outline:3px solid rgba(60,125,185,.42);
  outline-offset:2px;
}
.tc-reflection-choice span{
  min-width:0;
}
.tc-reflection-choice strong{
  display:block;
  color:#102642;
  font-size:14.5px;
  line-height:1.35;
}
.tc-reflection-choice small{
  display:block;
  margin-top:3px;
  color:#62758b;
  font-size:12px;
  line-height:1.45;
}
.tc-reflection-choice em{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:27px;
  padding:4px 8px;
  border-radius:999px;
  background:#fff4d4;
  color:#7d5807;
  font-size:11px;
  font-style:normal;
  font-weight:800;
  white-space:nowrap;
}
.tc-reflection-choice.is-selected{
  border:2px solid #0b2343;
  padding:9px 11px 9px 13px;
  background:#f1f6fb;
  box-shadow:0 0 0 3px rgba(11,35,67,.08);
}
.tc-reflection-choice.is-selected::after{
  content:"✓ 選択済み";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:4px 9px;
  border-radius:999px;
  background:#0b2343;
  color:#fff;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.tc-reflection-choice.is-selected>em{
  display:none;
}
.tc-reflection-note{
  margin:10px 0 0;
  padding:9px 11px;
  border:1px solid #cfe1d4;
  border-radius:11px;
  background:#f1f8f3;
  color:#315844;
  font-size:12.5px;
  line-height:1.55;
  font-weight:700;
}

/* ------------------------------------------------------------------
   PACE MAP: keep the explanatory value visible.
   v1.19 could clip strings such as "106.2 WPM相当" on some widths.
   ------------------------------------------------------------------ */
.tc-pace-row{
  grid-template-columns:52px minmax(80px,1fr) minmax(122px,max-content)!important;
  column-gap:12px!important;
}
.tc-pace-row>em{
  min-width:122px!important;
  width:auto!important;
  max-width:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  text-align:right!important;
}
.tc-pace-map-card{
  min-width:0;
  overflow:visible!important;
}

/* ------------------------------------------------------------------
   Responsive: result screen may scroll vertically, but never horizontally.
   ------------------------------------------------------------------ */
@media (max-width:1080px){
  .tc-motivation-reflection{
    grid-template-columns:1fr;
  }
}
@media (max-width:720px){
  .tc-motivation-card,
  .tc-reflection-card{
    padding:16px;
  }
  .tc-motivation-card>strong{
    font-size:18px;
  }
  .tc-motivation-focus{
    grid-template-columns:1fr;
    gap:4px;
  }
  .tc-pace-row{
    grid-template-columns:44px minmax(56px,1fr) minmax(112px,max-content)!important;
    column-gap:8px!important;
  }
  .tc-pace-row>em{
    min-width:112px!important;
    font-size:12px!important;
  }
}
@media (max-width:480px){
  .tc-reflection-choice{
    grid-template-columns:1fr;
  }
  .tc-reflection-choice em,
  .tc-reflection-choice.is-selected::after{
    justify-self:start;
  }
  .tc-pace-row{
    grid-template-columns:40px minmax(0,1fr)!important;
    row-gap:3px!important;
  }
  .tc-pace-row>em{
    grid-column:2;
    min-width:0!important;
    text-align:left!important;
    font-size:11.5px!important;
  }
}

/* ---- typing-coach-polish-v121 | assets/css/polish-v121.css ---- */
/* Typing Coach UI Polish v1.21.0
   - Typing Coach voice made explicit in reflection layer
   - Explain the interactive handoff before the learner chooses
   - Preserve v1.20 layout/geometry and accessibility behavior
*/

.tc-reflection-commit-hint{
  margin:-4px 0 10px;
  padding:8px 10px;
  border-left:3px solid #4e7dab;
  border-radius:0 9px 9px 0;
  background:#f3f7fb;
  color:#4f657d;
  font-size:12.5px;
  line-height:1.55;
  font-weight:700;
}

.tc-reflection-note[aria-live="polite"]{
  box-shadow:0 2px 8px rgba(38,93,62,.05);
}

@media (max-width:720px){
  .tc-reflection-commit-hint{
    font-size:12px;
  }
}

/* ---- typing-coach-polish-v122 | assets/css/polish-v122.css ---- */
/* Typing Coach v1.22.0
   Growth-loop UX + group-ready/data-retention foundation.
   Frontend changes are intentionally small to preserve the approved v1.21 layout. */

body.tc-stage-result .tc-result-actions{
  align-items:flex-start;
  gap:14px!important;
}

body.tc-stage-result .tc-repeat-action{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  max-width:360px;
}

body.tc-stage-result .tc-repeat-action .tc-primary{
  min-width:210px;
  min-height:52px;
  font-size:16px;
  font-weight:800;
  white-space:nowrap;
}

body.tc-stage-result .tc-repeat-action small{
  display:block;
  color:#5e6b7a;
  font-size:14px;
  line-height:1.55;
  max-width:340px;
}

@media (max-width:700px){
  body.tc-stage-result .tc-result-actions{
    flex-direction:column;
    align-items:stretch;
  }
  body.tc-stage-result .tc-repeat-action{
    width:100%;
    max-width:none;
  }
  body.tc-stage-result .tc-repeat-action .tc-primary,
  body.tc-stage-result .tc-result-actions .tc-secondary{
    width:100%;
  }
}

/* ---- typing-coach-polish-v123 | assets/css/polish-v123.css ---- */
/* Typing Coach Frontend polish v1.23.0
   Interaction clarity only: preserves the approved v1.22 geometry. */

/* Result retry must unmistakably feel clickable. */
body.tc-stage-result .tc-repeat-action .tc-primary{
  position:relative;
  box-shadow:0 6px 16px rgba(157,105,20,.14);
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease,color .18s ease;
}
@media (hover:hover){
  body.tc-stage-result .tc-repeat-action .tc-primary:hover{
    background:#b9821f!important;
    border-color:#9e6d18!important;
    color:#fff!important;
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(157,105,20,.25);
  }
  body.tc-stage-result .tc-result-actions .tc-secondary:hover{
    background:#eef5fb!important;
    border-color:#9db7d0!important;
    transform:translateY(-1px);
    box-shadow:0 7px 18px rgba(7,27,56,.10);
  }
  .tc-stage-intro .tc-start-button:hover{
    background:#aa3649!important;
    border-color:#923043!important;
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(170,54,73,.23)!important;
  }
  .tc-ready .tc-space:hover{
    background:#fff1c9!important;
    border-color:#bb7d12!important;
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(187,125,18,.18)!important;
  }
  .tc-danger-btn:hover{
    background:#ad394c!important;
    border-color:#973043!important;
    transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(173,57,76,.20)!important;
  }
}
body.tc-stage-result .tc-repeat-action .tc-primary:active,
.tc-stage-intro .tc-start-button:active,
.tc-ready .tc-space:active,
.tc-danger-btn:active{transform:translateY(0)!important;box-shadow:none!important}

body.tc-stage-result .tc-repeat-action small{
  font-weight:600;
}

/* ---- typing-coach-polish-v124 | assets/css/polish-v124.css ---- */
/* Typing Coach Frontend polish v1.24.0
   Centered growth-loop actions + mixed ad-provider presentation.
   The approved READY / practice / intro geometry is preserved when the optional practice ad is OFF. */

/* Practice viewport wrapper: neutral by default. */
.tc-practice-viewport{position:relative;width:100%;height:100%;min-height:0}
.tc-practice-below-ad-wrap{display:none}

/* Only when an administrator explicitly enables the below-app practice ad,
   turn the page into a scrollable document while leaving the practice viewport itself intact. */
@media (min-width:1101px){
  body.tc-stage-practice.tc-practice-has-ad{overflow-y:auto!important;overflow-x:hidden!important}
  body.tc-stage-practice.tc-practice-has-ad .tc-app-main{height:auto!important;min-height:calc(100dvh - 82px)!important;overflow:visible!important;padding-bottom:26px!important}
  body.tc-stage-practice.tc-practice-has-ad .tc-standalone-body .tc-shell,
  body.tc-stage-practice.tc-practice-has-ad .tc-shell{height:auto!important;min-height:calc(100dvh - 104px)!important;overflow:visible!important}
  body.tc-stage-practice.tc-practice-has-ad .tc-practice-formal:not([hidden]){height:auto!important;min-height:calc(100dvh - 104px)!important;overflow:visible!important}
  body.tc-stage-practice.tc-practice-has-ad .tc-practice-viewport{height:calc(100dvh - 104px)!important;min-height:0!important}
  body.tc-stage-practice.tc-practice-has-ad .tc-practice-below-ad-wrap{display:block;padding:52px 24px 22px;border-top:1px solid #edf0f2;background:#fff}
}
@media (max-width:1100px){
  .tc-practice-viewport{height:auto!important;min-height:0!important}
  body.tc-stage-practice.tc-practice-has-ad .tc-practice-below-ad-wrap{display:block;padding:42px 14px 20px;border-top:1px solid #edf0f2;background:#fff}
}

/* Result actions: the user asked for the repeat / ranking actions to sit as one clear centered group. */
body.tc-stage-result .tc-result-actions{
  justify-content:center!important;
  align-items:flex-start!important;
  gap:18px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center;
}
body.tc-stage-result .tc-repeat-action{align-items:center!important;text-align:center!important}
body.tc-stage-result .tc-repeat-action small{margin-left:auto;margin-right:auto;text-align:center}
body.tc-stage-result .tc-result-actions .tc-secondary{align-self:flex-start}
@media (max-width:700px){
  body.tc-stage-result .tc-result-actions{align-items:center!important}
  body.tc-stage-result .tc-repeat-action{align-items:stretch!important;text-align:center!important}
  body.tc-stage-result .tc-result-actions .tc-secondary{align-self:stretch}
}

/* Shared ad treatment. Ads remain visually distinct from application controls. */
.tc-app-ad:not([hidden]),.tc-ad-slot:not([hidden]){clear:both}
.tc-affiliate-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;max-width:970px;margin-left:auto;margin-right:auto}
.tc-affiliate-slot .tc-ad-disclosure{display:block;font-size:12px;line-height:1.4;color:#6d7680;font-weight:700;letter-spacing:.04em}
.tc-affiliate-slot a{display:block;max-width:100%;line-height:0;border-radius:8px;outline-offset:4px}
.tc-affiliate-slot a:focus-visible{outline:3px solid #2d6ea8}
.tc-affiliate-slot img{display:block;max-width:100%;width:auto;height:auto;max-height:280px;object-fit:contain;border:0;border-radius:8px}
.tc-practice-below-ad{max-width:970px;margin:0 auto!important;text-align:center}
.tc-practice-below-ad .tc-ad-test{margin:0 auto;max-width:970px}

/* Keep the result ad clearly below the user’s own actions and away from clickable controls. */
body.tc-stage-result .tc-app-ad[data-ad-slot="RESULT_AFTER_ACTIONS"]{margin-top:34px!important;padding-top:22px;border-top:1px solid #edf0f2}
@media (min-width:768px){.tc-ad-hide-desktop{display:none!important}}
@media (max-width:767px){.tc-ad-hide-mobile{display:none!important}}

/* ---- typing-coach-polish-v126 | assets/css/polish-v126.css ---- */
/* Typing Coach v1.26.0 — growth-first result UX.
   Keeps the approved intro / READY / active-practice geometry untouched. */

body.tc-stage-result .tc-result-grid .tc-result-rank b{
  font-size:clamp(30px,3.2vw,48px);
  white-space:nowrap;
}
body.tc-stage-result .tc-result-grid .tc-result-rank small{
  display:block;margin-top:7px;font-size:13px;line-height:1.45;color:#68788b;font-weight:700;
}

.tc-result-change-snapshot{
  margin:14px 0 16px;padding:16px 18px;border:1px solid #d8e2ec;border-left:6px solid #4f7ead;
  border-radius:18px;background:linear-gradient(135deg,#f7fbff 0%,#fffdf8 100%);
}
.tc-result-change-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}
.tc-result-change-head h3{margin:2px 0 0;font-size:23px;line-height:1.3;color:#0b2344}
.tc-result-change-head p{margin:0;max-width:660px;font-size:15px;line-height:1.65;color:#5b6f85}
.tc-change-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tc-change-grid>div{padding:13px 14px;border:1px solid #dfe7ef;border-radius:14px;background:#fff;min-width:0}
.tc-change-grid span{display:block;font-size:13px;font-weight:800;color:#5f7084}
.tc-change-grid b{display:block;margin:4px 0 2px;font-size:24px;line-height:1.15;color:#0b2344}
.tc-change-grid small{display:block;font-size:12px;line-height:1.45;color:#768496}

.tc-baseline-growth{
  margin:18px 0;padding:20px;border:1px solid #e4d5ad;border-left:7px solid #c99323;border-radius:20px;
  background:linear-gradient(135deg,#fffaf0 0%,#ffffff 68%);box-shadow:0 10px 28px rgba(11,35,68,.04);
}
.tc-baseline-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:15px}
.tc-baseline-head h3{margin:3px 0 4px;font-size:25px;line-height:1.3;color:#0b2344}
.tc-baseline-head p{margin:0;font-size:15px;line-height:1.65;color:#5f7084}
.tc-baseline-badge{flex:0 0 auto;padding:8px 12px;border-radius:999px;background:#eef7f0;border:1px solid #d0e6d5;color:#356b48;font-size:13px;font-weight:800}
.tc-baseline-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.tc-baseline-metric{padding:15px;border:1px solid #e2e8ef;border-radius:15px;background:#fff}
.tc-baseline-metric>span{display:block;margin-bottom:10px;font-size:14px;font-weight:900;color:#40566f}
.tc-baseline-metric>div{display:grid;grid-template-columns:auto 1fr auto auto 1fr;align-items:end;gap:8px}
.tc-baseline-metric small{font-size:11px;color:#7a8795;align-self:center}
.tc-baseline-metric b{font-size:24px;line-height:1.1;color:#0b2344}
.tc-baseline-metric i{font-style:normal;color:#c99323;font-size:20px}
.tc-baseline-metric em{display:block;margin-top:10px;font-style:normal;font-size:14px;font-weight:800;color:#315f83}
.tc-baseline-note{margin:14px 2px 0;font-size:14px;line-height:1.7;color:#586d84}

.tc-reflection-note[aria-live="polite"]{
  margin-top:10px!important;padding:11px 13px!important;border:1px solid #b8d8c2!important;border-left:5px solid #4f8d63!important;
  border-radius:12px!important;background:#f0f8f2!important;color:#24563a!important;font-size:14px!important;font-weight:800!important;line-height:1.6!important;
}

body.tc-stage-result .tc-analysis-guide>summary{
  border:1px solid #d5b86f!important;background:linear-gradient(90deg,#fff9e9,#fff)!important;
  box-shadow:0 6px 18px rgba(201,147,35,.08);
}
body.tc-stage-result .tc-analysis-guide>summary:hover{background:#fff4d6!important;border-color:#c99323!important;transform:translateY(-1px)}
body.tc-stage-result .tc-analysis-guide-copy strong{font-size:16px!important}
body.tc-stage-result .tc-analysis-guide-action b{background:#c99323!important;color:#fff!important;padding:5px 10px!important;border-radius:999px!important}

body.tc-stage-result .tc-result-actions{padding-top:18px!important;padding-bottom:12px!important;gap:16px!important}
body.tc-stage-result .tc-repeat-action .tc-primary{min-width:210px!important;min-height:54px!important;font-size:17px!important}
body.tc-stage-result .tc-result-actions .tc-secondary{min-height:54px!important;font-size:16px!important;display:inline-flex!important;align-items:center!important}
body.tc-stage-result .tc-repeat-action small{max-width:560px!important;font-size:14px!important;line-height:1.7!important;color:#53677f!important;text-align:center!important}

@media(max-width:900px){
  .tc-change-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-baseline-comparison{grid-template-columns:1fr}
  .tc-baseline-head,.tc-result-change-head{display:block}
  .tc-baseline-badge{display:inline-block;margin-top:10px}
  .tc-result-change-head p{margin-top:8px}
}
@media(max-width:560px){
  .tc-change-grid{grid-template-columns:1fr}
  .tc-result-change-snapshot,.tc-baseline-growth{padding:15px 14px;border-radius:16px}
  .tc-baseline-metric>div{grid-template-columns:auto 1fr auto auto 1fr;gap:5px}
  body.tc-stage-result .tc-result-grid .tc-result-rank b{font-size:30px}
}

/* ---- typing-coach-polish-v127 | assets/css/polish-v127.css ---- */
/* Typing Coach v1.27.0 — plain-language change cards + Coach Summary + averaged long-term growth.
   Result-screen only. Approved intro / READY / active-practice geometry is intentionally untouched. */

body.tc-stage-result .tc-result-change-summary-wrap{
  display:flex;flex-direction:column;align-items:flex-end;gap:7px;max-width:720px;
}
body.tc-stage-result .tc-change-pb-badge{
  display:inline-flex;align-items:center;justify-content:center;padding:6px 11px;border-radius:999px;
  background:#fff4d6;border:1px solid #d9b34f;color:#765511;font-size:14px;font-weight:900;line-height:1.2;
}
body.tc-stage-result .tc-change-pb-badge[hidden]{display:none!important}

body.tc-stage-result .tc-change-grid>div{
  position:relative;padding:14px 15px 15px;border-top:4px solid #8aa0b5;
}
body.tc-stage-result .tc-change-grid>div::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:13px;opacity:.16;
}
body.tc-stage-result .tc-change-grid>div.is-good{border-top-color:#4f8d63}
body.tc-stage-result .tc-change-grid>div.is-attention{border-top-color:#bd5d72}
body.tc-stage-result .tc-change-grid>div.is-neutral{border-top-color:#6687aa}
body.tc-stage-result .tc-change-grid>div.is-good::after{background:#eaf6ed}
body.tc-stage-result .tc-change-grid>div.is-attention::after{background:#fff0f3}
body.tc-stage-result .tc-change-grid>div.is-neutral::after{background:#edf4fb}
body.tc-stage-result .tc-change-grid span,
body.tc-stage-result .tc-change-grid strong,
body.tc-stage-result .tc-change-grid b,
body.tc-stage-result .tc-change-grid small{position:relative;z-index:1}
body.tc-stage-result .tc-change-grid strong{
  display:inline-flex;margin-top:7px;padding:4px 8px;border-radius:999px;background:#eef3f7;color:#3d536a;
  font-size:14px;line-height:1.2;font-weight:900;
}
body.tc-stage-result .tc-change-grid>div.is-good strong{background:#e6f3e9;color:#2f6842}
body.tc-stage-result .tc-change-grid>div.is-attention strong{background:#fdecef;color:#8a3c4d}
body.tc-stage-result .tc-change-grid b{margin-top:7px;font-size:25px}
body.tc-stage-result .tc-change-grid small{margin-top:6px;font-size:13px;line-height:1.55;color:#66778a}

.tc-coach-summary{
  margin:0 0 18px;padding:18px 20px;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(230px,.55fr);
  gap:16px;align-items:center;border:1px solid #d8e2ec;border-left:7px solid #6687aa;border-radius:19px;
  background:linear-gradient(135deg,#f9fcff 0%,#fffdf8 100%);box-shadow:0 8px 24px rgba(11,35,68,.04);
}
.tc-coach-summary.is-good{border-left-color:#4f8d63;background:linear-gradient(135deg,#f5fbf6 0%,#fffdf8 100%)}
.tc-coach-summary.is-attention{border-left-color:#bd5d72;background:linear-gradient(135deg,#fff7f9 0%,#fffdf8 100%)}
.tc-coach-summary-icon{
  width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#0b2344;color:#f3c75e;
  font-size:15px;font-weight:950;letter-spacing:.04em;
}
.tc-coach-summary-main h3{margin:3px 0 6px;font-size:23px;line-height:1.4;color:#0b2344}
.tc-coach-summary-main p{margin:0;font-size:16px;line-height:1.75;color:#4f647b}
.tc-coach-summary-next{
  min-width:0;padding:13px 14px;border:1px solid #dce5ed;border-radius:14px;background:#fff;
}
.tc-coach-summary-next span{display:block;margin-bottom:5px;font-size:13px;font-weight:900;color:#a36f11;letter-spacing:.04em}
.tc-coach-summary-next strong{display:block;font-size:15px;line-height:1.6;color:#0b2344}

body.tc-stage-result .tc-baseline-head p{max-width:820px}
body.tc-stage-result .tc-baseline-metric>div small{font-size:12px;line-height:1.35;font-weight:800;color:#6a798a}
body.tc-stage-result .tc-baseline-metric em{font-size:15px;line-height:1.55}
body.tc-stage-result .tc-baseline-note{font-size:15px;line-height:1.8}

@media(max-width:1100px){
  .tc-coach-summary{grid-template-columns:auto minmax(0,1fr)}
  .tc-coach-summary-next{grid-column:2}
}
@media(max-width:900px){
  body.tc-stage-result .tc-result-change-summary-wrap{align-items:flex-start;max-width:none;margin-top:8px}
  .tc-coach-summary{grid-template-columns:1fr;padding:17px 16px}
  .tc-coach-summary-icon{width:44px;height:44px}
  .tc-coach-summary-next{grid-column:auto}
}
@media(max-width:560px){
  .tc-coach-summary-main h3{font-size:20px}
  .tc-coach-summary-main p{font-size:15px}
  body.tc-stage-result .tc-change-grid b{font-size:23px}
  body.tc-stage-result .tc-change-grid strong{font-size:13px}
}

/* ---- typing-coach-polish-v128 | assets/css/polish-v128.css ---- */
/* Typing Coach v1.28.0 — Share Your Growth layer.
   Result-screen only. Intro / READY / active-practice geometry intentionally unchanged. */

body.tc-stage-result .tc-result-share{
  margin:20px 0 22px;
  padding:22px 24px;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:24px;
  align-items:center;
  border:1px solid #d9e3ec;
  border-left:7px solid #4e82b4;
  border-radius:20px;
  background:linear-gradient(135deg,#f8fbff 0%,#fffaf1 100%);
  box-shadow:0 10px 28px rgba(11,35,68,.05);
}
body.tc-stage-result .tc-result-share-copy h3{
  margin:5px 0 8px;
  font-size:24px;
  line-height:1.4;
  color:#0b2344;
}
body.tc-stage-result .tc-result-share-copy>p{
  margin:0;
  font-size:16px;
  line-height:1.8;
  color:#52677d;
}
body.tc-stage-result .tc-result-share-copy ul{
  margin:12px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:7px;
}
body.tc-stage-result .tc-result-share-copy li{
  position:relative;
  padding-left:24px;
  font-size:15px;
  line-height:1.65;
  color:#213a56;
  font-weight:700;
}
body.tc-stage-result .tc-result-share-copy li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:#4f8d63;
  font-weight:950;
}
body.tc-stage-result .tc-result-share-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}
.tc-share-main{
  min-height:56px;
  border:0;
  border-radius:14px;
  padding:13px 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  background:#0b2344;
  color:#fff;
  font-size:17px;
  font-weight:900;
  line-height:1.3;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 9px 20px rgba(11,35,68,.16);
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.tc-share-main:hover,
.tc-share-main:focus-visible{
  background:#173a68;
  transform:translateY(-2px);
  box-shadow:0 13px 25px rgba(11,35,68,.22);
  color:#fff;
}
.tc-share-main:focus-visible,
.tc-share-copy-link:focus-visible,
.tc-share-close:focus-visible{
  outline:3px solid #f3c75e;
  outline-offset:3px;
}
.tc-share-copy-link{
  min-height:48px;
  border:1px solid #bdcddd;
  border-radius:13px;
  padding:11px 16px;
  background:#fff;
  color:#0b2344;
  font-size:15px;
  font-weight:850;
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease;
}
.tc-share-copy-link:hover{
  background:#eef5fb;
  border-color:#6687aa;
  transform:translateY(-1px);
}
body.tc-stage-result .tc-result-share-actions>small{
  display:block;
  font-size:13px;
  line-height:1.6;
  color:#6a7b8e;
  text-align:center;
}
.tc-share-status,
.tc-share-dialog-note{
  min-height:1.4em;
  margin:0;
  font-size:13px;
  line-height:1.55;
  color:#2f6842;
  font-weight:750;
  text-align:center;
}
body.tc-stage-result .tc-result-share--locked{
  border-left-color:#d09a26;
}
body.tc-stage-result .tc-result-share--locked .tc-result-share-copy>p{
  max-width:820px;
}

body.tc-share-modal-open{
  overflow:hidden;
}
.tc-share-modal[hidden]{display:none!important}
.tc-share-modal{
  position:fixed;
  inset:0;
  z-index:999999;
  display:grid;
  place-items:center;
  padding:24px;
}
.tc-share-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,18,36,.72);
  backdrop-filter:blur(4px);
}
.tc-share-dialog{
  position:relative;
  z-index:1;
  width:min(1040px,96vw);
  max-height:92vh;
  overflow:auto;
  padding:22px;
  border:1px solid rgba(208,154,38,.48);
  border-radius:22px;
  background:#fffdf8;
  box-shadow:0 28px 70px rgba(0,0,0,.34);
}
.tc-share-dialog>header{
  margin-bottom:16px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.tc-share-dialog>header h3{
  margin:4px 0 5px;
  font-size:25px;
  line-height:1.35;
  color:#0b2344;
}
.tc-share-dialog>header p{
  margin:0;
  font-size:15px;
  line-height:1.7;
  color:#607287;
}
.tc-share-close{
  flex:0 0 auto;
  width:44px;
  height:44px;
  border:1px solid #d7e0e9;
  border-radius:50%;
  background:#fff;
  color:#0b2344;
  font-size:27px;
  line-height:1;
  cursor:pointer;
}
.tc-share-close:hover{background:#eef4f9}
.tc-share-canvas-wrap{
  padding:10px;
  overflow:auto;
  border:1px solid #dce5ed;
  border-radius:17px;
  background:#eef3f7;
}
.tc-share-canvas-wrap canvas{
  display:block;
  width:100%;
  height:auto;
  border-radius:12px;
  background:#fffaf0;
  box-shadow:0 8px 24px rgba(11,35,68,.08);
}
.tc-share-dialog-actions{
  margin-top:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
}
.tc-share-dialog-actions .tc-share-main,
.tc-share-dialog-actions .tc-secondary{
  min-width:180px;
}
.tc-share-dialog-actions .tc-secondary{
  min-height:52px;
  border-radius:13px;
  font-size:15px;
  font-weight:850;
}
.tc-share-dialog-note{margin-top:10px}

@media(max-width:900px){
  body.tc-stage-result .tc-result-share{
    grid-template-columns:1fr;
    padding:20px 18px;
  }
  body.tc-stage-result .tc-result-share-actions{
    max-width:520px;
  }
  .tc-share-dialog{padding:17px}
}
@media(max-width:560px){
  body.tc-stage-result .tc-result-share-copy h3{font-size:21px}
  body.tc-stage-result .tc-result-share-copy>p{font-size:15px}
  body.tc-stage-result .tc-result-share-copy li{font-size:14px}
  .tc-share-dialog>header h3{font-size:21px}
  .tc-share-dialog{width:98vw;max-height:95vh;border-radius:17px}
  .tc-share-dialog-actions{display:grid;grid-template-columns:1fr}
  .tc-share-dialog-actions .tc-share-main,
  .tc-share-dialog-actions .tc-secondary{width:100%;min-width:0}
}

/* ---- typing-coach-polish-v129 | assets/css/polish-v129.css ---- */
/* Typing Coach Core v1.29.0
 * Member profile/privacy boundary + registration UI.
 * Deliberately does not change approved intro / READY / active-practice geometry.
 */

.tc-member-panel{
  max-width:1080px;
  padding:clamp(22px,3vw,34px);
}
.tc-member-panel h2{
  margin:4px 0 8px;
  color:var(--tc-navy);
  font-size:clamp(28px,3vw,38px);
  line-height:1.25;
}
.tc-member-lead{
  margin:0 0 20px;
  color:#526477;
  font-size:17px;
  line-height:1.8;
}
.tc-privacy-boundary{
  margin:18px 0 24px;
  padding:16px 18px;
  border:1px solid #c9dceb;
  border-left:5px solid #4e82b4;
  border-radius:14px;
  background:#f5f9fc;
}
.tc-privacy-boundary strong{
  display:block;
  margin-bottom:5px;
  color:var(--tc-navy);
  font-size:17px;
}
.tc-privacy-boundary p{
  margin:0;
  color:#526477;
  font-size:15px;
  line-height:1.7;
}
.tc-member-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.tc-member-grid>label,
.tc-birthday-fields{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}
.tc-member-grid>label>span,
.tc-birthday-fields>span{
  color:var(--tc-navy);
  font-size:16px;
  font-weight:850;
}
.tc-member-grid small,
.tc-birthday-fields small{
  display:inline-flex;
  align-items:center;
  margin-left:5px;
  padding:2px 7px;
  border-radius:999px;
  background:#edf3f8;
  color:#526477;
  font-size:11px;
  font-weight:800;
  vertical-align:middle;
}
.tc-member-grid input:not([type=checkbox]),
.tc-member-grid select{
  width:100%;
  min-height:48px;
  box-sizing:border-box;
  padding:10px 12px;
  border:1px solid #cbd7e2;
  border-radius:10px;
  background:#fff;
  color:var(--tc-navy);
  font:inherit;
  font-size:16px;
}
.tc-member-grid input:focus-visible,
.tc-member-grid select:focus-visible{
  outline:3px solid rgba(208,154,38,.28);
  outline-offset:2px;
  border-color:#b88420;
}
.tc-member-grid em{
  color:#66788b;
  font-size:13px;
  font-style:normal;
  line-height:1.55;
}
.tc-birthday-fields{
  padding:13px 14px;
  border:1px solid #d7e0e9;
  border-radius:12px;
  background:#fbfcfd;
}
.tc-birthday-fields>div{
  display:flex;
  gap:12px;
}
.tc-birthday-fields>div label{
  display:flex;
  align-items:center;
  gap:6px;
  color:#526477;
  font-weight:800;
}
.tc-birthday-fields>div input{
  width:88px!important;
}
.tc-check{
  display:flex!important;
  flex-direction:row!important;
  align-items:center;
  gap:8px!important;
  color:#334a61;
  font-size:14px;
  font-weight:750;
}
.tc-check input{width:20px;height:20px}
.tc-member-submit{
  min-height:54px;
  margin-top:24px;
  padding-inline:28px;
  font-size:16px;
}
.tc-login-link{
  margin:18px 0 0;
  color:#5d7085;
  font-size:15px;
}
.tc-notice-error{
  background:#fff3f4;
  border-color:#e2aab2;
  color:#8f2f40;
}
.tc-honeypot{
  position:absolute!important;
  left:-99999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.tc-result-share--locked .tc-share-copy-link.tc-linkbtn{
  min-height:44px;
  padding:9px 14px;
  border:1px solid #cbd7e2;
  border-radius:10px;
  background:#fff;
  color:var(--tc-navy);
  text-decoration:none;
  font-weight:800;
}
.tc-result-share--locked .tc-share-copy-link.tc-linkbtn:hover,
.tc-result-share--locked .tc-share-copy-link.tc-linkbtn:focus-visible{
  border-color:#9cafc0;
  background:#f2f6fa;
}

@media (max-width:760px){
  .tc-member-grid{grid-template-columns:1fr}
  .tc-member-panel{padding:20px 16px}
  .tc-member-submit{width:100%}
}

/* ---- typing-coach-polish-v130 | assets/css/polish-v130.css ---- */
/* Typing Coach v1.30.0 — Personal Growth Loop
   Result-screen navigation, progressive disclosure, clearer takeaway,
   compact READY context. Active-practice geometry remains untouched. */

/* READY: preserve the calm one-screen layout while reminding the user what and why. */
body.tc-stage-ready .tc-ready-context{
  width:min(760px,82vw);
  margin:-4px auto 14px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  color:#496079;
  font-size:13px;
  line-height:1.35;
}
body.tc-stage-ready .tc-ready-context>span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
body.tc-stage-ready .tc-ready-context small{
  color:#9a7227;
  font-weight:900;
  letter-spacing:.04em;
  white-space:nowrap;
}
body.tc-stage-ready .tc-ready-context b{
  color:#0b2344;
  font-size:14px;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:360px;
}

/* RESULT: quick navigation keeps the long-form report easy to scan. */
body.tc-stage-result .tc-result-quicknav{
  margin:14px 0 16px;
  padding:12px 14px;
  border:1px solid #d7e1eb;
  border-left:5px solid #4f82b1;
  border-radius:16px;
  background:#f7fafc;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
body.tc-stage-result .tc-result-quicknav-main{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
body.tc-stage-result .tc-result-quicknav-main>strong{
  margin-right:3px;
  color:#0b2344;
  font-size:14px;
}
body.tc-stage-result .tc-result-quicknav button{
  min-height:38px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid #cbd8e4;
  background:#fff;
  color:#183d67;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
body.tc-stage-result .tc-result-quicknav button:hover{
  transform:translateY(-1px);
  border-color:#9cb4ca;
  box-shadow:0 5px 14px rgba(11,35,68,.08);
}
body.tc-stage-result .tc-result-quicknav button:focus-visible{
  outline:3px solid rgba(199,154,59,.36);
  outline-offset:2px;
}
body.tc-stage-result .tc-result-view-toggle{
  flex:0 0 auto;
  color:#0b2344!important;
  border-color:#d3ad58!important;
  background:#fff9e9!important;
}
.tc-result.tc-result-summary-mode [data-result-detail="advanced"]{
  display:none!important;
}
.tc-result.tc-result-summary-mode .tc-result-view-toggle{
  background:#0b2344!important;
  color:#fff!important;
  border-color:#0b2344!important;
}

/* Today's takeaway: make the first interpretation unmistakable. */
body.tc-stage-result .tc-coach-summary-heading{
  margin:2px 0 4px!important;
  font-size:16px!important;
  line-height:1.3!important;
  color:#a36f11!important;
  letter-spacing:.02em;
}
body.tc-stage-result .tc-coach-summary-title{
  display:block;
  margin:0 0 5px;
  color:#0b2344;
  font-size:21px;
  line-height:1.45;
  font-weight:900;
}
body.tc-stage-result [data-result-section]{
  scroll-margin-top:22px;
}

/* Repeat CTA: show that the chosen goal is carried into the next attempt. */
body.tc-stage-result .tc-repeat-action small{
  max-width:640px;
}

@media(max-width:900px){
  body.tc-stage-ready .tc-ready-context{
    width:min(92vw,720px);
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:10px;
  }
  body.tc-stage-ready .tc-ready-context b{max-width:260px}
  body.tc-stage-result .tc-result-quicknav{
    align-items:stretch;
    flex-direction:column;
  }
  body.tc-stage-result .tc-result-view-toggle{align-self:flex-start}
}

@media(max-width:620px){
  body.tc-stage-ready .tc-ready-context{
    font-size:12px;
    margin:-2px auto 8px;
  }
  body.tc-stage-ready .tc-ready-context>span{
    width:100%;
    justify-content:center;
  }
  body.tc-stage-ready .tc-ready-context b{
    font-size:13px;
    max-width:72vw;
  }
  body.tc-stage-result .tc-result-quicknav-main>strong{width:100%}
  body.tc-stage-result .tc-result-quicknav button{font-size:13px;padding:7px 10px}
  body.tc-stage-result .tc-coach-summary-title{font-size:18px}
}

@media (min-width:901px) and (max-height:820px){
  body.tc-stage-ready .tc-ready-context{margin:-7px auto 7px;font-size:12px;gap:16px}
  body.tc-stage-ready .tc-ready-context b{font-size:13px}
}
@media (min-width:901px) and (max-height:720px){
  /* Keep the established READY one-screen contract on unusually short displays. */
  body.tc-stage-ready .tc-ready-context{display:none}
}

/* ---- typing-coach-polish-v132 | assets/css/polish-v132.css ---- */
/* Typing Coach v1.32.0 — result top actions + actual JIS kana input */
body.tc-stage-result .tc-result-head{position:relative}
body.tc-stage-result .tc-result-mode-badge{
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:8px;padding:5px 11px;border:1px solid #cddbeb;border-radius:999px;
  background:#f6f9fc;color:#173a68;font-size:13px;font-weight:800;
}
body.tc-stage-result .tc-result-top-actions{
  display:flex;justify-content:center;align-items:center;gap:12px;
  margin:14px auto 12px;padding:0 10px;
}
body.tc-stage-result .tc-result-top-actions .tc-primary,
body.tc-stage-result .tc-result-top-actions .tc-share-main{
  min-width:210px;min-height:46px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-size:15px;font-weight:900;text-decoration:none;cursor:pointer;
}
body.tc-stage-result .tc-result-top-actions .tc-primary:hover,
body.tc-stage-result .tc-result-top-actions .tc-share-main:hover{
  transform:translateY(-1px);box-shadow:0 8px 20px rgba(11,35,68,.12);
}
body.tc-stage-result .tc-result-top-actions .tc-primary:focus-visible,
body.tc-stage-result .tc-result-top-actions .tc-share-main:focus-visible{
  outline:3px solid rgba(199,154,59,.4);outline-offset:2px;
}

/* The READY context was introduced earlier but could disappear too easily on
   ordinary laptop-height screens. Keep it visible, hiding only on genuinely
   short viewports where the established one-screen contract needs priority. */
@media (min-width:901px) and (min-height:681px){
  body.tc-stage-ready .tc-ready-context{display:flex!important}
}
@media (min-width:901px) and (max-height:680px){
  body.tc-stage-ready .tc-ready-context{display:none!important}
}

/* In kana mode the third line is a physical kana-keystroke guide rather than
   romanization. Slightly stronger tracking keeps dakuten sequences legible. */
.tc-shell[data-input-mode="kana"] .tc-roman{
  letter-spacing:.10em;
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  font-weight:800;
}
.tc-shell[data-input-mode="kana"] .tc-key.is-target.key-shift{
  box-shadow:0 0 0 2px rgba(209,156,45,.18)!important;
}

@media(max-width:700px){
  body.tc-stage-result .tc-result-top-actions{flex-direction:column}
  body.tc-stage-result .tc-result-top-actions .tc-primary,
  body.tc-stage-result .tc-result-top-actions .tc-share-main{width:100%;min-width:0}
}

/* ---- typing-coach-polish-v133 | assets/css/polish-v133.css ---- */
/* Typing Coach v1.33.0 — admin fixed / learner-selectable input mode */
.tc-input-mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.tc-input-mode-btn{min-height:66px;padding:11px 14px;border:1px solid #ccd8e5;border-radius:13px;background:#fff;color:#10233d;text-align:left;cursor:pointer;transition:.16s ease}
.tc-input-mode-btn b,.tc-input-mode-btn small{display:block}
.tc-input-mode-btn b{font-size:16px}
.tc-input-mode-btn small{margin-top:3px;font-size:13px;color:#66788c}
.tc-input-mode-btn:hover:not(:disabled){border-color:#c79a3b;transform:translateY(-1px)}
.tc-input-mode-btn.is-active{border-color:#0b2344;background:#0b2344;color:#fff;box-shadow:0 7px 18px rgba(11,35,68,.12)}
.tc-input-mode-btn.is-active small{color:#dce8f5}
.tc-input-mode-btn:disabled{cursor:not-allowed;opacity:.48;background:#f3f5f7}
.tc-input-mode-btn:focus-visible{outline:3px solid rgba(199,154,59,.45);outline-offset:2px}
.tc-input-mode-help{margin:8px 2px 0;font-size:13px;line-height:1.6;color:#61758b}
.tc-inline-choice{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 14px}
.tc-inline-choice label{display:flex;align-items:center;gap:7px;font-weight:700}
@media(max-width:700px){.tc-input-mode-choice{grid-template-columns:1fr}}

/* ---- typing-coach-polish-v137 | assets/css/polish-v137.css ---- */
/* Typing Coach v1.37.0 — ranking input mode */
.tc-ranking-heading{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px
}
.tc-ranking-heading h2{margin-bottom:5px}
.tc-ranking-current-mode{
  flex:0 0 auto;display:inline-flex;align-items:center;min-height:34px;padding:5px 12px;
  border-radius:999px;background:#0b2344;color:#fff;font-size:13px;font-weight:900
}
.tc-ranking-mode-tabs{
  display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px
}
.tc-ranking-mode-tabs a{
  display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 14px;
  border:1px solid #ccd8e5;border-radius:999px;background:#fff;color:#173a68;
  text-decoration:none;font-size:14px;font-weight:800;transition:.16s ease
}
.tc-ranking-mode-tabs a:hover{border-color:#c79a3b;transform:translateY(-1px)}
.tc-ranking-mode-tabs a.is-active{
  background:#173a68;border-color:#173a68;color:#fff;box-shadow:0 6px 16px rgba(23,58,104,.12)
}
.tc-ranking-mode-tabs a:focus-visible{outline:3px solid rgba(199,154,59,.42);outline-offset:2px}
.tc-ranking-table .tc-ranking-nickname{font-weight:800;color:#10233d}
.tc-ranking-table .tc-input-mode-badge{
  display:inline-flex;align-items:center;justify-content:center;min-width:70px;
  padding:4px 9px;border-radius:999px;font-size:13px;font-weight:900;line-height:1.2;
  white-space:nowrap;border:1px solid transparent
}
.tc-ranking-table .tc-input-mode-romaji{background:#eaf2ff;color:#173a68;border-color:#cbdcf4}
.tc-ranking-table .tc-input-mode-kana{background:#fff5df;color:#8a5a00;border-color:#f1d79b}
.tc-ranking-table .tc-input-mode-english{background:#eef1f5;color:#334155;border-color:#d7dde5}
.tc-ranking-table td,.tc-ranking-table th{vertical-align:middle}
@media(max-width:700px){
  .tc-ranking-heading{display:block}
  .tc-ranking-current-mode{margin-top:8px}
  .tc-ranking-table{min-width:700px}
}

/* ---- typing-coach-polish-v138 | assets/css/polish-v138.css ---- */
/* Typing Coach v1.38.0 — content analytics / popular lessons */
.tc-popular-heading{margin-bottom:16px}
.tc-popular-heading h2{margin:4px 0 5px}
.tc-popular-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.tc-popular-list li{margin:0}
.tc-popular-list a{
  display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;
  min-height:58px;padding:10px 14px;border:1px solid #dbe3ec;border-radius:13px;
  background:#fff;color:#10233d;text-decoration:none;transition:.16s ease
}
.tc-popular-list a:hover{
  border-color:#c79a3b;transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(11,35,68,.08)
}
.tc-popular-rank{
  display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:50%;background:#0b2344;color:#fff;font-weight:900
}
.tc-popular-title{font-weight:900;line-height:1.45}
.tc-popular-list small{color:#64748b;font-weight:700;white-space:nowrap}
@media(max-width:700px){
  .tc-popular-list a{grid-template-columns:38px minmax(0,1fr)}
  .tc-popular-list small{grid-column:2}
}

/* ---- typing-coach-polish-v139 | assets/css/polish-v139.css ---- */
/* Typing Coach v1.39.0
   Intro overflow repair after adding the learner-selectable input mode.

   Principle:
   - Lesson intro: normal document flow; scroll only when content truly needs it.
   - READY / PRACTICE / RESULT: keep their existing stage-specific behavior.
*/

@media (min-width:1101px){

  /* The old formal desktop canvas locked the whole app to one viewport.
     Three setting blocks no longer fit reliably inside that historical height. */
  body.tc-stage-intro{
    height:100dvh!important;
    min-height:100dvh!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scrollbar-gutter:stable;
  }

  body.tc-stage-intro .tc-app-main{
    height:auto!important;
    min-height:calc(100dvh - 82px)!important;
    overflow:visible!important;
    padding-top:14px!important;
    padding-bottom:28px!important;
  }

  body.tc-stage-intro .tc-shell{
    height:auto!important;
    min-height:calc(100dvh - 124px)!important;
    max-height:none!important;
    overflow:visible!important;
  }

  body.tc-stage-intro .tc-lesson-intro:not([hidden]){
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:calc(100dvh - 124px)!important;
    max-height:none!important;
    overflow:visible!important;
    padding:28px 38px 24px!important;
    box-sizing:border-box!important;
  }

  /* Remove the historical 596px reference-canvas height and vertical centering.
     The centering was the reason tall content was clipped at BOTH the top and bottom. */
  body.tc-stage-intro .tc-intro-layout{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    align-items:start!important;
    align-content:start!important;
  }

  body.tc-stage-intro .tc-intro-main{
    display:block!important;
    min-height:0!important;
    justify-content:flex-start!important;
    align-self:start!important;
  }

  /* Keep all managed title/description content visible. */
  body.tc-stage-intro .tc-intro-main h2{
    margin-top:0!important;
    overflow:visible!important;
  }

  body.tc-stage-intro .tc-intro-copy{
    max-height:none!important;
    overflow:visible!important;
  }

  /* The third "input mode" block participates in normal flow instead of
     extending beyond a fixed-height column. */
  body.tc-stage-intro .tc-option-block,
  body.tc-stage-intro .tc-input-mode-option{
    flex:none!important;
  }

  /* The session card should remain fully reachable as the page scrolls.
     Avoid sticky/fixed behavior while its content can be taller than before. */
  body.tc-stage-intro .tc-session-card{
    position:relative!important;
    top:auto!important;
    align-self:start!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    justify-content:flex-start!important;
  }

  /* Copyright is placed after the content in normal flow instead of
     overlapping the bottom edge of the viewport-locked canvas. */
  body.tc-stage-intro .tc-intro-copyright{
    position:static!important;
    margin-top:18px!important;
    padding:0 4px 0!important;
  }
}

/* On shorter desktop displays, keep generous readability and simply allow
   the intro to scroll. Never shrink text/buttons just to force one-screen fit. */
@media (min-width:1101px) and (max-height:820px){
  body.tc-stage-intro .tc-lesson-intro:not([hidden]){
    padding-top:24px!important;
    padding-bottom:22px!important;
  }
}

/* Do not let the new third option create an overly tall blank-looking block. */
@media (min-width:1101px){
  body.tc-stage-intro .tc-input-mode-option{
    min-height:0!important;
  }
  body.tc-stage-intro .tc-input-mode-choice{
    margin-top:6px!important;
  }
  body.tc-stage-intro .tc-input-mode-btn{
    min-height:54px!important;
  }
  body.tc-stage-intro .tc-input-mode-help{
    margin-top:6px!important;
  }
}

/* ---- typing-coach-polish-v140 | assets/css/polish-v140.css ---- */
/* Typing Coach v1.40.0 — intro information hierarchy
   01 Goal -> 02 Input mode -> 03 Finger guide
*/
@media (min-width:1101px){
  body.tc-stage-intro .tc-intro-main{
    gap:11px!important;
  }

  body.tc-stage-intro .tc-option-block{
    padding-top:14px!important;
    padding-bottom:14px!important;
  }

  body.tc-stage-intro .tc-input-mode-option{
    border-color:#d4dfeb!important;
    background:linear-gradient(180deg,#fbfdff 0%,#f7faff 100%)!important;
  }

  body.tc-stage-intro .tc-input-mode-choice{
    gap:10px!important;
    margin-top:7px!important;
  }

  body.tc-stage-intro .tc-input-mode-btn{
    min-height:50px!important;
    padding:7px 12px!important;
  }

  body.tc-stage-intro .tc-input-mode-btn b{
    font-size:15px!important;
  }

  body.tc-stage-intro .tc-input-mode-btn small{
    margin-top:2px!important;
    font-size:12px!important;
  }

  body.tc-stage-intro .tc-input-mode-current{
    display:flex;
    align-items:center;
    gap:8px;
    margin:6px 2px 0;
    font-size:12px;
    color:#64748b;
  }

  body.tc-stage-intro .tc-input-mode-current span{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:2px 8px;
    border-radius:999px;
    background:#eef3f8;
    color:#52657a;
    font-weight:800;
  }

  body.tc-stage-intro .tc-input-mode-current strong{
    color:#0b2344;
    font-size:13px;
  }

  body.tc-stage-intro .tc-input-mode-help{
    margin-top:3px!important;
    font-size:12px!important;
    line-height:1.4!important;
  }

  body.tc-stage-intro .tc-guide-option{
    background:#fff!important;
  }

  body.tc-stage-intro [data-input-policy-label]{
    white-space:nowrap;
  }
}

@media (min-width:1101px) and (max-height:900px){
  body.tc-stage-intro .tc-lesson-intro:not([hidden]){
    padding-top:20px!important;
  }

  body.tc-stage-intro .tc-intro-main{
    gap:9px!important;
  }

  body.tc-stage-intro .tc-option-block{
    padding-top:12px!important;
    padding-bottom:12px!important;
  }
}

@media(max-width:700px){
  body.tc-stage-intro .tc-input-mode-current{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:7px;
    font-size:13px;
  }
}

/* ---- typing-coach-polish-v141 | assets/css/polish-v141.css ---- */
/* Typing Coach v1.41.0 — lesson discovery */
.tc-discovery{width:min(calc(100% - 40px),1540px);margin:0 auto;padding:34px 0 54px;color:#10233d}
.tc-discovery-hero{text-align:center;max-width:820px;margin:0 auto 24px}
.tc-discovery-hero h1{margin:6px 0 8px;font-size:clamp(30px,3vw,46px);line-height:1.16;color:#0b2344}
.tc-discovery-hero p{margin:0;color:#5f7185;font-size:17px;line-height:1.75}
.tc-discovery-filters{padding:20px;border:1px solid #dbe3ec;border-radius:18px;background:#fff;box-shadow:0 12px 32px rgba(11,35,68,.06)}
.tc-discovery-filters label>span{display:block;margin-bottom:6px;font-size:13px;font-weight:900;color:#3a526c}
.tc-discovery-filters input[type="search"],.tc-discovery-filters select{width:100%;min-height:46px;border:1px solid #cbd7e3;border-radius:11px;background:#fff;padding:9px 12px;font-size:16px;color:#10233d}
.tc-discovery-filters input:focus,.tc-discovery-filters select:focus{outline:3px solid rgba(199,154,59,.25);border-color:#c79a3b}
.tc-discovery-search-row{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px}
.tc-discovery-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
.tc-discovery-filter-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid #edf1f5}
.tc-discovery-featured{display:flex!important;align-items:center;gap:8px;font-size:14px;font-weight:800;color:#173a68}
.tc-discovery-featured input{width:18px;height:18px}
.tc-discovery-filter-actions>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tc-discovery-reset{color:#5a6d80;font-size:14px;font-weight:800}
.tc-discovery-summary{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:26px 0 14px}
.tc-discovery-summary strong{font-size:28px;color:#0b2344}
.tc-discovery-summary small{color:#718196}
.tc-lesson-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tc-lesson-card{min-width:0;border:1px solid #dbe3ec;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(11,35,68,.055);transition:.18s ease}
@media(hover:hover) and (pointer:fine){.tc-lesson-card:hover{transform:translateY(-2px);border-color:#c7d4e2;box-shadow:0 14px 30px rgba(11,35,68,.09)}}
.tc-lesson-card.is-featured{border-color:#e2cc96}
.tc-lesson-card-media{display:block;aspect-ratio:16/8.5;background:#eef3f8;overflow:hidden}
.tc-lesson-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.tc-lesson-card-body{display:flex;flex-direction:column;height:100%;padding:18px}
.tc-lesson-card-badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.tc-card-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid #d6e0ea;border-radius:999px;background:#f7f9fb;color:#4f647a;font-size:12px;font-weight:900}
.tc-card-badge-featured{background:#fff5df;border-color:#efd596;color:#805300}
.tc-lesson-card h2{margin:0 0 9px;font-size:20px;line-height:1.45;color:#0b2344}
.tc-lesson-card h2 a{color:inherit;text-decoration:none}
.tc-lesson-card p{margin:0 0 13px;color:#61748a;line-height:1.7;font-size:14px}
.tc-lesson-card-meta{display:flex;gap:6px 10px;flex-wrap:wrap;margin-top:auto;padding-top:3px;color:#50657a;font-size:13px;font-weight:700}
.tc-lesson-card-meta span{display:inline-flex;align-items:center}
.tc-lesson-card-usage{margin-top:10px;padding-top:10px;border-top:1px solid #edf1f5;color:#7a6330;font-size:13px;font-weight:800}
.tc-lesson-card-cta{width:100%;margin-top:14px;text-align:center;justify-content:center}
.tc-discovery-empty{padding:42px 22px;text-align:center;border:1px dashed #cbd7e3;border-radius:18px;background:#fbfcfd}
.tc-discovery-empty h2{margin:0 0 8px;color:#0b2344}
.tc-discovery-empty p{margin:0 0 18px;color:#64778b}
.tc-discovery-pagination{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:30px}
.tc-discovery-pagination a,.tc-discovery-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:7px 10px;border:1px solid #d7e0e9;border-radius:10px;background:#fff;color:#173a68;text-decoration:none;font-weight:800}
.tc-discovery-pagination .is-current{background:#173a68;border-color:#173a68;color:#fff}
.tc-discovery-pagination .tc-page-prev,.tc-discovery-pagination .tc-page-next{min-width:auto;padding-inline:14px}
@media(max-width:1100px){.tc-lesson-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-discovery-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.tc-discovery{width:min(calc(100% - 24px),1540px);padding-top:24px}.tc-discovery-search-row,.tc-discovery-filter-grid{grid-template-columns:1fr}.tc-discovery-filter-actions,.tc-discovery-summary{align-items:stretch;flex-direction:column}.tc-discovery-filter-actions>div{width:100%}.tc-discovery-filter-actions .tc-primary{width:100%}.tc-lesson-card-grid{grid-template-columns:1fr}.tc-discovery-hero{text-align:left}.tc-discovery-hero p{font-size:16px}}

/* ---- typing-coach-polish-v142 | assets/css/polish-v142.css ---- */
/* Typing Coach v1.42.0 — discovery breakout + automatic branded practice cards */
/* Escape narrow theme article columns while preserving a sensible max width. */
.tc-discovery{width:min(calc(100vw - 48px),1540px)!important;max-width:none!important;margin-left:50%!important;margin-right:0!important;transform:translateX(-50%);box-sizing:border-box}
.tc-discovery-hero,.tc-discovery-filters,.tc-discovery-summary,.tc-discovery-empty{width:min(100%,1180px);margin-left:auto;margin-right:auto}
.tc-discovery-summary{margin-top:26px;margin-bottom:14px}

/* Neutralize theme heading decorations inside cards (e.g. SWELL h2 backgrounds/borders). */
.tc-lesson-card .tc-lesson-card-title,.tc-lesson-card .tc-lesson-card-title::before,.tc-lesson-card .tc-lesson-card-title::after{background:none!important;background-color:transparent!important;border:0!important;box-shadow:none!important;content:none!important;padding:0!important}
.tc-lesson-card .tc-lesson-card-title{margin:0 0 9px!important;color:#0b2344!important;font-size:21px!important;line-height:1.45!important;font-weight:900!important}
.tc-lesson-card .tc-lesson-card-title a{color:#0b2344!important;text-decoration:none!important}
.tc-lesson-card .tc-lesson-card-description{color:#5c7085!important;font-size:14px!important;line-height:1.75!important}

/* Share-card-inspired cover generated from lesson data; no manual image required. */
.tc-lesson-card-visual{position:relative;display:flex;flex-direction:column;min-height:238px;aspect-ratio:16/9;padding:22px 24px;overflow:hidden;text-decoration:none!important;background:linear-gradient(135deg,#071a35 0%,#0b2344 72%,#173a68 100%);color:#fff!important;border-bottom:1px solid rgba(199,154,59,.55)}
.tc-lesson-card-visual::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#c79a3b,#e2bd69,#c79a3b)}
.tc-lesson-card-visual::after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-70px;top:-72px;border:1px solid rgba(226,189,105,.24);box-shadow:0 0 0 28px rgba(226,189,105,.04),0 0 0 56px rgba(226,189,105,.025)}
.tc-lesson-card-visual-brand{position:relative;z-index:2;color:#e5bf68;font-size:12px;font-weight:900;letter-spacing:.16em}
.tc-lesson-card-visual-kicker{position:relative;z-index:2;margin-top:14px;color:#d9e4f0;font-size:12px;font-weight:800;letter-spacing:.11em}
.tc-lesson-card-visual-title{position:relative;z-index:2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-width:82%;margin-top:8px;color:#fff;font-size:clamp(21px,1.55vw,28px);font-weight:900;line-height:1.42;letter-spacing:.01em}
.tc-lesson-card-visual-meta{position:relative;z-index:2;margin-top:auto;padding-top:15px;color:#dbe6f2;font-size:13px;font-weight:700}
.tc-lesson-card-visual-meta i{padding:0 5px;color:#e5bf68;font-style:normal}
.tc-lesson-card-visual-tc{position:absolute;z-index:2;right:24px;bottom:25px;display:inline-flex;align-items:center;justify-content:center;width:55px;height:55px;border:2px solid #c79a3b;border-radius:16px;color:#e5bf68;font:900 20px Georgia,serif;box-shadow:inset 0 0 0 4px rgba(199,154,59,.10)}
.tc-lesson-card-visual-tagline{position:absolute;z-index:2;right:23px;bottom:8px;color:#c6d3e1;font-size:8px;font-weight:900;letter-spacing:.13em}
.tc-lesson-card.is-featured .tc-lesson-card-visual{background:linear-gradient(135deg,#071a35 0%,#102b50 68%,#3c321d 130%)}

.tc-lesson-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.tc-lesson-card{display:flex;flex-direction:column;height:100%}
.tc-lesson-card-body{flex:1;height:auto!important;padding:20px 20px 21px}
.tc-lesson-card-usage{display:flex;gap:6px;align-items:center;color:#7b5d20}
.tc-lesson-card-cta{min-height:48px;font-weight:900}

@media(max-width:1200px){.tc-lesson-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-lesson-card-visual{min-height:220px}.tc-discovery{width:min(calc(100vw - 36px),1540px)!important}}
@media(max-width:700px){.tc-discovery{width:min(calc(100vw - 24px),1540px)!important}.tc-lesson-card-grid{grid-template-columns:1fr}.tc-lesson-card-visual{min-height:210px;padding:20px}.tc-lesson-card-visual-title{max-width:78%;font-size:23px}.tc-lesson-card-visual-tc{right:20px}}

/* ---- typing-coach-polish-v143 | assets/css/polish-v143.css ---- */
/* Typing Coach v1.43.0
   Dedicated full-width layout for the "タイピング教材を探す" system page.

   v1.42 used a viewport breakout transform from inside the theme's main
   content column. On a SWELL two-column layout, that centered against the
   narrow main column rather than the viewport and clipped the left edge.

   v1.43 makes this system page itself full-width and returns the discovery
   component to ordinary centered flow.
*/

/* ------------------------------------------------------------
   Discovery component: never use negative/translated breakout geometry.
   ------------------------------------------------------------ */
.tc-discovery{
  width:100%!important;
  max-width:1540px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  transform:none!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  padding-left:clamp(0px,1.2vw,14px)!important;
  padding-right:clamp(0px,1.2vw,14px)!important;
}

.tc-discovery-hero,
.tc-discovery-filters,
.tc-discovery-summary,
.tc-discovery-empty{
  width:min(100%,1180px)!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

.tc-lesson-card-grid{
  width:100%!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ------------------------------------------------------------
   Dedicated system page: SWELL full-width integration.
   These rules are deliberately scoped to the body class added only when
   [typing_coach_lessons] is the current system page.
   ------------------------------------------------------------ */
body.tc-discovery-system-page{
  overflow-x:hidden;
}

/* SWELL main layout */
body.tc-discovery-system-page .l-content{
  width:min(calc(100% - 48px),1540px)!important;
  max-width:1540px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  grid-template-columns:minmax(0,1fr)!important;
  column-gap:0!important;
}

/* SWELL sidebar is unnecessary on this app-like discovery screen. */
body.tc-discovery-system-page .l-sidebar{
  display:none!important;
}

/* Let the main content use the full hybrid-width canvas. */
body.tc-discovery-system-page .l-mainContent,
body.tc-discovery-system-page .l-mainContent__inner{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

/* Common SWELL content wrappers should not re-impose a narrow article width. */
body.tc-discovery-system-page .post_content,
body.tc-discovery-system-page .c-postContent,
body.tc-discovery-system-page .entry-content{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

/* Generic fallback for themes using conventional sidebar names.
   Scope is restricted to this one system page. */
body.tc-discovery-system-page #sidebar,
body.tc-discovery-system-page .sidebar:not(.tc-sidebar),
body.tc-discovery-system-page aside.widget-area{
  display:none!important;
}

body.tc-discovery-system-page main,
body.tc-discovery-system-page #main,
body.tc-discovery-system-page .site-main{
  min-width:0!important;
}

/* ------------------------------------------------------------
   Card readability and responsive columns
   ------------------------------------------------------------ */
@media (min-width:1281px){
  body.tc-discovery-system-page .tc-lesson-card-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:22px!important;
  }
}

@media (min-width:761px) and (max-width:1280px){
  body.tc-discovery-system-page .l-content{
    width:min(calc(100% - 36px),1540px)!important;
  }
  body.tc-discovery-system-page .tc-lesson-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:760px){
  body.tc-discovery-system-page .l-content{
    width:min(calc(100% - 24px),1540px)!important;
  }

  .tc-discovery{
    padding-left:0!important;
    padding-right:0!important;
  }

  body.tc-discovery-system-page .tc-lesson-card-grid{
    grid-template-columns:1fr!important;
  }
}

/* Safety: nothing inside discovery may force horizontal scrolling. */
.tc-discovery *,
.tc-discovery *::before,
.tc-discovery *::after{
  box-sizing:border-box;
}

.tc-discovery input,
.tc-discovery select,
.tc-discovery button,
.tc-discovery a{
  max-width:100%;
}

/* ---- typing-coach-polish-v144 | assets/css/polish-v144.css ---- */
/* Typing Coach v1.44.0 — guest/member access + long-form look-ahead */
.tc-member-only-gate{width:min(calc(100% - 40px),1080px);margin:42px auto;padding:42px;border:1px solid #e1c986;border-radius:22px;background:linear-gradient(135deg,#fffdf8 0%,#f7faff 100%);box-shadow:0 18px 45px rgba(11,35,68,.10);color:#10233d}
.tc-member-only-gate h1{margin:7px 0 10px;font-size:clamp(28px,3vw,42px);line-height:1.2}
.tc-member-only-gate>p{font-size:17px;line-height:1.75;color:#586b80}
.tc-member-benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}
.tc-member-benefit-grid>div{padding:16px;border:1px solid #dbe4ee;border-radius:14px;background:#fff}
.tc-member-benefit-grid b,.tc-member-benefit-grid span{display:block}
.tc-member-benefit-grid b{color:#0b2344;font-size:16px}.tc-member-benefit-grid span{margin-top:4px;color:#66788c;line-height:1.55}
.tc-member-only-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}

.tc-top-practice-section{margin:34px auto;width:min(100%,1540px)}
.tc-top-practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:18px}
.tc-top-practice-card{overflow:hidden;border:1px solid #dbe3ec;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(11,35,68,.07)}
.tc-top-practice-visual{display:flex;min-height:170px;padding:22px;flex-direction:column;justify-content:flex-end;background:linear-gradient(145deg,#071a36,#12345f);color:#fff!important;text-decoration:none!important}
.tc-top-practice-visual>span{color:#d3a13b;font-size:12px;font-weight:900;letter-spacing:.12em}
.tc-top-practice-visual>b{margin-top:10px;font-size:23px;line-height:1.4}.tc-top-practice-visual>small{margin-top:8px;color:#dbe6f4}
.tc-top-practice-body{padding:17px}.tc-top-practice-badges{display:flex;flex-wrap:wrap;gap:6px}
.tc-top-practice-badges span{padding:4px 8px;border-radius:999px;background:#eef3f8;color:#41566e;font-size:12px;font-weight:800}
.tc-top-practice-card.is-member-only .tc-top-practice-badges span:first-child{background:#fff2d7;color:#8a5a00}
.tc-top-practice-body p{min-height:48px;color:#63758a;line-height:1.6}
.tc-card-badge-member{background:#fff2d7!important;color:#8a5a00!important;border-color:#efd18d!important}
.tc-card-badge-public{background:#e9f6ee!important;color:#166534!important;border-color:#cde8d7!important}

.tc-long-lookahead[hidden]{display:none!important}
.tc-long-lookahead{width:min(100%,1360px);margin:7px auto 0;padding:7px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:1px solid #d8e2ec;border-radius:10px;background:#f7f9fc;color:#5e7186;transition:.16s ease}
.tc-long-lookahead-label{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:24px;padding:2px 8px;border-radius:999px;background:#e9eef5;color:#53667b;font-size:11px;font-weight:900;letter-spacing:.10em}
.tc-long-lookahead strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:750;color:#52657a}
.tc-long-lookahead.is-near-transition{border-color:#d3a13b;background:#fffaf0;box-shadow:0 4px 12px rgba(199,154,59,.10)}
.tc-long-lookahead.is-near-transition .tc-long-lookahead-label{background:#d3a13b;color:#fff}
.tc-long-lookahead.is-near-transition strong{color:#173a68}.tc-long-lookahead.is-last{opacity:.72}
.tc-shell.tc-vh-compact .tc-long-lookahead{margin-top:4px;padding:5px 9px}.tc-shell.tc-vh-compact .tc-long-lookahead strong{font-size:12px}
.tc-shell.tc-vh-tight .tc-long-lookahead{margin-top:3px;padding:4px 8px}.tc-shell.tc-vh-tight .tc-long-lookahead strong{font-size:11px}

@media(max-width:900px){.tc-top-practice-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.tc-member-only-gate{width:min(calc(100% - 24px),1080px);padding:24px}.tc-member-benefit-grid,.tc-top-practice-grid{grid-template-columns:1fr}.tc-member-only-actions{display:grid}.tc-long-lookahead{grid-template-columns:1fr;gap:4px}.tc-long-lookahead strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}

/* ---- typing-coach-polish-v145 | assets/css/polish-v145.css ---- */
/* Typing Coach v1.45.0 — READY back navigation
   SPACE remains the primary action. Back is intentionally secondary.
*/
.tc-ready-back{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  width:max-content;
  max-width:100%;
  min-height:40px;
  margin:11px auto 0;
  padding:7px 15px;
  border:1px solid #cbd7e4;
  border-radius:11px;
  background:#fff;
  color:#173a68;
  font-size:14px;
  font-weight:800;
  line-height:1.35;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(11,35,68,.05);
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.tc-ready-back:hover{
  border-color:#c79a3b;
  background:#fffdf8;
  box-shadow:0 7px 16px rgba(11,35,68,.08);
  transform:translateY(-1px);
}
.tc-ready-back:focus-visible{
  outline:3px solid rgba(199,154,59,.42);
  outline-offset:2px;
}
.tc-ready-back>span:first-child{
  font-size:17px;
  line-height:1;
}

/* Keep READY's compact one-screen layouts intact. */
.tc-shell.tc-vh-compact .tc-ready-back{
  min-height:34px;
  margin-top:7px;
  padding:5px 12px;
  font-size:12px;
}
.tc-shell.tc-vh-tight .tc-ready-back{
  min-height:30px;
  margin-top:5px;
  padding:4px 10px;
  font-size:11px;
}

/* ---- typing-coach-polish-v147 | assets/css/polish-v147.css ---- */
/* Typing Coach v1.47.0
   Long-form practice repair:
   - reserves real space for 2-line Japanese + Kana + Romaji + NEXT + progress
   - prevents overlap with KPI / NEXT FINGER
   - keeps 690px reference-canvas geometry
   - current Roman mark now represents the NEXT expected key
*/

/* ------------------------------------------------------------
   Long-form reference canvas.
   Total track height stays within the existing 690px canvas.
   ------------------------------------------------------------ */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas{
  grid-template-rows:44px 84px 202px 64px 28px 210px 26px!important;
  row-gap:3px!important;
  padding-top:6px!important;
  padding-bottom:4px!important;
}

/* Header / chips */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-head{
  height:44px!important;
  min-height:44px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-title-icon{
  width:36px!important;
  height:36px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-title h2{
  font-size:24px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-chips span{
  min-height:24px!important;
  padding:2px 10px!important;
  font-size:9px!important;
}

/* KPI row gets slightly lighter so the sentence can own more vertical space. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metrics-formal{
  height:84px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-card{
  height:84px!important;
  min-height:84px!important;
  grid-template-columns:48px minmax(0,1fr)!important;
  gap:9px!important;
  padding:6px 11px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-icon{
  width:42px!important;
  height:42px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-icon svg{
  width:25px!important;
  height:25px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-icon-x{
  font-size:31px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-label{
  font-size:12px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-label small{
  font-size:7px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-copy b{
  font-size:31px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-sub{
  margin-top:2px!important;
  font-size:7px!important;
}

/* ------------------------------------------------------------
   Sentence: five explicit rows.
   This is the key overlap repair.
   ------------------------------------------------------------ */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal{
  width:100%!important;
  max-width:none!important;
  height:202px!important;
  min-height:202px!important;
  margin:0!important;
  padding:3px 42px 2px!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:84px 21px 46px 28px 17px!important;
  align-content:start!important;
  justify-items:stretch!important;
  overflow:hidden!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal .tc-jp{
  width:min(100%,1400px)!important;
  max-width:1400px!important;
  height:84px!important;
  min-height:84px!important;
  margin:0 auto!important;
  padding:0 0 3px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  overflow:hidden!important;
  font-size:33px!important;
  line-height:1.20!important;
  letter-spacing:.025em!important;
  border-bottom:1px dashed #c8cbd0!important;
}

.tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-sentence-formal .tc-jp{
  font-size:29px!important;
  letter-spacing:.018em!important;
}
.tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-sentence-formal .tc-jp{
  font-size:25px!important;
  letter-spacing:.012em!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal .tc-kana{
  width:min(100%,1400px)!important;
  max-width:1400px!important;
  height:21px!important;
  margin:0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  font-size:14px!important;
  line-height:1.2!important;
  letter-spacing:.045em!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal .tc-roman{
  width:min(100%,1400px)!important;
  max-width:1400px!important;
  height:46px!important;
  margin:0 auto!important;
  display:block!important;
  overflow:hidden!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-align:center!important;
  font-size:17px!important;
  line-height:1.23!important;
  letter-spacing:.055em!important;
}
.tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-sentence-formal .tc-roman{
  font-size:15.5px!important;
  letter-spacing:.045em!important;
}
.tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-sentence-formal .tc-roman{
  font-size:14px!important;
  letter-spacing:.035em!important;
}

/* NEXT preview gets a dedicated track instead of being appended into an old 4-row layout. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead{
  width:min(100%,1240px)!important;
  max-width:1240px!important;
  height:26px!important;
  min-height:26px!important;
  margin:1px auto!important;
  padding:2px 8px!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  gap:7px!important;
  border-radius:7px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead-label{
  min-width:40px!important;
  min-height:19px!important;
  padding:1px 6px!important;
  font-size:9px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead strong{
  font-size:11.5px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Progress gets its own final sentence row. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row{
  width:min(100%,1180px)!important;
  max-width:1180px!important;
  height:17px!important;
  min-height:17px!important;
  margin:0 auto!important;
  grid-template-columns:minmax(0,1fr) 86px!important;
  gap:10px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row .tc-progress{
  height:5px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-char-progress{
  font-size:9px!important;
}

/* NEXT FINGER / guide / keyboard are compacted just enough to keep one-screen practice. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-formal{
  height:64px!important;
  min-height:64px!important;
  grid-template-columns:60px minmax(0,1fr) 150px!important;
  padding:5px 10px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-formal .tc-next-key{
  width:48px!important;
  height:46px!important;
  font-size:24px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-copy>strong{
  font-size:19px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-copy>small{
  font-size:9px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-copy>em{
  font-size:8px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-hands-formal span{
  width:58px!important;
  height:46px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-hand-svg,
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-hand-svg svg{
  width:28px!important;
  height:28px!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-guide-toolbar-formal{
  height:28px!important;
  min-height:28px!important;
  margin:0 auto!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-guide{
  height:22px!important;
  min-width:92px!important;
  font-size:9px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-guide-help{
  font-size:7.5px!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-keyboard-wrap-formal{
  height:210px!important;
  min-height:210px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
  height:207px!important;
  grid-template-rows:repeat(5,39px)!important;
  row-gap:3px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key-row{
  height:39px!important;
  gap:4px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key{
  height:39px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key-main{
  font-size:11.5px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key-sub{
  font-size:7px!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-footer{
  height:26px!important;
  min-height:26px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-quit-button{
  height:25px!important;
  min-height:25px!important;
  font-size:10px!important;
}

/* Sentence change acknowledgement. No delay; purely visual. */
.tc-shell.tc-question-changed .tc-sentence-formal{
  animation:tcSentenceChanged .24s ease-out;
}
@keyframes tcSentenceChanged{
  0%{opacity:.55;transform:translateY(3px)}
  100%{opacity:1;transform:translateY(0)}
}

/* The marked Roman character and NEXT FINGER now refer to the same next key. */
.tc-shell[data-lesson-type="long"] .tc-roman mark{
  background:#f7dce3!important;
  color:#071a36!important;
  border-bottom:2px solid #bd5d72!important;
  border-radius:2px!important;
}

/* ---- typing-coach-polish-v148 | assets/css/polish-v148.css ---- */
/* Typing Coach v1.48.0
   Long-form readability:
   - semantic two-line Japanese example
   - readable next-example preview
   - keep the 690px practice reference canvas
*/

/* Reallocate vertical space from chrome/keyboard to reading. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas{
  grid-template-rows:42px 80px 224px 60px 26px 200px 24px!important;
  row-gap:3px!important;
}

/* Header/KPI: slightly more compact than v1.47. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-head{
  height:42px!important;
  min-height:42px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metrics-formal{
  height:80px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-card{
  height:80px!important;
  min-height:80px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-copy b{
  font-size:30px!important;
}

/* ------------------------------------------------------------
   Reading area
   88 Japanese + 22 Kana + 48 Roman + 44 NEXT + 18 progress = 220
   ------------------------------------------------------------ */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal{
  height:224px!important;
  min-height:224px!important;
  padding:2px 42px!important;
  grid-template-rows:88px 22px 48px 44px 18px!important;
}

/* Main example: intentional phrase-based wrapping, not accidental orphan wrapping. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal .tc-jp{
  width:min(100%,1280px)!important;
  max-width:1280px!important;
  height:88px!important;
  min-height:88px!important;
  padding:0 8px 4px!important;
  font-size:30px!important;
  line-height:1.28!important;
  letter-spacing:.018em!important;
  white-space:normal!important;
  word-break:normal!important;
  line-break:strict!important;
  overflow-wrap:normal!important;
  text-wrap:balance;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal .tc-jp.has-balanced-break{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}
.tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-sentence-formal .tc-jp{
  font-size:29px!important;
}
.tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-sentence-formal .tc-jp{
  font-size:27px!important;
}

/* Kana and Romaji remain readable below the main phrase. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal .tc-kana{
  height:22px!important;
  font-size:14.5px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal .tc-roman{
  width:min(100%,1320px)!important;
  max-width:1320px!important;
  height:48px!important;
  font-size:16.5px!important;
  line-height:1.24!important;
  letter-spacing:.045em!important;
}
.tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-sentence-formal .tc-roman{
  font-size:15.7px!important;
}
.tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-sentence-formal .tc-roman{
  font-size:14.8px!important;
}

/* ------------------------------------------------------------
   Next example: it must actually be readable before transition.
   ------------------------------------------------------------ */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead{
  width:min(100%,1260px)!important;
  max-width:1260px!important;
  height:42px!important;
  min-height:42px!important;
  margin:1px auto!important;
  padding:4px 11px!important;
  grid-template-columns:76px minmax(0,1fr)!important;
  gap:10px!important;
  border-radius:9px!important;
  border-color:#cad7e4!important;
  background:#f7f9fc!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead-label{
  min-width:72px!important;
  min-height:32px!important;
  padding:2px 7px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  border-radius:7px!important;
  background:#e8eef5!important;
  color:#425a73!important;
  letter-spacing:0!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead-label small{
  display:block!important;
  font-size:8px!important;
  line-height:1!important;
  letter-spacing:.10em!important;
  font-weight:900!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead-label b{
  display:block!important;
  margin-top:2px!important;
  font-size:11px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead strong{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  height:34px!important;
  font-size:15.5px!important;
  line-height:1.25!important;
  font-weight:750!important;
  color:#344d68!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}

/* Near transition: stronger but never louder than the main example. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead.is-near-transition{
  border-color:#d3a13b!important;
  background:#fffaf0!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead.is-near-transition .tc-long-lookahead-label{
  background:#d3a13b!important;
  color:#fff!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead.is-near-transition strong{
  color:#0b2344!important;
  font-weight:850!important;
}

/* Progress */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row{
  height:18px!important;
  min-height:18px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-char-progress{
  font-size:9.5px!important;
}

/* ------------------------------------------------------------
   Recover space below the reading area.
   ------------------------------------------------------------ */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-formal{
  height:60px!important;
  min-height:60px!important;
  padding:4px 10px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-formal .tc-next-key{
  width:46px!important;
  height:44px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-copy>strong{
  font-size:18px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-guide-toolbar-formal{
  height:26px!important;
  min-height:26px!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-keyboard-wrap-formal{
  height:200px!important;
  min-height:200px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
  height:197px!important;
  grid-template-rows:repeat(5,37px)!important;
  row-gap:3px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key-row{
  height:37px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key{
  height:37px!important;
}

.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-footer{
  height:24px!important;
  min-height:24px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-quit-button{
  height:23px!important;
  min-height:23px!important;
}

/* On lower-height desktop displays the global canvas scaler still applies.
   These overrides retain meaningful relative sizes before scaling. */
.tc-shell.tc-vh-compact[data-lesson-type="long"] .tc-long-lookahead strong{
  font-size:15px!important;
}
.tc-shell.tc-vh-tight[data-lesson-type="long"] .tc-long-lookahead strong{
  font-size:14.5px!important;
}

/* ---- typing-coach-polish-v149 | assets/css/polish-v149.css ---- */
/* Typing Coach v1.49.0
   Long-form visual-axis refinement:
   - current example / NEXT / progress share one centered axis
   - explicit JP line spans stay centered
   - NEXT is larger
   - keep 690px practice reference canvas
*/

.tc-shell[data-lesson-type="long"] .tc-practice-canvas{
  grid-template-rows:42px 78px 232px 58px 24px 196px 24px!important;
  row-gap:3px!important;
}

/* Sentence = current example / NEXT / progress */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal{
  width:100%!important;
  max-width:none!important;
  height:232px!important;
  min-height:232px!important;
  margin:0!important;
  padding:2px 22px!important;
  display:grid!important;
  grid-template-rows:166px 46px 18px!important;
  align-content:start!important;
  justify-items:center!important;
  overflow:hidden!important;
}

/* Central reading lane */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example{
  width:min(100%,1420px)!important;
  max-width:1420px!important;
  height:166px!important;
  min-height:166px!important;
  margin:0 auto!important;
  justify-self:center!important;
  display:grid!important;
  grid-template-rows:92px 24px 50px!important;
  align-content:start!important;
  justify-items:stretch!important;
  box-sizing:border-box!important;
}

/* Japanese example */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-jp{
  width:100%!important;
  max-width:none!important;
  height:92px!important;
  min-height:92px!important;
  margin:0!important;
  padding:0 18px 5px!important;
  justify-self:stretch!important;
  display:grid!important;
  place-content:center!important;
  text-align:center!important;
  font-size:31px!important;
  line-height:1.27!important;
  letter-spacing:.018em!important;
  border-bottom:1px dashed #c8cbd0!important;
  white-space:normal!important;
  overflow:hidden!important;
}

/* Each semantic line occupies the whole lane and is truly centered. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-jp-line{
  display:block!important;
  width:100%!important;
  text-align:center!important;
  white-space:nowrap!important;
}

.tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-current-example .tc-jp{
  font-size:29.5px!important;
}
.tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-current-example .tc-jp{
  font-size:27.5px!important;
}

/* Kana */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-kana{
  width:100%!important;
  max-width:none!important;
  height:24px!important;
  margin:0!important;
  justify-self:stretch!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:14.5px!important;
  line-height:1.2!important;
  letter-spacing:.045em!important;
}

/* Romaji */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-roman{
  width:100%!important;
  max-width:none!important;
  height:50px!important;
  margin:0!important;
  padding:2px 10px 0!important;
  justify-self:stretch!important;
  text-align:center!important;
  overflow:hidden!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  font-size:16.5px!important;
  line-height:1.25!important;
  letter-spacing:.042em!important;
}
.tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-current-example .tc-roman{
  font-size:15.8px!important;
}
.tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-current-example .tc-roman{
  font-size:15px!important;
}

/* NEXT example shares the central axis and is easier to pre-read. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead{
  width:min(100%,1380px)!important;
  max-width:1380px!important;
  height:44px!important;
  min-height:44px!important;
  margin:1px auto!important;
  padding:4px 12px!important;
  justify-self:center!important;
  grid-template-columns:80px minmax(0,1fr)!important;
  gap:12px!important;
  border-radius:9px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead-label{
  min-width:76px!important;
  min-height:34px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead-label small{
  font-size:8.5px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead-label b{
  font-size:11.5px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead strong{
  height:36px!important;
  font-size:17px!important;
  line-height:1.24!important;
  font-weight:780!important;
  white-space:normal!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:center!important;
}

/* Progress stays on the same visual axis. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row{
  width:min(100%,1320px)!important;
  max-width:1320px!important;
  height:18px!important;
  min-height:18px!important;
  margin:0 auto!important;
  justify-self:center!important;
}

/* Recover a few px from chrome/keyboard. */
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metrics-formal{
  height:78px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-metric-card{
  height:78px!important;
  min-height:78px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-next-finger-formal{
  height:58px!important;
  min-height:58px!important;
  padding:3px 10px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-guide-toolbar-formal{
  height:24px!important;
  min-height:24px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-practice-guide{
  height:20px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-keyboard-wrap-formal{
  height:196px!important;
  min-height:196px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-keyboard-wrap-formal .tc-keyboard{
  height:193px!important;
  grid-template-rows:repeat(5,36px)!important;
  row-gap:3px!important;
}
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key-row,
.tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-key{
  height:36px!important;
}

/* Do not collapse NEXT back to tiny text on short displays. */
.tc-shell.tc-vh-compact[data-lesson-type="long"] .tc-long-lookahead strong{
  font-size:16px!important;
}
.tc-shell.tc-vh-tight[data-lesson-type="long"] .tc-long-lookahead strong{
  font-size:15px!important;
}

/* ---- typing-coach-polish-v150 | assets/css/polish-v150.css ---- */
/* Typing Coach v1.50.0
   Long-form full reading-lane repair.

   The formal practice UI uses a fixed 1600px reference canvas that is
   uniformly scaled to the browser.  Long-form reading widths now use
   that same reference coordinate system on desktop, so legacy percentage
   constraints cannot collapse the sentence lane into the left half.
*/

@media (min-width:1101px){

  /* ----------------------------------------------------------
     Hard guarantee: sentence stage occupies the full 1600px
     reference-canvas row (minus the canvas's own 28px side padding).
     ---------------------------------------------------------- */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas > .tc-sentence-stage.tc-sentence-formal{
    grid-column:1 / -1!important;
    justify-self:center!important;
    align-self:stretch!important;
    inline-size:1544px!important;
    width:1544px!important;
    min-width:1544px!important;
    max-width:1544px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:32px!important;
    padding-right:32px!important;
    box-sizing:border-box!important;
  }

  /* ----------------------------------------------------------
     Current reading lane
     ---------------------------------------------------------- */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example{
    inline-size:1440px!important;
    width:1440px!important;
    min-width:1440px!important;
    max-width:1440px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    justify-self:center!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-jp{
    inline-size:1440px!important;
    width:1440px!important;
    max-width:1440px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:28px!important;
    padding-right:28px!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-jp-line{
    inline-size:100%!important;
    width:100%!important;
    text-align:center!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-kana{
    inline-size:1400px!important;
    width:1400px!important;
    max-width:1400px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    justify-self:center!important;
    font-size:15px!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-roman{
    inline-size:1440px!important;
    width:1440px!important;
    max-width:1440px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    justify-self:center!important;
    padding-left:20px!important;
    padding-right:20px!important;
    font-size:17px!important;
  }

  .tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-current-example .tc-roman{
    font-size:16.2px!important;
  }
  .tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-current-example .tc-roman{
    font-size:15.4px!important;
  }

  /* ----------------------------------------------------------
     Next-example lane — same visual center, slightly narrower
     than the main sentence so it reads as a preview.
     ---------------------------------------------------------- */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead{
    inline-size:1400px!important;
    width:1400px!important;
    min-width:1400px!important;
    max-width:1400px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    justify-self:center!important;
    grid-template-columns:88px minmax(0,1fr)!important;
    gap:14px!important;
    padding-left:12px!important;
    padding-right:16px!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead strong{
    font-size:18px!important;
    line-height:1.25!important;
    text-align:left!important;
  }

  /* ----------------------------------------------------------
     Character progress — centered under the same reading lane.
     ---------------------------------------------------------- */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row{
    inline-size:1360px!important;
    width:1360px!important;
    min-width:1360px!important;
    max-width:1360px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    justify-self:center!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row .tc-progress{
    width:100%!important;
  }

  /* Slightly stronger visual separation from NEXT FINGER. */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-sentence-formal{
    background:linear-gradient(180deg,#fff 0%,#fff 82%,#fffdf8 100%)!important;
  }
}

/* ------------------------------------------------------------
   Fluid/tablet fallback:
   do NOT carry 1600px reference widths below desktop.
   ------------------------------------------------------------ */
@media (max-width:1100px){
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas > .tc-sentence-stage.tc-sentence-formal,
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example,
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-jp,
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-kana,
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-roman,
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-long-lookahead,
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row{
    inline-size:100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v151 | assets/css/polish-v151.css ---- */
/* Typing Coach v1.51.0
   Long-form finishing polish.

   v1.50 established the correct centered geometry.
   v1.51 intentionally does NOT change that structure:
   - Kana is larger
   - Romaji is larger
   - Character progress is easier to perceive
*/

@media (min-width:1101px){

  /* Kana is secondary to the Japanese example, but should still be
     comfortably readable for kana-input learners. */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-kana{
    font-size:16px!important;
    font-weight:650!important;
    letter-spacing:.042em!important;
    color:#233c5a!important;
  }

  /* Romaji is the most frequently referenced line during Romaji input.
     Increase it without altering the v1.50 reading-lane dimensions. */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-current-example .tc-roman{
    font-size:18.5px!important;
    line-height:1.24!important;
    letter-spacing:.038em!important;
    font-weight:760!important;
  }

  .tc-shell[data-lesson-type="long"].tc-long-dense .tc-practice-canvas .tc-current-example .tc-roman{
    font-size:17.5px!important;
  }

  .tc-shell[data-lesson-type="long"].tc-long-very-dense .tc-practice-canvas .tc-current-example .tc-roman{
    font-size:16.5px!important;
  }

  /* Character progress should be visible with peripheral vision.
     The row height stays unchanged; only the bar itself becomes clearer. */
  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row .tc-progress{
    height:8px!important;
    min-height:8px!important;
    margin:0!important;
    border-radius:999px!important;
    background:#e6e3dc!important;
    box-shadow:inset 0 1px 2px rgba(11,35,68,.08)!important;
    overflow:hidden!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-progress-row .tc-progress i{
    height:100%!important;
    border-radius:999px!important;
    background:linear-gradient(90deg,#b27819,#d2a23b)!important;
  }

  .tc-shell[data-lesson-type="long"] .tc-practice-canvas .tc-char-progress{
    min-width:92px!important;
    font-size:11px!important;
    font-weight:850!important;
    color:#243a55!important;
  }
}

/* Short-height desktop modes should remain readable after the global
   practice-canvas scale is applied. */
.tc-shell.tc-vh-compact[data-lesson-type="long"] .tc-current-example .tc-kana{
  font-size:15.5px!important;
}
.tc-shell.tc-vh-compact[data-lesson-type="long"] .tc-current-example .tc-roman{
  font-size:17.5px!important;
}
.tc-shell.tc-vh-tight[data-lesson-type="long"] .tc-current-example .tc-kana{
  font-size:15px!important;
}
.tc-shell.tc-vh-tight[data-lesson-type="long"] .tc-current-example .tc-roman{
  font-size:16.5px!important;
}

/* ---- typing-coach-polish-v152 | assets/css/polish-v152.css ---- */
/* Typing Coach v1.52.0 — launch-ready TOP page */

/* Dedicated system preview page only. It can later be selected as the
   WordPress static front page; the plugin does not change that setting itself. */
body.tc-home-system-page{
  overflow-x:hidden;
  background:#f7f5ef;
}
body.tc-home-system-page .l-sidebar,
body.tc-home-system-page #sidebar,
body.tc-home-system-page aside.widget-area{
  display:none!important;
}
body.tc-home-system-page .l-content{
  width:min(calc(100% - 48px),1620px)!important;
  max-width:1620px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  grid-template-columns:minmax(0,1fr)!important;
  column-gap:0!important;
}
body.tc-home-system-page .l-mainContent,
body.tc-home-system-page .l-mainContent__inner,
body.tc-home-system-page .post_content,
body.tc-home-system-page .c-postContent,
body.tc-home-system-page .entry-content{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
body.tc-home-system-page .c-pageTitle{
  display:none!important;
}

.tc-home{
  width:100%;
  max-width:1620px;
  margin:0 auto;
  color:#10233d;
}
.tc-home *{box-sizing:border-box}
.tc-home-eyebrow{
  display:inline-block;
  color:#a46f17;
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
}
.tc-home-hero{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr);
  min-height:520px;
  overflow:hidden;
  border:1px solid #e2c987;
  border-radius:24px;
  background:#fff;
  box-shadow:0 18px 45px rgba(11,35,68,.08);
}
.tc-home-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:60px clamp(36px,5vw,78px);
}
.tc-home-hero h1{
  margin:12px 0 16px!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  color:#0b2344!important;
  font-size:clamp(42px,4.5vw,70px)!important;
  line-height:1.12!important;
  letter-spacing:.01em!important;
}
.tc-home-hero.is-member h1{
  font-size:clamp(38px,4vw,60px)!important;
}
.tc-home-lead{
  max-width:850px;
  margin:0;
  color:#5b6f84;
  font-size:18px;
  line-height:1.8;
}
.tc-home-lead strong{color:#173a68;font-size:21px}
.tc-home-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-top:28px;
}
.tc-home-primary,
.tc-home-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:12px 24px;
  border-radius:12px;
  font-size:16px;
  font-weight:850;
  text-decoration:none!important;
}
.tc-home-primary{
  background:#c4435a;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(196,67,90,.20);
}
.tc-home-primary:hover{transform:translateY(-1px);filter:brightness(.98)}
.tc-home-secondary{
  border:1px solid #cbd7e4;
  background:#fff;
  color:#173a68!important;
}
.tc-home-free-note{
  display:flex;
  flex-wrap:wrap;
  gap:15px;
  margin-top:20px;
  color:#486078;
  font-size:14px;
  font-weight:750;
}
.tc-home-hero-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:42px 30px;
  border-left:1px solid #ead9ac;
  background:
    radial-gradient(circle at 70% 24%,rgba(199,154,59,.14),transparent 33%),
    linear-gradient(145deg,#071a36 0%,#0e2c55 100%);
  color:#fff;
  text-align:center;
}
.tc-home-mark{
  display:grid;
  place-items:center;
  width:118px;
  height:136px;
  border:3px solid #c79a3b;
  border-radius:34% 34% 44% 44% / 20% 20% 55% 55%;
  color:#e0b54f;
  font-family:Georgia,serif;
  font-size:42px;
  font-weight:800;
  box-shadow:inset 0 0 0 7px #0b2344,0 10px 30px rgba(0,0,0,.18);
}
.tc-home-hero-panel>small{
  margin-top:14px;
  color:#e7bd59;
  font-size:11px;
  font-weight:850;
  letter-spacing:.14em;
}
.tc-home-concept{margin-top:34px}
.tc-home-concept b{font-size:27px;line-height:1.4}
.tc-home-concept p{max-width:320px;margin:12px auto 0;color:#d2deeb;line-height:1.65}
.tc-home-mini-stats{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:30px;
}
.tc-home-mini-stats div{
  padding:14px 8px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:rgba(255,255,255,.07);
}
.tc-home-mini-stats b,.tc-home-mini-stats span{display:block}
.tc-home-mini-stats b{font-size:24px;color:#fff}
.tc-home-mini-stats span{margin-top:3px;color:#cad7e6;font-size:11px}

.tc-home-section{
  margin:72px auto 0;
  width:100%;
}
.tc-home-section .tc-top-practice-section{
  margin:0 auto;
}
.tc-home-section-head{
  max-width:900px;
  margin:0 auto 28px;
  text-align:center;
}
.tc-home-section-head.is-row{
  max-width:none;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
  text-align:left;
}
.tc-home-section-head h2,
.tc-home-final h2{
  margin:8px 0 8px!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  color:#10233d!important;
  font-size:clamp(30px,3vw,44px)!important;
  line-height:1.25!important;
}
.tc-home-section-head p{margin:0;color:#66798e;font-size:16px;line-height:1.7}
.tc-home-text-link{
  color:#173a68!important;
  font-weight:800;
  text-decoration:none!important;
  white-space:nowrap;
}

.tc-home .tc-top-practice-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.tc-home .tc-top-practice-card{
  border-radius:20px;
}
.tc-home .tc-top-practice-visual{min-height:190px}
.tc-home .tc-top-practice-body{padding:20px}

.tc-home-register-value{
  padding:54px clamp(28px,5vw,70px);
  border:1px solid #dce4ec;
  border-radius:24px;
  background:#fff;
}
.tc-home-benefits{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.tc-home-benefits article{
  min-height:180px;
  padding:22px;
  border:1px solid #dce4ec;
  border-radius:16px;
  background:#f9fbfd;
}
.tc-home-benefits article>span{
  display:inline-grid;
  place-items:center;
  width:34px;height:34px;
  border-radius:9px;
  background:#0b2344;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.tc-home-benefits b,.tc-home-benefits p{display:block}
.tc-home-benefits b{margin-top:16px;font-size:19px;color:#10233d}
.tc-home-benefits p{margin:7px 0 0;color:#66798e;line-height:1.6}
.tc-home-center-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  margin-top:28px;
}

.tc-home-framework{
  padding:56px clamp(28px,5vw,70px);
  border-radius:24px;
  background:#071a36;
  color:#fff;
}
.tc-home-framework .tc-home-section-head h2{color:#fff!important}
.tc-home-framework .tc-home-section-head p{color:#c8d6e6}
.tc-home-framework-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.tc-home-framework-grid article{
  min-height:180px;
  padding:22px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  background:rgba(255,255,255,.06);
}
.tc-home-framework-grid strong{
  display:block;
  color:#e0b54f;
  font-size:12px;
  letter-spacing:.16em;
}
.tc-home-framework-grid b{display:block;margin-top:8px;font-size:25px}
.tc-home-framework-grid p{margin:9px 0 0;color:#cad7e6;line-height:1.6}

.tc-home-final{
  margin:72px auto 24px;
  padding:58px 30px;
  border:1px solid #e4ca88;
  border-radius:24px;
  background:linear-gradient(135deg,#fffdf8,#f6f9fd);
  text-align:center;
}
.tc-home-final p{color:#66798e;font-size:17px}
.tc-home-final .tc-home-actions{justify-content:center}

@media(max-width:1100px){
  body.tc-home-system-page .l-content{width:min(calc(100% - 32px),1620px)!important}
  .tc-home-hero{grid-template-columns:1fr}
  .tc-home-hero-panel{border-left:0;border-top:1px solid #ead9ac}
  .tc-home-benefits,.tc-home-framework-grid{grid-template-columns:1fr 1fr}
  .tc-home .tc-top-practice-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  body.tc-home-system-page .l-content{width:min(calc(100% - 20px),1620px)!important}
  .tc-home-hero-copy{padding:38px 22px}
  .tc-home-hero h1{font-size:38px!important}
  .tc-home-lead{font-size:16px}
  .tc-home-actions{display:grid;width:100%}
  .tc-home-primary,.tc-home-secondary{width:100%}
  .tc-home-hero-panel{padding:34px 20px}
  .tc-home-section{margin-top:50px}
  .tc-home .tc-top-practice-grid,
  .tc-home-benefits,
  .tc-home-framework-grid{grid-template-columns:1fr}
  .tc-home-section-head.is-row{display:block;text-align:center}
  .tc-home-section-head.is-row .tc-home-text-link{display:inline-block;margin-top:12px}
  .tc-home-register-value,.tc-home-framework{padding:38px 20px}
}

/* ---- typing-coach-polish-v153 | assets/css/polish-v153.css ---- */
/* Typing Coach v1.53.0 — dedicated TOP template isolation */

/* Dedicated template no longer sits inside SWELL's article/content wrapper. */
.tc-home-template-main{
  width:100%;
  max-width:none;
  margin:0;
  padding:28px clamp(18px,2.4vw,44px) 44px;
  background:#f7f5ef;
}

/* The actual service canvas stays centered and never stretches indefinitely. */
.tc-home-template-main > .tc-home{
  width:min(100%,1620px)!important;
  max-width:1620px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ------------------------------------------------------------
   Theme heading reset.
   SWELL can decorate h2/h3 even outside post_content. Every heading inside
   this product surface is therefore explicitly owned by Typing Coach.
   ------------------------------------------------------------ */
.tc-home h1,
.tc-home h2,
.tc-home h3,
.tc-home h4{
  position:static!important;
  margin-left:0;
  margin-right:0;
  padding-left:0!important;
  padding-right:0!important;
  border:0!important;
  border-left:0!important;
  border-right:0!important;
  border-top:0!important;
  border-bottom:0!important;
  background:none!important;
  background-image:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
  color:#10233d;
}
.tc-home h1::before,
.tc-home h1::after,
.tc-home h2::before,
.tc-home h2::after,
.tc-home h3::before,
.tc-home h3::after,
.tc-home h4::before,
.tc-home h4::after{
  content:none!important;
  display:none!important;
}

/* The member/guest practice sections previously inherited SWELL's blue h2. */
.tc-home .tc-top-practice-section > h2{
  margin:7px 0 8px!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  color:#10233d!important;
  font-size:clamp(29px,2.6vw,40px)!important;
  line-height:1.25!important;
}
.tc-home .tc-top-practice-section > p{
  margin:0 0 22px!important;
  color:#66798e!important;
  font-size:16px!important;
  line-height:1.7!important;
}

/* Popular title and all section headings remain visually consistent. */
.tc-home .tc-home-section-head h2{
  border:0!important;
  background:none!important;
}

/* Utility login/logout links: visible but clearly secondary to practice. */
.tc-home-utility-link{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:8px 5px;
  color:#52677d!important;
  font-size:14px;
  font-weight:800;
  text-decoration:none!important;
  white-space:nowrap;
}
.tc-home-utility-link:hover{
  color:#173a68!important;
  text-decoration:underline!important;
}

/* Full desktop use: prevent the old ~620px article-column appearance. */
@media(min-width:1101px){
  .tc-home-template-main{
    padding-left:32px;
    padding-right:32px;
  }
  .tc-home-hero{
    width:100%!important;
  }
  .tc-home .tc-top-practice-grid{
    width:100%!important;
  }
}

/* Tablet/mobile remain fluid. */
@media(max-width:1100px){
  .tc-home-template-main{
    padding:22px 16px 38px;
  }
}
@media(max-width:700px){
  .tc-home-template-main{
    padding:16px 10px 30px;
  }
  .tc-home-utility-link{
    justify-content:center;
    width:100%;
  }
}

/* When the dedicated template is used, legacy SWELL-wrapper rules from
   v1.52 are harmless, but explicitly prevent page title/search fragments
   from accidentally showing if a theme injects them around main content. */
body.tc-home-system-page .c-pageTitle,
body.tc-home-system-page .p-breadcrumb + .c-pageTitle,
body.tc-home-system-page .search-form[role="search"].c-searchForm{
  display:none!important;
}

/* ---- typing-coach-polish-v154 | assets/css/polish-v154.css ---- */
/* Typing Coach v1.54.0
   Semantic color system foundation + TOP page rollout.

   Color is never random decoration:
   navy = trust / brand
   gold = premium / recommended
   rose = action / challenge
   blue = learning / information
   green = growth / accuracy
   soft pink = reflection / motivation
*/

:root{
  --tc-navy:#0b1d34;
  --tc-navy-2:#173a68;
  --tc-gold:#c79a3b;
  --tc-gold-2:#d4aa56;
  --tc-rose:#c4435a;
  --tc-rose-soft:#fff0f3;
  --tc-blue:#4c82b8;
  --tc-blue-soft:#eef6fc;
  --tc-green:#5c8f6f;
  --tc-green-soft:#eef8f1;
  --tc-pink:#bd6a86;
  --tc-pink-soft:#fff2f6;
  --tc-ivory:#fbf8f1;
  --tc-warm:#fffaf0;
  --tc-ink:#10233d;
  --tc-muted:#66798e;
  --tc-line:#dce4ec;
}

/* ------------------------------------------------------------
   TOP background: subtle section rhythm, not a flat single color.
   ------------------------------------------------------------ */
.tc-home-template-main{
  background:
    linear-gradient(180deg,#fbfaf7 0%,#f7f8fb 22%,#fbfaf7 49%,#f9f6ef 74%,#fbfaf7 100%)!important;
}

/* ------------------------------------------------------------
   Hero
   ------------------------------------------------------------ */
.tc-home-hero{
  border-color:#e7cf96!important;
  background:
    linear-gradient(90deg,#fff 0%,#fff 62%,#f7f1e5 100%)!important;
  box-shadow:0 20px 50px rgba(11,35,68,.10)!important;
}
.tc-home-hero-copy{
  position:relative;
}
.tc-home-hero-copy::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:linear-gradient(180deg,var(--tc-gold),var(--tc-rose));
}
.tc-home-hero-panel{
  background:
    radial-gradient(circle at 72% 20%,rgba(212,170,86,.18),transparent 32%),
    radial-gradient(circle at 20% 82%,rgba(76,130,184,.13),transparent 35%),
    linear-gradient(145deg,#071a36 0%,#123765 100%)!important;
}
.tc-home-mini-stats div:nth-child(1){border-top:3px solid var(--tc-blue)!important}
.tc-home-mini-stats div:nth-child(2){border-top:3px solid var(--tc-gold)!important}
.tc-home-mini-stats div:nth-child(3){border-top:3px solid var(--tc-green)!important}
.tc-home-mini-stats div:nth-child(4){border-top:3px solid var(--tc-rose)!important}

.tc-home-primary{
  background:linear-gradient(135deg,var(--tc-rose),#d4576d)!important;
  box-shadow:0 12px 26px rgba(196,67,90,.22)!important;
}
.tc-home-secondary{
  border-color:#b9cadb!important;
  background:linear-gradient(180deg,#fff,#f5f8fc)!important;
}
.tc-home-free-note span:nth-child(1){color:#356a9b!important}
.tc-home-free-note span:nth-child(2){color:#3f7e57!important}
.tc-home-free-note span:nth-child(3){color:#9a6a12!important}

/* ------------------------------------------------------------
   Guest/member practice section
   ------------------------------------------------------------ */
.tc-home .tc-top-practice-section{
  position:relative;
  padding:34px;
  border:1px solid #dbe3ec;
  border-radius:24px;
  background:linear-gradient(135deg,#fff 0%,#f7fbff 50%,#fffaf0 100%);
  box-shadow:0 12px 32px rgba(11,35,68,.06);
}
.tc-home .tc-top-practice-section::before{
  content:"";
  position:absolute;
  left:34px;
  top:0;
  width:110px;
  height:4px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,var(--tc-blue),var(--tc-gold));
}
.tc-home .tc-top-practice-section > .tc-kicker{
  color:#9b6a17!important;
}

/* Practice cards use different semantic accents instead of identical navy blocks. */
.tc-home .tc-top-practice-card:nth-child(4n+1) .tc-top-practice-visual{
  background:
    radial-gradient(circle at 85% 18%,rgba(199,154,59,.17),transparent 28%),
    linear-gradient(145deg,#071a36,#123c6f)!important;
}
.tc-home .tc-top-practice-card:nth-child(4n+2) .tc-top-practice-visual{
  background:
    radial-gradient(circle at 85% 18%,rgba(92,143,111,.20),transparent 30%),
    linear-gradient(145deg,#0a2639,#15515d)!important;
}
.tc-home .tc-top-practice-card:nth-child(4n+3) .tc-top-practice-visual{
  background:
    radial-gradient(circle at 85% 18%,rgba(189,106,134,.20),transparent 30%),
    linear-gradient(145deg,#241a3c,#55304f)!important;
}
.tc-home .tc-top-practice-card:nth-child(4n+4) .tc-top-practice-visual{
  background:
    radial-gradient(circle at 85% 18%,rgba(76,130,184,.22),transparent 30%),
    linear-gradient(145deg,#132441,#26558d)!important;
}
.tc-home .tc-top-practice-card:nth-child(4n+1){border-top:4px solid var(--tc-gold)!important}
.tc-home .tc-top-practice-card:nth-child(4n+2){border-top:4px solid var(--tc-green)!important}
.tc-home .tc-top-practice-card:nth-child(4n+3){border-top:4px solid var(--tc-pink)!important}
.tc-home .tc-top-practice-card:nth-child(4n+4){border-top:4px solid var(--tc-blue)!important}

/* Semantic badges */
.tc-home .tc-top-practice-badges span{
  border:1px solid #d8e2ec!important;
}
.tc-home .tc-top-practice-badges span:nth-child(1){
  background:var(--tc-green-soft)!important;
  color:#356b4c!important;
  border-color:#cce5d4!important;
}
.tc-home .tc-top-practice-badges span:nth-child(2){
  background:var(--tc-blue-soft)!important;
  color:#35658e!important;
  border-color:#d2e4f2!important;
}

/* Card CTA: warm gold remains an alternate action color. */
.tc-home .tc-top-practice-body .tc-primary{
  background:linear-gradient(135deg,#c88c20,#d7a73d)!important;
  color:#10233d!important;
  box-shadow:0 8px 18px rgba(199,154,59,.16)!important;
}

/* ------------------------------------------------------------
   Registration benefits
   ------------------------------------------------------------ */
.tc-home-register-value{
  border-color:#d9e2ec!important;
  background:
    linear-gradient(135deg,#fff 0%,#f5f9fd 45%,#fff8fa 100%)!important;
}
.tc-home-benefits article{
  position:relative;
  overflow:hidden;
}
.tc-home-benefits article::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:5px;
}
.tc-home-benefits article:nth-child(1){
  background:var(--tc-blue-soft)!important;
  border-color:#cee0ef!important;
}
.tc-home-benefits article:nth-child(1)::after{background:var(--tc-blue)}
.tc-home-benefits article:nth-child(1)>span{background:var(--tc-blue)!important}

.tc-home-benefits article:nth-child(2){
  background:var(--tc-pink-soft)!important;
  border-color:#efd4de!important;
}
.tc-home-benefits article:nth-child(2)::after{background:var(--tc-pink)}
.tc-home-benefits article:nth-child(2)>span{background:var(--tc-pink)!important}

.tc-home-benefits article:nth-child(3){
  background:var(--tc-gold-soft,#fff8e8)!important;
  border-color:#ead8aa!important;
}
.tc-home-benefits article:nth-child(3)::after{background:var(--tc-gold)}
.tc-home-benefits article:nth-child(3)>span{background:#ad791c!important}

.tc-home-benefits article:nth-child(4){
  background:var(--tc-green-soft)!important;
  border-color:#cfe4d6!important;
}
.tc-home-benefits article:nth-child(4)::after{background:var(--tc-green)}
.tc-home-benefits article:nth-child(4)>span{background:var(--tc-green)!important}

/* ------------------------------------------------------------
   Popular section
   ------------------------------------------------------------ */
.tc-home-popular-cards{
  position:relative;
  padding:42px 34px 36px;
  border:1px solid #e6d9ba;
  border-radius:24px;
  background:
    linear-gradient(135deg,#fffaf0 0%,#fff 48%,#f4f8fc 100%);
}
.tc-home-popular-cards::before{
  content:"";
  position:absolute;
  left:34px;
  top:0;
  width:120px;
  height:4px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,var(--tc-gold),var(--tc-rose));
}

/* ------------------------------------------------------------
   TYPE / LEARN / COACH / GROW
   ------------------------------------------------------------ */
.tc-home-framework{
  background:
    radial-gradient(circle at 90% 15%,rgba(199,154,59,.13),transparent 28%),
    radial-gradient(circle at 10% 90%,rgba(76,130,184,.15),transparent 30%),
    linear-gradient(145deg,#06172f,#0e315b)!important;
}
.tc-home-framework-grid article{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.075)!important;
}
.tc-home-framework-grid article::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:5px;
}
.tc-home-framework-grid article:nth-child(1)::after{background:var(--tc-rose)}
.tc-home-framework-grid article:nth-child(2)::after{background:var(--tc-blue)}
.tc-home-framework-grid article:nth-child(3)::after{background:var(--tc-pink)}
.tc-home-framework-grid article:nth-child(4)::after{background:var(--tc-green)}
.tc-home-framework-grid article:nth-child(1) strong{color:#ed8a9b!important}
.tc-home-framework-grid article:nth-child(2) strong{color:#83b7e0!important}
.tc-home-framework-grid article:nth-child(3) strong{color:#da91aa!important}
.tc-home-framework-grid article:nth-child(4) strong{color:#86bf98!important}

/* ------------------------------------------------------------
   Final CTA
   ------------------------------------------------------------ */
.tc-home-final{
  border-color:#e5cb8d!important;
  background:
    radial-gradient(circle at 12% 24%,rgba(76,130,184,.08),transparent 28%),
    radial-gradient(circle at 88% 76%,rgba(196,67,90,.08),transparent 30%),
    linear-gradient(135deg,#fff,#fffaf0)!important;
}
.tc-home-final::before{
  content:"";
  display:block;
  width:76px;
  height:4px;
  margin:0 auto 20px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--tc-blue),var(--tc-gold),var(--tc-rose));
}

/* ------------------------------------------------------------
   Shared foundations for future screen rollout
   ------------------------------------------------------------ */
.tc-card-badge-featured{
  background:#fff7df!important;
  color:#8a5a00!important;
  border-color:#e7cd84!important;
}
.tc-card-badge-public{
  background:var(--tc-green-soft)!important;
  color:#356b4c!important;
  border-color:#cce5d4!important;
}
.tc-card-badge-member{
  background:var(--tc-pink-soft)!important;
  color:#8d4560!important;
  border-color:#ebcfda!important;
}

/* Mobile retains color rhythm without excessive decoration. */
@media(max-width:700px){
  .tc-home .tc-top-practice-section,
  .tc-home-popular-cards{
    padding:30px 18px;
  }
  .tc-home .tc-top-practice-section::before,
  .tc-home-popular-cards::before{
    left:18px;
  }
}

/* ---- typing-coach-semantic-v155 | assets/css/polish-v155.css ---- */
/* Typing Coach v1.55.0
   Cross-screen semantic color rollout.

   This file is loaded by both TC_Frontend and TC_Self_Service.
   It deliberately repeats the color tokens so account/registration pages
   do not depend on the TOP-only v1.54 stylesheet chain.
*/

:root{
  --tc-navy:#0b1d34;
  --tc-navy-2:#173a68;
  --tc-gold:#c79a3b;
  --tc-gold-soft:#fff7df;
  --tc-rose:#c4435a;
  --tc-rose-soft:#fff0f3;
  --tc-blue:#4c82b8;
  --tc-blue-soft:#eef6fc;
  --tc-green:#5c8f6f;
  --tc-green-soft:#eef8f1;
  --tc-pink:#bd6a86;
  --tc-pink-soft:#fff2f6;
  --tc-ivory:#fbf8f1;
  --tc-ink:#10233d;
  --tc-muted:#66798e;
  --tc-line:#dce4ec;
}

/* ============================================================
   1. TOP finishing: no stray search + adaptive lesson counts
   ============================================================ */
body.tc-home-system-page > .search-form,
body.tc-home-system-page .site-footer + .search-form,
body.tc-home-system-page .wp-block-search,
body.tc-home-system-page .c-searchForm,
body.tc-home-system-page .p-searchForm,
body.tc-home-system-page form[role="search"]:not(.tc-discovery-filters){
  display:none!important;
}

.tc-home .tc-top-practice-grid{
  grid-template-columns:repeat(auto-fit,minmax(250px,360px))!important;
  justify-content:start!important;
  align-items:start!important;
}
.tc-home .tc-top-practice-card{
  width:100%!important;
  max-width:360px!important;
}
.tc-home .tc-top-practice-section{
  min-height:0!important;
  height:auto!important;
}

/* ============================================================
   2. Ranking
   ============================================================ */
.tc-ranking-panel{
  overflow:hidden;
  border:1px solid #d8e2ec!important;
  border-top:5px solid var(--tc-gold)!important;
  border-radius:20px!important;
  background:
    linear-gradient(135deg,#fff 0%,#f5f9fd 58%,#fffaf0 100%)!important;
  box-shadow:0 12px 32px rgba(11,35,68,.07)!important;
}
.tc-ranking-heading{
  padding:4px 2px 14px;
}
.tc-ranking-heading h2{
  color:var(--tc-navy)!important;
}
.tc-ranking-current-mode{
  border:1px solid #d3dfeb!important;
  background:#fff!important;
  color:var(--tc-navy-2)!important;
}
.tc-ranking-current-mode-romaji{border-color:#c9deef!important;background:var(--tc-blue-soft)!important;color:#35658e!important}
.tc-ranking-current-mode-kana{border-color:#cce3d4!important;background:var(--tc-green-soft)!important;color:#356b4c!important}
.tc-ranking-current-mode-english{border-color:#ead7a6!important;background:var(--tc-gold-soft)!important;color:#815b12!important}

.tc-ranking-mode-tabs{
  padding:5px;
  border:1px solid #dce4ec;
  border-radius:14px;
  background:#f5f7fa;
}
.tc-ranking-mode-tabs .tc-rank-tab{
  border-radius:10px!important;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.tc-ranking-mode-tabs .tc-rank-tab-romaji.is-active{
  border-color:#a9cee8!important;background:var(--tc-blue-soft)!important;color:#285f8e!important;
}
.tc-ranking-mode-tabs .tc-rank-tab-kana.is-active{
  border-color:#b9dcc5!important;background:var(--tc-green-soft)!important;color:#316d4a!important;
}
.tc-ranking-mode-tabs .tc-rank-tab-english.is-active{
  border-color:#dfc781!important;background:var(--tc-gold-soft)!important;color:#76520d!important;
}

.tc-ranking-table{
  overflow:hidden;
  border:1px solid #d8e2ec;
  border-radius:14px;
  background:#fff;
}
.tc-ranking-table thead th{
  border-bottom:0!important;
  background:linear-gradient(135deg,var(--tc-navy),var(--tc-navy-2))!important;
  color:#fff!important;
}
.tc-ranking-table tbody tr:nth-child(even):not(.is-me){background:#f8fafc}
.tc-ranking-table tbody tr.is-me{
  background:linear-gradient(90deg,#fff7df,#fffdf7)!important;
  outline:2px solid var(--tc-gold)!important;
  outline-offset:-2px;
}
.tc-ranking-table tbody tr:nth-child(1) td:first-child strong{color:#9b6a0d;font-size:1.18em}
.tc-ranking-table tbody tr:nth-child(2) td:first-child strong{color:#657383}
.tc-ranking-table tbody tr:nth-child(3) td:first-child strong{color:#9a6542}
.tc-ranking-table tbody tr:nth-child(1) td:first-child{background:#fff8dc}
.tc-ranking-table tbody tr:nth-child(2) td:first-child{background:#f2f5f7}
.tc-ranking-table tbody tr:nth-child(3) td:first-child{background:#fbf0e8}

.tc-input-mode-badge.tc-input-mode-romaji{
  background:var(--tc-blue-soft)!important;color:#35658e!important;border-color:#c9deef!important;
}
.tc-input-mode-badge.tc-input-mode-kana{
  background:var(--tc-green-soft)!important;color:#356b4c!important;border-color:#cce3d4!important;
}
.tc-input-mode-badge.tc-input-mode-english{
  background:var(--tc-gold-soft)!important;color:#815b12!important;border-color:#e5d09a!important;
}

/* ============================================================
   3. Account settings + registration
   ============================================================ */
.tc-account-panel,
.tc-register-panel{
  border:1px solid #d9e2eb!important;
  border-top:5px solid var(--tc-blue)!important;
  border-radius:20px!important;
  background:
    linear-gradient(145deg,#fff 0%,#f7faff 58%,#fffaf5 100%)!important;
  box-shadow:0 12px 32px rgba(11,35,68,.06)!important;
}
.tc-account-panel>.tc-kicker,
.tc-register-panel>.tc-kicker{
  color:#9a6a12!important;
}
.tc-account-panel>h2,
.tc-register-panel>h2{
  color:var(--tc-navy)!important;
}

.tc-account-section{
  position:relative;
  margin:18px 0!important;
  padding:20px 22px!important;
  border:1px solid #dce4ec!important;
  border-left-width:6px!important;
  border-radius:16px!important;
  background:#fff!important;
}
.tc-account-section h3{
  margin-top:0!important;
  color:var(--tc-navy)!important;
}
.tc-account-profile{
  border-left-color:var(--tc-blue)!important;
  background:linear-gradient(135deg,#fff,var(--tc-blue-soft))!important;
}
.tc-account-input{
  border-left-color:var(--tc-green)!important;
  background:linear-gradient(135deg,#fff,var(--tc-green-soft))!important;
}
.tc-account-ranking{
  border-left-color:var(--tc-gold)!important;
  background:linear-gradient(135deg,#fff,var(--tc-gold-soft))!important;
}
.tc-account-password{
  border-left-color:var(--tc-pink)!important;
  background:linear-gradient(135deg,#fff,var(--tc-pink-soft))!important;
}
.tc-account-danger{
  border-left-color:var(--tc-rose)!important;
  background:linear-gradient(135deg,#fff,var(--tc-rose-soft))!important;
}
.tc-account-panel input:focus,
.tc-account-panel select:focus,
.tc-register-panel input:focus,
.tc-register-panel select:focus{
  outline:3px solid rgba(76,130,184,.20)!important;
  border-color:var(--tc-blue)!important;
}
.tc-account-panel .tc-secondary,
.tc-register-panel .tc-secondary{
  border-color:#b9cadb!important;
  background:linear-gradient(180deg,#fff,#f3f7fb)!important;
  color:var(--tc-navy-2)!important;
}
.tc-account-danger .tc-danger-btn{
  background:linear-gradient(135deg,var(--tc-rose),#d65b70)!important;
  color:#fff!important;
}
.tc-register-panel .tc-privacy-boundary{
  border-color:#c9deef!important;
  border-left:5px solid var(--tc-blue)!important;
  background:var(--tc-blue-soft)!important;
}
.tc-register-panel .tc-primary{
  background:linear-gradient(135deg,var(--tc-rose),#d4576d)!important;
}

/* ============================================================
   4. My Typing Coach
   ============================================================ */
.tc-my-panel{
  border:1px solid #d9e2eb!important;
  border-top:5px solid var(--tc-green)!important;
  border-radius:20px!important;
  background:
    linear-gradient(135deg,#fff 0%,#f5faf6 48%,#f6f9fd 100%)!important;
  box-shadow:0 12px 32px rgba(11,35,68,.06)!important;
}
.tc-my-panel>.tc-kicker{color:#477b59!important}
.tc-my-panel>h2{color:var(--tc-navy)!important}
.tc-my-stats .tc-my-stat{
  position:relative;
  overflow:hidden;
  border:1px solid #dce4ec!important;
  border-top:5px solid transparent!important;
  border-radius:15px!important;
  background:#fff!important;
}
.tc-my-stat-wpm{border-top-color:var(--tc-blue)!important;background:linear-gradient(180deg,#fff,var(--tc-blue-soft))!important}
.tc-my-stat-accuracy{border-top-color:var(--tc-green)!important;background:linear-gradient(180deg,#fff,var(--tc-green-soft))!important}
.tc-my-stat-plays{border-top-color:var(--tc-pink)!important;background:linear-gradient(180deg,#fff,var(--tc-pink-soft))!important}
.tc-my-stat-rank{border-top-color:var(--tc-gold)!important;background:linear-gradient(180deg,#fff,var(--tc-gold-soft))!important}
.tc-my-recent-heading{
  margin-top:28px!important;
  padding-left:13px!important;
  border-left:5px solid var(--tc-blue)!important;
  color:var(--tc-navy)!important;
}
.tc-my-panel .tc-table thead th{
  background:#edf4fa!important;
  color:#274866!important;
}
.tc-my-panel .tc-table tbody tr:nth-child(even){background:#f9fbfc}

/* ============================================================
   5. Discovery / タイピング教材を探す
   ============================================================ */
.tc-discovery-hero .tc-kicker{color:#9a6a12!important}
.tc-discovery-filters{
  position:relative;
  overflow:hidden;
  border-color:#d5e1ec!important;
  background:
    linear-gradient(135deg,#fff 0%,#f4f9fd 52%,#fffaf1 100%)!important;
}
.tc-discovery-filters::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:4px;
  background:linear-gradient(90deg,var(--tc-blue),var(--tc-green),var(--tc-gold),var(--tc-rose));
}
.tc-discovery input[type="search"]:focus,
.tc-discovery select:focus{
  outline:3px solid rgba(76,130,184,.20)!important;
  border-color:var(--tc-blue)!important;
}
.tc-discovery .tc-lesson-card{
  border-top:4px solid var(--tc-gold)!important;
}
.tc-discovery .tc-lesson-card:nth-child(4n+1){border-top-color:var(--tc-gold)!important}
.tc-discovery .tc-lesson-card:nth-child(4n+2){border-top-color:var(--tc-green)!important}
.tc-discovery .tc-lesson-card:nth-child(4n+3){border-top-color:var(--tc-pink)!important}
.tc-discovery .tc-lesson-card:nth-child(4n+4){border-top-color:var(--tc-blue)!important}
.tc-discovery .tc-lesson-card:nth-child(4n+2) .tc-lesson-card-visual{
  background:linear-gradient(145deg,#0a2639,#15515d)!important;
}
.tc-discovery .tc-lesson-card:nth-child(4n+3) .tc-lesson-card-visual{
  background:linear-gradient(145deg,#241a3c,#55304f)!important;
}
.tc-discovery .tc-lesson-card:nth-child(4n+4) .tc-lesson-card-visual{
  background:linear-gradient(145deg,#132441,#26558d)!important;
}

/* ============================================================
   6. Result page
   Headline metric colors map exactly to their meaning:
   WPM=blue / accuracy=green / misses=rose / rank=gold.
   ============================================================ */
body.tc-stage-result .tc-result-grid>div{
  position:relative;
  overflow:hidden;
  border:1px solid #dce4ec!important;
  border-top:5px solid var(--tc-blue)!important;
  background:#fff!important;
}
body.tc-stage-result .tc-result-grid>.tc-result-wpm{
  border-top-color:var(--tc-blue)!important;
  background:linear-gradient(180deg,#fff,var(--tc-blue-soft))!important;
}
body.tc-stage-result .tc-result-grid>.tc-result-accuracy{
  border-top-color:var(--tc-green)!important;
  background:linear-gradient(180deg,#fff,var(--tc-green-soft))!important;
}
body.tc-stage-result .tc-result-grid>.tc-result-misses{
  border-top-color:var(--tc-rose)!important;
  background:linear-gradient(180deg,#fff,var(--tc-rose-soft))!important;
}
body.tc-stage-result .tc-result-grid>.tc-result-rank{
  border-top-color:var(--tc-gold)!important;
  background:linear-gradient(180deg,#fff,var(--tc-gold-soft))!important;
}

body.tc-stage-result .tc-result-mode-badge{
  background:var(--tc-blue-soft)!important;
  color:#35658e!important;
  border-color:#c9deef!important;
}
body.tc-stage-result .tc-result-change-snapshot{
  border-left-color:var(--tc-blue)!important;
  background:linear-gradient(135deg,var(--tc-blue-soft),#fff 68%)!important;
}
body.tc-stage-result .tc-coach-summary{
  border-color:#cfe3d6!important;
  background:linear-gradient(135deg,var(--tc-green-soft),#fff 60%,#fffaf0)!important;
}
body.tc-stage-result .tc-motivation-card{
  border-left-color:var(--tc-pink)!important;
  background:linear-gradient(135deg,var(--tc-pink-soft),#fff 66%)!important;
}
body.tc-stage-result .tc-reflection-card{
  border-top-color:var(--tc-blue)!important;
  background:linear-gradient(145deg,var(--tc-blue-soft),#fff 68%)!important;
}
body.tc-stage-result .tc-baseline-growth{
  border-left-color:var(--tc-gold)!important;
  background:linear-gradient(135deg,var(--tc-gold-soft),#fff 70%)!important;
}

/* Buttons retain clear hierarchy: action=rose, share/info=navy-blue. */
body.tc-stage-result .tc-result-top-retry{
  background:linear-gradient(135deg,var(--tc-rose),#d4576d)!important;
}
body.tc-stage-result .tc-share-main{
  background:linear-gradient(135deg,var(--tc-navy-2),#285d91)!important;
  color:#fff!important;
}

/* ============================================================
   Accessibility / forced colors
   ============================================================ */
@media (forced-colors:active){
  .tc-account-section,
  .tc-ranking-panel,
  .tc-my-panel,
  .tc-discovery-filters,
  body.tc-stage-result .tc-result-grid>div{
    border:2px solid CanvasText!important;
    background:Canvas!important;
  }
}

/* ---- typing-coach-navigation-v156 | assets/css/polish-v156.css ---- */
/* Typing Coach v1.56.0
   Shared system-page navigation.

   Ranking / Discovery / My Typing Coach / Account / Registration now use
   the same product navigation language as the lesson practice shell.
*/

body.tc-system-body{
  margin:0!important;
  min-height:100vh;
  background:
    linear-gradient(180deg,#f6f3eb 0%,#f8fafc 34%,#f7f5ef 100%)!important;
  color:#10233d;
}

/* Admin toolbar remains available to administrators. */
body.tc-system-body #wpadminbar{z-index:9999999}

/* ------------------------------------------------------------
   Shared header
   ------------------------------------------------------------ */
.tc-system-header{
  position:sticky!important;
  top:0;
  z-index:1000!important;
  box-shadow:0 5px 20px rgba(5,24,46,.10);
}
.admin-bar .tc-system-header{
  top:32px;
}
.tc-system-header .tc-app-header__inner{
  max-width:1620px!important;
}
.tc-system-nav a{
  position:relative;
}
.tc-system-nav a.is-current{
  border:1px solid rgba(232,193,100,.70)!important;
  background:rgba(255,255,255,.10)!important;
  box-shadow:inset 0 0 0 1px rgba(199,154,59,.28);
}
.tc-system-nav a.is-current::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:4px;
  height:2px;
  border-radius:999px;
  background:#e2b34e;
}
.tc-system-nav-lessons.is-current .tc-nav-icon{color:#78acd7!important}
.tc-system-nav-ranking.is-current .tc-nav-icon{color:#e1b54f!important}
.tc-system-nav-my.is-current .tc-nav-icon{color:#79b48c!important}
.tc-system-nav-account.is-current .tc-nav-icon{color:#d9859f!important}
.tc-system-nav-register.is-current .tc-nav-icon{color:#e1b54f!important}

.tc-system-logout{
  margin-left:2px;
  padding-left:8px!important;
  padding-right:8px!important;
  color:#d8e3ed!important;
  font-size:11px!important;
  opacity:.85;
}
.tc-system-logout:hover{opacity:1}
.tc-system-login{
  border:1px solid rgba(199,154,59,.48)!important;
}

/* ------------------------------------------------------------
   System-page content canvas
   ------------------------------------------------------------ */
.tc-system-main{
  width:100%;
  padding:34px 24px 54px;
  box-sizing:border-box;
}
.tc-system-main__inner{
  width:min(100%,1540px);
  max-width:1540px;
  margin:0 auto;
}
.tc-system-main__inner>.tc-panel,
.tc-system-main__inner>.tc-discovery{
  width:100%;
  max-width:none;
  margin-left:auto;
  margin-right:auto;
}

/* Account/Register should remain comfortably readable rather than 1540px text fields. */
.tc-system-page-typing-coach-account .tc-system-main__inner,
.tc-system-page-typing-coach-register .tc-system-main__inner{
  width:min(100%,1180px);
  max-width:1180px;
}

/* Ranking and discovery benefit from wider tables/cards. */
.tc-system-page-ranking .tc-ranking-panel{
  width:100%!important;
}
.tc-system-page-typing-lessons .tc-discovery{
  width:100%!important;
}

/* Remove theme-era page-title/search/sidebar artifacts completely. */
.tc-system-body .c-pageTitle,
.tc-system-body .p-breadcrumb,
.tc-system-body .l-sidebar,
.tc-system-body #sidebar,
.tc-system-body .widget-area,
.tc-system-body .search-form:not(.tc-discovery-filters),
.tc-system-body .wp-block-search{
  display:none!important;
}

.tc-system-footer{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:52px;
  padding:10px 20px;
  color:#8a95a1;
  font-size:11px;
  background:#fff;
  border-top:1px solid #e2e7ec;
}

/* ------------------------------------------------------------
   Page-specific top breathing room
   ------------------------------------------------------------ */
.tc-system-page-ranking .tc-ranking-panel,
.tc-system-page-my-typing-coach .tc-my-panel,
.tc-system-page-typing-coach-account .tc-account-panel,
.tc-system-page-typing-coach-register .tc-register-panel{
  margin-top:0!important;
}

/* My Typing Coach gets a little more visual width than before. */
.tc-system-page-my-typing-coach .tc-my-panel{
  width:min(100%,1320px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ------------------------------------------------------------
   Tablet/mobile navigation
   ------------------------------------------------------------ */
@media(max-width:1100px){
  .tc-system-header .tc-app-header__inner{
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .tc-system-nav{
    gap:3px!important;
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .tc-system-nav a{
    flex:0 0 auto;
    white-space:nowrap;
  }
  .tc-system-main{
    padding:26px 16px 44px;
  }
}

@media(max-width:782px){
  .admin-bar .tc-system-header{top:46px}
}

@media(max-width:700px){
  .tc-system-header{
    position:relative!important;
    top:auto!important;
  }
  .tc-system-header .tc-app-header__inner{
    gap:7px!important;
  }
  .tc-system-nav{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    overflow:visible!important;
  }
  .tc-system-nav a{
    width:100%;
    min-height:48px;
    display:flex!important;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:1px;
  }
  .tc-system-nav .tc-user-greeting{
    grid-column:1 / -1;
    justify-self:center;
    margin:3px 0 0;
  }
  .tc-system-nav .tc-system-logout{
    min-height:32px!important;
    grid-column:1 / -1;
    flex-direction:row!important;
  }
  .tc-system-main{
    padding:18px 10px 34px;
  }
}

/* ---- typing-coach-polish-v157 | assets/css/polish-v157.css ---- */
/* Typing Coach v1.57.0
   Launch-quality ranking threshold + My Typing Coach growth dashboard polish.
*/

/* ------------------------------------------------------------
   Ranking summary + small-sample pending state
   ------------------------------------------------------------ */
.tc-ranking-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:18px 0 16px;
}
.tc-ranking-summary-card{
  min-height:112px;
  padding:18px;
  border:1px solid #dbe4ed;
  border-top:5px solid #4c82b8;
  border-radius:15px;
  background:#fff;
}
.tc-ranking-summary-card span,
.tc-ranking-summary-card b{display:block}
.tc-ranking-summary-card span{
  color:#66798e;
  font-size:13px;
  font-weight:750;
}
.tc-ranking-summary-card b{
  margin-top:8px;
  color:#10233d;
  font-size:26px;
  line-height:1.15;
}
.tc-ranking-summary-card.is-wpm{
  border-top-color:#4c82b8;
  background:linear-gradient(180deg,#fff,#eef6fc);
}
.tc-ranking-summary-card.is-accuracy{
  border-top-color:#5c8f6f;
  background:linear-gradient(180deg,#fff,#eef8f1);
}
.tc-ranking-summary-card.is-participants{
  border-top-color:#bd6a86;
  background:linear-gradient(180deg,#fff,#fff2f6);
}
.tc-ranking-summary-card.is-rank{
  border-top-color:#c79a3b;
  background:linear-gradient(180deg,#fff,#fff7df);
}

.tc-ranking-pending{
  margin-top:12px;
  padding:24px 26px;
  border:1px solid #e5d099;
  border-left:6px solid #c79a3b;
  border-radius:15px;
  background:linear-gradient(135deg,#fff9e8,#fff);
}
.tc-ranking-pending strong{
  display:block;
  color:#76520d;
  font-size:19px;
}
.tc-ranking-pending p{
  margin:7px 0 0;
  color:#5f6e7d;
  line-height:1.7;
}

/* ------------------------------------------------------------
   My Typing Coach: next action + stronger semantic KPIs
   ------------------------------------------------------------ */
.tc-my-stat small{
  display:block;
  margin-top:5px;
  color:#6b7c8d;
  font-size:11px;
  line-height:1.4;
}
.tc-my-stat-wpm b{color:#285f8e!important}
.tc-my-stat-accuracy b{color:#356b4c!important}
.tc-my-stat-plays b{color:#8d4560!important}
.tc-my-stat-rank b{color:#815b12!important}

.tc-my-next-step{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  margin:28px 0 30px;
  padding:24px 26px;
  border:1px solid #d5e3ed;
  border-left:6px solid #4c82b8;
  border-radius:17px;
  background:
    radial-gradient(circle at 92% 20%,rgba(199,154,59,.10),transparent 32%),
    linear-gradient(135deg,#eef6fc,#fff 66%,#fffaf0);
}
.tc-my-next-step h3{
  margin:5px 0 5px!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  color:#10233d!important;
  font-size:24px!important;
}
.tc-my-next-step p{
  margin:0;
  color:#5f7286;
  line-height:1.65;
}
.tc-my-next-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.tc-my-lesson-link{
  color:#173a68!important;
  font-weight:800;
  text-decoration:none!important;
}
.tc-my-lesson-link:hover{text-decoration:underline!important}
.tc-my-recent-table th:nth-child(2),
.tc-my-recent-table td:nth-child(2){white-space:nowrap}

/* ------------------------------------------------------------
   Account communication / Mail Engage injection
   ------------------------------------------------------------ */
.tc-account-communication{
  border-left-color:#4c82b8!important;
  border-top:1px solid #ead8aa!important;
  background:
    radial-gradient(circle at 94% 18%,rgba(199,154,59,.10),transparent 26%),
    linear-gradient(135deg,#fff,#eef6fc)!important;
}
.tc-account-communication > :first-child{margin-top:0!important}
.tc-account-communication > :last-child{margin-bottom:0!important}
.tc-account-communication h3,
.tc-account-communication h4{
  color:#173a68!important;
}
.tc-account-communication a{
  color:#285f8e;
  font-weight:750;
}

/* ------------------------------------------------------------
   Responsive
   ------------------------------------------------------------ */
@media(max-width:900px){
  .tc-ranking-summary{grid-template-columns:1fr 1fr}
  .tc-my-next-step{grid-template-columns:1fr}
  .tc-my-next-actions{justify-content:flex-start}
}
@media(max-width:620px){
  .tc-ranking-summary{grid-template-columns:1fr}
  .tc-ranking-summary-card{min-height:92px}
  .tc-my-next-actions{display:grid;width:100%}
  .tc-my-next-actions .tc-linkbtn{width:100%;justify-content:center}
}

/* ---- typing-coach-polish-v158 | assets/css/polish-v158.css ---- */
/* Typing Coach v1.58.0
   Discovery density + private-page SEO-supporting visual polish.
*/

/* ------------------------------------------------------------
   タイピング教材を探す
   3 columns on normal desktop; 4 only on wide screens.
   This keeps Japanese titles/descriptions readable.
   ------------------------------------------------------------ */
@media (min-width:1050px) and (max-width:1679px){
  body.tc-system-page-typing-lessons .tc-lesson-card-grid,
  body.tc-discovery-system-page .tc-lesson-card-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:20px!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-visual,
  body.tc-discovery-system-page .tc-lesson-card-visual{
    min-height:205px!important;
    padding:19px 20px!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-visual-title,
  body.tc-discovery-system-page .tc-lesson-card-visual-title{
    font-size:22px!important;
    line-height:1.35!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-body,
  body.tc-discovery-system-page .tc-lesson-card-body{
    padding:16px!important;
  }
}

@media (min-width:1680px){
  body.tc-system-page-typing-lessons .tc-lesson-card-grid,
  body.tc-discovery-system-page .tc-lesson-card-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:18px!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-visual,
  body.tc-discovery-system-page .tc-lesson-card-visual{
    min-height:185px!important;
    padding:17px 18px!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-visual-title,
  body.tc-discovery-system-page .tc-lesson-card-visual-title{
    max-width:82%!important;
    font-size:19.5px!important;
    line-height:1.35!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-body,
  body.tc-discovery-system-page .tc-lesson-card-body{
    padding:15px!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-title,
  body.tc-discovery-system-page .tc-lesson-card-title{
    font-size:18px!important;
  }

  body.tc-system-page-typing-lessons .tc-lesson-card-description,
  body.tc-discovery-system-page .tc-lesson-card-description{
    font-size:13.5px!important;
  }
}

@media (min-width:700px) and (max-width:1049px){
  body.tc-system-page-typing-lessons .tc-lesson-card-grid,
  body.tc-discovery-system-page .tc-lesson-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:699px){
  body.tc-system-page-typing-lessons .tc-lesson-card-grid,
  body.tc-discovery-system-page .tc-lesson-card-grid{
    grid-template-columns:1fr!important;
  }
}

/* The TOP preview still uses the theme footer. Remove footer search widgets
   specifically on the Typing Coach TOP without affecting the rest of site. */
body.tc-home-system-page footer form,
body.tc-home-system-page .l-footer form,
body.tc-home-system-page footer .wp-block-search,
body.tc-home-system-page .l-footer .wp-block-search{
  display:none!important;
}

/* ---- typing-coach-polish-v159 | assets/css/polish-v159.css ---- */
/* Typing Coach v1.59.0
   Unified TOP shell + adaptive TOP cards.
*/

/* ------------------------------------------------------------
   TOP now uses the same standalone product shell as all system pages.
   ------------------------------------------------------------ */
.tc-home-template-main.tc-home-template-standalone{
  width:100%;
  max-width:none;
  margin:0;
  padding:34px 28px 50px;
  background:
    linear-gradient(180deg,#f7f5ef 0%,#f8fafc 28%,#f8f6f0 72%,#f7f5ef 100%)!important;
}
.tc-home-template-standalone>.tc-home{
  width:min(100%,1540px)!important;
  max-width:1540px!important;
  margin:0 auto!important;
}

/* TOP logo has no separate "Home" menu tab; logo itself is the home affordance. */
.tc-system-page-typing-coach-home .tc-app-logo{
  outline:1px solid rgba(199,154,59,.28);
  outline-offset:5px;
  border-radius:3px;
}

/* ------------------------------------------------------------
   Adaptive card layout.
   1 = one featured horizontal-ish card
   2 = two equal cards
   3 = three equal cards
   4+ = four across on wide screens, 3 on normal desktop
   ------------------------------------------------------------ */
.tc-home .tc-top-practice-grid{
  width:100%!important;
  display:grid!important;
  align-items:stretch!important;
}

@media(min-width:1101px){
  .tc-home .tc-top-practice-grid.tc-card-count-1{
    grid-template-columns:minmax(0,760px)!important;
  }
  .tc-home .tc-top-practice-grid.tc-card-count-1 .tc-top-practice-card{
    max-width:760px!important;
    display:grid!important;
    grid-template-columns:minmax(280px,42%) minmax(0,1fr)!important;
  }
  .tc-home .tc-top-practice-grid.tc-card-count-1 .tc-top-practice-visual{
    min-height:250px!important;
    height:100%!important;
  }
  .tc-home .tc-top-practice-grid.tc-card-count-1 .tc-top-practice-body{
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .tc-home .tc-top-practice-grid.tc-card-count-2{
    grid-template-columns:repeat(2,minmax(0,430px))!important;
  }
  .tc-home .tc-top-practice-grid.tc-card-count-3{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .tc-home .tc-top-practice-grid.tc-card-count-4{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .tc-home .tc-top-practice-grid.tc-card-count-2 .tc-top-practice-card,
  .tc-home .tc-top-practice-grid.tc-card-count-3 .tc-top-practice-card,
  .tc-home .tc-top-practice-grid.tc-card-count-4 .tc-top-practice-card{
    max-width:none!important;
  }
}

@media(min-width:1550px){
  .tc-home .tc-top-practice-grid.tc-card-count-4{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}

@media(min-width:701px) and (max-width:1100px){
  .tc-home .tc-top-practice-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tc-home .tc-top-practice-grid.tc-card-count-1{
    grid-template-columns:minmax(0,620px)!important;
  }
}

@media(max-width:700px){
  .tc-home .tc-top-practice-grid,
  .tc-home .tc-top-practice-grid.tc-card-count-1,
  .tc-home .tc-top-practice-grid.tc-card-count-2,
  .tc-home .tc-top-practice-grid.tc-card-count-3,
  .tc-home .tc-top-practice-grid.tc-card-count-4{
    grid-template-columns:1fr!important;
  }
  .tc-home .tc-top-practice-grid.tc-card-count-1 .tc-top-practice-card{
    display:block!important;
  }
  .tc-home-template-main.tc-home-template-standalone{
    padding:18px 10px 34px;
  }
}

/* Word practice visually receives the blue/pink learning-growth family
   while preserving the existing semantic card rotation. */
.tc-shell[data-lesson-type="word"] .tc-chip-gold{
  background:#fff7df!important;
  border-color:#e7cd84!important;
}

/* ---- typing-coach-polish-v160 | assets/css/polish-v160.css ---- */
/* Typing Coach v1.60.0
   Ultra-beginner 五十音 / alphabet lessons.
*/

/* Beginner categories use a soft blue-green learning accent while preserving
   the global navy/gold brand language. */
.tc-shell[data-lesson-type="gojuon"] .tc-lesson-titlebar{
  background:linear-gradient(90deg,#fff,#f1f8f4)!important;
}
.tc-shell[data-lesson-type="gojuon"] .tc-jp{
  letter-spacing:.08em!important;
}
.tc-shell[data-lesson-type="gojuon"] .tc-chip-gold{
  background:#eef8f1!important;
  border-color:#c9e1d1!important;
  color:#356b4c!important;
}

/* Alphabet lesson: display letter is the visual target; lower-case typing hint
   remains available through the normal target line without introducing Shift. */
.tc-shell[data-lesson-type="english"] .tc-jp{
  letter-spacing:.08em!important;
}

/* 超初心者 cards get a calm green badge treatment in discovery/TOP. */
.tc-card-badge[data-difficulty="超初心者"]{
  background:#eef8f1!important;
  color:#356b4c!important;
  border-color:#cce5d4!important;
}

/* ---- typing-coach-polish-v161 | assets/css/polish-v161.css ---- */
/* Typing Coach v1.61.0
   Grouped beginner sequence lessons.
*/

/* 五十音 rows such as あいうえお / かきくけこ should read as one visual unit. */
.tc-shell[data-lesson-type="gojuon"] .tc-jp{
  letter-spacing:.16em!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.tc-shell[data-lesson-type="gojuon"] .tc-kana{
  letter-spacing:.10em!important;
}
.tc-shell[data-lesson-type="gojuon"] .tc-progress i{
  background:linear-gradient(90deg,#4c82b8,#5c8f6f,#c79a3b)!important;
}

/* Alphabet chunks ABCDEFG / HIJKLMN / OPQRSTU / VWXYZ. */
.tc-shell[data-lesson-type="english"] .tc-jp{
  letter-spacing:.18em!important;
  word-break:keep-all!important;
}

/* ---- typing-coach-polish-v162 | assets/css/polish-v162.css ---- */
/* Typing Coach v1.62.0
   Category UX + unified HOME navigation.
*/

/* Website HOME is deliberately separate from the Typing Coach logo:
   logo = Typing Coach Home / HOME = website root. */
.tc-system-site-home{
  border:1px solid rgba(124,170,211,.28)!important;
}
.tc-system-site-home .tc-nav-icon{
  color:#82b5df!important;
}

/* Five discovery controls stay balanced as categories are added. */
.tc-discovery-filter-grid{
  grid-template-columns:repeat(auto-fit,minmax(175px,1fr))!important;
}
.tc-discovery-filter-grid optgroup{
  font-weight:800;
  color:#173a68;
}

/* Slightly distinguish taxonomy filtering from raw theme text filtering. */
.tc-discovery-filter-grid select[name="tc_category"]{
  border-color:#bfd5e7!important;
  background:linear-gradient(180deg,#fff,#f5f9fd)!important;
}

/* Category mode box in WordPress is intentionally compact. */
#tc_lesson_category_mode .inside{
  margin-top:8px;
}

/* v1.86.13: discovery classification order and sync note. */
.tc-discovery-classification-note{
  margin:10px 2px 0;
  color:#5b7288;
  font-size:13px;
  line-height:1.6;
}
.tc-discovery-filter-grid--classification label>span{
  font-weight:800;
}

/* ---- typing-coach-polish-v163 | assets/css/polish-v163.css ---- */
/* Typing Coach v1.63.0
   Shared header label cleanup + desktop no-wrap navigation.
*/

/* Keep desktop navigation labels on one line. */
@media(min-width:701px){
  .tc-app-header__inner{
    flex-wrap:nowrap!important;
  }

  .tc-app-logo{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }

  .tc-app-nav,
  .tc-system-nav{
    flex:1 1 auto!important;
    min-width:0!important;
    flex-wrap:nowrap!important;
    white-space:nowrap!important;
  }

  .tc-app-nav a,
  .tc-system-nav a,
  .tc-user-greeting{
    flex:0 0 auto!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
}

/* Normal notebook / compact desktop widths:
   preserve one line by reducing spacing, not by wrapping labels. */
@media(min-width:1101px) and (max-width:1399px){
  .tc-app-header__inner{
    gap:12px!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }

  .tc-app-nav,
  .tc-system-nav{
    gap:2px!important;
  }

  .tc-app-nav a,
  .tc-system-nav a{
    padding-left:8px!important;
    padding-right:8px!important;
    font-size:12px!important;
  }

  .tc-user-greeting{
    margin-left:3px!important;
    font-size:11px!important;
  }

  .tc-app-logo__wordmark strong{
    font-size:21px!important;
  }

  .tc-app-logo__wordmark small{
    font-size:8px!important;
    letter-spacing:.16em!important;
  }
}

/* Narrow desktop / large tablet landscape:
   retain a single horizontal row with controlled horizontal overflow.
   This is preferable to splitting Japanese labels over two lines. */
@media(min-width:701px) and (max-width:1100px){
  .tc-app-header__inner{
    align-items:center!important;
  }

  .tc-app-nav,
  .tc-system-nav{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    padding-bottom:2px;
  }

  .tc-app-nav a,
  .tc-system-nav a{
    min-height:42px;
    padding-left:8px!important;
    padding-right:8px!important;
    font-size:11.5px!important;
  }

  .tc-user-greeting{
    font-size:10.5px!important;
  }
}

/* Mobile continues to use the intentional 2-column navigation. */
@media(max-width:700px){
  .tc-app-nav a,
  .tc-system-nav a{
    white-space:normal;
    word-break:keep-all;
  }
}

/* ---- typing-coach-polish-v164 | assets/css/polish-v164.css ---- */
/* Typing Coach v1.64.0
   Header alignment: brand / primary navigation / user utility.
*/

@media(min-width:1101px){
  .tc-app-header__inner{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:0!important;
    width:min(100%,1620px)!important;
  }

  .tc-app-logo{
    flex:0 0 auto!important;
    margin-right:34px!important;
  }

  .tc-header-nav-zone{
    display:flex!important;
    align-items:center!important;
    flex:1 1 auto!important;
    min-width:0!important;
    gap:18px!important;
  }

  .tc-primary-nav{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex:0 1 auto!important;
    min-width:0!important;
    margin:0!important;
  }

  .tc-header-user-zone{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:10px!important;
    margin-left:auto!important;
    padding-left:18px!important;
    border-left:1px solid rgba(255,255,255,.14);
    white-space:nowrap!important;
    flex:0 0 auto!important;
  }

  .tc-header-user-zone .tc-user-greeting,
  .tc-header-user-zone .tc-system-logout,
  .tc-header-user-zone .tc-system-login{
    white-space:nowrap!important;
    flex:0 0 auto!important;
  }

  .tc-header-user-zone .tc-system-logout{
    margin-left:0!important;
  }
}

@media(min-width:1250px) and (max-width:1450px){
  .tc-app-logo{margin-right:24px!important}
  .tc-header-nav-zone{gap:12px!important}
  .tc-primary-nav{gap:1px!important}
  .tc-primary-nav a{
    padding-left:7px!important;
    padding-right:7px!important;
    font-size:11.5px!important;
  }
  .tc-header-user-zone{
    gap:7px!important;
    padding-left:12px!important;
  }
  .tc-header-user-zone .tc-user-greeting,
  .tc-header-user-zone .tc-system-logout{
    font-size:10.5px!important;
  }
}

@media(min-width:1101px) and (max-width:1249px){
  .tc-app-logo{margin-right:18px!important}
  .tc-header-nav-zone{gap:8px!important}
  .tc-primary-nav{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
    padding-bottom:2px;
  }
  .tc-primary-nav a{
    padding-left:6px!important;
    padding-right:6px!important;
    font-size:11px!important;
  }
  .tc-header-user-zone{
    gap:5px!important;
    padding-left:9px!important;
  }
  .tc-header-user-zone .tc-user-greeting{
    max-width:150px;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:10px!important;
  }
  .tc-header-user-zone .tc-system-logout{
    font-size:10px!important;
  }
}

@media(min-width:701px) and (max-width:1100px){
  .tc-app-header__inner{
    display:flex!important;
    align-items:center!important;
    gap:0!important;
  }
  .tc-app-logo{
    flex:0 0 auto!important;
    margin-right:14px!important;
  }
  .tc-header-nav-zone{
    display:flex!important;
    align-items:center!important;
    min-width:0!important;
    flex:1 1 auto!important;
    gap:8px!important;
  }
  .tc-primary-nav{
    display:flex!important;
    flex:1 1 auto!important;
    min-width:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    flex-wrap:nowrap!important;
  }
  .tc-header-user-zone{
    display:flex!important;
    align-items:center!important;
    flex:0 0 auto!important;
    gap:5px!important;
    margin-left:auto!important;
    padding-left:7px!important;
    white-space:nowrap!important;
  }
  .tc-header-user-zone .tc-user-greeting{
    display:none!important;
  }
}

@media(max-width:700px){
  .tc-header-nav-zone{
    display:block!important;
    width:100%!important;
  }
  .tc-primary-nav{
    width:100%!important;
  }
  .tc-header-user-zone{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    margin-top:6px!important;
    padding-top:6px!important;
    border-top:1px solid rgba(255,255,255,.12);
  }
  .tc-header-user-zone .tc-user-greeting{
    display:none!important;
  }
  .tc-header-user-zone .tc-system-logout,
  .tc-header-user-zone .tc-system-login{
    min-height:34px!important;
    width:auto!important;
    display:inline-flex!important;
    flex-direction:row!important;
    padding:6px 12px!important;
  }
}

/* ---- typing-coach-polish-v165 | assets/css/polish-v165.css ---- */
/* Typing Coach v1.65.0
   Content coaching -> action loop.
*/

.tc-content-coaching{
  margin-top:24px;
  padding:26px;
  border:1px solid #d8e3e9;
  border-top:5px solid #5c8f6f;
  border-radius:18px;
  background:
    radial-gradient(circle at 94% 10%,rgba(199,154,59,.10),transparent 26%),
    linear-gradient(135deg,#f0f8f3,#fff 54%,#fff9ed);
}
.tc-content-coaching-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.tc-content-coaching-head h3{margin:5px 0 0}
.tc-content-theme-badge{
  flex:0 0 auto;
  padding:7px 11px;
  border:1px solid #d8c27a;
  border-radius:999px;
  background:#fff7df;
  color:#76520d;
  font-size:12px;
  font-weight:850;
}
.tc-content-coach-insight{
  margin:18px 0;
  color:#52677b;
  font-size:16px;
  line-height:1.75;
}
.tc-content-coach-question-box{
  padding:18px 20px;
  border-left:5px solid #4c82b8;
  border-radius:13px;
  background:#eef6fc;
}
.tc-content-coach-question-box span{
  display:block;
  margin-bottom:6px;
  color:#3d6e99;
  font-size:12px;
  font-weight:850;
}
.tc-content-coach-question-box strong{
  display:block;
  color:#10233d;
  font-size:20px;
  line-height:1.55;
}
.tc-content-action-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}
.tc-content-action-choice{
  position:relative;
  min-height:132px;
  padding:16px;
  border:1px solid #d6e1e8;
  border-radius:14px;
  background:#fff;
  color:#10233d;
  text-align:left;
  cursor:pointer;
}
.tc-content-action-choice:hover,
.tc-content-action-choice.is-selected{
  border-color:#5c8f6f;
  box-shadow:0 8px 22px rgba(37,91,62,.10);
}
.tc-content-action-choice.is-selected{
  outline:3px solid rgba(92,143,111,.16);
  background:#f3faf5;
}
.tc-content-action-choice>span{
  display:block;
  margin-bottom:7px;
  color:#5c8f6f;
  font-size:11px;
  font-weight:900;
}
.tc-content-action-choice strong,
.tc-content-action-choice small{display:block}
.tc-content-action-choice strong{font-size:16px;line-height:1.45}
.tc-content-action-choice small{margin-top:7px;color:#687b8d;line-height:1.5}
.tc-content-action-choice em{
  position:absolute;
  top:9px;
  right:9px;
  padding:3px 6px;
  border-radius:999px;
  background:#fff3cf;
  color:#8a620c;
  font-size:9px;
  font-style:normal;
  font-weight:900;
}
.tc-content-action-memo{
  display:block;
  margin-top:14px;
}
.tc-content-action-memo>span{
  display:block;
  margin-bottom:6px;
  font-weight:800;
}
.tc-content-action-memo textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #ccd9e2;
  border-radius:11px;
  padding:11px 12px;
  background:#fff;
  font:inherit;
}
.tc-content-action-save-row{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:12px;
}
.tc-content-action-save-row small{color:#607487}
.tc-growth-path{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid #dbe5df;
}
.tc-growth-path h4{margin:4px 0 12px;font-size:18px}
.tc-growth-path-items{display:grid;gap:9px}
.tc-growth-path-item{
  display:block;
  padding:13px 15px;
  border:1px solid #d7e1e8;
  border-radius:12px;
  background:#fff;
  color:#173a68!important;
  text-decoration:none!important;
}
.tc-growth-path-item strong,
.tc-growth-path-item small{display:block}
.tc-growth-path-item small{margin-top:3px;color:#687b8d}

/* My Typing Coach — saved action */
.tc-my-coach-action{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:24px 0 28px;
  padding:22px 24px;
  border:1px solid #d6e5db;
  border-left:6px solid #5c8f6f;
  border-radius:16px;
  background:linear-gradient(135deg,#eff8f2,#fff);
}
.tc-my-coach-action h3{margin:4px 0!important}
.tc-my-action-theme{margin:3px 0;color:#4d8060;font-size:12px;font-weight:850}
.tc-my-coach-action>div>strong{display:block;font-size:19px;color:#10233d}
.tc-my-action-memo{margin:7px 0 0;color:#65788b}
.tc-my-action-status{flex:0 0 auto;text-align:center}
.tc-my-action-status small{display:block;margin-top:5px;color:#708192}
.tc-action-done{
  display:inline-block;
  padding:8px 12px;
  border-radius:999px;
  background:#e8f6ed;
  color:#356b4c;
  font-weight:900;
}
.tc-my-coach-action.is-done{opacity:.82}

@media(max-width:850px){
  .tc-content-action-options{grid-template-columns:1fr}
  .tc-content-action-choice{min-height:auto}
  .tc-content-coaching-head,.tc-my-coach-action{display:block}
  .tc-content-theme-badge{display:inline-block;margin-top:10px}
  .tc-my-action-status{margin-top:14px;text-align:left}
}

/* ---- typing-coach-polish-v166 | assets/css/polish-v166.css ---- */
/* Typing Coach v1.66.0 — self-service history deletion + retention visibility */
.tc-my-history-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin:30px 0 12px;
}
.tc-my-history-heading .tc-my-recent-heading{margin:0 0 5px}
.tc-my-history-heading p{margin:0;color:#5d6978;line-height:1.7}
.tc-my-history-count{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  padding:7px 12px;
  border:1px solid #dbe2ea;
  border-radius:999px;
  background:#f8fafc;
  color:#334155;
  font-size:.86rem;
  font-weight:800;
}
.tc-my-recent-table .tc-history-ranking{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  padding:4px 8px;
  border:1px solid #d9e0e7;
  border-radius:999px;
  background:#f5f7f9;
  color:#667281;
  font-size:.78rem;
  font-weight:800;
}
.tc-my-recent-table .tc-history-ranking.is-eligible{
  border-color:#ead7a6;
  background:#fff8e7;
  color:#815b12;
}
.tc-history-action{white-space:nowrap}
.tc-history-delete-form{margin:0}
.tc-history-delete-btn{
  appearance:none;
  border:1px solid #e5b8bd;
  border-radius:8px;
  background:#fff8f8;
  color:#a23a46;
  padding:7px 10px;
  font:inherit;
  font-size:.82rem;
  font-weight:800;
  line-height:1;
  cursor:pointer;
}
.tc-history-delete-btn:hover{background:#fff0f1;border-color:#d98e98}
.tc-history-delete-btn:focus-visible{outline:3px solid rgba(162,58,70,.22);outline-offset:2px}
.tc-history-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:18px 0 0;
}
.tc-history-pagination span{color:#5d6978;font-size:.9rem;font-weight:700}
.tc-history-pagination .tc-linkbtn{min-width:0;padding:9px 14px}
.tc-history-retention-note{
  margin:22px 0 0;
  padding:16px 18px;
  border:1px solid #d7e5dc;
  border-left:4px solid #5c8f6f;
  border-radius:12px;
  background:#f5faf7;
  color:#43584b;
}
.tc-history-retention-note strong{display:block;margin-bottom:4px;color:#315941}
.tc-history-retention-note p{margin:0;line-height:1.72}
.tc-account-danger small{color:inherit}

@media (max-width:780px){
  .tc-my-history-heading{align-items:flex-start;flex-direction:column;gap:8px}
  .tc-my-recent-table{min-width:900px}
  .tc-history-pagination{justify-content:space-between;gap:8px}
  .tc-history-pagination span{font-size:.82rem}
}

/* ---- typing-coach-polish-v167 | assets/css/polish-v167.css ---- */
/* Typing Coach v1.67.0 — operational-zero account / email / groups / data tools */
.tc-account-automation{display:contents}
.tc-account-automation .tc-notice{margin:0 0 18px;padding:13px 15px;border-radius:10px;border:1px solid #cddae7;background:#f6f9fc;color:#23364d;font-weight:700}
.tc-account-automation .tc-notice.is-success{border-color:#cfe2d5;background:#f4faf6;color:#315941}
.tc-account-automation .tc-notice.is-error{border-color:#e8c6ca;background:#fff7f7;color:#8d3540}
.tc-account-automation .tc-ops-form{display:grid;gap:12px}
.tc-account-automation .tc-ops-form label{display:grid;gap:6px}
.tc-account-automation .tc-ops-form label>span{font-weight:800;color:#26384c}
.tc-account-automation input[type="text"],
.tc-account-automation input[type="email"],
.tc-account-automation input[type="password"],
.tc-account-automation select{width:100%;min-height:44px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;padding:9px 11px;color:#1d2d40;font:inherit}
.tc-account-automation .tc-inline-notice{margin:10px 0 14px;padding:11px 13px;border-radius:9px;background:#fff8e8;border:1px solid #ead8a9;color:#725719}
.tc-inline-form{display:inline-flex;align-items:center;gap:8px;margin:8px 0}
.tc-text-button{border:0;background:transparent;padding:5px 0;color:#2f5f8f;text-decoration:underline;font:inherit;font-weight:700;cursor:pointer}
.tc-text-button:hover{color:#183d65}
.tc-group-actions-grid,.tc-data-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.tc-group-actions-grid>.tc-ops-form,.tc-data-tool-grid>.tc-ops-form{padding:16px;border:1px solid #dce3ea;border-radius:12px;background:#fbfcfd}
.tc-group-actions-grid h4{margin:0 0 4px;color:#152b46;font-size:1rem}
.tc-group-active-form{margin:14px 0 20px;padding:14px;border-radius:11px;background:#f6f9fc;border:1px solid #dbe3ec}
.tc-group-card{margin:14px 0;padding:17px;border:1px solid #d9e1e9;border-radius:14px;background:#fff;box-shadow:0 4px 18px rgba(18,39,63,.04)}
.tc-group-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.tc-group-card-head strong{display:block;color:#102b4a;font-size:1.04rem}
.tc-group-card-head small{display:block;margin-top:3px;color:#697789}
.tc-group-card-head>span{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f1f5f9;color:#405166;font-size:.8rem;font-weight:800}
.tc-invite-box{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;margin:10px 0;padding:12px;border-radius:10px;background:#fff9eb;border:1px solid #ead9ac}
.tc-invite-box>span{color:#725719;font-weight:700}
.tc-invite-box>strong{letter-spacing:.09em;color:#49370f}
.tc-invite-box input{min-width:0!important;min-height:38px!important;font-size:.82rem}
.tc-group-member-list{margin:14px 0;border-top:1px solid #e6ebf0;padding-top:10px}
.tc-group-member-list h5{margin:0 0 6px;color:#34465a}
.tc-group-member-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #f0f2f5}
.tc-transfer-form{margin-top:14px;padding-top:13px;border-top:1px solid #e6ebf0}
.tc-group-delete-form{margin-top:14px;padding:14px;border-radius:10px;background:#fff8f8;border:1px solid #efd2d5}
.tc-danger-btn-small{width:auto!important;min-height:40px;padding:9px 13px!important;font-size:.88rem!important}
.tc-data-tool-grid strong{display:block;color:#17324f;margin-bottom:5px}
.tc-data-tool-grid p{margin:0 0 10px;color:#5f6f80;line-height:1.65}
.tc-danger-soft{background:#fffafa!important;border-color:#ead5d7!important}
.tc-account-lifecycle{border-left:4px solid #c8a95a!important;background:#fffdf7!important}
.tc-account-lifecycle strong{color:#6d5311}

@media (max-width:780px){
  .tc-group-actions-grid,.tc-data-tool-grid{grid-template-columns:1fr}
  .tc-invite-box{grid-template-columns:1fr 1fr}
  .tc-invite-box input{grid-column:1/-1}
  .tc-group-card-head{align-items:center}
}

/* ---- typing-coach-polish-v168 | assets/css/polish-v168.css ---- */
/* Typing Coach v1.68.0 — continue, care and grow */

/* ------------------------------------------------------------
   Header: make login / registration unmistakable
   ------------------------------------------------------------ */
.tc-header-login-cta,.tc-header-register-cta{
  min-height:42px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:7px!important;border-radius:10px!important;padding:8px 15px!important;text-decoration:none!important;
  font-weight:900!important;letter-spacing:.01em;line-height:1!important;white-space:nowrap!important
}
.tc-header-login-cta{
  color:#fff!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(224,179,78,.72)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)
}
.tc-header-login-cta:hover{background:rgba(255,255,255,.13)!important;border-color:#e3b34c!important}
.tc-login-user-icon{color:#e2b34e;font-size:17px;line-height:1}
.tc-header-register-cta{
  color:#0b2344!important;background:linear-gradient(135deg,#f2c65f,#dca936)!important;border:1px solid #f3d17d!important;
  box-shadow:0 5px 15px rgba(206,156,42,.20)
}
.tc-header-register-cta:hover{filter:brightness(1.05);transform:translateY(-1px)}
.tc-header-register-cta.is-current{box-shadow:0 0 0 2px rgba(255,255,255,.22),0 5px 15px rgba(206,156,42,.20)}

/* ------------------------------------------------------------
   Coach Rank shared visual language
   ------------------------------------------------------------ */
.tc-coach-rank-progress{height:9px;border-radius:999px;background:#e8edf2;overflow:hidden}
.tc-coach-rank-progress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c88d19,#edc966);transition:width .4s ease}
.tc-coach-rank-mini{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;border:1px solid #d7e0e9;background:#f7f9fb;color:#17324f;font-size:.75rem;font-weight:900;white-space:nowrap}
.tc-coach-rank-mini small{font-size:.68rem;color:#6a7886}
.tc-rank-starter{--tc-rank-accent:#8b98a5}.tc-rank-learner{--tc-rank-accent:#4f82b4}.tc-rank-builder{--tc-rank-accent:#4f8d63}
.tc-rank-steady{--tc-rank-accent:#5c7899}.tc-rank-flow{--tc-rank-accent:#8b65a9}.tc-rank-grow{--tc-rank-accent:#b67a3a}
.tc-rank-advanced{--tc-rank-accent:#c08c26}.tc-rank-expert{--tc-rank-accent:#cc8a33}.tc-rank-master{--tc-rank-accent:#b74f5f}.tc-rank-grand-master{--tc-rank-accent:#9a7620}
.tc-coach-rank-mini[class*="tc-rank-"]{border-color:color-mix(in srgb,var(--tc-rank-accent,#c08c26) 36%,#dce3e9);box-shadow:inset 3px 0 0 var(--tc-rank-accent,#c08c26)}

/* Result Coach Rank */
.tc-result-coach-rank{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(220px,.45fr);align-items:center;gap:18px;margin:18px 0 22px;padding:18px 20px;border:1px solid #dcc791;border-radius:17px;background:linear-gradient(135deg,#fffdf7,#f8fbfe);box-shadow:0 8px 28px rgba(15,38,67,.06)}
.tc-coach-rank-emblem{width:62px;height:68px;display:grid;place-items:center;clip-path:polygon(50% 0,93% 15%,88% 69%,50% 100%,12% 69%,7% 15%);background:linear-gradient(145deg,#e7ba52,#a97716);padding:3px}
.tc-coach-rank-emblem span{width:100%;height:100%;display:grid;place-items:center;clip-path:inherit;background:#0d2b50;color:#f0c963;font:900 20px Georgia,serif}
.tc-result-coach-rank-main{min-width:0}.tc-result-coach-rank-main .tc-kicker{margin-bottom:3px}
.tc-result-coach-rank-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.tc-result-coach-rank-title strong{font-size:1.45rem;color:#102c4d;letter-spacing:.04em}.tc-result-coach-rank-title b{font-size:.92rem;color:#9a6d12}
.tc-result-coach-rank-main p{margin:5px 0 10px;color:#5f6f81;line-height:1.55;font-size:.88rem}
.tc-result-coach-rank-next{display:grid;gap:4px;padding-left:18px;border-left:1px solid #e1e6eb}.tc-result-coach-rank-next span{font-size:.72rem;font-weight:800;color:#778595}.tc-result-coach-rank-next strong{color:#17324f;font-size:1.05rem}.tc-result-coach-rank-next small{color:#7a6a45;line-height:1.5}

/* My Typing Coach Coach Rank */
.tc-my-coach-rank{display:grid;grid-template-columns:auto minmax(0,.85fr) minmax(330px,1.15fr);align-items:center;gap:24px;margin:20px 0 22px;padding:24px;border-radius:20px;background:linear-gradient(135deg,#0c294c 0%,#12385e 68%,#1c4368 100%);color:#fff;border:1px solid rgba(229,186,84,.75);box-shadow:0 14px 40px rgba(7,31,59,.16)}
.tc-my-rank-emblem{width:92px;height:104px;display:flex;align-items:center;justify-content:center;flex-direction:column;clip-path:polygon(50% 0,93% 14%,88% 68%,50% 100%,12% 68%,7% 14%);background:linear-gradient(145deg,#efc966,#ae7a19);color:#0b2748}.tc-my-rank-emblem span{font:900 28px Georgia,serif}.tc-my-rank-emblem small{font-size:.55rem;font-weight:900;letter-spacing:.08em}
.tc-my-rank-main .tc-kicker{color:#efc75d}.tc-my-rank-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.tc-my-rank-title h3{margin:3px 0 0;color:#fff;font-size:1.8rem;letter-spacing:.04em}.tc-my-rank-title strong{color:#efc75d}.tc-my-rank-main p{margin:5px 0 12px;color:#d7e3ee}
.tc-my-coach-rank .tc-coach-rank-progress{background:rgba(255,255,255,.15)}
.tc-my-rank-components{display:grid;gap:10px}.tc-my-rank-components>div{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center}.tc-my-rank-components span{font-weight:800;color:#e5edf5}.tc-my-rank-components b{font-size:.8rem;color:#f2ce75}.tc-my-rank-components i{grid-column:1/-1;height:7px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden}.tc-my-rank-components em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e7b341,#f2d787)}
.tc-my-daily-coaching{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin:18px 0;padding:19px 21px;border:1px solid #cdddec;border-radius:16px;background:#f7fbff}
.tc-my-daily-coach-mark{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:#0e3157;color:#efc65d;font:900 16px Georgia,serif}.tc-my-daily-coach-copy h3{margin:2px 0 4px;color:#17324f}.tc-my-daily-coach-copy strong{display:block;color:#1b4d73}.tc-my-daily-coach-copy p{margin:5px 0 0;color:#607184;line-height:1.6}.tc-my-daily-coach-focus{max-width:240px;padding:12px 15px;border-radius:12px;background:#fff;border:1px solid #dbe5ee}.tc-my-daily-coach-focus span{display:block;font-size:.7rem;color:#788899;font-weight:800}.tc-my-daily-coach-focus b{display:block;margin-top:3px;color:#a27217}

/* Coach Rank ranking */
.tc-coach-rank-leaderboard{margin-top:28px;padding-top:26px;border-top:1px solid #dce3e9}.tc-coach-rank-ranking-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.tc-coach-rank-ranking-head h3{margin:4px 0 5px;color:#112e4d;font-size:1.45rem}.tc-coach-rank-ranking-head p{margin:0;color:#667587}.tc-coach-rank-you{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:baseline;padding:12px 15px;border-radius:13px;background:#102f53;color:#fff}.tc-coach-rank-you span{grid-column:1/-1;font-size:.68rem;color:#dce8f2;font-weight:800}.tc-coach-rank-you strong{color:#efc65d}.tc-coach-rank-you b{font-size:.8rem}.tc-coach-rank-formula{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 16px}.tc-coach-rank-formula span{padding:7px 10px;border-radius:999px;background:#f5f8fb;border:1px solid #dce4eb;color:#526477;font-size:.76rem;font-weight:800}.tc-coach-rank-formula b{color:#a36f11}.tc-coach-rank-table .is-me{background:#fff9e9}

/* ------------------------------------------------------------
   For Groups: administrator-focused dashboard
   ------------------------------------------------------------ */
.tc-groups-hero{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px;margin:2px 0 14px;padding:20px;border-radius:17px;background:linear-gradient(135deg,#0d2c50,#153d64);color:#fff;border:1px solid #b98d32}.tc-groups-hero-mark{width:64px;height:70px;display:grid;place-items:center;clip-path:polygon(50% 0,92% 14%,88% 68%,50% 100%,12% 68%,8% 14%);background:#e1b54f;color:#0c294a;font:900 20px Georgia,serif}.tc-groups-hero .tc-kicker{color:#efc75d}.tc-groups-hero h3{margin:2px 0 5px;color:#fff;font-size:1.35rem}.tc-groups-hero p{margin:0;color:#d8e5ef;line-height:1.65}
.tc-groups-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px}.tc-groups-benefits>div{padding:13px;border:1px solid #dce4eb;border-radius:12px;background:#fbfcfd}.tc-groups-benefits b{display:block;color:#193a5a}.tc-groups-benefits span{display:block;margin-top:3px;color:#6c7b89;font-size:.78rem}
.tc-group-dashboard-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:12px 0}.tc-group-dashboard-metrics>div{padding:12px;border-radius:11px;background:#f5f8fb;border:1px solid #dfe7ed}.tc-group-dashboard-metrics span{display:block;color:#718090;font-size:.7rem;font-weight:800}.tc-group-dashboard-metrics b{display:inline-block;margin-top:3px;color:#173451;font-size:1.2rem}.tc-group-dashboard-metrics small{margin-left:3px;color:#718090}
.tc-group-insight{margin:10px 0 13px;padding:12px 14px;border-left:4px solid #90a4b7;border-radius:8px;background:#f7f9fb}.tc-group-insight.is-ready{border-left-color:#c69a39;background:#fffaf0}.tc-group-insight strong{display:block;color:#24415d}.tc-group-insight span{display:block;margin-top:3px;color:#6a7887;font-size:.82rem}.tc-group-insight ul{margin:7px 0 0;padding-left:18px;color:#536475;font-size:.82rem}
.tc-group-admin-actions{display:flex;justify-content:flex-end;margin:8px 0}.tc-group-overview-table{margin:14px 0 18px}.tc-group-overview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px}.tc-group-overview-heading h5{margin:0;color:#26415a}.tc-group-overview-heading small{color:#81909e}.tc-group-overview-table .tc-table{font-size:.82rem}.tc-group-activity-label{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef5f0;color:#3f6b50;font-size:.7rem;font-weight:800}

/* ------------------------------------------------------------
   Healthy-use rest prompt after 10 consecutive sessions
   ------------------------------------------------------------ */
body.tc-rest-prompt-open{overflow:hidden}.tc-rest-prompt[hidden]{display:none!important}.tc-rest-prompt{position:fixed;inset:0;z-index:1000000;display:grid;place-items:center;padding:18px}.tc-rest-prompt-backdrop{position:absolute;inset:0;background:rgba(5,24,46,.72);backdrop-filter:blur(3px)}.tc-rest-prompt-dialog{position:relative;width:min(100%,610px);padding:34px 34px 28px;border-radius:24px;background:linear-gradient(180deg,#fffdf8,#fff);border:1px solid #dfc37a;box-shadow:0 28px 80px rgba(3,22,44,.32);text-align:center;color:#15314f}.tc-rest-prompt-close{position:absolute;right:15px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:#f1f4f7;color:#526478;font-size:20px;cursor:pointer}.tc-rest-prompt-icon{width:68px;height:68px;display:grid;place-items:center;margin:0 auto 9px;border-radius:50%;background:#fff4d4;font-size:30px}.tc-rest-prompt-dialog h2{margin:5px 0 8px;color:#102d4d;font-size:1.65rem}.tc-rest-prompt-dialog>p{margin:6px auto;color:#5d6e80;line-height:1.75;max-width:500px}.tc-rest-prompt-tip{padding:12px 14px;border-radius:12px;background:#f5f9fc}.tc-rest-prompt-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 12px}.tc-rest-prompt-actions .tc-primary,.tc-rest-prompt-actions .tc-secondary{min-height:48px}.tc-rest-home{grid-column:1/-1;color:#425d76;font-weight:800;text-decoration:underline}.tc-rest-prompt-dialog>small{color:#81909c}

@media(max-width:1100px){
  .tc-header-register-cta{padding-left:11px!important;padding-right:11px!important}.tc-header-login-cta{padding-left:10px!important;padding-right:10px!important}
  .tc-result-coach-rank{grid-template-columns:auto 1fr}.tc-result-coach-rank-next{grid-column:2;border-left:0;padding-left:0}
  .tc-my-coach-rank{grid-template-columns:auto 1fr}.tc-my-rank-components{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}
}
@media(max-width:780px){
  .tc-my-coach-rank,.tc-result-coach-rank{grid-template-columns:1fr;text-align:left}.tc-my-rank-emblem,.tc-coach-rank-emblem{margin:0 auto}.tc-result-coach-rank-next{grid-column:auto}.tc-my-rank-components{grid-template-columns:1fr}
  .tc-my-daily-coaching{grid-template-columns:auto 1fr}.tc-my-daily-coach-focus{grid-column:1/-1;max-width:none}.tc-groups-benefits{grid-template-columns:1fr}.tc-group-dashboard-metrics{grid-template-columns:repeat(2,1fr)}.tc-coach-rank-ranking-head{display:grid}.tc-coach-rank-you{justify-self:start}
}
@media(max-width:700px){
  .tc-header-user-zone{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}.tc-header-user-zone .tc-header-login-cta,.tc-header-user-zone .tc-header-register-cta{width:100%!important;min-height:44px!important;margin:0!important}.tc-header-user-zone .tc-system-logout{grid-column:1/-1}.tc-groups-hero{grid-template-columns:1fr;text-align:center}.tc-groups-hero-mark{margin:auto}.tc-rest-prompt-dialog{padding:30px 18px 22px}.tc-rest-prompt-actions{grid-template-columns:1fr}.tc-rest-home{grid-column:auto}
}
@media(max-width:520px){.tc-group-dashboard-metrics{grid-template-columns:1fr 1fr}.tc-result-coach-rank{padding:17px 15px}.tc-my-coach-rank{padding:19px 16px}.tc-my-daily-coaching{grid-template-columns:1fr}.tc-my-daily-coach-mark{margin:auto}}

/* Public discovery for school / clinic / classroom administrators */
.tc-home-for-groups{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);gap:34px;align-items:center;padding:36px!important;border:1px solid #d6c083;border-radius:24px;background:linear-gradient(135deg,#fffdf7 0%,#f7fbff 62%,#eef5fa 100%);box-shadow:0 16px 46px rgba(12,39,70,.08)}
.tc-home-for-groups .tc-home-section-head{margin:0}.tc-home-groups-copy h2{margin:6px 0 11px;color:#0e2b4d;line-height:1.35}.tc-home-groups-copy>p{max-width:720px;color:#5d7082;line-height:1.8}
.tc-home-groups-points{display:flex;flex-wrap:wrap;gap:8px 14px;margin:17px 0 20px}.tc-home-groups-points span{font-size:.82rem;font-weight:800;color:#345b72}.tc-home-groups-points span::first-letter{color:#3f8355}
.tc-home-groups-preview{padding:20px;border-radius:20px;background:linear-gradient(145deg,#0b294c,#173e65);color:#fff;border:1px solid rgba(230,185,76,.75);box-shadow:0 18px 38px rgba(8,33,60,.18)}
.tc-home-groups-preview-head{display:flex;gap:12px;align-items:center;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.13)}.tc-home-groups-preview-head>span{width:48px;height:54px;display:grid;place-items:center;clip-path:polygon(50% 0,92% 15%,87% 68%,50% 100%,13% 68%,8% 15%);background:#e6b94e;color:#0d2b4c;font:900 16px Georgia,serif}.tc-home-groups-preview-head div{display:grid}.tc-home-groups-preview-head small{color:#efc966;font-size:.65rem;font-weight:900;letter-spacing:.11em}.tc-home-groups-preview-head b{margin-top:2px;font-size:1.08rem}
.tc-home-groups-preview-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.tc-home-groups-preview-metrics>div{padding:11px;border-radius:11px;background:rgba(255,255,255,.08)}.tc-home-groups-preview-metrics small{display:block;color:#c9d8e5;font-size:.64rem}.tc-home-groups-preview-metrics b{font-size:1.3rem;color:#fff}.tc-home-groups-preview-metrics span{font-size:.7rem;color:#d8e3ec}
.tc-home-groups-preview-list{display:grid;gap:7px}.tc-home-groups-preview-list>div{display:flex;justify-content:space-between;gap:14px;padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.055);font-size:.75rem}.tc-home-groups-preview-list span{color:#d2dfeb}.tc-home-groups-preview-list strong{color:#efc75e;white-space:nowrap}
.tc-invite-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.tc-invite-link-row .tc-text-button{white-space:nowrap}.tc-invite-box>[data-tc-copy-status]{display:block;min-height:1.2em;margin-top:4px;color:#4b7258;font-size:.72rem}
.tc-login-user-icon{width:18px;height:18px;display:inline-grid;place-items:center}.tc-login-user-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

@media(max-width:900px){.tc-home-for-groups{grid-template-columns:1fr;padding:26px!important}.tc-home-groups-preview{max-width:620px;width:100%}}
@media(max-width:600px){.tc-home-for-groups{padding:21px 16px!important}.tc-home-groups-preview-metrics{grid-template-columns:1fr}.tc-invite-link-row{grid-template-columns:1fr}.tc-invite-link-row .tc-text-button{justify-self:start}}


/* v1.68.1 visual hotfix: stronger Groups headline + theme-safe hero contrast */
.tc-home-groups-copy h2{font-size:clamp(2rem,2.65vw,2.72rem);font-weight:900;letter-spacing:.01em;line-height:1.3;margin:8px 0 16px;color:#0b2b4d}
.tc-home-groups-copy h2 strong{display:inline;font:inherit;font-size:1.08em;font-weight:900;color:#0b3158;background:linear-gradient(transparent 71%,rgba(226,181,73,.38) 71%);padding:0 .04em}
.tc-account-automation .tc-account-groups .tc-groups-hero h3{color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:clamp(1.45rem,2vw,1.72rem)!important;font-weight:900!important;line-height:1.35!important;letter-spacing:.01em!important;text-shadow:0 1px 1px rgba(0,0,0,.12)}
.tc-account-automation .tc-account-groups .tc-groups-hero p{color:#dce9f3!important;-webkit-text-fill-color:#dce9f3!important}
@media(max-width:600px){.tc-home-groups-copy h2{font-size:clamp(1.72rem,8vw,2.12rem);line-height:1.32}.tc-home-groups-copy h2 strong{font-size:1.04em}.tc-account-automation .tc-account-groups .tc-groups-hero h3{font-size:1.42rem!important}}

/* ---- typing-coach-polish-v169 | assets/css/polish-v169.css ---- */
/* Typing Coach v1.69.0 — branded member authentication */

.tc-system-page-typing-coach-login .tc-system-main{background:linear-gradient(135deg,#f8f6ef 0%,#f7f9fb 52%,#eef4f8 100%)}
.tc-system-page-typing-coach-login .tc-system-main__inner{width:min(1220px,calc(100% - 42px));padding-top:clamp(38px,6vw,76px);padding-bottom:clamp(52px,8vw,92px)}
.tc-header-login-cta.is-current{background:rgba(226,179,73,.14)!important;border-color:#e2b349!important;box-shadow:inset 0 -3px 0 #e2b349!important}

.tc-auth-shell{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);width:min(100%,1080px);margin:0 auto;border:1px solid #d6c080;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 24px 70px rgba(10,39,70,.13)}
.tc-auth-brand{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:650px;padding:56px clamp(34px,5vw,62px);overflow:hidden;background:radial-gradient(circle at 24% 14%,rgba(230,185,78,.14),transparent 30%),linear-gradient(145deg,#071f3d 0%,#0c2e53 55%,#17426c 100%);color:#fff}
.tc-auth-brand::before{content:"";position:absolute;width:340px;height:340px;right:-180px;bottom:-145px;border:1px solid rgba(229,185,78,.22);border-radius:50%}
.tc-auth-brand::after{content:"";position:absolute;width:230px;height:230px;right:-110px;bottom:-90px;border:1px solid rgba(229,185,78,.18);border-radius:50%}
.tc-auth-shield{position:relative;z-index:1;width:86px;height:98px;display:grid;place-items:center;margin-bottom:24px;clip-path:polygon(50% 0,94% 14%,88% 68%,50% 100%,12% 68%,6% 14%);background:linear-gradient(145deg,#efc65e,#aa7417);padding:4px;filter:drop-shadow(0 10px 20px rgba(0,0,0,.17))}
.tc-auth-shield::before{content:"";position:absolute;inset:4px;clip-path:inherit;background:#092846}
.tc-auth-shield span{position:relative;z-index:1;color:#efc65d;font:900 29px Georgia,serif}
.tc-auth-brand-kicker{position:relative;z-index:1;color:#efc75e;font-size:.75rem;font-weight:900;letter-spacing:.18em}
.tc-auth-brand h2{position:relative;z-index:1;margin:14px 0 15px;color:#fff!important;font-size:clamp(2rem,3.15vw,3rem);line-height:1.28;letter-spacing:.01em}
.tc-auth-brand p{position:relative;z-index:1;margin:0;max-width:470px;color:#d9e5ef;font-size:.98rem;line-height:1.85}
.tc-auth-benefits{position:relative;z-index:1;display:grid;gap:10px;margin-top:28px}.tc-auth-benefits span{color:#f4f7fa;font-size:.88rem;font-weight:800}.tc-auth-benefits span::first-letter{color:#efc75e}

.tc-auth-card{display:flex;flex-direction:column;justify-content:center;padding:clamp(38px,5vw,66px);background:linear-gradient(180deg,#fff 0%,#fffefa 100%);color:#17324f}
.tc-auth-card>.tc-kicker{color:#b17a16;letter-spacing:.16em}.tc-auth-card h1{margin:8px 0 8px;color:#0c2a4c;font-size:clamp(1.85rem,3vw,2.55rem);line-height:1.25}.tc-auth-lead{margin:0 0 25px;color:#68798a;line-height:1.7}
.tc-auth-notice{margin:0 0 20px;padding:13px 15px;border-radius:12px;font-size:.87rem;font-weight:700;line-height:1.6}.tc-auth-notice.is-error{border:1px solid #e0a6aa;background:#fff5f5;color:#8e3c43}.tc-auth-notice.is-success{border:1px solid #abd0b7;background:#f3fbf5;color:#356948}
.tc-auth-form{display:grid;gap:17px}.tc-auth-form>label:not(.tc-auth-honeypot){display:grid;gap:7px}.tc-auth-form label>span{color:#24435f;font-size:.8rem;font-weight:900}.tc-auth-form input[type="email"],.tc-auth-form input[type="password"]{width:100%;min-height:52px;padding:12px 14px;border:1px solid #cbd8e3;border-radius:12px;background:#fff;color:#15314e;font:inherit;box-shadow:inset 0 1px 2px rgba(10,37,65,.025);transition:border-color .18s ease,box-shadow .18s ease}.tc-auth-form input:focus{outline:0;border-color:#b88725;box-shadow:0 0 0 3px rgba(220,173,63,.14)}
.tc-auth-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.tc-auth-options{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:-1px;font-size:.77rem}.tc-auth-remember{display:flex!important;grid-template-columns:none!important;align-items:center;gap:7px!important;color:#52677b;font-weight:700}.tc-auth-remember input{accent-color:#ba8523}.tc-auth-options>a,.tc-auth-sub-actions a{color:#28557a;font-weight:800;text-decoration:none}.tc-auth-options>a:hover,.tc-auth-sub-actions a:hover{text-decoration:underline}
.tc-auth-submit{display:inline-flex!important;align-items:center;justify-content:center;width:100%;min-height:54px;margin-top:3px;border:0;border-radius:12px!important;font-size:.95rem!important;font-weight:900!important;box-shadow:0 10px 24px rgba(195,64,86,.16)}
.tc-auth-register-box{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:24px;padding:17px 18px;border:1px solid #dde5eb;border-radius:14px;background:#f7f9fb}.tc-auth-register-box span{color:#647487;font-size:.78rem;font-weight:700}.tc-auth-register{min-height:42px!important;padding:9px 15px!important;white-space:nowrap!important}
.tc-auth-sub-actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:22px;font-size:.78rem}.tc-auth-already{max-width:720px;margin:40px auto;text-align:center}

@media(max-width:900px){
  .tc-auth-shell{grid-template-columns:1fr;width:min(100%,690px)}
  .tc-auth-brand{min-height:auto;padding:38px 38px 40px}.tc-auth-brand h2{font-size:2.15rem}.tc-auth-brand p{max-width:none}.tc-auth-benefits{grid-template-columns:repeat(3,1fr);gap:8px}.tc-auth-benefits span{font-size:.76rem}
  .tc-auth-card{padding:42px}
}
@media(max-width:620px){
  .tc-system-page-typing-coach-login .tc-system-main__inner{width:min(100% - 24px,1080px);padding-top:24px;padding-bottom:42px}
  .tc-auth-shell{border-radius:20px}.tc-auth-brand{padding:30px 23px 31px}.tc-auth-shield{width:68px;height:78px;margin-bottom:17px}.tc-auth-shield span{font-size:23px}.tc-auth-brand-kicker{font-size:.63rem;letter-spacing:.13em}.tc-auth-brand h2{font-size:1.75rem;margin-top:10px}.tc-auth-brand p{font-size:.88rem;line-height:1.72}.tc-auth-benefits{grid-template-columns:1fr;gap:6px;margin-top:19px}.tc-auth-benefits span{font-size:.78rem}
  .tc-auth-card{padding:29px 20px 31px}.tc-auth-card h1{font-size:1.75rem}.tc-auth-lead{font-size:.88rem;margin-bottom:21px}.tc-auth-options{align-items:flex-start;flex-direction:column;gap:10px}.tc-auth-register-box{grid-template-columns:1fr}.tc-auth-register{width:100%;justify-content:center}.tc-auth-sub-actions{margin-top:18px}
}

/* ---- typing-coach-polish-v1691 | assets/css/polish-v1691.css ---- */
/* Typing Coach v1.69.1 — branded auth first-view & usability polish */
.tc-system-page-typing-coach-login .tc-system-main__inner{
  padding-top:clamp(20px,3vw,36px);
  padding-bottom:clamp(34px,5vw,54px);
}
.tc-auth-shell{min-height:0}
.tc-auth-brand{
  min-height:560px;
  padding:42px clamp(32px,4vw,52px);
}
.tc-auth-brand h2{
  font-size:clamp(1.82rem,2.35vw,2.35rem);
  line-height:1.34;
  margin:12px 0 13px;
}
.tc-auth-brand-line{display:inline-block;white-space:nowrap}
.tc-auth-shield{margin-bottom:20px}
.tc-auth-benefits{margin-top:22px;gap:8px}
.tc-auth-card{padding:36px clamp(34px,4.4vw,54px)}
.tc-auth-card h1{margin:6px 0 6px;font-size:clamp(1.78rem,2.7vw,2.38rem)}
.tc-auth-lead{margin-bottom:18px;line-height:1.6}
.tc-auth-form{gap:13px}
.tc-auth-form input[type="email"],
.tc-auth-form input[type="password"],
.tc-auth-form input[type="text"]{min-height:50px}
.tc-auth-options{margin-top:0}
.tc-auth-submit{min-height:52px;margin-top:1px}
.tc-auth-register-box--compact{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  margin-top:15px;
  padding:13px 0 0;
  border:0;
  border-top:1px solid #e2e8ed;
  border-radius:0;
  background:transparent;
}
.tc-auth-register-box--compact span{font-size:.77rem}
.tc-auth-register-link{color:#9b6a0f!important;font-size:.8rem;font-weight:900;text-decoration:none}
.tc-auth-register-link:hover{text-decoration:underline}
.tc-auth-sub-actions{margin-top:13px}
.tc-password-field{position:relative;display:block}
.tc-password-field input{padding-right:82px!important}
.tc-password-toggle{
  position:absolute;
  top:50%;
  right:10px;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:34px;
  padding:5px 8px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#536b80;
  font:800 .72rem/1 inherit;
  cursor:pointer;
}
.tc-password-toggle:hover{background:#f0f4f7;color:#143a5d}
.tc-password-toggle:focus-visible{outline:2px solid #b88725;outline-offset:2px}
.tc-password-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}

@media (max-width:980px){
  .tc-auth-brand{min-height:auto;padding:34px 36px 36px}
  .tc-auth-brand h2{font-size:2rem}
  .tc-auth-card{padding:36px 40px 38px}
}
@media (max-width:640px){
  .tc-system-page-typing-coach-login .tc-system-main__inner{padding-top:18px;padding-bottom:34px}
  .tc-auth-brand{padding:27px 22px 29px}
  .tc-auth-brand h2{font-size:clamp(1.5rem,7vw,1.78rem)}
  .tc-auth-brand-line{white-space:normal}
  .tc-auth-card{padding:27px 20px 29px}
  .tc-auth-card h1{font-size:1.66rem}
  .tc-auth-register-box--compact{flex-wrap:wrap}
}
@media (min-width:981px) and (max-height:820px){
  .tc-system-page-typing-coach-login .tc-system-main__inner{padding-top:16px;padding-bottom:26px}
  .tc-auth-brand{min-height:520px;padding-top:32px;padding-bottom:32px}
  .tc-auth-card{padding-top:28px;padding-bottom:28px}
  .tc-auth-shield{width:74px;height:84px;margin-bottom:15px}
  .tc-auth-brand h2{margin-top:8px;margin-bottom:10px}
  .tc-auth-brand p{line-height:1.65}
  .tc-auth-benefits{margin-top:16px}
  .tc-auth-lead{margin-bottom:14px}
}

/* ---- typing-coach-polish-v170 | assets/css/polish-v170.css ---- */
/* Typing Coach v1.70.0 — Groups guide / FAQ + self-service group polish */

.tc-system-page-typing-coach-groups-faq .tc-system-main__inner{max-width:1500px}
.tc-gfaq{--gfaq-navy:#0d2c50;--gfaq-navy-2:#153d64;--gfaq-gold:#d5a437;--gfaq-gold-soft:#f4df9b;--gfaq-ink:#102f50;--gfaq-muted:#60758a;--gfaq-line:#d9e3ec;--gfaq-soft:#f6f9fc;display:grid;gap:26px;color:var(--gfaq-ink)}
.tc-gfaq *{box-sizing:border-box}
.tc-gfaq [id]{scroll-margin-top:118px}

.tc-gfaq-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:34px;align-items:center;padding:clamp(30px,4vw,56px);border:1px solid #d7bf7c;border-radius:28px;background:linear-gradient(135deg,#fffdf7 0%,#f7fbff 58%,#edf5fb 100%);box-shadow:0 20px 58px rgba(12,39,70,.1)}
.tc-gfaq-hero-copy h1{margin:8px 0 15px;font-size:clamp(2.15rem,4.1vw,4rem);line-height:1.13;letter-spacing:-.035em;color:#0a2b4d;font-weight:900}
.tc-gfaq-hero-copy h1 strong{color:#0a2b4d;background:linear-gradient(transparent 69%,rgba(229,184,74,.42) 69%);font-weight:950}
.tc-gfaq-hero-copy>p{max-width:900px;margin:0;color:#5d7184;font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.9}
.tc-gfaq-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.tc-gfaq-hero-actions>a{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.tc-gfaq-hero-card{position:relative;overflow:hidden;padding:31px 28px;border-radius:22px;background:linear-gradient(145deg,#0e3158,#123d68);border:1px solid #cf9f38;color:#fff;box-shadow:0 14px 38px rgba(9,39,70,.17)}
.tc-gfaq-hero-card:after{content:"";position:absolute;right:-50px;bottom:-62px;width:190px;height:190px;border:1px solid rgba(229,184,74,.23);border-radius:50%;box-shadow:0 0 0 28px rgba(229,184,74,.06),0 0 0 58px rgba(229,184,74,.04)}
.tc-gfaq-shield{position:relative;z-index:1;width:68px;height:76px;display:grid;place-items:center;margin-bottom:16px;background:#e3b64d;color:#0d2c50;clip-path:polygon(50% 0,92% 14%,88% 68%,50% 100%,12% 68%,8% 14%);font:900 22px Georgia,serif}
.tc-gfaq-hero-card>strong{position:relative;z-index:1;display:block;margin-bottom:10px;font-size:1.35rem}.tc-gfaq-hero-card ul{position:relative;z-index:1;margin:0;padding:0;list-style:none;display:grid;gap:8px}.tc-gfaq-hero-card li{display:flex;gap:8px;align-items:center;color:#e7eff5}.tc-gfaq-hero-card li:before{content:"✓";color:#f0c75b;font-weight:900}

.tc-gfaq-quicknav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.tc-gfaq-quick{position:relative;display:grid;gap:4px;min-height:94px;padding:18px 42px 17px 18px;border:1px solid var(--gfaq-line);border-radius:16px;background:#fff;text-decoration:none!important;box-shadow:0 7px 20px rgba(13,44,80,.045);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.tc-gfaq-quick:hover{transform:translateY(-2px);border-color:#d2ad55;box-shadow:0 10px 26px rgba(13,44,80,.09)}.tc-gfaq-quick strong{color:#12385e;font-size:1.03rem}.tc-gfaq-quick span{color:#6b7d8d;font-size:.86rem;line-height:1.5}.tc-gfaq-quick b{position:absolute;right:17px;top:50%;translate:0 -50%;color:#be8b21;font-size:1.25rem}

.tc-gfaq-section{padding:clamp(25px,3vw,40px);border:1px solid #dbe4ec;border-radius:22px;background:#fff;box-shadow:0 10px 30px rgba(11,42,74,.045)}
.tc-gfaq-section-visual{background:linear-gradient(180deg,#fff 0%,#f8fbfd 100%)}
.tc-gfaq-section-head{margin-bottom:21px}.tc-gfaq-section-head>span{display:inline-block;margin-bottom:6px;color:#b67c0d;font-size:.8rem;font-weight:900;letter-spacing:.14em}.tc-gfaq-section-head h2{margin:0;color:#0e2f52;font-size:clamp(1.55rem,2.5vw,2.35rem);line-height:1.35;font-weight:900}.tc-gfaq-section-head p{margin:8px 0 0;max-width:980px;color:#667a8c;line-height:1.75}

.tc-gfaq-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:8px}
.tc-gfaq-flow>i{align-self:center;color:#c28f24;font-size:1.45rem;font-style:normal;font-weight:900}
.tc-gfaq-flow-step{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-content:start;padding:18px 15px;border:1px solid #d9e3eb;border-radius:15px;background:#fff;min-width:0}
.tc-gfaq-flow-step>b{position:absolute;top:-10px;left:-7px;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#d6a438;color:#0b2a4a;font-size:.78rem;box-shadow:0 4px 10px rgba(13,44,80,.14)}
.tc-gfaq-flow-step>span{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#eef5fa;color:#164d7b;font-size:1.12rem}.tc-gfaq-flow-step>strong{align-self:end;color:#14395d;font-size:.98rem}.tc-gfaq-flow-step>p{margin:3px 0 0;color:#6b7c8b;font-size:.82rem;line-height:1.55}
.tc-gfaq-tip{display:flex;gap:14px;align-items:flex-start;margin-top:18px;padding:15px 18px;border-left:4px solid #d3a13a;border-radius:10px;background:#fff9e9}.tc-gfaq-tip strong{white-space:nowrap;color:#805a09}.tc-gfaq-tip p{margin:0;color:#536b80;line-height:1.7}

.tc-gfaq-role-diagram{display:grid;grid-template-columns:1fr minmax(150px,.36fr) 1fr;gap:18px;align-items:stretch}
.tc-gfaq-role{padding:24px;border:1px solid #d9e3ec;border-radius:18px;background:#fff}.tc-gfaq-role.is-owner{border-top:4px solid #d4a43c}.tc-gfaq-role.is-member{border-top:4px solid #4f87b4}.tc-gfaq-role-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:13px;background:#eef4f8;color:#173f66;font-size:1.25rem}.tc-gfaq-role h3{margin:12px 0;color:#12385d;font-size:1.25rem}.tc-gfaq-role ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.tc-gfaq-role li{position:relative;padding-left:21px;color:#536c81;line-height:1.6}.tc-gfaq-role li:before{content:"✓";position:absolute;left:0;color:#33865f;font-weight:900}
.tc-gfaq-role-center{align-self:center;justify-self:center;width:132px;aspect-ratio:1;display:grid;place-items:center;align-content:center;gap:2px;border-radius:50%;background:#0e3156;color:#fff;border:6px solid #f1d27e;box-shadow:0 0 0 1px #b98a26,0 10px 26px rgba(13,44,80,.16);text-align:center}.tc-gfaq-role-center span{font-size:.62rem;letter-spacing:.13em;color:#efc75d}.tc-gfaq-role-center b{font:900 1.85rem Georgia,serif}.tc-gfaq-role-center small{max-width:88px;color:#dce8f2;font-size:.67rem;line-height:1.3}
.tc-gfaq-privacy-note{display:grid;grid-template-columns:auto 1fr;gap:12px;margin-top:18px;padding:16px 18px;border-radius:12px;background:#f0f7f3;border:1px solid #cfe3d7}.tc-gfaq-privacy-note strong{color:#216b49}.tc-gfaq-privacy-note span{color:#546e61;line-height:1.7}

.tc-gfaq-dataflow{display:grid;justify-items:center;gap:12px}.tc-gfaq-data-node{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;min-width:min(100%,330px);padding:17px 20px;border-radius:15px;border:1px solid #d7e2eb;background:#fff}.tc-gfaq-data-node>span{grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#edf4f9;color:#164b77;font-size:1.1rem}.tc-gfaq-data-node>strong{align-self:end;color:#12395e}.tc-gfaq-data-node>small{align-self:start;color:#6b7f91}.tc-gfaq-data-node.is-practice{border-color:#d3ad52;background:#fffcf2}.tc-gfaq-data-branch{font-size:1.45rem;color:#bd8a22;letter-spacing:2.7rem;padding-left:2.7rem}.tc-gfaq-data-destinations{width:min(100%,830px);display:grid;grid-template-columns:1fr 1fr;gap:26px}.tc-gfaq-data-destinations .tc-gfaq-data-node{width:100%;min-width:0}.tc-gfaq-data-exit{width:min(100%,830px);display:grid;grid-template-columns:auto auto 1fr;gap:14px;align-items:center;margin-top:10px;padding:16px 18px;border-radius:15px;background:#f5f8fb;border:1px dashed #aabdcf}.tc-gfaq-data-exit>strong{color:#415d76}.tc-gfaq-data-exit>span{color:#c08b20;font-size:1.4rem}.tc-gfaq-data-exit p{margin:0;color:#65798a;line-height:1.55}.tc-gfaq-data-exit b{color:#286747}

.tc-gfaq-list{display:grid;gap:10px}.tc-gfaq-item{border:1px solid #dbe5ed;border-radius:14px;background:#fff;overflow:hidden}.tc-gfaq-item[open]{border-color:#c7d6e2;box-shadow:0 8px 20px rgba(10,41,72,.05)}.tc-gfaq-item summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:62px;padding:16px 18px;cursor:pointer;list-style:none;color:#13395e;font-weight:800;line-height:1.55}.tc-gfaq-item summary::-webkit-details-marker{display:none}.tc-gfaq-item summary:hover{background:#f8fbfd}.tc-gfaq-item summary i{width:29px;height:29px;flex:0 0 29px;display:grid;place-items:center;border-radius:50%;background:#edf4f8;color:#a36f08;font-style:normal;font-size:1.05rem;transition:transform .18s ease}.tc-gfaq-item[open] summary i{transform:rotate(45deg)}
.tc-gfaq-answer{padding:0 19px 18px;color:#5c7184;line-height:1.8}.tc-gfaq-answer p{margin:0 0 9px}.tc-gfaq-answer p:last-child{margin-bottom:0}.tc-gfaq-answer ol,.tc-gfaq-answer ul{margin:3px 0 10px;padding-left:1.4em}.tc-gfaq-answer strong{color:#183e61}

.tc-gfaq-trouble{background:linear-gradient(180deg,#fffdf7,#f9fbfd)}.tc-gfaq-trouble-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.tc-gfaq-trouble-grid article{padding:20px;border:1px solid #dde6ed;border-radius:15px;background:#fff}.tc-gfaq-trouble-grid article>b{display:block;margin-bottom:8px;color:#12395e;font-size:1.06rem}.tc-gfaq-trouble-grid ol{margin:0;padding-left:1.35em;color:#536d82;line-height:1.7}.tc-gfaq-trouble-grid p{margin:8px 0 0;color:#788997;font-size:.86rem;line-height:1.55}.tc-gfaq-error-guide{display:grid;gap:7px;margin-top:18px;padding:20px;border-radius:16px;background:#102f52;color:#fff}.tc-gfaq-error-guide h3{margin:0 0 4px;color:#f1c75f}.tc-gfaq-error-guide>div{display:grid;grid-template-columns:minmax(280px,.8fr) 1.2fr;gap:13px;align-items:start;padding:10px 0;border-top:1px solid rgba(255,255,255,.12)}.tc-gfaq-error-guide code{white-space:normal;color:#fff;background:rgba(255,255,255,.08);border-radius:7px;padding:5px 8px;line-height:1.5}.tc-gfaq-error-guide span{color:#d8e5ef;line-height:1.6}

.tc-gfaq-final{text-align:center;padding:clamp(30px,4vw,52px);border-radius:24px;background:linear-gradient(135deg,#0c2d51,#123e69);color:#fff;border:1px solid #c99a33}.tc-gfaq-final h2{margin:7px 0 9px;color:#fff;font-size:clamp(1.7rem,3vw,2.6rem)}.tc-gfaq-final p{margin:0;color:#dce8f2}.tc-gfaq-final .tc-gfaq-hero-actions{justify-content:center}.tc-gfaq-final .tc-home-secondary{color:#fff!important;border-color:#e0b74e!important;background:rgba(255,255,255,.05)!important}

/* Contextual FAQ/help links in Home and Account settings */
.tc-home-for-groups .tc-home-actions{flex-wrap:wrap}.tc-home-for-groups .tc-groups-faq-link{flex-basis:100%;margin-top:2px;font-weight:800;color:#91640b!important}
.tc-group-help-strip{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:14px 0 16px;padding:14px 16px;border:1px solid #d6e1ea;border-radius:13px;background:#f8fbfd}.tc-group-help-strip>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#d7a53b;color:#0d2d50;font-weight:950}.tc-group-help-strip div{display:grid;gap:2px}.tc-group-help-strip strong{color:#153b5f}.tc-group-help-strip small{color:#6d7f8e}.tc-group-help-strip a,.tc-group-form-help,.tc-group-lifecycle-help a{color:#8d6109!important;text-decoration:none!important;font-weight:800}.tc-group-help-strip a:hover,.tc-group-form-help:hover,.tc-group-lifecycle-help a:hover{text-decoration:underline!important}
.tc-group-form-help{display:inline-block;margin-top:10px;font-size:.84rem;line-height:1.5}.tc-group-invite-prefill-notice{margin:14px 0}.tc-group-edit-details{margin:14px 0;border:1px solid #dbe4eb;border-radius:12px;background:#f9fbfd;overflow:hidden}.tc-group-edit-details summary{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;cursor:pointer;list-style:none;color:#173e62;font-weight:800}.tc-group-edit-details summary::-webkit-details-marker{display:none}.tc-group-edit-details summary span{color:#a97915}.tc-group-edit-details[open] summary span{transform:rotate(45deg)}.tc-group-edit-form{border-top:1px solid #e1e8ee;padding:15px!important;margin:0!important;background:#fff}.tc-group-lifecycle-help{margin:14px 0 9px;padding:10px 12px;border-radius:9px;background:#fff8e8;font-size:.86rem}

@media(max-width:1100px){
  .tc-gfaq-hero{grid-template-columns:1fr}.tc-gfaq-hero-card{max-width:680px;width:100%}
  .tc-gfaq-quicknav{grid-template-columns:repeat(3,1fr)}
  .tc-gfaq-flow{grid-template-columns:repeat(5,1fr);gap:9px}.tc-gfaq-flow>i{display:none}
  .tc-gfaq-trouble-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:800px){
  .tc-gfaq{gap:18px}.tc-gfaq-hero,.tc-gfaq-section{border-radius:18px}.tc-gfaq-quicknav{grid-template-columns:1fr 1fr}
  .tc-gfaq-flow{grid-template-columns:1fr 1fr}.tc-gfaq-flow-step:last-child{grid-column:1/-1}
  .tc-gfaq-role-diagram{grid-template-columns:1fr}.tc-gfaq-role-center{width:110px;order:2}.tc-gfaq-role.is-owner{order:1}.tc-gfaq-role.is-member{order:3}
  .tc-gfaq-privacy-note{grid-template-columns:1fr}.tc-gfaq-data-destinations{grid-template-columns:1fr}.tc-gfaq-data-branch{letter-spacing:1.3rem;padding-left:1.3rem}.tc-gfaq-data-exit{grid-template-columns:1fr;text-align:center}.tc-gfaq-data-exit>span{transform:rotate(90deg)}
  .tc-gfaq-error-guide>div{grid-template-columns:1fr}.tc-group-help-strip{grid-template-columns:auto 1fr}.tc-group-help-strip a{grid-column:1/-1;padding-left:46px}
}
@media(max-width:560px){
  .tc-gfaq-hero{padding:24px 18px}.tc-gfaq-hero-copy h1{font-size:clamp(2rem,11vw,2.8rem)}.tc-gfaq-hero-actions{display:grid}.tc-gfaq-hero-actions>a{width:100%}
  .tc-gfaq-quicknav{grid-template-columns:1fr}.tc-gfaq-quick{min-height:78px}
  .tc-gfaq-section{padding:22px 16px}.tc-gfaq-flow{grid-template-columns:1fr}.tc-gfaq-flow-step:last-child{grid-column:auto}.tc-gfaq-tip{display:grid}
  .tc-gfaq-trouble-grid{grid-template-columns:1fr}.tc-gfaq-item summary{padding:14px 13px;font-size:.95rem}.tc-gfaq-answer{padding:0 14px 16px}.tc-gfaq-error-guide{padding:16px}
  .tc-gfaq-privacy-note{padding:14px}.tc-gfaq-role{padding:19px}.tc-gfaq-hero-card{padding:24px 20px}
  .tc-group-help-strip{grid-template-columns:1fr;text-align:left}.tc-group-help-strip>span{display:none}.tc-group-help-strip a{grid-column:auto;padding-left:0}
}

/* FAQ keyword search / self-help controls */
.tc-gfaq-search{display:grid;gap:11px;padding:20px 22px;border:1px solid #d7e2ea;border-radius:18px;background:linear-gradient(135deg,#f8fbfd,#fffdf7);box-shadow:0 8px 24px rgba(13,44,80,.045)}
.tc-gfaq-search>label{display:flex;gap:11px;align-items:center}.tc-gfaq-search>label>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#0f345b;color:#efc55c;font-size:1.25rem}.tc-gfaq-search>label>div{display:grid;gap:2px}.tc-gfaq-search>label strong{color:#12395f}.tc-gfaq-search>label small{color:#718291}
.tc-gfaq-search-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:9px}.tc-gfaq-search-row input{min-height:47px;width:100%;padding:10px 14px;border:1px solid #cbd9e4;border-radius:11px;background:#fff;color:#12395d;font:inherit;outline:none}.tc-gfaq-search-row input:focus{border-color:#c3942c;box-shadow:0 0 0 3px rgba(211,164,58,.16)}.tc-gfaq-search-row button{min-height:47px;padding:9px 14px;border:1px solid #c9d8e3;border-radius:11px;background:#fff;color:#173e62;font:inherit;font-weight:800;cursor:pointer}.tc-gfaq-search-row button:hover{border-color:#d0a03a;background:#fffaf0}.tc-gfaq-search-status{margin:0;color:#6c7f8f;font-size:.86rem}
@media(max-width:800px){.tc-gfaq-search-row{grid-template-columns:1fr 1fr}.tc-gfaq-search-row input{grid-column:1/-1}}
@media(max-width:560px){.tc-gfaq-search{padding:17px 15px}.tc-gfaq-search-row{grid-template-columns:1fr}.tc-gfaq-search-row input{grid-column:auto}.tc-gfaq-search-row button{width:100%}}

/* ---- typing-coach-polish-v171 | assets/css/polish-v171.css ---- */
/* Typing Coach v1.71.0 — individual user FAQ + monetization placement polish */

/* Individual FAQ reuses the accessible Groups FAQ component system. */
.tc-ufaq{--ufaq-rose:#d44f68;--ufaq-blue:#2e6f9f;--ufaq-green:#2f805d}
.tc-ufaq-hero-card{background:linear-gradient(145deg,#0d3158,#173f67)}
.tc-ufaq-quicknav{grid-template-columns:repeat(6,minmax(0,1fr))}
.tc-ufaq-path-diagram{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:22px;align-items:center}
.tc-ufaq-path-card{padding:25px;border:1px solid #d8e3eb;border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(13,44,80,.055)}
.tc-ufaq-path-card>span{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.12em}
.tc-ufaq-path-card h3{margin:11px 0 13px;color:#11395e;font-size:1.3rem}.tc-ufaq-path-card ul{display:grid;gap:8px;margin:0;padding:0;list-style:none;color:#587087}.tc-ufaq-path-card li{position:relative;padding-left:21px}.tc-ufaq-path-card li:before{content:"✓";position:absolute;left:0;font-weight:900;color:#31805d}
.tc-ufaq-path-card.is-guest>span{background:#eef4f8;color:#355b78}.tc-ufaq-path-card.is-member{border-top:4px solid #d3a23a;background:linear-gradient(180deg,#fffdf7,#fff)}.tc-ufaq-path-card.is-member>span{background:#fff2c9;color:#855b08}
.tc-ufaq-path-arrow{display:grid;justify-items:center;gap:3px;color:#bd8920;font-size:2rem;font-weight:900}.tc-ufaq-path-arrow small{font-size:.72rem;color:#718494;font-weight:800;white-space:nowrap}

.tc-ufaq-rank-diagram{display:grid;grid-template-columns:minmax(170px,1.45fr) auto minmax(155px,.85fr) auto minmax(155px,.7fr) auto minmax(205px,1fr);gap:10px;align-items:stretch}
.tc-ufaq-rank-piece,.tc-ufaq-rank-result{display:grid;align-content:center;justify-items:center;gap:4px;min-height:145px;padding:18px;border:1px solid #d9e3eb;border-radius:17px;text-align:center;background:#fff}
.tc-ufaq-rank-piece b{font-size:2rem;color:#0e3157}.tc-ufaq-rank-piece strong{color:#153c60}.tc-ufaq-rank-piece span{color:#718391;font-size:.82rem;line-height:1.5}.tc-ufaq-rank-piece.is-skill{border-top:5px solid #2f6f9f}.tc-ufaq-rank-piece.is-continuity{border-top:5px solid #31805d}.tc-ufaq-rank-piece.is-learning{border-top:5px solid #d2a038}
.tc-ufaq-rank-plus,.tc-ufaq-rank-equals{align-self:center;color:#bc8820;font-size:1.5rem;font-weight:900}
.tc-ufaq-rank-result{background:linear-gradient(145deg,#0d3158,#163f69);border-color:#d0a03a;color:#fff}.tc-ufaq-rank-result span{font-size:.72rem;letter-spacing:.13em;color:#edc356;font-weight:900}.tc-ufaq-rank-result strong{font-size:1.25rem}.tc-ufaq-rank-result small{color:#d8e5ef}

.tc-ufaq-privacy-diagram{display:grid;grid-template-columns:1fr 1fr;gap:18px}.tc-ufaq-privacy-diagram article{display:grid;grid-template-columns:auto 1fr;column-gap:14px;padding:23px;border-radius:17px;border:1px solid #d9e3eb;background:#fff}.tc-ufaq-privacy-diagram article>span{grid-row:1/4;width:46px;height:46px;display:grid;place-items:center;border-radius:14px;font-size:1.3rem}.tc-ufaq-privacy-diagram h3{margin:0;color:#12395e;font-size:1.05rem}.tc-ufaq-privacy-diagram strong{margin-top:5px;color:#173d60}.tc-ufaq-privacy-diagram p{margin:6px 0 0;color:#657a8b;line-height:1.65}.tc-ufaq-privacy-diagram .is-public>span{background:#fff3cf;color:#96680d}.tc-ufaq-privacy-diagram .is-private>span{background:#edf7f1;color:#26704f}
.tc-ufaq-route-guide a{color:#f4cc68!important;text-decoration:underline!important;text-underline-offset:3px}.tc-ufaq-route-guide a:hover{color:#fff!important}

/* Contextual help strips that point users to the self-service guide. */
.tc-user-faq-strip{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;margin:18px 0;padding:15px 17px;border:1px solid #d7e2ea;border-left:4px solid #d0a038;border-radius:13px;background:linear-gradient(135deg,#f8fbfd,#fffdf7)}
.tc-user-faq-strip>span{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#10375e;color:#f2c85e;font-weight:900}.tc-user-faq-strip>div{display:grid;gap:2px}.tc-user-faq-strip strong{color:#143b60}.tc-user-faq-strip small{color:#6c7f8f;line-height:1.45}.tc-user-faq-strip>a{color:#9a6810!important;font-weight:900;text-decoration:none!important;white-space:nowrap}.tc-user-faq-strip>a:hover{text-decoration:underline!important}
.tc-inline-help-link{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:#98680e!important;font-weight:800;text-decoration:none!important}.tc-inline-help-link:hover{text-decoration:underline!important}

/* Ads are visually separated from product controls and always disclosed. */
.tc-ad-slot,.tc-app-ad{position:relative}
.tc-ad-slot .tc-ad-disclosure,.tc-app-ad .tc-ad-disclosure,.tc-affiliate-slot .tc-ad-disclosure{display:block;margin:0 auto 6px;font-size:11px;line-height:1.4;color:#77828b;font-weight:800;letter-spacing:.08em;text-align:center}
.tc-page-ad-wrap{margin:28px auto;max-width:1040px;padding:18px 12px;border-top:1px solid #edf1f4;border-bottom:1px solid #edf1f4;background:linear-gradient(180deg,rgba(248,250,252,.55),rgba(255,255,255,.85))}
.tc-page-ad-wrap .tc-ad-slot{margin:0 auto}
.tc-ad-test{min-height:82px;display:grid;place-items:center}

@media(max-width:1100px){.tc-ufaq-quicknav{grid-template-columns:repeat(3,1fr)}.tc-ufaq-rank-diagram{grid-template-columns:1fr 1fr 1fr}.tc-ufaq-rank-plus{display:none}.tc-ufaq-rank-equals{grid-column:1/-1;justify-self:center;transform:rotate(90deg)}.tc-ufaq-rank-result{grid-column:1/-1;min-height:120px}}
@media(max-width:760px){.tc-ufaq-path-diagram{grid-template-columns:1fr}.tc-ufaq-path-arrow{transform:rotate(90deg);justify-self:center}.tc-ufaq-path-arrow small{display:none}.tc-ufaq-privacy-diagram{grid-template-columns:1fr}.tc-user-faq-strip{grid-template-columns:auto 1fr}.tc-user-faq-strip>a{grid-column:1/-1;padding-left:49px;white-space:normal}.tc-ufaq-rank-diagram{grid-template-columns:1fr}.tc-ufaq-rank-piece,.tc-ufaq-rank-result{grid-column:auto;min-height:118px}.tc-ufaq-rank-equals{grid-column:auto;transform:none}.tc-ufaq-quicknav{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.tc-ufaq-quicknav{grid-template-columns:1fr}.tc-ufaq-privacy-diagram article{grid-template-columns:1fr}.tc-ufaq-privacy-diagram article>span{grid-row:auto;margin-bottom:10px}.tc-page-ad-wrap{margin:22px -4px;padding:14px 4px}}

/* ---- typing-coach-polish-v1711 | assets/css/polish-v1711.css ---- */
/* Typing Coach v1.71.1 — FAQ discoverability + manual ad placement guidance */

/* Persistent help entry in the product header. */
.tc-system-nav-help .tc-nav-help-icon{
  display:inline-grid!important;
  place-items:center;
  width:18px;
  height:18px;
  border:1px solid rgba(239,190,73,.72);
  border-radius:50%;
  color:#f0bd46!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
}
.tc-system-nav-help.is-current{
  border-color:#d9aa3b!important;
  background:rgba(218,171,59,.12)!important;
}

/* Home FAQ callout: intentionally separate from registration/ranking text links. */
.tc-home-center-actions--primary{margin-bottom:0}
.tc-home-faq-callout{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  max-width:1120px;
  margin:24px auto 0;
  padding:18px 20px;
  border:1px solid #d7e2ea;
  border-left:5px solid #d3a338;
  border-radius:17px;
  background:linear-gradient(135deg,#f7fbff 0%,#fffdf7 100%);
  box-shadow:0 10px 26px rgba(18,50,82,.06);
  text-align:left;
}
.tc-home-faq-callout__icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#0c3158;
  color:#f0c35a;
  font-size:25px;
  font-weight:900;
  box-shadow:inset 0 0 0 1px rgba(240,195,90,.28);
}
.tc-home-faq-callout__copy{display:grid;gap:3px;min-width:0}
.tc-home-faq-callout__copy small{
  color:#a36d0c;
  font-size:11px;
  font-weight:900;
  letter-spacing:.13em;
}
.tc-home-faq-callout__copy strong{color:#102f50;font-size:18px;line-height:1.45}
.tc-home-faq-callout__copy p{margin:0;color:#64798c;font-size:14px;line-height:1.65}
.tc-home-faq-callout__button,
.tc-home-faq-outline,
.tc-faq-inline-cta,
.tc-registration-faq-link a,
.tc-auth-help-link{
  text-decoration:none!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.tc-home-faq-callout__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:46px;
  padding:11px 16px;
  border:1px solid #c99a30;
  border-radius:12px;
  background:#fff;
  color:#12375d!important;
  font-size:14px;
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 5px 14px rgba(18,55,93,.06);
}
.tc-home-faq-callout__button:hover{transform:translateY(-1px);background:#fff9e9;box-shadow:0 8px 18px rgba(18,55,93,.10)}

/* More explicit FAQ buttons in Group and final Home sections. */
.tc-home-faq-outline{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:10px 15px;
  border:1px solid #d1a23a;
  border-radius:11px;
  background:#fffdf7;
  color:#173a60!important;
  font-size:14px;
  font-weight:900!important;
  white-space:normal!important;
}
.tc-home-faq-outline>span{
  width:21px;
  height:21px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:#12385f;
  color:#f0c45a;
  font-size:12px;
}
.tc-home-faq-outline:hover{transform:translateY(-1px);background:#fff7df;box-shadow:0 6px 14px rgba(21,56,91,.08)}
.tc-home-for-groups .tc-groups-faq-link{flex-basis:auto!important;margin-top:0!important;color:#173a60!important}

/* Contextual FAQ links should look like help controls, not ordinary prose links. */
.tc-faq-inline-cta{
  display:inline-flex!important;
  align-items:center;
  gap:7px;
  margin-top:11px!important;
  padding:8px 12px;
  border:1px solid #d9c07b;
  border-radius:9px;
  background:#fffaf0;
  color:#76510a!important;
  font-weight:900!important;
}
.tc-faq-inline-cta::before{
  content:'?';
  width:19px;
  height:19px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:#143b60;
  color:#f1c45b;
  font-size:11px;
  line-height:1;
}
.tc-faq-inline-cta:hover{background:#fff3d7!important;text-decoration:none!important}

.tc-registration-faq-link a,
.tc-auth-help-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#8d610c!important;
  font-weight:900!important;
}
.tc-registration-faq-link a>span,
.tc-auth-help-link>span{
  width:20px;height:20px;display:inline-grid;place-items:center;border-radius:50%;background:#143b60;color:#f1c45b;font-size:11px;font-weight:900;
}

/* Manual ad-operation cue in wp-admin. */
.tc-ad-admin-wrap .tc-admin-notice-card b{color:#173f67}
.tc-ad-provider-adsense .description{margin:6px 0 12px!important;color:#64748b!important;line-height:1.55!important}

@media(max-width:1350px) and (min-width:1101px){
  .tc-system-nav-help{font-size:10.5px!important}
}
@media(max-width:880px){
  .tc-home-faq-callout{grid-template-columns:auto 1fr}
  .tc-home-faq-callout__button{grid-column:1/-1;width:100%;white-space:normal}
}
@media(max-width:700px){
  .tc-home-faq-callout{grid-template-columns:1fr;text-align:center;padding:18px 16px}
  .tc-home-faq-callout__icon{margin:auto}
  .tc-home-faq-callout__copy{justify-items:center}
  .tc-home-faq-outline{width:100%}
  .tc-faq-inline-cta{width:100%;justify-content:center;text-align:center}
}

/* ---- typing-coach-polish-v1712 | assets/css/polish-v1712.css ---- */
/* Typing Coach v1.71.2 — FAQ top-first navigation */

/* Category/deep-link arrivals always provide a clear route back to the guide overview. */
.tc-gfaq-section-head .tc-faq-back-top{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:13px;
  padding:7px 11px;
  border:1px solid #d5e0e8;
  border-radius:999px;
  background:#f8fbfd;
  color:#315675!important;
  font-size:12px;
  font-weight:850;
  line-height:1.2;
  text-decoration:none!important;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.tc-gfaq-section-head .tc-faq-back-top>span{
  color:#b67c0d;
  font-size:13px;
  font-weight:900;
}
.tc-gfaq-section-head .tc-faq-back-top:hover{
  transform:translateY(-1px);
  border-color:#d1aa50;
  background:#fffaf0;
}
.tc-gfaq-section-head .tc-faq-back-top:focus-visible{
  outline:3px solid rgba(211,164,56,.24);
  outline-offset:2px;
}

/* Broad contextual help buttons deliberately open the FAQ overview first. */
.tc-faq-inline-cta[href$="/typing-coach-faq/"],
.tc-user-faq-strip a[href$="/typing-coach-faq/"]{
  position:relative;
}

@media(max-width:560px){
  .tc-gfaq-section-head .tc-faq-back-top{margin-top:10px;padding:7px 10px}
}

/* ---- typing-coach-polish-v172 | assets/css/polish-v172.css ---- */
/* Typing Coach v1.72.0 — group ranking + administrator reports */
.tc-groups-benefits{grid-template-columns:repeat(4,minmax(0,1fr))}
.tc-group-ranking{margin:18px 0 22px;padding:18px;border:1px solid #d9e3ec;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#f8fbfd 100%)}
.tc-group-ranking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}
.tc-group-ranking-head h5{margin:3px 0 4px;color:#0b2b4d;font-size:1.15rem}
.tc-group-ranking-head p{margin:0;color:#6a7c8e;font-size:.82rem;line-height:1.7}
.tc-group-ranking-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:12px}
.tc-group-ranking-tabs button{appearance:none;border:1px solid #d7e1ea;background:#fff;border-radius:11px;padding:10px 8px;text-align:left;cursor:pointer;color:#274663;transition:.18s ease;min-width:0}
.tc-group-ranking-tabs button strong,.tc-group-ranking-tabs button small{display:block}
.tc-group-ranking-tabs button strong{font-size:.78rem;line-height:1.25}
.tc-group-ranking-tabs button small{margin-top:3px;color:#8291a0;font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-group-ranking-tabs button:hover{border-color:#cfaa45;transform:translateY(-1px)}
.tc-group-ranking-tabs button.is-active{border-color:#d0a33a;background:#0d3358;color:#fff;box-shadow:inset 0 -3px 0 #e1b545}
.tc-group-ranking-tabs button.is-active small{color:#d8e4ef}
.tc-group-ranking-panel[hidden]{display:none!important}
.tc-group-ranking-list{display:grid;gap:6px}
.tc-group-ranking-row{display:grid;grid-template-columns:48px minmax(140px,1fr) minmax(180px,.9fr);align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e1e8ee;border-radius:11px}
.tc-group-ranking-row.is-you{border-color:#d7aa3d;background:#fff9e9;box-shadow:0 5px 16px rgba(159,114,15,.08)}
.tc-group-ranking-pos{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf3f7;color:#34526e;font-weight:900;font-size:.82rem}
.tc-group-ranking-pos.is-top{background:#fff4d6}
.tc-group-ranking-name{display:flex;align-items:center;gap:8px;color:#183b5b;font-weight:800;min-width:0}
.tc-group-ranking-name b{display:inline-flex;padding:3px 7px;border-radius:999px;background:#0e3458;color:#fff;font-size:.62rem;white-space:nowrap}
.tc-group-ranking-metric{text-align:right;color:#173c5d}
.tc-group-ranking-metric strong,.tc-group-ranking-metric small{display:block}
.tc-group-ranking-metric strong{font-size:.9rem}
.tc-group-ranking-metric small{margin-top:2px;color:#748697;font-size:.68rem}
.tc-group-ranking-divider{text-align:center;color:#9aa8b5;letter-spacing:.3em;padding:2px}
.tc-group-ranking-empty{padding:18px;border:1px dashed #ccd9e4;border-radius:11px;color:#6e8091;text-align:center;background:#fff}
.tc-group-ranking-you-note{display:flex;gap:12px;align-items:center;margin-top:12px;padding:11px 13px;border-radius:11px;background:#eef6f1;color:#385d4a}
.tc-group-ranking-you-note strong{white-space:nowrap}.tc-group-ranking-you-note span{font-size:.76rem;line-height:1.6}
.tc-group-ranking-consent{margin:8px 0 0;color:#687d8f;line-height:1.6}
.tc-group-admin-hub{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 12px;padding:16px 18px;border-radius:15px;background:#0d3458;color:#fff;border:1px solid #d1a63e}
.tc-group-admin-hub .tc-kicker{color:#f0bd43}.tc-group-admin-hub h5{margin:2px 0 3px;color:#fff;font-size:1.05rem}.tc-group-admin-hub p{margin:0;color:#d5e2ed;font-size:.78rem}.tc-group-admin-hub .tc-secondary{background:#fff;color:#123a5e;border-color:#fff;white-space:nowrap}
.tc-group-admin-table .tc-member-report-link{display:inline-flex;align-items:center;white-space:nowrap;font-weight:850;color:#0b4e80;text-decoration:none;padding:6px 9px;border-radius:8px;background:#eef6fb}
.tc-group-admin-table tr.is-report-selected{background:#fff8e6}.tc-group-admin-table tr.is-report-selected td{border-bottom-color:#ead28f}
.tc-group-member-report{margin:16px 0 22px;padding:20px;border:1px solid #d3aa43;border-radius:17px;background:#fff;box-shadow:0 14px 34px rgba(22,55,83,.08)}
.tc-group-member-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:13px;border-bottom:1px solid #e7edf2}
.tc-group-member-report-head h5{margin:3px 0 4px;color:#0d2f50;font-size:1.2rem}.tc-group-member-report-head p{margin:0;color:#6d7f90;font-size:.8rem}
.tc-member-report-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.tc-member-report-actions form{margin:0}
.tc-member-report-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.tc-member-report-kpis>div{padding:12px;border-radius:12px;background:#f6f9fb;border:1px solid #dde6ed}.tc-member-report-kpis span{display:block;color:#728596;font-size:.68rem;font-weight:800}.tc-member-report-kpis b{display:inline-block;margin-top:4px;color:#123858;font-size:1.05rem}.tc-member-report-kpis small{margin-left:3px;color:#718596}
.tc-member-report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}.tc-member-report-grid article{padding:14px;border:1px solid #dfe7ed;border-radius:12px;background:#fff}.tc-member-report-grid span{display:block;color:#718393;font-size:.72rem;font-weight:800}.tc-member-report-grid strong{display:block;margin:4px 0;color:#0d3457;font-size:1.02rem}.tc-member-report-grid p{margin:0;color:#6b7d8e;font-size:.73rem;line-height:1.55}
.tc-member-report-ranking{margin-top:14px;padding:14px;border-radius:13px;background:#f3f7fa}.tc-member-report-ranking h6,.tc-member-report-tips h6{margin:0 0 8px;color:#153a59;font-size:.9rem}.tc-member-report-ranking>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.tc-member-report-ranking span{display:block;padding:9px;border-radius:9px;background:#fff;color:#536a7d;font-size:.72rem}.tc-member-report-ranking b{display:block;margin-bottom:2px;color:#173b5a;font-size:.68rem}
.tc-member-report-tips{margin-top:12px;padding:14px;border:1px solid #ead18d;border-radius:13px;background:#fff9ea}.tc-member-report-tips>p{margin:-3px 0 9px;color:#7d7256;font-size:.7rem}.tc-member-report-tips>div{margin-top:6px;padding:8px 10px;border-radius:9px;background:#fff;color:#4e6171;font-size:.76rem;line-height:1.65}
.tc-group-overview-table .tc-table th:last-child,.tc-group-overview-table .tc-table td:last-child{white-space:nowrap}
.tc-gfaq-ranking-diagram{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}.tc-gfaq-ranking-diagram>div{padding:15px 12px;border:1px solid #dce6ed;border-radius:13px;background:#fff;text-align:center}.tc-gfaq-ranking-diagram b{display:block;color:#0d365a;font-size:.88rem}.tc-gfaq-ranking-diagram span{display:block;margin-top:4px;color:#728597;font-size:.7rem;line-height:1.5}.tc-gfaq-ranking-diagram>div:first-child{background:#0f365b;border-color:#cfa63c}.tc-gfaq-ranking-diagram>div:first-child b{color:#fff}.tc-gfaq-ranking-diagram>div:first-child span{color:#dce8f1}
@media(max-width:1100px){.tc-groups-benefits{grid-template-columns:repeat(2,1fr)}.tc-member-report-kpis{grid-template-columns:repeat(3,1fr)}.tc-group-ranking-tabs{grid-template-columns:repeat(3,1fr)}.tc-gfaq-ranking-diagram{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.tc-group-ranking-head,.tc-group-admin-hub,.tc-group-member-report-head{display:grid}.tc-group-ranking-tabs{grid-template-columns:1fr 1fr}.tc-group-ranking-row{grid-template-columns:42px 1fr}.tc-group-ranking-metric{grid-column:2;text-align:left}.tc-group-ranking-you-note{display:grid}.tc-member-report-kpis{grid-template-columns:1fr 1fr}.tc-member-report-grid{grid-template-columns:1fr}.tc-member-report-ranking>div{grid-template-columns:1fr 1fr}.tc-gfaq-ranking-diagram{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.tc-groups-benefits{grid-template-columns:1fr}.tc-group-ranking-tabs{grid-template-columns:1fr}.tc-member-report-kpis,.tc-member-report-ranking>div,.tc-gfaq-ranking-diagram{grid-template-columns:1fr}.tc-member-report-actions{display:grid}.tc-member-report-actions .tc-secondary{width:100%}}
@media print{
  body.tc-print-member-report *{visibility:hidden!important}
  body.tc-print-member-report .tc-group-member-report,body.tc-print-member-report .tc-group-member-report *{visibility:visible!important}
  body.tc-print-member-report .tc-group-member-report{position:absolute;left:0;top:0;width:100%;margin:0;border:0;box-shadow:none}
  body.tc-print-member-report .tc-member-report-actions,body.tc-print-member-report .tc-text-button{display:none!important}
}

/* ---- typing-coach-polish-v173 | assets/css/polish-v173.css ---- */
/* Typing Coach v1.73.0 — Groups demo + operator preview */
.tc-system-page-typing-coach-groups-demo .tc-system-main__inner{max-width:1500px}
.tc-group-demo{--demo-navy:#0d3458;--demo-gold:#d2a63b;--demo-ink:#173b5a;--demo-soft:#f3f7fa;max-width:1400px;margin:0 auto;padding:14px 0 50px;color:var(--demo-ink)}
.tc-demo-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:28px;align-items:stretch;margin-bottom:18px;padding:clamp(28px,5vw,62px);border-radius:24px;background:linear-gradient(125deg,#0b2c4c 0%,#123e66 58%,#174a73 100%);color:#fff;box-shadow:0 22px 55px rgba(13,52,88,.13);overflow:hidden;position:relative}
.tc-demo-hero:after{content:"TC";position:absolute;right:-20px;bottom:-78px;font-size:210px;font-weight:950;line-height:1;color:rgba(255,255,255,.035);pointer-events:none}
.tc-demo-hero .tc-home-eyebrow{color:#efc85b}.tc-demo-hero h1{margin:9px 0 14px;color:#fff;font-size:clamp(2rem,4vw,3.8rem);line-height:1.15;letter-spacing:-.035em}.tc-demo-hero h1 strong{color:#f4cb5d}.tc-demo-hero p{max-width:820px;margin:0;color:#d9e6ef;font-size:clamp(.9rem,1.4vw,1.05rem);line-height:1.9}.tc-demo-hero aside{align-self:center;padding:22px;border:1px solid rgba(244,203,93,.48);border-radius:18px;background:rgba(3,26,47,.35);backdrop-filter:blur(4px)}.tc-demo-hero aside strong{display:block;margin:11px 0 5px;color:#fff;font-size:1.05rem}.tc-demo-hero aside p{font-size:.78rem;line-height:1.7}
.tc-demo-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#fff4d1;color:#705108;font-size:.68rem;font-weight:900;letter-spacing:.05em;white-space:nowrap}
.tc-demo-view-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 24px}.tc-demo-view-nav a{display:flex;gap:12px;align-items:center;padding:15px 16px;border:1px solid #dce5ec;border-radius:14px;background:#fff;text-decoration:none;color:#234764;box-shadow:0 6px 18px rgba(20,57,87,.04);transition:.18s ease}.tc-demo-view-nav a:hover{border-color:#d5b04d;transform:translateY(-1px)}.tc-demo-view-nav a.is-active{background:#0d3458;border-color:#d4aa42;color:#fff}.tc-demo-view-nav b{display:grid;place-items:center;min-width:34px;height:34px;border-radius:10px;background:#eef3f7;color:#49657b;font-size:.72rem}.tc-demo-view-nav a.is-active b{background:#f2c75b;color:#17324b}.tc-demo-view-nav span,.tc-demo-view-nav strong,.tc-demo-view-nav small{display:block}.tc-demo-view-nav strong{font-size:.84rem}.tc-demo-view-nav small{margin-top:2px;color:#7b8d9c;font-size:.68rem}.tc-demo-view-nav a.is-active small{color:#d6e3ed}
.tc-demo-card{margin:16px 0 22px;padding:clamp(18px,3vw,28px);border:1px solid #dbe5ec;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(18,52,80,.055)}
.tc-demo-group-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding-bottom:18px;border-bottom:1px solid #e3ebf1}.tc-demo-group-mark{display:grid;place-items:center;width:54px;height:60px;border-radius:14px 14px 20px 20px;background:#0d3458;border:2px solid #d4aa42;color:#fff;font-weight:950;font-size:1rem}.tc-demo-group-head span:not(.tc-demo-badge){display:block;color:#b78a21;font-size:.67rem;font-weight:900;letter-spacing:.09em}.tc-demo-group-head h2{margin:2px 0 2px;color:#0d3458;font-size:1.45rem}.tc-demo-group-head p{margin:0;color:#718595;font-size:.76rem}
.tc-demo-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:16px 0}.tc-demo-kpis article{padding:15px;border:1px solid #dde6ed;border-radius:13px;background:#f7fafc}.tc-demo-kpis span{display:block;color:#718596;font-size:.69rem;font-weight:800}.tc-demo-kpis b{display:inline-block;margin-top:4px;color:#123958;font-size:1.3rem}.tc-demo-kpis small{margin-left:3px;color:#708496}
.tc-demo-intelligence{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:center;padding:14px 16px;border-radius:13px;background:linear-gradient(90deg,#eef6f2,#f7fafc);border:1px solid #dce9e1}.tc-demo-intelligence span{display:block;color:#478062;font-size:.63rem;font-weight:900;letter-spacing:.08em}.tc-demo-intelligence strong{display:block;margin-top:3px;color:#244f3a}.tc-demo-intelligence p{margin:0;color:#526d60;font-size:.75rem;line-height:1.7}.tc-demo-admin-hub{margin-top:16px}.tc-demo-admin-hub h3{margin:3px 0;color:#fff}.tc-demo-member-table{margin-top:16px}.tc-demo-member-table .tc-table{min-width:980px}.tc-demo-member-table .tc-coach-rank-mini{display:inline-flex;gap:4px;align-items:center;padding:4px 7px;border-radius:999px;background:#eef4f8;color:#1a4668;font-weight:850;white-space:nowrap}.tc-demo-member-table .tc-coach-rank-mini small{color:#6f8190}.tc-demo-invite{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px;padding:14px;border-radius:13px;background:#f7f9fb;border:1px dashed #cad8e3}.tc-demo-invite>div{padding:9px 11px;border-radius:10px;background:#fff}.tc-demo-invite span{display:block;color:#7b8c9b;font-size:.67rem}.tc-demo-invite strong,.tc-demo-invite code{display:block;margin-top:3px;color:#153b5c;font-weight:850}.tc-demo-invite p{grid-column:1/-1;margin:0;color:#718494;font-size:.72rem;line-height:1.6}
.tc-demo-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:14px}.tc-demo-section-head span{color:#b78a21;font-size:.66rem;font-weight:900;letter-spacing:.09em}.tc-demo-section-head h2{margin:4px 0;color:#0d3458;font-size:1.35rem;line-height:1.35}.tc-demo-section-head p{max-width:420px;margin:0;color:#718494;font-size:.76rem;line-height:1.65}.tc-demo-ranking-tabs{margin-top:8px}.tc-demo-footnote{margin:12px 0 0;color:#748696;font-size:.7rem;line-height:1.6}
.tc-demo-member-picker{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:18px 0}.tc-demo-member-picker>span{margin-right:4px;color:#6f8190;font-size:.72rem;font-weight:800}.tc-demo-member-picker a{padding:7px 10px;border:1px solid #d8e3eb;border-radius:999px;background:#fff;color:#28506e;text-decoration:none;font-size:.72rem;font-weight:800}.tc-demo-member-picker a.is-active{background:#0d3458;border-color:#d2a63b;color:#fff}
.tc-demo-report{max-width:none}.tc-demo-report .tc-group-member-report-head h2{margin:3px 0;color:#0d3458;font-size:1.35rem}.tc-demo-report .tc-member-report-ranking h3,.tc-demo-report .tc-member-report-tips h3,.tc-demo-recent-table h3{margin:0 0 9px;color:#153b5a;font-size:.92rem}.tc-demo-recent-table{margin-top:14px;padding-top:14px;border-top:1px solid #e1e8ee}.tc-demo-recent-table .tc-table{min-width:700px}
.tc-demo-final{margin-top:28px;padding:clamp(28px,4vw,46px);border-radius:20px;background:#f6f2e8;text-align:center;border:1px solid #e5d6aa}.tc-demo-final h2{margin:6px 0;color:#0d3458;font-size:clamp(1.5rem,2.8vw,2.25rem)}.tc-demo-final p{max-width:760px;margin:0 auto 18px;color:#667b8d;line-height:1.75}.tc-demo-final .tc-home-actions{justify-content:center}
.tc-admin-demo-wrap .tc-admin-demo-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.tc-admin-demo-wrap .tc-admin-demo-toolbar a{display:inline-flex;padding:9px 13px;border:1px solid #ccd8e1;border-radius:8px;background:#fff;text-decoration:none;font-weight:700}.tc-admin-demo-wrap .tc-admin-demo-toolbar a.is-primary{background:#0d3458;border-color:#0d3458;color:#fff}.tc-admin-demo-frame{width:100%;min-height:1150px;border:1px solid #ccd8e1;border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(17,48,73,.08)}.tc-admin-preview-note{max-width:1180px;padding:16px 18px;border-left:4px solid #d0a33a;background:#fff;border-top:1px solid #dfe5ea;border-right:1px solid #dfe5ea;border-bottom:1px solid #dfe5ea}.tc-admin-preview-note p{margin-bottom:0}
.tc-home-groups-demo-link,.tc-gfaq-demo-link{display:inline-flex!important;align-items:center;gap:7px!important}.tc-home-groups-demo-link:before,.tc-gfaq-demo-link:before{content:"▶";font-size:.72em}
@media(max-width:1050px){.tc-demo-hero{grid-template-columns:1fr}.tc-demo-kpis{grid-template-columns:repeat(3,1fr)}.tc-demo-intelligence{grid-template-columns:1fr}.tc-demo-section-head{display:block}.tc-demo-section-head p{max-width:none;margin-top:7px}}
@media(max-width:760px){.tc-demo-view-nav{grid-template-columns:1fr}.tc-demo-kpis{grid-template-columns:1fr 1fr}.tc-demo-group-head{grid-template-columns:auto 1fr}.tc-demo-group-head .tc-demo-badge{grid-column:1/-1;justify-self:start}.tc-demo-invite{grid-template-columns:1fr}.tc-demo-invite p{grid-column:auto}.tc-demo-hero{padding:26px 20px}.tc-demo-hero h1 br{display:none}.tc-demo-final .tc-home-actions{display:grid}.tc-demo-final .tc-home-actions a{width:100%}}
@media(max-width:480px){.tc-demo-kpis{grid-template-columns:1fr}.tc-demo-view-nav a{padding:12px}.tc-demo-card{padding:15px}.tc-demo-admin-hub{display:grid}}
@media print{
  body.tc-print-demo-report *{visibility:hidden!important}
  body.tc-print-demo-report .tc-demo-report,body.tc-print-demo-report .tc-demo-report *{visibility:visible!important}
  body.tc-print-demo-report .tc-demo-report{position:absolute;left:0;top:0;width:100%;margin:0;border:0;box-shadow:none}
  body.tc-print-demo-report .tc-member-report-actions,body.tc-print-demo-report .tc-demo-badge{display:none!important}
}
.tc-group-help-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.tc-group-help-actions a:first-child{padding:6px 10px;border-radius:8px;background:#fff5d8;color:#73540a!important;border:1px solid #e0bd62;text-decoration:none!important;font-weight:850}.tc-group-help-actions a:last-child{align-self:center}
@media(max-width:760px){.tc-group-help-actions{justify-content:flex-start;display:grid}.tc-group-help-actions a{width:100%}}

/* ---- typing-coach-polish-v174 | assets/css/polish-v174.css ---- */
/* Typing Coach v1.74.0 — report hierarchy + weekly/monthly report mail */
.tc-group-member-report,.tc-demo-report{--tc-report-navy:#0d3458;--tc-report-gold:#d2a63b;--tc-report-blue:#eaf4fb;--tc-report-green:#edf7f1;--tc-report-rose:#fff0f2;--tc-report-ivory:#fff8e6}
.tc-report-action-bar{align-items:stretch;gap:9px!important}
.tc-report-action{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border-radius:10px;border:1px solid transparent;text-decoration:none!important;font:inherit;font-size:.78rem;font-weight:850;line-height:1.2;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.tc-report-action:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(16,53,84,.11)}
.tc-report-action-primary{background:#d2a63b;color:#17324b!important;border-color:#c59629;box-shadow:0 5px 14px rgba(171,126,22,.17)}
.tc-report-action-secondary{background:#0d3458;color:#fff!important;border-color:#0d3458}
.tc-report-action-tertiary{background:#fff;color:#244c69!important;border-color:#b9cbd8}
.tc-member-report-actions form .tc-report-action{width:100%;height:100%}
.tc-member-report-kpis>div{position:relative;overflow:hidden;border-color:#dce6ed;background:#f7fafc}
.tc-member-report-kpis>div:nth-child(1){background:#fff8e6;border-color:#ead28e}.tc-member-report-kpis>div:nth-child(2){background:#eef5fb;border-color:#cfdfec}.tc-member-report-kpis>div:nth-child(3){background:#edf7f1;border-color:#cfe5d8}.tc-member-report-kpis>div:nth-child(4){background:#fff0f2;border-color:#ecd4d8}.tc-member-report-kpis>div:nth-child(5){background:#edf7f4;border-color:#cee4dc}.tc-member-report-kpis>div:nth-child(6){background:#f4f1fb;border-color:#ddd6ec}
.tc-member-report-kpis>div:after{content:"";position:absolute;right:-18px;top:-18px;width:44px;height:44px;border-radius:50%;background:rgba(13,52,88,.035)}
.tc-member-report-grid article:nth-child(1){background:#eef6fb;border-color:#cfdfeb}.tc-member-report-grid article:nth-child(2){background:#edf7f1;border-color:#cfe4d7}.tc-member-report-grid article:nth-child(3){background:#fff8e6;border-color:#ead18a}
.tc-member-report-grid article strong{font-size:1.08rem}
.tc-member-report-ranking{background:linear-gradient(135deg,#f4f8fb,#fbfcfd);border:1px solid #dce6ed}.tc-member-report-ranking span:nth-child(1){background:#fff7df;border:1px solid #ead18a}.tc-member-report-ranking span:nth-child(2){background:#eef6fb}.tc-member-report-ranking span:nth-child(3){background:#f4f1fb}.tc-member-report-ranking span:nth-child(4){background:#edf7f1}.tc-member-report-ranking span:nth-child(5){background:#fff0f2}
.tc-member-report-mailbox{margin:16px 0;padding:16px;border:1px solid #cadbe7;border-radius:14px;background:linear-gradient(135deg,#f8fbfd 0%,#fff 65%)}
.tc-member-report-mailbox-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.tc-member-report-mailbox-head h6{margin:3px 0 5px;color:#0d3458;font-size:.96rem}.tc-member-report-mailbox-head p{margin:0;max-width:720px;color:#657c8e;font-size:.74rem;line-height:1.65}.tc-mail-recipient{display:inline-flex;flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#edf3f7;color:#496579;font-size:.68rem;font-weight:800}
.tc-member-report-mail-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.tc-member-report-mail-options article{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center;padding:12px;border-radius:11px;border:1px solid #dce6ed;background:#fff}.tc-member-report-mail-options article:first-child{border-left:4px solid #2b75a6}.tc-member-report-mail-options article:nth-child(2){border-left:4px solid #d2a63b}.tc-member-report-mail-options strong{display:block;color:#153b5a;font-size:.81rem}.tc-member-report-mail-options span{display:block;margin-top:2px;color:#738797;font-size:.67rem}.tc-member-report-mail-options small{grid-column:1/-1;color:#708493;font-size:.66rem}
.tc-report-mail-primary,.tc-report-mail-secondary{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;border-radius:9px;font:inherit;font-size:.74rem;font-weight:850;cursor:pointer;transition:.16s ease}.tc-report-mail-primary{background:#d2a63b;color:#17324b;border:1px solid #c3962e}.tc-report-mail-secondary{background:#fff;color:#0d3458;border:1px solid #b9cbd8}.tc-report-mail-primary:hover,.tc-report-mail-secondary:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,52,82,.1)}.tc-report-mail-primary:disabled,.tc-report-mail-secondary:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}
.tc-report-mail-status{min-height:0;margin-top:8px;font-size:.7rem;font-weight:750;line-height:1.55}.tc-report-mail-status.is-working{color:#315e7e}.tc-report-mail-status.is-success{color:#246745}.tc-report-mail-status.is-error{color:#9a3440}
.tc-group-admin-report-hub{align-items:flex-start;flex-wrap:wrap}.tc-group-admin-report-hub>div:first-child{flex:1 1 360px}.tc-group-admin-report-hub>form{flex:0 0 auto}.tc-group-report-batch-mail{flex:1 0 100%;margin-top:4px;padding:13px 14px;border-radius:11px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18)}.tc-group-report-batch-mail>strong{display:block;color:#fff;font-size:.84rem}.tc-group-report-batch-mail>p{margin:4px 0 10px!important;color:#dce8f1!important}.tc-group-report-batch-mail>div:not(.tc-report-mail-status){display:flex;flex-wrap:wrap;gap:7px}.tc-group-report-batch-mail>small{display:block;margin-top:8px;color:#bad0df;font-size:.66rem}.tc-group-report-batch-mail .tc-report-mail-secondary{background:#fff}.tc-group-report-batch-mail .tc-report-mail-status.is-working{color:#dcebf5}.tc-group-report-batch-mail .tc-report-mail-status.is-success{color:#d9f3e4}.tc-group-report-batch-mail .tc-report-mail-status.is-error{color:#ffd4d9}
.tc-report-mail-demo{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);gap:18px;margin:16px 0;padding:16px;border-radius:14px;background:linear-gradient(135deg,#0d3458,#154b74);border:1px solid #d2a63b;color:#fff}.tc-report-mail-demo .tc-kicker{color:#efc85b}.tc-report-mail-demo h3{margin:4px 0 5px!important;color:#fff!important}.tc-report-mail-demo p{margin:0;color:#d8e6ef;font-size:.73rem;line-height:1.7}.tc-report-mail-demo form{display:grid;grid-template-columns:1fr 1.35fr auto;gap:8px;align-items:end}.tc-report-mail-demo label span{display:block;margin-bottom:4px;color:#d7e5ef;font-size:.65rem;font-weight:750}.tc-report-mail-demo select,.tc-report-mail-demo input[type=email]{box-sizing:border-box;width:100%;min-height:39px;padding:8px 9px;border:1px solid #b6cad8;border-radius:8px;background:#fff;color:#173b5a}.tc-report-mail-demo small{grid-column:1/-1;color:#bfd2df;font-size:.64rem}.tc-report-mail-demo .tc-report-mail-status{grid-column:1/-1;margin-top:0}.tc-demo-mail-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:900px){.tc-report-mail-demo{grid-template-columns:1fr}.tc-report-mail-demo form{grid-template-columns:1fr 1fr}.tc-report-mail-demo .tc-report-mail-primary{grid-column:1/-1}.tc-member-report-mailbox-head{display:grid}.tc-mail-recipient{justify-self:start}}
@media(max-width:650px){.tc-member-report-mail-options{grid-template-columns:1fr}.tc-report-action-bar{display:grid!important}.tc-report-action-bar>*{width:100%}.tc-report-action{width:100%}.tc-report-mail-demo form{grid-template-columns:1fr}.tc-report-mail-demo .tc-report-mail-primary{grid-column:auto}.tc-group-report-batch-mail>div:not(.tc-report-mail-status){display:grid}.tc-group-report-batch-mail button{width:100%}}
@media print{body.tc-print-member-report .tc-member-report-mailbox,body.tc-print-demo-report .tc-report-mail-demo{display:none!important}}
.tc-demo-admin-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tc-demo-admin-actions .tc-secondary,.tc-demo-admin-actions .tc-report-mail-primary{text-decoration:none}
@media(max-width:650px){.tc-demo-admin-actions{display:grid;width:100%}.tc-demo-admin-actions a{width:100%;box-sizing:border-box;text-align:center}}
/* v1.74.1: Groups demo mail feedback / anchor visibility */
#tc-demo-report-mail{scroll-margin-top:clamp(92px,12vh,132px)}
.tc-report-mail-demo .tc-report-mail-status:not(:empty){display:flex;align-items:flex-start;gap:8px;min-height:44px;box-sizing:border-box;margin-top:4px;padding:10px 12px;border:1px solid rgba(255,255,255,.34);border-radius:10px;background:#f6fbff;color:#173b5a;font-size:.76rem;font-weight:850;line-height:1.55;box-shadow:0 7px 18px rgba(4,25,44,.16)}
.tc-report-mail-demo .tc-report-mail-status:not(:empty)::before{flex:0 0 auto;display:inline-grid;place-items:center;width:19px;height:19px;margin-top:1px;border-radius:50%;font-size:.68rem;font-weight:900}
.tc-report-mail-demo .tc-report-mail-status.is-working{background:#eef6fb;border-color:#a9c9dc;color:#174e70}.tc-report-mail-demo .tc-report-mail-status.is-working::before{content:'…';background:#d8eaf4;color:#174e70}
.tc-report-mail-demo .tc-report-mail-status.is-success{background:#edf9f1;border-color:#92c8a6;color:#155b37}.tc-report-mail-demo .tc-report-mail-status.is-success::before{content:'✓';background:#ccebd8;color:#155b37}
.tc-report-mail-demo .tc-report-mail-status.is-error{background:#fff1f2;border-color:#e1a1a7;color:#8a2834}.tc-report-mail-demo .tc-report-mail-status.is-error::before{content:'!';background:#f4d1d5;color:#8a2834}
@media(max-width:650px){#tc-demo-report-mail{scroll-margin-top:86px}.tc-report-mail-demo .tc-report-mail-status:not(:empty){font-size:.74rem;padding:10px}}

/* ---- typing-coach-polish-v175 | assets/css/polish-v175.css ---- */
/* Typing Coach v1.75.0 — 100-member group management upgrade */
.tc-group-card.is-managed{border-color:#c9d9e4;box-shadow:0 14px 34px rgba(13,52,88,.06)}
.tc-group-manager-console{margin-top:18px;padding:18px;border:1px solid #cbdbe6;border-radius:16px;background:linear-gradient(180deg,#f8fbfd 0%,#fff 42%)}
.tc-group-manager-console-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.tc-group-manager-console-head h5{margin:3px 0 4px;color:#0d3458}.tc-group-manager-console-head p{margin:0;color:#657d8f;font-size:.75rem;line-height:1.65}.tc-manager-role-badge{display:inline-flex;white-space:nowrap;padding:6px 10px;border-radius:999px;background:#fff7df;border:1px solid #e6cb79;color:#725710;font-size:.68rem;font-weight:850}
.tc-group-management-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:12px;margin:14px 0}.tc-group-management-card{min-width:0;padding:15px;border:1px solid #dce6ed;border-radius:13px;background:#fff}.tc-group-management-card h6{margin:3px 0 6px;color:#123b5c;font-size:.91rem}.tc-group-management-card>p{margin:0 0 10px;color:#6d8191;font-size:.7rem;line-height:1.6}.tc-group-invite-tools{background:#f6fbff}.tc-group-goal-tools{background:#f5faf7}.tc-group-ranking-settings{background:#fffaf0}
.tc-bulk-member-details{margin-top:10px;border-top:1px solid #dce6ed;padding-top:9px}.tc-bulk-member-details summary{cursor:pointer;color:#205b80;font-size:.73rem;font-weight:850}.tc-bulk-member-form{margin-top:10px!important}.tc-bulk-member-form textarea{box-sizing:border-box;width:100%;resize:vertical;min-height:86px}.tc-check-label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:7px}.tc-check-label input{width:auto!important}.tc-check-label span{margin:0!important}
.tc-group-goal-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tc-group-goal-form label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;padding:8px;border-radius:9px;background:#fff;border:1px solid #dce6ed}.tc-group-goal-form label span{grid-column:1/-1;font-size:.67rem;color:#667d8d;font-weight:750}.tc-group-goal-form input{min-width:0;width:100%;box-sizing:border-box}.tc-group-goal-form label small{font-size:.66rem;color:#748797}.tc-group-goal-form button{grid-column:1/-1}
.tc-ranking-visibility-form{display:grid;gap:6px}.tc-ranking-visibility-form label{display:flex;align-items:flex-start;gap:7px;padding:7px 8px;border:1px solid #eadfb8;border-radius:8px;background:#fff;font-size:.69rem;line-height:1.4}.tc-ranking-visibility-form input{margin-top:2px}.tc-ranking-visibility-form button{margin-top:3px}
.tc-group-followup-board,.tc-group-period-reports{margin:18px 0}.tc-followup-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tc-followup-grid article{padding:14px;border:1px solid #dce6ed;border-radius:13px}.tc-followup-grid article>strong{display:flex;justify-content:space-between;gap:10px;color:#173b5a}.tc-followup-grid article>strong span{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:rgba(13,52,88,.08);font-size:.7rem}.tc-followup-grid article>p{color:#667e8f;font-size:.72rem}.tc-followup-grid article>a{display:block;padding:9px 0;border-top:1px solid rgba(18,59,92,.1);text-decoration:none}.tc-followup-grid article>a:first-of-type{margin-top:8px}.tc-followup-grid a b{display:block;color:#173b5a;font-size:.75rem}.tc-followup-grid a small{display:block;margin-top:2px;color:#617889;font-size:.66rem;line-height:1.45}.tc-followup-grid .is-needs{background:#fff9ea;border-color:#ead38b}.tc-followup-grid .is-growth{background:#eef8f2;border-color:#cce4d5}
.tc-period-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tc-period-report-grid article{padding:14px;border:1px solid #dce6ed;border-radius:13px;background:#fff}.tc-period-report-grid article>div:first-child span{display:block;color:#d2a63b;font-size:.62rem;font-weight:900;letter-spacing:.12em}.tc-period-report-grid article strong{display:block;margin:3px 0;color:#153b5a}.tc-period-report-grid article small{color:#6f8392;font-size:.66rem}.tc-period-report-grid dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}.tc-period-report-grid dl div{padding:8px;border-radius:8px;background:#f5f8fa}.tc-period-report-grid dt{color:#758896;font-size:.62rem}.tc-period-report-grid dd{margin:2px 0 0;color:#173b5a;font-size:.78rem;font-weight:850}.tc-period-report-grid form button{width:100%}
.tc-report-batch-actions .is-selected{outline:1px dashed rgba(255,255,255,.45);outline-offset:2px}.tc-select-col{width:36px;text-align:center!important}.tc-select-col input{width:16px;height:16px}.tc-goal-progress{display:inline-flex;padding:4px 7px;border-radius:999px;background:#fff1e5;color:#89511f;font-size:.69rem;font-weight:850}.tc-goal-progress.is-complete{background:#eaf7ef;color:#2c6947}
.tc-group-role-management>p{margin-top:-3px;color:#6b8190;font-size:.7rem;line-height:1.6}.tc-group-role-management .tc-group-member-row>span b,.tc-group-role-management .tc-group-member-row>span small{display:block}.tc-group-role-management .tc-group-member-row>span small{margin-top:2px;color:#718494;font-size:.65rem}.tc-group-role-management .tc-group-member-row>div{display:flex;flex-wrap:wrap;gap:7px}.tc-text-button.is-danger{color:#a13b47!important}.tc-subadmin-leave{margin-top:14px}
.tc-group-ranking-private{padding:12px 14px;border:1px dashed #c6d6e1;border-radius:12px;background:#f8fafc}.tc-group-ranking-private .tc-group-ranking-head{margin:0}
@media(max-width:1050px){.tc-group-management-grid{grid-template-columns:1fr 1fr}.tc-group-invite-tools{grid-column:1/-1}}
@media(max-width:720px){.tc-group-manager-console{padding:13px}.tc-group-manager-console-head{display:grid}.tc-manager-role-badge{justify-self:start}.tc-group-management-grid,.tc-followup-grid,.tc-period-report-grid{grid-template-columns:1fr}.tc-group-invite-tools{grid-column:auto}.tc-group-goal-form{grid-template-columns:1fr}.tc-group-overview-table .tc-table{min-width:900px}.tc-group-role-management .tc-group-member-row{align-items:flex-start}.tc-group-role-management .tc-group-member-row>div{justify-content:flex-end}}

/* Individual goal override */
.tc-member-goal-override{margin:14px 0 18px;border:1px solid #d8e3eb;border-radius:14px;background:#fbfdff;overflow:hidden}.tc-member-goal-override summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;list-style:none}.tc-member-goal-override summary::-webkit-details-marker{display:none}.tc-member-goal-override summary span{display:grid;gap:3px}.tc-member-goal-override summary small{color:#6d8090;font-weight:600}.tc-member-goal-override summary>b{font-size:12px;color:#a47416}.tc-member-goal-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 16px}.tc-member-goal-form label{display:grid;gap:5px}.tc-member-goal-form label span{font-size:12px;font-weight:800;color:#526b7d}.tc-member-goal-form input{width:100%;box-sizing:border-box}.tc-member-goal-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}@media(max-width:760px){.tc-member-goal-form{grid-template-columns:1fr 1fr}}

/* Invite QR */
.tc-invite-qr-details{margin-top:10px;border-top:1px solid rgba(25,60,86,.1);padding-top:8px}.tc-invite-qr-details summary{cursor:pointer;font-weight:800;color:#173a58}.tc-invite-qr-wrap{display:flex;gap:14px;align-items:center;margin-top:10px;padding:12px;border-radius:12px;background:#fff}.tc-invite-qr{width:188px;min-width:188px;min-height:188px;display:grid;place-items:center;border:1px solid #d9e4eb;border-radius:10px;background:#fff;overflow:hidden}.tc-invite-qr canvas{display:block;max-width:100%;height:auto}.tc-invite-qr.is-error{padding:12px;box-sizing:border-box;font-size:12px;color:#8b3b3b}.tc-invite-qr-wrap p{margin:0;color:#607788;font-size:12px;line-height:1.65}.tc-demo-invite .tc-invite-qr-wrap.is-demo{margin:12px 0}@media(max-width:620px){.tc-invite-qr-wrap{align-items:flex-start;flex-direction:column}.tc-invite-qr{width:170px;min-width:170px;min-height:170px}}

/* ---- typing-coach-polish-v176 | assets/css/polish-v176.css ---- */
/* Typing Coach v1.76.0 — group availability + 50-member operation */
.tc-group-creation-status{display:flex;gap:12px;align-items:flex-start;margin:14px 0;padding:15px 16px;border:1px solid #e1c16f;border-radius:14px;background:#fff8e8;color:#173a58}.tc-group-creation-status>span{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:#c88b19;color:#fff;font-weight:900}.tc-group-creation-status strong{display:block;color:#7a4f00;font-size:.96rem}.tc-group-creation-status p{margin:4px 0 0;line-height:1.7}.tc-group-creation-status small{display:block;margin-top:7px;color:#5f4c25;line-height:1.65}.tc-group-creation-status em{display:block;margin-top:7px;color:#49667b;font-size:.78rem;font-style:normal;font-weight:700}.tc-group-creation-status.is-home{margin:18px 0 2px}.tc-group-creation-status.is-faq{margin:18px 0}.tc-group-creation-status.is-faq-final,.tc-group-creation-status.is-demo-final{max-width:760px;margin:18px auto}.tc-group-create-paused-card{border-color:#e1c16f!important;background:linear-gradient(180deg,#fffdf7 0%,#fff8e8 100%)!important}.tc-group-create-paused-card>strong{display:block;color:#7a4f00;margin:8px 0}.tc-group-create-paused-card>small{display:block;color:#66552d;line-height:1.65}.tc-group-availability-admin-status{padding:16px 18px;border-radius:12px;border:1px solid #cbd8e2;background:#f7fafc}.tc-group-availability-admin-status strong{font-size:18px}.tc-group-availability-admin-status p{margin:6px 0 0;line-height:1.65}.tc-group-availability-admin-status.is-open{border-left:5px solid #2f7a54;background:#eef8f2}.tc-group-availability-admin-status.is-open strong{color:#246341}.tc-group-availability-admin-status.is-paused{border-left:5px solid #b67b17;background:#fff8e8}.tc-group-availability-admin-status.is-paused strong{color:#7a4f00}@media(max-width:600px){.tc-group-creation-status{padding:13px 14px}.tc-group-creation-status>span{width:26px;height:26px;flex-basis:26px}}

/* ---- typing-coach-polish-v178 | assets/css/polish-v178.css ---- */
/* Typing Coach v1.78.0 — Terms of Use */
.tc-system-footer{gap:8px;flex-wrap:wrap}
.tc-footer-separator{color:#c5ccd3}
.tc-terms-footer-link{color:#5f7182;text-decoration:none;font-weight:700}
.tc-terms-footer-link:hover,.tc-terms-footer-link:focus-visible{color:#0d4dc6;text-decoration:underline;text-underline-offset:3px}
.tc-stage-copyright .tc-footer-separator,.tc-practice-copyright .tc-footer-separator,.tc-result-copyright .tc-footer-separator,.tc-copyright .tc-footer-separator{display:inline-block;margin:0 5px;color:currentColor;opacity:.55}
.tc-stage-copyright .tc-terms-footer-link,.tc-practice-copyright .tc-terms-footer-link,.tc-result-copyright .tc-terms-footer-link,.tc-copyright .tc-terms-footer-link{color:inherit;text-decoration:none;font:inherit;opacity:.9}
.tc-stage-copyright .tc-terms-footer-link:hover,.tc-practice-copyright .tc-terms-footer-link:hover,.tc-result-copyright .tc-terms-footer-link:hover,.tc-copyright .tc-terms-footer-link:hover{text-decoration:underline;text-underline-offset:2px;opacity:1}

.tc-system-page-typing-coach-terms .tc-system-main__inner{width:min(100%,1120px);margin-inline:auto}
.tc-terms{margin:0 auto;padding:22px 0 54px;color:#152b40;line-height:1.9}
.tc-terms-hero{padding:34px clamp(22px,4vw,46px);border:1px solid #d7e1e9;border-radius:24px;background:linear-gradient(135deg,#fffdfa 0%,#f4f8fb 62%,#fff8e7 100%);box-shadow:0 12px 30px rgba(23,50,74,.06)}
.tc-terms-hero h1{margin:6px 0 10px;color:#0d3154;font-size:clamp(2rem,4vw,3rem);line-height:1.25;letter-spacing:.015em}
.tc-terms-hero p{max-width:850px;margin:0;color:#51697d;font-size:1rem}
.tc-terms-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:18px;color:#6c7e8d;font-size:.84rem;font-weight:700}
.tc-terms-important{margin:22px 0;padding:20px 24px;border:1px solid #e2c36f;border-left:5px solid #c69218;border-radius:16px;background:#fffaf0}
.tc-terms-important>strong{display:block;margin-bottom:7px;color:#765300;font-size:1.03rem}
.tc-terms-important ul{margin:0;padding-left:1.25em;color:#3d4e5d}
.tc-terms-important li+li{margin-top:5px}
.tc-terms-toc{margin:22px 0 28px;padding:20px 24px;border:1px solid #d9e3eb;border-radius:16px;background:#f7fafc}
.tc-terms-toc>strong{display:block;margin-bottom:10px;color:#0d3154;font-size:1.03rem}
.tc-terms-toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 28px;margin:0;padding-left:1.4em}
.tc-terms-toc a{color:#155fbd;text-decoration:none}
.tc-terms-toc a:hover,.tc-terms-toc a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.tc-terms-section{scroll-margin-top:110px;margin:0;padding:28px clamp(4px,1vw,10px);border-top:1px solid #e1e7ed}
.tc-terms-section h2{margin:0 0 13px;color:#0d3154;font-size:1.3rem;line-height:1.45}
.tc-terms-section p{margin:0 0 12px}
.tc-terms-section ol,.tc-terms-section ul{margin:0;padding-left:1.55em}
.tc-terms-section li+li{margin-top:9px}
.tc-terms-section strong{color:#143b5d}
.tc-terms-end{margin-top:12px;padding-top:22px;border-top:2px solid #d7e1e9;text-align:right;color:#65798a;font-size:.9rem}
.tc-terms-end p{margin:3px 0}

.tc-registration-terms{margin:18px 0 12px;padding:14px 16px;border:1px solid #d8e2ea;border-radius:12px;background:#f8fbfd}
.tc-registration-terms .tc-terms-check{display:flex!important;gap:8px;align-items:flex-start;font-weight:700;color:#243c50}
.tc-registration-terms .tc-terms-check input{margin-top:4px;flex:0 0 auto}
.tc-registration-terms a{color:#0d56bd;text-decoration:underline;text-underline-offset:3px}
.tc-registration-terms small{display:block;margin:6px 0 0 26px;color:#6a7d8c;line-height:1.55}

@media(max-width:720px){
  .tc-terms{padding-top:10px}
  .tc-terms-hero{padding:24px 20px;border-radius:18px}
  .tc-terms-important,.tc-terms-toc{padding:17px 18px}
  .tc-terms-toc ol{grid-template-columns:1fr}
  .tc-terms-section{padding:23px 2px}
  .tc-terms-section h2{font-size:1.16rem}
}


/* v1.80.0 material terms re-acceptance */
.tc-terms-reaccept{margin:18px 0 22px;padding:18px 20px;border:1px solid rgba(183,139,38,.32);border-radius:16px;background:#fffaf0;box-shadow:0 10px 26px rgba(15,35,60,.06)}
.tc-terms-reaccept>strong{display:block;color:#172f4f;font-size:1.05rem;margin-bottom:8px}
.tc-terms-reaccept p{margin:0 0 12px;color:#40536b}
.tc-terms-reaccept-form{display:grid;gap:12px}.tc-terms-reaccept-form .tc-check{display:flex;gap:9px;align-items:flex-start;line-height:1.6}
.tc-terms-update-notice{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.tc-terms-update-notice>span{flex:1 1 320px}
@media(max-width:640px){.tc-terms-reaccept{padding:16px}.tc-terms-update-notice .tc-linkbtn{width:100%;text-align:center}}

/* ---- typing-coach-polish-v179 | assets/css/polish-v179.css ---- */
/* Typing Coach v1.79.0 — Privacy policy / commercial disclosure */
.tc-system-page-typing-coach-privacy .tc-system-main__inner,
.tc-system-page-typing-coach-commerce .tc-system-main__inner{width:min(100%,1120px);margin-inline:auto}
.tc-legal a{overflow-wrap:anywhere}
.tc-privacy-important{border-color:#b8d5c7;border-left-color:#2f7a54;background:#f3faf6}
.tc-privacy-important>strong{color:#205c3c}
.tc-commerce-preparing{border-color:#e6c87c;border-left-color:#b77a0b;background:#fff9ec}
.tc-commerce-preparing>strong{color:#735000}
.tc-commerce-warning{border-color:#e1a9a9;border-left-color:#a73e3e;background:#fff6f6}
.tc-commerce-warning>strong{color:#8a2f2f}
.tc-legal-table-wrap{width:100%;overflow-x:auto;margin:22px 0 28px;border:1px solid #d9e3eb;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(23,50,74,.04)}
.tc-legal-table{width:100%;min-width:680px;border-collapse:collapse;table-layout:auto}
.tc-legal-table th,.tc-legal-table td{padding:14px 16px;border-bottom:1px solid #e4e9ee;vertical-align:top;text-align:left;line-height:1.75}
.tc-legal-table thead th{background:#f2f7fa;color:#173c5d;font-size:.92rem;white-space:nowrap}
.tc-legal-table tbody th{width:27%;background:#f8fbfd;color:#173c5d;font-weight:800}
.tc-legal-table tr:last-child th,.tc-legal-table tr:last-child td{border-bottom:0}
.tc-legal-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.tc-legal .tc-linkbtn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border-radius:10px;text-decoration:none}
.tc-commerce .tc-terms-section{scroll-margin-top:110px}
.tc-system-footer .tc-terms-footer-link{white-space:nowrap}
@media(max-width:720px){
  .tc-legal-table{min-width:0;display:block}
  .tc-legal-table tbody,.tc-legal-table tr,.tc-legal-table th,.tc-legal-table td{display:block;width:100%}
  .tc-legal-table thead{display:none}
  .tc-legal-table tr{border-bottom:1px solid #dfe7ed}
  .tc-legal-table tr:last-child{border-bottom:0}
  .tc-legal-table tbody th{width:100%;padding:11px 14px;border-bottom:0;background:#f3f7fa}
  .tc-legal-table td{padding:12px 14px 16px;border-bottom:0}
  .tc-legal-links{display:grid;grid-template-columns:1fr}
  .tc-legal .tc-linkbtn{width:100%}
}

/* ---- typing-coach-polish-v181 | assets/css/polish-v181.css ---- */
/* v1.81.0 — guest use consent notice */
.tc-session-card .tc-guest-use-consent{
  margin:12px 2px 0;
  color:var(--tc-muted,#5f6877);
  font-size:11px;
  line-height:1.7;
  text-align:left;
}
.tc-session-card .tc-guest-use-consent a{
  color:var(--tc-navy,#17253d);
  font-weight:700;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.tc-session-card .tc-guest-use-consent a:hover{
  color:var(--tc-rose,#a93f5f);
}
.tc-session-card .tc-guest-use-consent a:focus-visible{
  border-radius:3px;
  outline:3px solid var(--tc-gold,#c79a3b);
  outline-offset:2px;
}

@media(max-width:1080px){
  .tc-session-card .tc-guest-use-consent{
    grid-column:1/-1;
  }
}

@media(max-width:700px){
  .tc-session-card .tc-guest-use-consent{
    margin-top:10px;
    font-size:12px;
    line-height:1.75;
  }
}

@media(forced-colors:active){
  .tc-session-card .tc-guest-use-consent a{
    color:LinkText;
  }
}

/* ---- typing-coach-polish-v1811 | assets/css/polish-v1811.css ---- */
/* Typing Coach v1.81.1 — READY legal-footer fit repair */

/* Legal links were added after the original non-interactive copyright label. */
.tc-stage-copyright{
  pointer-events:auto!important;
}

/*
 * On desktop, the READY footer used to be absolutely positioned. Browser UI,
 * OS scaling, or page zoom could therefore place its line box on the clipped
 * bottom edge of the fixed-height application shell. Reserve a real grid row
 * for the footer so it remains visible without changing the READY content.
 */
@media (min-width:1101px){
  body.tc-stage-ready .tc-ready:not([hidden]){
    display:grid!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    align-items:stretch!important;
    padding:14px 18px 8px!important;
  }

  body.tc-stage-ready .tc-ready-inner{
    align-self:center!important;
  }

  body.tc-stage-ready .tc-ready-copyright{
    position:static!important;
    align-self:end!important;
    width:100%!important;
    max-width:100%!important;
    margin:4px auto 0!important;
    padding:0 8px 1px!important;
    box-sizing:border-box!important;
    color:#8f98a3!important;
    font-size:9px!important;
    line-height:1.3!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  body.tc-stage-ready .tc-ready-copyright .tc-terms-footer-link:focus-visible{
    border-radius:2px!important;
    outline:2px solid var(--tc-gold,#c7962e)!important;
    outline-offset:2px!important;
  }

  body.tc-stage-ready .tc-ready-copyright .tc-footer-separator{
    margin-right:4px!important;
    margin-left:4px!important;
  }
}

/* Keep the reserved footer row comfortable on laptop-height and zoomed views. */
@media (min-width:1101px) and (max-height:760px){
  body.tc-stage-ready .tc-ready:not([hidden]){
    padding-top:10px!important;
    padding-bottom:6px!important;
  }

  body.tc-stage-ready .tc-ready-copyright{
    margin-top:2px!important;
    padding-bottom:0!important;
    font-size:8px!important;
    line-height:1.25!important;
  }
}

@media (forced-colors:active){
  body.tc-stage-ready .tc-ready-copyright,
  body.tc-stage-ready .tc-ready-copyright .tc-terms-footer-link{
    color:CanvasText!important;
  }
}

/* Result display recovery --------------------------------------------------
 * Populate the result while it is hidden, then always open at its heading.
 * These final-layer rules also provide a self-contained safety net for the
 * core analysis cards when a browser has retained an older partial cascade.
 */
body.tc-stage-result .tc-result:not([hidden]){
  position:relative!important;
  inset:auto!important;
  translate:none!important;
  transform:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  padding:24px 32px 28px!important;
  gap:16px!important;
  box-sizing:border-box!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overflow-anchor:none!important;
  scroll-behavior:auto!important;
  overscroll-behavior:contain!important;
}
body.tc-stage-result .tc-result:not([hidden])>*{
  flex:0 0 auto!important;
  min-width:0;
}
body.tc-stage-result .tc-result-head{
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}
body.tc-stage-result [data-result-title]:focus{
  outline:none;
}

body.tc-stage-result .tc-advanced-analysis{
  display:grid!important;
  grid-template-columns:minmax(210px,.62fr) minmax(360px,1.15fr) minmax(310px,.9fr)!important;
  gap:14px!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
}
body.tc-stage-result .tc-tci-card,
body.tc-stage-result .tc-5d-profile,
body.tc-stage-result .tc-flow-card{
  min-width:0!important;
  height:auto!important;
  min-height:162px!important;
  padding:17px 18px!important;
  border:1px solid #d9e1e9!important;
  border-radius:16px!important;
  background:#fff!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
body.tc-stage-result .tc-tci-card{
  border-color:#e4cf9c!important;
  background:radial-gradient(circle at 88% 16%,rgba(201,149,46,.16),transparent 34%),linear-gradient(145deg,#fffaf0,#fff)!important;
}
body.tc-stage-result .tc-tci-value{
  display:flex!important;
  align-items:baseline!important;
  gap:6px!important;
}
body.tc-stage-result .tc-tci-value em{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:39px!important;
  height:39px!important;
  margin-left:auto!important;
  border-radius:50%!important;
  background:#071b38!important;
  color:#fff!important;
  font-style:normal!important;
  font-weight:900!important;
}
body.tc-stage-result .tc-5d-head{
  display:flex!important;
  align-items:baseline!important;
  gap:10px!important;
  margin-bottom:7px!important;
}
body.tc-stage-result .tc-5d-row{
  display:grid!important;
  grid-template-columns:76px minmax(0,1fr) 34px!important;
  align-items:center!important;
  gap:9px!important;
  min-height:23px!important;
  margin:0!important;
}
body.tc-stage-result .tc-5d-row>i{
  display:block!important;
  height:8px!important;
  border-radius:999px!important;
  background:#e9eef3!important;
  overflow:hidden!important;
}
body.tc-stage-result .tc-5d-row>i>b{
  display:block!important;
  height:100%!important;
  border-radius:inherit!important;
  background:linear-gradient(90deg,#4f79a7,#5b876b,#c9952e)!important;
}
body.tc-stage-result .tc-5d-row>em{
  font-style:normal!important;
  font-weight:800!important;
  text-align:right!important;
}
body.tc-stage-result .tc-flow-card{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:auto 1fr!important;
  gap:0!important;
  background:linear-gradient(135deg,#fff,#f7fafc)!important;
}
body.tc-stage-result .tc-flow-card>.tc-kicker,
body.tc-stage-result .tc-flow-card>.tc-plain-analysis-title{
  grid-column:1/-1!important;
}
body.tc-stage-result .tc-flow-card>div{
  min-width:0!important;
  padding:7px 10px 2px!important;
  border-left:1px solid #e0e6ec!important;
}
body.tc-stage-result .tc-flow-card>div:first-of-type{
  border-left:0!important;
}
body.tc-stage-result .tc-flow-card>div b,
body.tc-stage-result .tc-flow-card>div small{
  display:block!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
}

body.tc-stage-result .tc-signature-analysis{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)!important;
  gap:14px!important;
  height:auto!important;
  min-height:0!important;
  position:relative!important;
}
body.tc-stage-result .tc-session-signature-card,
body.tc-stage-result .tc-pace-map-card{
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}

@media (max-width:1100px){
  body.tc-stage-result,
  body.tc-stage-result .tc-app-main,
  body.tc-stage-result .tc-shell{
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-result:not([hidden]){
    height:auto!important;
    min-height:calc(100dvh - 96px)!important;
    padding:20px 16px 26px!important;
    overflow:visible!important;
  }
  body.tc-stage-result .tc-advanced-analysis,
  body.tc-stage-result .tc-signature-analysis{
    grid-template-columns:1fr!important;
  }
}

@media (max-width:700px){
  body.tc-stage-result .tc-result:not([hidden]){
    padding:16px 12px 24px!important;
  }
  body.tc-stage-result .tc-flow-card{
    grid-template-columns:1fr!important;
  }
  body.tc-stage-result .tc-flow-card>.tc-kicker,
  body.tc-stage-result .tc-flow-card>.tc-plain-analysis-title{
    grid-column:auto!important;
  }
  body.tc-stage-result .tc-flow-card>div{
    border-top:1px solid #e0e6ec!important;
    border-left:0!important;
  }
}

/* ---- typing-coach-polish-v1812 | assets/css/polish-v1812.css ---- */
/* Typing Coach v1.81.2 — READY footer/right-edge collision repair */

/*
 * READY's secondary "back" action belongs to the centered content column.
 * The legal footer is intentionally placed in the free area at the lower
 * right, so both controls remain readable even when the content column is
 * slightly taller than the first grid row.
 */
@media (min-width:1101px){
  body.tc-stage-ready .tc-ready-copyright{
    position:static!important;
    z-index:3!important;
    justify-self:end!important;
    align-self:end!important;
    width:max-content!important;
    max-width:min(760px,calc(50% - 180px))!important;
    margin:4px 0 0 auto!important;
    padding:2px 7px 3px!important;
    border-radius:5px!important;
    background:rgba(255,255,255,.9)!important;
    color:#8f98a3!important;
    font-size:8.5px!important;
    line-height:1.35!important;
    text-align:right!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
  }

  body.tc-stage-ready .tc-ready-copyright .tc-footer-separator{
    margin-right:3px!important;
    margin-left:3px!important;
  }
}

@media (min-width:1101px) and (max-width:1320px){
  body.tc-stage-ready .tc-ready-copyright{
    max-width:calc(50% - 165px)!important;
    font-size:8px!important;
    line-height:1.3!important;
  }
}

@media (min-width:1101px) and (max-height:760px){
  body.tc-stage-ready .tc-ready-copyright{
    max-width:calc(50% - 165px)!important;
    margin-top:1px!important;
    padding-top:1px!important;
    padding-bottom:1px!important;
    font-size:8px!important;
    line-height:1.25!important;
  }
}

/* Tablet and phone layouts use normal document flow; retain a centered footer
 * there because the back action is stacked above it rather than beside it. */
@media (max-width:1100px){
  body.tc-stage-ready .tc-ready-copyright{
    position:static!important;
    width:100%!important;
    max-width:100%!important;
    margin:12px auto 0!important;
    padding:0 8px 4px!important;
    box-sizing:border-box!important;
    font-size:9px!important;
    line-height:1.4!important;
    text-align:center!important;
    white-space:normal!important;
  }
}

@media (forced-colors:active){
  body.tc-stage-ready .tc-ready-copyright{
    border:1px solid CanvasText!important;
    background:Canvas!important;
    color:CanvasText!important;
  }
}

/* ---- typing-coach-polish-v1813 | assets/css/polish-v1813.css ---- */
/* Typing Coach v1.81.3 — READY legal footer single-line finish */

/*
 * The footer owns a dedicated row below the centered READY content. Keep its
 * four text/link groups on one line and anchor the complete row to the right;
 * this removes the unnecessary wrap without returning to absolute positioning.
 */
@media (min-width:1101px){
  body.tc-stage-ready .tc-ready-copyright{
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    justify-self:end!important;
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    margin:4px 0 0 auto!important;
    padding:2px 7px 3px!important;
    box-sizing:border-box!important;
    font-size:9px!important;
    line-height:1.25!important;
    text-align:right!important;
    white-space:nowrap!important;
    overflow:visible!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  body.tc-stage-ready .tc-ready-copyright>span,
  body.tc-stage-ready .tc-ready-copyright>a{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }
}

@media (min-width:1101px) and (max-width:1320px),
       (min-width:1101px) and (max-height:760px){
  body.tc-stage-ready .tc-ready-copyright{
    font-size:8px!important;
  }
}

/* A tablet has enough horizontal room for this compact line. On phones the
 * existing normal-flow fallback remains allowed to wrap instead of clipping. */
@media (min-width:721px) and (max-width:1100px){
  body.tc-stage-ready .tc-ready-copyright{
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    white-space:nowrap!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  body.tc-stage-ready .tc-ready-copyright>span,
  body.tc-stage-ready .tc-ready-copyright>a{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }
}

@media (max-width:720px){
  body.tc-stage-ready .tc-ready-copyright{
    display:block!important;
    min-width:0!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
  }
}

/* ---- typing-coach-polish-v1814 | assets/css/polish-v1814.css ---- */
/* Typing Coach v1.81.4 — READY bottom-row structural separation */

/*
 * The center action and the one-line legal footer now share one explicit
 * three-column row. Equal columns preserve the action's true center while the
 * legal line stays entirely inside the right third.
 */
@media (min-width:1101px){
  body.tc-stage-ready .tc-ready-footer{
    grid-row:2!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    align-items:center!important;
    column-gap:12px!important;
    width:100%!important;
    min-width:0!important;
    margin:4px 0 0!important;
    padding:0!important;
    box-sizing:border-box!important;
  }

  body.tc-stage-ready .tc-ready-footer .tc-ready-back{
    grid-column:2!important;
    justify-self:center!important;
    width:max-content!important;
    max-width:100%!important;
    margin:0!important;
  }

  body.tc-stage-ready .tc-ready-footer .tc-ready-copyright{
    grid-column:3!important;
    justify-self:end!important;
    align-self:center!important;
    width:max-content!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
  }
}

/* The READY content no longer contains the back action, so its own row ends
 * after SPACE and cannot spill into the footer row. */
@media (min-width:1101px){
  body.tc-stage-ready .tc-ready-inner{
    grid-row:1!important;
    min-height:0!important;
  }
}

/* At responsive widths both controls stay in normal flow, one below another. */
@media (max-width:1100px){
  body.tc-stage-ready .tc-ready-footer{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    box-sizing:border-box!important;
  }

  body.tc-stage-ready .tc-ready-footer .tc-ready-back{
    order:1!important;
    margin:11px auto 0!important;
  }

  body.tc-stage-ready .tc-ready-footer .tc-ready-copyright{
    order:2!important;
    margin:0 auto!important;
  }
}

@media (max-width:720px){
  body.tc-stage-ready .tc-ready-footer .tc-ready-copyright{
    width:100%!important;
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v1815 | assets/css/polish-v1815.css ---- */
/* Typing Coach Core v1.81.5
 * Registration-page shell hardening + CTA contrast repair.
 *
 * System pages are rendered inside WordPress and therefore still pass through
 * wp_head().  These final, system-page-scoped rules protect the branded header
 * from theme/global SVG/link rules while the canonical asset queue is loaded.
 */

/* -------------------------------------------------------------------------
   1. System header critical safeguards
   ------------------------------------------------------------------------- */
body.tc-system-body .tc-system-header{
  background:linear-gradient(90deg,#06162f 0%,#071a38 54%,#06162f 100%)!important;
  color:#fff!important;
  border-bottom:0!important;
}
body.tc-system-body .tc-system-header .tc-app-header__inner{
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
}
body.tc-system-body .tc-system-header .tc-app-logo{
  display:flex!important;
  align-items:center!important;
  flex:0 0 auto!important;
  gap:13px!important;
  color:#fff!important;
  text-decoration:none!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
  width:58px!important;
  height:66px!important;
  min-width:58px!important;
  min-height:66px!important;
  max-width:58px!important;
  max-height:66px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__shield svg{
  display:block!important;
  width:58px!important;
  height:66px!important;
  max-width:none!important;
  max-height:none!important;
  overflow:visible!important;
}
body.tc-system-body .tc-system-header .tc-shield-outline{
  fill:#071a38!important;
  stroke:#d4a339!important;
  stroke-width:3!important;
}
body.tc-system-body .tc-system-header .tc-shield-inner{
  fill:none!important;
  stroke:#d4a339!important;
  stroke-width:1.5!important;
  opacity:.9!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__shield text{
  fill:#f0c659!important;
  color:#f0c659!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:25px!important;
  font-weight:800!important;
}
body.tc-system-body .tc-system-header .tc-shield-star{
  fill:#d4a339!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__wordmark{
  display:block!important;
  min-width:0!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__wordmark strong{
  display:block!important;
  color:#fff!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__wordmark small{
  display:block!important;
  color:#e4b94f!important;
}
body.tc-system-body .tc-system-header .tc-system-nav a{
  text-decoration:none!important;
}

/* -------------------------------------------------------------------------
   2. Registration primary CTA
   Red/rose action color + guaranteed white text and matching border.
   ------------------------------------------------------------------------- */
body.tc-system-body.tc-system-page-typing-coach-register .tc-register-panel .tc-member-submit.tc-primary,
.tc-register-panel .tc-member-submit.tc-primary{
  background:linear-gradient(135deg,#b92f48 0%,#c4435a 100%)!important;
  border:1px solid #a8273f!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:0 10px 24px rgba(169,39,63,.18)!important;
  text-shadow:none!important;
}
body.tc-system-body.tc-system-page-typing-coach-register .tc-register-panel .tc-member-submit.tc-primary:hover,
.tc-register-panel .tc-member-submit.tc-primary:hover{
  background:linear-gradient(135deg,#a8273f 0%,#b8324c 100%)!important;
  border-color:#982138!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  transform:translateY(-1px);
}
body.tc-system-body.tc-system-page-typing-coach-register .tc-register-panel .tc-member-submit.tc-primary:focus-visible,
.tc-register-panel .tc-member-submit.tc-primary:focus-visible{
  outline:3px solid rgba(185,47,72,.28)!important;
  outline-offset:3px!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body.tc-system-body.tc-system-page-typing-coach-register .tc-register-panel .tc-member-submit.tc-primary:active,
.tc-register-panel .tc-member-submit.tc-primary:active{
  transform:translateY(0);
}

/* Keep the shield compact at tablet/mobile widths even if a theme applies
   generic SVG sizing rules after the base stylesheet. */
@media(max-width:1100px){
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
    width:46px!important;
    height:54px!important;
    min-width:46px!important;
    min-height:54px!important;
    max-width:46px!important;
    max-height:54px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__shield svg{
    width:46px!important;
    height:54px!important;
  }
}

/* ---- typing-coach-polish-v183 | assets/css/polish-v183.css ---- */
/* Typing Coach v1.83.0 — registration thanks + measurement-ready CTA polish */
.tc-system-page-typing-coach-register-thanks .tc-system-main__inner{max-width:1600px!important;padding-top:34px!important;padding-bottom:44px!important}
.tc-register-thanks{display:grid;gap:24px;color:#0d2342}
.tc-thanks-hero,.tc-thanks-section{border:1px solid #dbe5ee;border-radius:24px;background:#fff;box-shadow:0 18px 48px rgba(13,35,66,.07)}
.tc-thanks-hero{position:relative;overflow:hidden;padding:46px 48px 42px;text-align:center;background:radial-gradient(circle at 50% 15%,rgba(241,191,72,.15),transparent 26%),linear-gradient(135deg,#fffdf8,#fff 58%,#f8fbff)}
.tc-thanks-hero:before,.tc-thanks-hero:after{content:"✦";position:absolute;color:#d8a222;font-size:28px;opacity:.8}.tc-thanks-hero:before{left:8%;top:25%}.tc-thanks-hero:after{right:8%;top:18%}
.tc-thanks-motto{position:absolute;z-index:1;max-width:180px;font-size:.9rem;line-height:1.55;font-weight:800;opacity:.7;transform:rotate(-7deg)}.tc-thanks-motto--left{left:34px;bottom:42px;color:#5c8ab9;text-align:left}.tc-thanks-motto--right{right:40px;bottom:48px;color:#6f9ed5;font-family:cursive;font-size:1.05rem;transform:rotate(-8deg);text-align:left}
.tc-thanks-success{width:76px;height:76px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff5ca,#f1c555);color:#875d05;font-size:38px;font-weight:1000;box-shadow:0 12px 30px rgba(211,158,37,.2)}
.tc-thanks-kicker{display:block;color:#a97413;font-size:.82rem;font-weight:1000;letter-spacing:.13em;margin-bottom:10px}
.tc-thanks-hero h1{margin:0;color:#0b2346;font-size:clamp(2rem,3.5vw,3.7rem);line-height:1.18;letter-spacing:.02em}
.tc-thanks-lead{max-width:980px;margin:18px auto 8px;color:#536b85;font-size:1.08rem;font-weight:700;line-height:1.9}.tc-thanks-note{margin:0;color:#76879a;font-size:.88rem}
.tc-thanks-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:26px}.tc-thanks-cta{min-height:56px;padding:14px 28px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:1000;text-decoration:none!important;transition:.18s ease}
.tc-thanks-cta--primary{background:linear-gradient(135deg,#b92f48,#d64d66);border:1px solid #ad263f;color:#fff!important;box-shadow:0 12px 28px rgba(185,47,72,.22)}.tc-thanks-cta--primary:hover{filter:brightness(1.05);transform:translateY(-1px);color:#fff!important}
.tc-thanks-cta--secondary{background:#fff;border:1px solid #2d69a7;color:#0b3a70!important}.tc-thanks-cta--secondary:hover{background:#f4f9ff;transform:translateY(-1px)}
.tc-thanks-section{padding:30px 32px}.tc-thanks-section-head{margin-bottom:20px}.tc-thanks-section-head small{display:block;color:#a97413;font-size:.76rem;font-weight:1000;letter-spacing:.13em}.tc-thanks-section-head h2{margin:4px 0 6px;font-size:1.65rem;color:#0b2346}.tc-thanks-section-head p{margin:0;color:#667b91;line-height:1.7}
.tc-thanks-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tc-thanks-step,.tc-thanks-benefit,.tc-thanks-recommend{border:1px solid #dbe6ef;border-radius:17px;background:linear-gradient(180deg,#fff,#fbfdff);padding:22px;min-width:0}.tc-thanks-step-num{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e5f1ff;color:#1e64ad;font-weight:1000;margin-bottom:14px}.tc-thanks-card-icon{font-size:27px;line-height:1;margin-bottom:13px}.tc-thanks-step h3,.tc-thanks-benefit h3,.tc-thanks-recommend h3{margin:0 0 8px;color:#0c2c55;font-size:1.05rem}.tc-thanks-step p,.tc-thanks-benefit p,.tc-thanks-recommend p{margin:0 0 12px;color:#687d92;line-height:1.65;font-size:.9rem}.tc-thanks-card-link{color:#c13854!important;font-weight:900;text-decoration:none!important}.tc-thanks-card-link:hover{text-decoration:underline!important}
.tc-thanks-benefits{grid-template-columns:repeat(4,minmax(0,1fr))}.tc-thanks-benefit:nth-child(2) .tc-thanks-card-icon{color:#b98712}.tc-thanks-benefit .tc-thanks-card-icon{color:#246ab0}
.tc-thanks-mail{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:24px;align-items:center;background:linear-gradient(135deg,#eef7ff,#fff)}.tc-thanks-mail-copy{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}.tc-thanks-mail-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#dbeeff;color:#1c67b0;font-size:28px}.tc-thanks-mail-copy h2{margin:0 0 8px;color:#0b2d56;font-size:1.4rem}.tc-thanks-mail-copy p{margin:0;color:#61768b;line-height:1.75}.tc-thanks-mail-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.tc-thanks-mail-list li{display:grid;grid-template-columns:30px 1fr;gap:10px;color:#536a81;line-height:1.6}.tc-thanks-mail-list b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#5f9bd5;color:#fff}
.tc-thanks-recommendations{grid-template-columns:repeat(3,minmax(0,1fr))}.tc-thanks-context-return{margin-top:18px;font-size:.88rem}.tc-thanks-context-return a{color:#54718f;font-weight:800}
body.tc-system-page-typing-coach-register-thanks .tc-system-footer{margin-top:0}
@media(max-width:980px){.tc-thanks-motto{display:none}.tc-thanks-grid,.tc-thanks-benefits,.tc-thanks-recommendations{grid-template-columns:1fr 1fr}.tc-thanks-mail{grid-template-columns:1fr}.tc-thanks-hero{padding:38px 24px}}
@media(max-width:640px){.tc-thanks-grid,.tc-thanks-benefits,.tc-thanks-recommendations{grid-template-columns:1fr}.tc-thanks-section{padding:24px 18px}.tc-thanks-hero h1{font-size:2rem}.tc-thanks-actions{display:grid}.tc-thanks-cta{width:100%}}

/* ---- typing-coach-polish-v184 | assets/css/polish-v184.css ---- */
/* Typing Coach v1.84.0 — brand copy finishing */
.tc-my-brand-lead{
  max-width:900px;
  margin:8px 0 20px;
  color:#5a6f86;
  font-size:16px;
  line-height:1.8;
}
.tc-register-panel .tc-member-lead strong{
  color:#0b2c59;
}
@media (max-width: 767px){
  .tc-my-brand-lead{font-size:15px;line-height:1.75}
}

/* ---- typing-coach-polish-v1841 | assets/css/polish-v1841.css ---- */
/* Typing Coach v1.84.1 — discovery hero readability */
.tc-discovery-hero .tc-discovery-lead{
  max-width:1180px;
  margin:0 auto;
  text-wrap:pretty;
}
.tc-discovery-hero .tc-discovery-lead > span{
  display:block;
}
@media (max-width:700px){
  .tc-discovery-hero .tc-discovery-lead > span{
    display:inline;
  }
}

/* ---- typing-coach-polish-v185 | assets/css/polish-v185.css ---- */
/* Typing Coach v1.85.0
   Lesson-aware coaching modes: skill / content / hybrid / none.
*/
body.tc-stage-result .tc-content-coaching[data-coaching-mode="skill"]{
  border-top-color:#4c82b8;
  background:
    radial-gradient(circle at 94% 10%,rgba(76,130,184,.10),transparent 26%),
    linear-gradient(135deg,#f2f7fc,#fff 54%,#f7fbff);
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="hybrid"]{
  border-top-color:#c79a3b;
  background:
    radial-gradient(circle at 94% 10%,rgba(199,154,59,.12),transparent 26%),
    linear-gradient(135deg,#f8fbfe,#fff 52%,#fff9ed);
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="content"]{
  border-top-color:#5c8f6f;
}
body.tc-stage-result .tc-content-coach-highlight{
  display:grid;
  gap:6px;
  margin:16px 0 18px;
  padding:15px 17px;
  border:1px solid #e1d3aa;
  border-radius:13px;
  background:linear-gradient(135deg,#fffaf0,#fff);
}
body.tc-stage-result .tc-content-coach-highlight[hidden]{display:none!important}
body.tc-stage-result .tc-content-coach-highlight>span{
  color:#8a6412;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
body.tc-stage-result .tc-content-coach-highlight>strong{
  color:#17324f;
  font-size:17px;
  line-height:1.65;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="skill"] .tc-content-coach-highlight{
  border-color:#c9dced;
  background:#f4f9fd;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="skill"] .tc-content-coach-highlight>span{color:#3f6f9d}
body.tc-stage-result .tc-content-coach-context-note{
  margin:12px 2px 0;
  color:#52677b;
  font-size:13px;
  line-height:1.65;
  font-weight:700;
}
body.tc-stage-result .tc-content-coach-disclaimer{
  margin:8px 2px 0;
  padding-left:18px;
  position:relative;
  color:#788694;
  font-size:12px;
  line-height:1.65;
}
body.tc-stage-result .tc-content-coach-disclaimer::before{
  content:'i';
  position:absolute;
  left:0;
  top:1px;
  width:14px;
  height:14px;
  border:1px solid #aab5bf;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:9px;
  font-weight:900;
}
body.tc-stage-result .tc-content-coach-context-note[hidden],
body.tc-stage-result .tc-content-coach-disclaimer[hidden]{display:none!important}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="skill"] .tc-content-theme-badge{
  border-color:#bcd2e6;
  background:#eef6fc;
  color:#34658f;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="hybrid"] .tc-content-theme-badge{
  border-color:#dbc27a;
  background:#fff8e4;
  color:#77540e;
}
@media(max-width:700px){
  body.tc-stage-result .tc-content-coach-highlight>strong{font-size:16px}
  body.tc-stage-result .tc-content-coach-context-note{font-size:12px}
}

/* v1.85.0: deeper, non-repetitive coaching layer */
body.tc-stage-result .tc-content-coach-perspective{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px 14px;
  align-items:start;
  margin:14px 0 17px;
  padding:14px 16px;
  border:1px solid #d9e2eb;
  border-radius:13px;
  background:linear-gradient(135deg,#f8fbfe,#fff);
}
body.tc-stage-result .tc-content-coach-perspective[hidden]{display:none!important}
body.tc-stage-result .tc-content-coach-perspective>span{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border-radius:999px;
  background:#eaf2f8;
  color:#355f86;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.04em;
  white-space:nowrap;
}
body.tc-stage-result .tc-content-coach-perspective>p{
  margin:1px 0 0;
  color:#29445d;
  font-size:14px;
  line-height:1.75;
  font-weight:700;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="content"] .tc-content-coach-perspective{
  border-color:#d7e5da;
  background:linear-gradient(135deg,#f5faf6,#fff);
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="content"] .tc-content-coach-perspective>span{
  background:#e7f2e9;
  color:#46745a;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="hybrid"] .tc-content-coach-perspective{
  border-color:#ead9a8;
  background:linear-gradient(135deg,#fffaf0,#fff);
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="hybrid"] .tc-content-coach-perspective>span{
  background:#fff0c8;
  color:#7c5b16;
}
@media(max-width:700px){
  body.tc-stage-result .tc-content-coach-perspective{grid-template-columns:1fr;gap:7px;padding:13px 14px}
  body.tc-stage-result .tc-content-coach-perspective>span{width:max-content}
  body.tc-stage-result .tc-content-coach-perspective>p{font-size:13.5px}
}
body.tc-stage-result .tc-content-action-memo>small{
  display:block;
  margin:-1px 0 7px;
  color:#6a7d8e;
  font-size:12px;
  line-height:1.55;
  font-weight:600;
}

/* ---- typing-coach-polish-v1851 | assets/css/polish-v1851.css ---- */
/* Typing Coach v1.85.1
   Result hierarchy polish:
   - headline TCI sync / gold metric card
   - clearer section purpose and coaching lanes
   - default key-points-first result experience
   - stronger visual hierarchy without adding noise
*/

/* --------------------------------------------------------------------------
   1. Headline metrics: WPM / accuracy / misses / TCI
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-result-grid>.tc-result-tci-head{
  border-top-color:var(--tc-gold)!important;
  background:linear-gradient(180deg,#fff,#fff9ec)!important;
}
body.tc-stage-result .tc-result-grid>.tc-result-tci-head b{
  color:#0b2344!important;
  font-size:clamp(31px,3.1vw,46px)!important;
}
body.tc-stage-result .tc-result-grid>.tc-result-tci-head span{
  color:#70531a!important;
  font-weight:900!important;
}
body.tc-stage-result .tc-result-grid>.tc-result-tci-head small{
  display:block;
  margin-top:6px;
  color:#6e7d8d;
  font-size:12px;
  line-height:1.45;
  font-weight:700;
}

/* --------------------------------------------------------------------------
   2. Quick navigation and progressive disclosure
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-result-view-toggle{
  min-width:150px;
  font-weight:900!important;
}
body.tc-stage-result .tc-result.tc-result-summary-mode .tc-result-quicknav{
  box-shadow:0 8px 22px rgba(11,35,68,.055);
}
body.tc-stage-result .tc-result.tc-result-summary-mode .tc-result-view-toggle::before{
  content:'＋';
  margin-right:5px;
  font-weight:900;
}
body.tc-stage-result .tc-result:not(.tc-result-summary-mode) .tc-result-view-toggle::before{
  content:'−';
  margin-right:5px;
  font-weight:900;
}

/* --------------------------------------------------------------------------
   3. Shared section-title hierarchy
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-result-change-head h3,
body.tc-stage-result .tc-coach-summary-heading,
body.tc-stage-result .tc-coaching-lane-head h3,
body.tc-stage-result .tc-content-coaching-head h3,
body.tc-stage-result .tc-result-reading-guide-head h3,
body.tc-stage-result .tc-section-title-row h3,
body.tc-stage-result .tc-pace-map-card>h3,
body.tc-stage-result .tc-key-timing-card>h3,
body.tc-stage-result .tc-baseline-head h3,
body.tc-stage-result .tc-growth-trend-head h3,
body.tc-stage-result .tc-result-next-plan h3{
  color:#0b2344!important;
  font-size:clamp(22px,2.2vw,29px)!important;
  line-height:1.25!important;
  font-weight:950!important;
  letter-spacing:.01em;
}
body.tc-stage-result .tc-kicker{
  font-size:11px!important;
  line-height:1.2!important;
  font-weight:950!important;
  letter-spacing:.105em!important;
}

/* Distinct section accents communicate what kind of information follows. */
body.tc-stage-result .tc-result-change-snapshot,
body.tc-stage-result .tc-coach-summary,
body.tc-stage-result .tc-motivation-reflection,
body.tc-stage-result .tc-content-coaching,
body.tc-stage-result [data-result-detail="advanced"]{
  scroll-margin-top:120px;
}
body.tc-stage-result .tc-result-change-snapshot{
  border-left-width:7px!important;
  box-shadow:0 10px 30px rgba(31,91,143,.055)!important;
}
body.tc-stage-result .tc-coach-summary{
  border-left:7px solid #4f8d63!important;
  box-shadow:0 11px 30px rgba(79,141,99,.065)!important;
}

/* --------------------------------------------------------------------------
   4. Typing-skill coaching lane
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-motivation-reflection{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px!important;
  position:relative;
  margin-top:18px!important;
  padding:78px 14px 14px!important;
  border:1px solid #d6e4ef!important;
  border-left:7px solid #4c82b8!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,#f4f9fd,#fff 60%)!important;
  box-shadow:0 12px 32px rgba(54,101,143,.06)!important;
}
body.tc-stage-result .tc-coaching-lane-head{
  position:absolute;
  inset:14px 16px auto 16px;
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid #dbe7f0;
}
body.tc-stage-result .tc-coaching-lane-head .tc-coaching-lane-icon{
  flex:0 0 42px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#0b3159;
  color:#fff;
  font-size:22px;
  box-shadow:0 7px 16px rgba(11,49,89,.12);
}
body.tc-stage-result .tc-coaching-lane-head .tc-kicker{color:#3e73a1!important}
body.tc-stage-result .tc-coaching-lane-head h3{
  margin:2px 0 2px!important;
  font-size:21px!important;
}
body.tc-stage-result .tc-coaching-lane-head p{
  margin:0;
  color:#60758a;
  font-size:13px;
  line-height:1.55;
  font-weight:700;
}
body.tc-stage-result .tc-motivation-card,
body.tc-stage-result .tc-reflection-card{
  margin:0!important;
  min-height:100%;
  background:#fff!important;
  border-radius:15px!important;
  box-shadow:0 7px 18px rgba(11,35,68,.035)!important;
}
body.tc-stage-result .tc-motivation-card h3,
body.tc-stage-result .tc-reflection-card h3{
  margin-top:4px!important;
  color:#0b2344!important;
  font-size:20px!important;
  line-height:1.35!important;
  font-weight:950!important;
}
body.tc-stage-result .tc-motivation-card .tc-kicker,
body.tc-stage-result .tc-reflection-card .tc-kicker{color:#4c82b8!important}

/* --------------------------------------------------------------------------
   5. Lesson-content coaching lane
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-content-coaching{
  border-left:7px solid #7660a8!important;
  border-top-width:1px!important;
  padding:22px 23px!important;
  box-shadow:0 14px 36px rgba(86,66,130,.065)!important;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="content"]{
  background:linear-gradient(135deg,#faf7ff,#fff 55%,#f6fbf7)!important;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="hybrid"]{
  border-left-color:#c79a3b!important;
  background:linear-gradient(135deg,#fff9ec,#fff 58%,#f4f9fd)!important;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="skill"]{
  border-left-color:#4c82b8!important;
  background:linear-gradient(135deg,#f2f8fd,#fff 60%)!important;
}
body.tc-stage-result .tc-content-coaching-head{
  align-items:flex-start!important;
  padding-bottom:15px;
  margin-bottom:14px!important;
  border-bottom:1px solid #e5e4ec;
}
body.tc-stage-result .tc-content-coaching-head h3{
  margin:4px 0 5px!important;
}
body.tc-stage-result .tc-content-coach-role{
  margin:0;
  max-width:760px;
  color:#67768a;
  font-size:13px;
  line-height:1.65;
  font-weight:750;
}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="content"] .tc-content-coaching-head .tc-kicker{color:#7660a8!important}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="hybrid"] .tc-content-coaching-head .tc-kicker{color:#9a711d!important}
body.tc-stage-result .tc-content-coaching[data-coaching-mode="skill"] .tc-content-coaching-head .tc-kicker{color:#3f6f9d!important}

/* Make the content coaching story read in a deliberate order. */
body.tc-stage-result .tc-content-coach-insight{
  margin:0 0 14px!important;
  padding:12px 14px;
  border-radius:12px;
  background:rgba(255,255,255,.72);
  color:#29445d!important;
  font-size:15px!important;
  line-height:1.75!important;
  font-weight:750!important;
}
body.tc-stage-result .tc-content-coach-question-box{
  margin-top:15px!important;
  border-left-width:5px!important;
  box-shadow:0 7px 18px rgba(11,35,68,.035);
}
body.tc-stage-result .tc-content-action-options{
  margin-top:15px!important;
}

/* --------------------------------------------------------------------------
   6. Advanced analysis: visually quieter than the core result
   -------------------------------------------------------------------------- */
body.tc-stage-result [data-result-detail="advanced"]{
  border-color:#e1e6eb!important;
  box-shadow:0 8px 22px rgba(11,35,68,.035)!important;
}
body.tc-stage-result [data-result-detail="advanced"] .tc-kicker{
  color:#78889a!important;
}
body.tc-stage-result [data-result-detail="advanced"] h3,
body.tc-stage-result [data-result-detail="advanced"] .tc-plain-analysis-title{
  font-size:20px!important;
}
body.tc-stage-result .tc-result-reading-guide{
  background:linear-gradient(135deg,#fbfcfd,#fff)!important;
}

/* --------------------------------------------------------------------------
   7. Mobile
   -------------------------------------------------------------------------- */
@media(max-width:900px){
  body.tc-stage-result .tc-motivation-reflection{
    grid-template-columns:1fr!important;
    padding-top:96px!important;
  }
  body.tc-stage-result .tc-coaching-lane-head{align-items:flex-start}
  body.tc-stage-result .tc-content-coaching{padding:19px 18px!important}
}
@media(max-width:620px){
  body.tc-stage-result .tc-motivation-reflection{padding:108px 11px 11px!important}
  body.tc-stage-result .tc-coaching-lane-head{inset:12px 12px auto 12px;gap:9px}
  body.tc-stage-result .tc-coaching-lane-head .tc-coaching-lane-icon{width:36px;height:36px;flex-basis:36px;font-size:18px}
  body.tc-stage-result .tc-coaching-lane-head h3{font-size:19px!important}
  body.tc-stage-result .tc-coaching-lane-head p{font-size:12px}
  body.tc-stage-result .tc-content-coaching-head{display:block!important}
  body.tc-stage-result .tc-content-theme-badge{display:inline-flex!important;margin-top:9px}
  body.tc-stage-result .tc-result-grid>.tc-result-tci-head small{font-size:11px}
}

/* ---- typing-coach-polish-v1852 | assets/css/polish-v1852.css ---- */
/* Typing Coach v1.85.2
   Result coaching layout stability
   - Prevent section-heading/card overlap at wider fonts, browser zoom and responsive widths
   - Remove fixed-height / absolute-position dependency from the typing-skill coaching lane
   - Add wrap/min-width guards to content coaching headers and result summary rows
*/

/* --------------------------------------------------------------------------
   1. Typing-skill coaching lane: let content define its own height.
   v1.85.1 reserved a fixed top area while the lane header was absolute.
   If the explanatory copy wrapped, it could physically overlap the cards.
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-motivation-reflection{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:14px!important;
  padding:14px!important;
}
body.tc-stage-result .tc-coaching-lane-head{
  position:relative!important;
  inset:auto!important;
  grid-column:1/-1!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:1px 2px 14px!important;
  align-items:flex-start!important;
}
body.tc-stage-result .tc-coaching-lane-head>div:last-child{
  min-width:0!important;
  flex:1 1 auto!important;
}
body.tc-stage-result .tc-coaching-lane-head h3{
  margin:2px 0 4px!important;
  overflow-wrap:anywhere;
}
body.tc-stage-result .tc-coaching-lane-head p{
  display:block!important;
  position:static!important;
  width:auto!important;
  max-width:900px!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  overflow:visible!important;
  white-space:normal!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere;
}
body.tc-stage-result .tc-motivation-card,
body.tc-stage-result .tc-reflection-card{
  min-width:0!important;
  align-self:stretch!important;
}

/* --------------------------------------------------------------------------
   2. Content-coaching header: long headings/themes should wrap, never collide.
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-content-coaching-head{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:flex-start!important;
  gap:12px 16px!important;
}
body.tc-stage-result .tc-content-coaching-head>div:first-child{
  flex:1 1 560px!important;
  min-width:0!important;
}
body.tc-stage-result .tc-content-theme-badge{
  flex:0 1 auto!important;
  max-width:min(100%,360px)!important;
  height:auto!important;
  min-height:0!important;
  white-space:normal!important;
  text-align:center;
  line-height:1.45!important;
  overflow-wrap:anywhere;
}

/* --------------------------------------------------------------------------
   3. General result-heading resilience.
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-result-change-head,
body.tc-stage-result .tc-coach-summary-main,
body.tc-stage-result .tc-coach-summary-next{
  min-width:0!important;
}
body.tc-stage-result .tc-result-change-head{
  gap:12px 20px!important;
  flex-wrap:wrap!important;
}
body.tc-stage-result .tc-result-change-head>p{
  min-width:0!important;
  overflow-wrap:anywhere;
}

/* --------------------------------------------------------------------------
   4. Responsive: no magic top-padding. The header remains in normal flow.
   -------------------------------------------------------------------------- */
@media(max-width:900px){
  body.tc-stage-result .tc-motivation-reflection{
    grid-template-columns:1fr!important;
    padding:13px!important;
  }
  body.tc-stage-result .tc-coaching-lane-head{
    grid-column:1!important;
    padding:1px 1px 13px!important;
  }
}
@media(max-width:620px){
  body.tc-stage-result .tc-motivation-reflection{
    padding:11px!important;
    gap:11px!important;
  }
  body.tc-stage-result .tc-coaching-lane-head{
    inset:auto!important;
    gap:9px!important;
    padding:1px 1px 11px!important;
  }
  body.tc-stage-result .tc-coaching-lane-head p{
    font-size:12px!important;
    line-height:1.55!important;
  }
  body.tc-stage-result .tc-content-coaching-head>div:first-child{
    flex-basis:100%!important;
  }
  body.tc-stage-result .tc-content-theme-badge{
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v1853 | assets/css/polish-v1853.css ---- */
/* Typing Coach v1.85.3
 * MICRO PROGRESS / 30-day My Typing Coach summary / brand benefit polish.
 */

/* --------------------------------------------------------------------------
   Result: small changes + growth signals
   -------------------------------------------------------------------------- */
body.tc-stage-result .tc-micro-progress{
  margin-top:18px;
  padding:22px 24px;
  border:1px solid #cfe0ee;
  border-left:5px solid #6b4cc4;
  border-radius:18px;
  background:linear-gradient(135deg,#fbf9ff 0%,#fffdf7 100%);
  box-shadow:0 10px 28px rgba(10,42,79,.055);
}
body.tc-stage-result .tc-micro-progress-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:15px;
}
body.tc-stage-result .tc-micro-progress-head>div{min-width:0;flex:1 1 auto}
body.tc-stage-result .tc-micro-progress-head h3{
  margin:3px 0 5px;
  color:#0c2d56;
  font-size:clamp(1.18rem,2vw,1.55rem);
  line-height:1.28;
}
body.tc-stage-result .tc-micro-progress-head p{
  margin:0;
  color:#5b6f86;
  font-size:.92rem;
  line-height:1.65;
}
body.tc-stage-result .tc-micro-badge{
  flex:0 0 auto;
  padding:7px 11px;
  border:1px solid #d9c9ff;
  border-radius:999px;
  color:#5d42a7;
  background:#f5f0ff;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
}
body.tc-stage-result .tc-growth-signals{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0 0 12px;
}
body.tc-stage-result .tc-growth-signals article{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:9px;
  align-items:start;
  min-width:0;
  padding:12px 13px;
  border:1px solid #dce5ee;
  border-radius:13px;
  background:#fff;
}
body.tc-stage-result .tc-growth-signals article>span{
  display:grid;
  place-items:center;
  width:28px;height:28px;
  border-radius:50%;
  font-weight:900;
  background:#edf4fb;
  color:#2c6599;
}
body.tc-stage-result .tc-growth-signals article.is-good{border-color:#c7dfcc;background:#f8fcf8}
body.tc-stage-result .tc-growth-signals article.is-good>span{background:#e4f5e7;color:#2f7b42}
body.tc-stage-result .tc-growth-signals article.is-attention{border-color:#f0ced5;background:#fff9fa}
body.tc-stage-result .tc-growth-signals article.is-attention>span{background:#fde9ed;color:#b93f58}
body.tc-stage-result .tc-growth-signals strong{display:block;color:#102e53;font-size:.93rem;line-height:1.4}
body.tc-stage-result .tc-growth-signals p{margin:4px 0 0;color:#63748a;font-size:.78rem;line-height:1.55}
body.tc-stage-result .tc-micro-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-bottom:12px;
}
body.tc-stage-result .tc-micro-grid article{
  min-width:0;
  padding:11px 12px;
  border:1px solid #e0e7ef;
  border-top:3px solid #7892ad;
  border-radius:12px;
  background:#fff;
}
body.tc-stage-result .tc-micro-grid article.is-wide{grid-column:1/-1}
body.tc-stage-result .tc-micro-grid article.is-good{border-top-color:#4a9c5a}
body.tc-stage-result .tc-micro-grid article.is-attention{border-top-color:#d4566e}
body.tc-stage-result .tc-micro-grid span{display:block;color:#63748a;font-size:.75rem;font-weight:800}
body.tc-stage-result .tc-micro-grid strong{display:block;margin:4px 0;color:#102f56;font-size:1.08rem;line-height:1.25}
body.tc-stage-result .tc-micro-grid small{display:block;color:#6b7b8d;font-size:.72rem;line-height:1.48}
body.tc-stage-result .tc-comparison-window{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:10px;
  border-radius:13px;
  background:#f4f7fb;
}
body.tc-stage-result .tc-comparison-window>div{
  min-width:0;
  padding:8px 10px;
  border-right:1px solid #dde5ed;
}
body.tc-stage-result .tc-comparison-window>div:last-child{border-right:0}
body.tc-stage-result .tc-comparison-window span{display:block;color:#62758b;font-size:.72rem;font-weight:800}
body.tc-stage-result .tc-comparison-window b{display:block;margin:3px 0;color:#0d315b;font-size:.88rem;line-height:1.35;overflow-wrap:anywhere}
body.tc-stage-result .tc-comparison-window small{color:#8795a5;font-size:.68rem}
body.tc-stage-result .tc-micro-note{
  margin:10px 2px 0;
  color:#718094;
  font-size:.75rem;
  line-height:1.55;
}

/* --------------------------------------------------------------------------
   My Typing Coach: 30-day averages
   -------------------------------------------------------------------------- */
.tc-my-30day,
.tc-my-brand-benefits{
  margin-top:18px;
  padding:20px 22px;
  border:1px solid #dbe5ee;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 24px rgba(10,42,79,.045);
}
.tc-my-30day{border-top:4px solid #4f88b9;background:linear-gradient(135deg,#f8fbff,#fff)}
.tc-my-section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}
.tc-my-section-head>div{min-width:0}
.tc-my-section-head h3,
.tc-my-brand-benefits-head h3{
  margin:3px 0 5px;
  color:#0d3159;
  font-size:1.28rem;
  line-height:1.35;
}
.tc-my-section-head p,
.tc-my-brand-benefits-head p{margin:0;color:#65758a;line-height:1.65}
.tc-my-30day-count{
  flex:0 0 auto;
  padding:7px 11px;
  border-radius:999px;
  background:#eaf3fb;
  color:#2d699a;
  font-size:.78rem;
  font-weight:800;
}
.tc-my-30day-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.tc-my-30day-grid article{
  min-width:0;
  padding:14px 15px;
  border:1px solid #dfe7ef;
  border-radius:13px;
  background:#fff;
}
.tc-my-30day-grid span{display:block;color:#61758c;font-size:.78rem;font-weight:800}
.tc-my-30day-grid strong{display:block;margin:4px 0;color:#0d3159;font-size:1.42rem;line-height:1.2}
.tc-my-30day-grid small{display:block;color:#8391a2;font-size:.7rem;line-height:1.45}

/* --------------------------------------------------------------------------
   My Typing Coach: brand benefits
   -------------------------------------------------------------------------- */
.tc-my-brand-benefits{
  border:1px solid #ead9a7;
  background:linear-gradient(135deg,#fffaf0 0%,#f8fbff 100%);
}
.tc-my-brand-benefits-head{max-width:900px}
.tc-my-brand-benefits-head strong{color:#9b6710}
.tc-my-benefit-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:15px;
}
.tc-my-benefit-grid article{
  position:relative;
  min-width:0;
  padding:15px 14px 14px;
  border:1px solid #e4e7eb;
  border-radius:13px;
  background:rgba(255,255,255,.92);
}
.tc-my-benefit-grid article>span{
  display:inline-grid;
  place-items:center;
  min-width:30px;height:30px;
  padding:0 7px;
  border-radius:9px;
  background:#0c315a;
  color:#f1c24f;
  font-size:.72rem;
  font-weight:900;
}
.tc-my-benefit-grid h4{margin:9px 0 5px;color:#102f55;font-size:.95rem;line-height:1.4}
.tc-my-benefit-grid p{margin:0;color:#66778a;font-size:.78rem;line-height:1.62}

@media(max-width:900px){
  body.tc-stage-result .tc-growth-signals{grid-template-columns:1fr}
  body.tc-stage-result .tc-micro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-my-30day-grid,.tc-my-benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  body.tc-stage-result .tc-micro-progress{padding:16px 14px}
  body.tc-stage-result .tc-micro-progress-head{display:block}
  body.tc-stage-result .tc-micro-badge{display:inline-block;margin-top:9px}
  body.tc-stage-result .tc-micro-grid,
  body.tc-stage-result .tc-comparison-window{grid-template-columns:1fr}
  body.tc-stage-result .tc-comparison-window>div{border-right:0;border-bottom:1px solid #dde5ed}
  body.tc-stage-result .tc-comparison-window>div:last-child{border-bottom:0}
  .tc-my-section-head{display:block}
  .tc-my-30day-count{display:inline-block;margin-top:9px}
  .tc-my-30day-grid,.tc-my-benefit-grid{grid-template-columns:1fr}
}

/* ---- typing-coach-polish-v1854 | assets/css/polish-v1854.css ---- */
/* Typing Coach v1.85.4 — Groups sales / license LP */
.tc-gsales{--navy:#0b1b33;--navy2:#102846;--gold:#c8a24b;--gold2:#f0cf75;--cream:#fbf8f0;--blue:#eaf3fb;--green:#e9f6ef;--rose:#f9ecef;--ink:#14233b;--muted:#647189;max-width:1180px;margin:0 auto;padding:28px 24px 80px;color:var(--ink)}
.tc-gsales *{box-sizing:border-box}.tc-gsales a{text-decoration:none}.tc-gsales-kicker,.tc-gsales-heading>span{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--gold);text-transform:uppercase}.tc-gsales-kicker:before,.tc-gsales-heading>span:before{content:"";width:28px;height:2px;background:var(--gold);border-radius:99px}.tc-gsales-heading{max-width:760px;margin-bottom:30px}.tc-gsales-heading.is-center{margin-left:auto;margin-right:auto;text-align:center}.tc-gsales-heading.is-center>span{justify-content:center}.tc-gsales-heading h2{margin:10px 0 12px;font-size:clamp(30px,3.5vw,48px);line-height:1.22;color:var(--navy);letter-spacing:-.025em}.tc-gsales-heading h2 strong{color:#9a7627}.tc-gsales-heading p{margin:0;color:var(--muted);font-size:16px;line-height:1.9}.tc-gsales-section{padding:72px 0;border-top:1px solid #ece7dc}
.tc-gsales-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:44px;align-items:center;padding:56px;border-radius:30px;overflow:hidden;background:linear-gradient(135deg,#fffdf8 0%,#f8f1df 52%,#eef5fb 100%);border:1px solid #e7dcc1;box-shadow:0 24px 70px rgba(17,39,67,.11)}.tc-gsales-hero:after{content:"";position:absolute;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(200,162,75,.16),rgba(200,162,75,0) 68%);right:-170px;top:-180px;pointer-events:none}.tc-gsales-hero-copy{position:relative;z-index:1}.tc-gsales-hero h1{margin:14px 0 20px;font-size:clamp(38px,5.1vw,64px);line-height:1.12;color:var(--navy);letter-spacing:-.04em}.tc-gsales-hero h1 strong{color:#9b7729}.tc-gsales-lead{max-width:650px;margin:0 0 24px;font-size:17px;line-height:1.95;color:#4f5f77}.tc-gsales-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}.tc-gsales-hero-badges span{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #e1d4b8;font-size:12px;font-weight:800;color:#31415a}.tc-gsales-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tc-gsales-primary,.tc-gsales-secondary{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 22px;border-radius:14px;font-weight:900;transition:.2s ease}.tc-gsales-primary{background:linear-gradient(135deg,#b7334e,#cb4960);color:#fff;box-shadow:0 12px 25px rgba(183,51,78,.22)}.tc-gsales-primary:hover{transform:translateY(-1px);filter:brightness(.98)}.tc-gsales-primary span{font-size:20px}.tc-gsales-secondary{background:#fff;color:var(--navy);border:1px solid #c9d3df}.tc-gsales-microcopy{margin:12px 0 0!important;font-size:12px!important;color:#69768a!important}.tc-gsales-prelaunch{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:18px;padding:12px 14px;border-radius:12px;background:#fff7df;border:1px solid #efd797;color:#6b5420;font-size:12px;line-height:1.7}.tc-gsales-prelaunch strong{white-space:nowrap}
.tc-gsales-hero-visual{position:relative;z-index:1;padding:22px;border-radius:24px;background:linear-gradient(180deg,var(--navy),#102c50);color:#fff;box-shadow:0 22px 40px rgba(11,27,51,.22)}.tc-gsales-dash-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.12)}.tc-gsales-dash-head>span{display:grid;place-items:center;width:48px;height:54px;border:2px solid var(--gold2);border-radius:15px;color:var(--gold2);font-weight:950}.tc-gsales-dash-head div{display:grid;gap:2px}.tc-gsales-dash-head small{font-size:10px;letter-spacing:.14em;color:#aabbd0}.tc-gsales-dash-head b{font-size:16px}.tc-gsales-dash-head em{margin-left:auto;font-size:10px;font-style:normal;letter-spacing:.14em;color:var(--gold2)}.tc-gsales-dash-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0}.tc-gsales-dash-metrics div{padding:14px 9px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);text-align:center}.tc-gsales-dash-metrics span{display:block;font-size:10px;color:#aabbd0}.tc-gsales-dash-metrics b{display:inline-block;margin-top:5px;font-size:22px;color:#fff}.tc-gsales-dash-metrics small{margin-left:2px;color:#d8e2ee}.tc-gsales-dash-list{display:grid;gap:8px}.tc-gsales-dash-list div{display:flex;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#fff;color:#243653;font-size:12px}.tc-gsales-dash-list strong{color:#9b7729}.tc-gsales-dash-foot{margin-top:15px;text-align:center;font-size:10px;letter-spacing:.11em;color:var(--gold2)}
.tc-gsales-anchor-nav{position:sticky;top:12px;z-index:5;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:24px 0 0;padding:10px;border:1px solid #e4e7eb;border-radius:15px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 8px 24px rgba(18,37,61,.06)}.tc-gsales-anchor-nav a{padding:8px 12px;border-radius:10px;color:#34445e;font-size:12px;font-weight:800}.tc-gsales-anchor-nav a:hover{background:#f2f6fa;color:var(--navy)}
.tc-gsales-problem-grid,.tc-gsales-feature-grid,.tc-gsales-user-grid{display:grid;gap:16px}.tc-gsales-problem-grid{grid-template-columns:repeat(4,1fr)}.tc-gsales-problem-grid article,.tc-gsales-feature-grid article,.tc-gsales-user-grid article{padding:24px;border-radius:18px;background:#fff;border:1px solid #e7e9ec;box-shadow:0 10px 28px rgba(19,44,76,.055)}.tc-gsales-problem-grid i,.tc-gsales-user-grid i{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eef5fb;color:#2e6796;font-style:normal;font-weight:900}.tc-gsales-problem-grid b{display:block;margin:14px 0 8px;font-size:16px;color:var(--navy)}.tc-gsales-problem-grid p,.tc-gsales-feature-grid p,.tc-gsales-user-grid p{margin:0;color:#68758a;line-height:1.75;font-size:13px}
.tc-gsales-brand{position:relative}.tc-gsales-feature-grid{grid-template-columns:repeat(3,1fr)}.tc-gsales-feature-grid article{position:relative;overflow:hidden;padding-top:54px}.tc-gsales-feature-grid article>span{position:absolute;top:18px;left:22px;font-size:11px;font-weight:900;letter-spacing:.12em;color:#af8b38}.tc-gsales-feature-grid h3{margin:0 0 10px;font-size:18px;color:var(--navy)}
.tc-gsales-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:12px;align-items:center}.tc-gsales-steps article{min-height:165px;padding:22px;border-radius:18px;background:linear-gradient(180deg,#fff,#fafbfd);border:1px solid #e5e9ef}.tc-gsales-steps article>b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:var(--gold2)}.tc-gsales-steps h3{margin:14px 0 6px;font-size:17px;color:var(--navy)}.tc-gsales-steps p{margin:0;color:#69768a;font-size:13px;line-height:1.7}.tc-gsales-steps>i{font-style:normal;color:#c0a45e;font-size:24px}
.tc-gsales-user-grid{grid-template-columns:repeat(5,1fr)}.tc-gsales-user-grid article{text-align:center}.tc-gsales-user-grid i{margin:0 auto 12px;background:#f6f0df;color:#9a7627}.tc-gsales-user-grid h3{margin:0 0 8px;font-size:15px;color:var(--navy)}
.tc-gsales-plan-section{background:linear-gradient(180deg,transparent,#fbf8f0 16%,#fbf8f0 84%,transparent);margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}.tc-gsales-plan-wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:22px;max-width:980px;margin:0 auto}.tc-gsales-plan-card,.tc-gsales-renewal{border-radius:24px;box-shadow:0 18px 48px rgba(17,40,69,.09)}.tc-gsales-plan-card{padding:32px;background:#fff;border:2px solid #d9bc72}.tc-gsales-plan-top{position:relative}.tc-gsales-plan-top>span{position:absolute;right:0;top:0;padding:7px 11px;border-radius:999px;background:#f2df9a;color:#725817;font-size:11px;font-weight:900}.tc-gsales-plan-top small{font-size:11px;letter-spacing:.13em;color:#9d7b2d;font-weight:900}.tc-gsales-plan-top h3{margin:8px 0 12px;font-size:24px;color:var(--navy)}.tc-gsales-price{display:flex;align-items:flex-end;gap:7px;padding:18px 0;border-top:1px solid #eee7d7;border-bottom:1px solid #eee7d7}.tc-gsales-price b{font-size:48px;line-height:1;color:var(--navy)}.tc-gsales-price>span{padding-bottom:4px;font-size:12px;font-weight:800}.tc-gsales-price small{padding-bottom:4px;color:#758096}.tc-gsales-value{margin:16px 0;padding:12px;border-radius:12px;background:#eef7f2;color:#496456;font-size:13px}.tc-gsales-plan-card ul,.tc-gsales-renewal ul{list-style:none;padding:0;margin:20px 0}.tc-gsales-plan-card li,.tc-gsales-renewal li{position:relative;padding:7px 0 7px 24px;color:#43526a;font-size:13px}.tc-gsales-plan-card li:before,.tc-gsales-renewal li:before{content:"✓";position:absolute;left:0;color:#4f8a69;font-weight:900}.tc-gsales-plan-card .tc-gsales-primary{width:100%}.tc-gsales-plan-safe{display:grid;gap:3px;margin-top:14px;text-align:center}.tc-gsales-plan-safe b{font-size:12px;color:#43526a}.tc-gsales-plan-safe span{font-size:11px;line-height:1.6;color:#7c8798}.tc-gsales-renewal{padding:32px;background:linear-gradient(155deg,var(--navy),#173b64);color:#fff}.tc-gsales-renewal>span{font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--gold2)}.tc-gsales-renewal h3{margin:12px 0;font-size:26px;line-height:1.35}.tc-gsales-renewal p{color:#d4deea;line-height:1.85}.tc-gsales-renewal-example{display:grid;grid-template-columns:auto 1fr auto 1.1fr;gap:8px;align-items:center;margin:22px 0;padding:14px;border-radius:14px;background:rgba(255,255,255,.08)}.tc-gsales-renewal-example small{color:var(--gold2)}.tc-gsales-renewal-example b,.tc-gsales-renewal-example strong{font-size:13px}.tc-gsales-renewal-example i{font-style:normal;color:#aabbd0}.tc-gsales-renewal li{color:#dce5ef}.tc-gsales-renewal li:before{color:var(--gold2)}
.tc-gsales-table-wrap{overflow:auto;border:1px solid #e5e8ed;border-radius:18px}.tc-gsales-table-wrap table{width:100%;border-collapse:collapse;min-width:700px;background:#fff}.tc-gsales-table-wrap th,.tc-gsales-table-wrap td{padding:15px 18px;border-bottom:1px solid #edf0f3;text-align:center;font-size:13px}.tc-gsales-table-wrap th:first-child,.tc-gsales-table-wrap td:first-child{text-align:left}.tc-gsales-table-wrap thead th{background:#f6f8fa;color:#4a5870}.tc-gsales-table-wrap thead th:last-child{background:var(--navy);color:#fff}.tc-gsales-table-wrap td:last-child{background:#fbf7ea;color:#7e6328}.tc-gsales-table-wrap tr:last-child td{border-bottom:0}
.tc-gsales-voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tc-gsales-voice-grid article{padding:26px;border-radius:18px;background:#fff;border:1px solid #e7e9ed}.tc-gsales-voice-grid article>span{font-size:42px;line-height:.8;color:#d5b65f}.tc-gsales-voice-grid blockquote{margin:12px 0 18px;color:#33435d;line-height:1.8}.tc-gsales-voice-grid footer{font-size:12px;color:#7a8798}.tc-gsales-voice-placeholder{max-width:800px;margin:0 auto;padding:34px;border:1px dashed #cfbf91;border-radius:20px;background:#fffdf7;text-align:center}.tc-gsales-voice-placeholder span{display:block;font-size:10px;letter-spacing:.16em;color:#aa8431;font-weight:900}.tc-gsales-voice-placeholder strong{display:block;margin:10px 0;font-size:18px;color:var(--navy)}.tc-gsales-voice-placeholder p{margin:0;color:#748094;font-size:13px;line-height:1.8}
.tc-gsales-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tc-gsales-faq details{border:1px solid #e4e8ed;border-radius:14px;background:#fff;padding:0 18px}.tc-gsales-faq summary{cursor:pointer;padding:18px 0;font-weight:900;color:var(--navy)}.tc-gsales-faq details p{margin:0;padding:0 0 18px;color:#66748a;line-height:1.8;font-size:13px}.tc-gsales-faq-link{display:inline-block;margin-top:18px;color:#8d6b23;font-weight:900}
.tc-gsales-final{padding:58px 32px;border-radius:28px;text-align:center;background:linear-gradient(135deg,var(--navy),#173f6b);color:#fff;box-shadow:0 22px 50px rgba(12,31,55,.18)}.tc-gsales-final>span{font-size:10px;letter-spacing:.18em;color:var(--gold2)}.tc-gsales-final h2{margin:12px 0;font-size:clamp(32px,4.5vw,50px);line-height:1.2}.tc-gsales-final h2 strong{color:var(--gold2)}.tc-gsales-final p{max-width:700px;margin:0 auto 24px;color:#d8e2ee;line-height:1.85}.tc-gsales-final .tc-gsales-primary{background:linear-gradient(135deg,#c03a55,#d45569)}.tc-gsales-final>small{display:block;margin-top:12px;color:#aabbd0}
@media(max-width:980px){.tc-gsales-hero{grid-template-columns:1fr;padding:38px}.tc-gsales-hero-visual{max-width:700px}.tc-gsales-problem-grid{grid-template-columns:1fr 1fr}.tc-gsales-feature-grid{grid-template-columns:1fr 1fr}.tc-gsales-user-grid{grid-template-columns:repeat(3,1fr)}.tc-gsales-plan-wrap{grid-template-columns:1fr}.tc-gsales-steps{grid-template-columns:1fr 1fr}.tc-gsales-steps>i{display:none}.tc-gsales-faq-grid{grid-template-columns:1fr}}
@media(max-width:700px){.tc-gsales{padding:18px 14px 60px}.tc-gsales-hero{padding:28px 20px;border-radius:22px}.tc-gsales-hero h1{font-size:40px}.tc-gsales-lead{font-size:15px}.tc-gsales-actions{align-items:stretch}.tc-gsales-primary,.tc-gsales-secondary{width:100%}.tc-gsales-dash-metrics{grid-template-columns:1fr 1fr}.tc-gsales-anchor-nav{position:static}.tc-gsales-section{padding:52px 0}.tc-gsales-problem-grid,.tc-gsales-feature-grid,.tc-gsales-user-grid,.tc-gsales-voice-grid,.tc-gsales-steps{grid-template-columns:1fr}.tc-gsales-plan-section{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.tc-gsales-plan-card,.tc-gsales-renewal{padding:24px}.tc-gsales-price{flex-wrap:wrap}.tc-gsales-price b{font-size:42px}.tc-gsales-renewal-example{grid-template-columns:1fr;text-align:center}.tc-gsales-hero-visual{padding:16px}.tc-gsales-dash-head em{display:none}.tc-gsales-heading h2{font-size:34px}.tc-gsales-final{padding:42px 20px}.tc-gsales-prelaunch{grid-template-columns:1fr}}
.tc-group-license-summary{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;align-items:center;margin:18px 0;padding:16px 18px;border:1px solid #dfd1aa;border-radius:16px;background:#fffaf0}.tc-group-license-summary>div:first-child{grid-row:1 / span 2}.tc-group-license-summary h4{margin:4px 0 0;color:#10243f}.tc-group-license-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.tc-group-license-row>span{padding:5px 8px;border-radius:999px;background:#eef5fb;color:#315f8b;font-size:11px;font-weight:800}.tc-group-license-row>b{color:#245e43}.tc-group-license-row>small{color:#6d798c}.tc-group-license-summary>a{grid-column:2;color:#8d6b23;font-size:12px;font-weight:900}
@media(max-width:700px){.tc-group-license-summary{grid-template-columns:1fr}.tc-group-license-summary>div:first-child,.tc-group-license-summary>a{grid-column:1;grid-row:auto}}

/* ---- typing-coach-polish-v1855 | assets/css/polish-v1855.css ---- */
/* Typing Coach v1.85.5 — Premium Group Sales LP */
.tc-system-page-typing-coach-groups .tc-system-main__inner{max-width:1560px;padding-inline:clamp(14px,2vw,32px)}
.tc-gsales-v1855{max-width:1500px;margin:0 auto;padding:28px 24px 86px;--gs-navy:#08264b;--gs-navy2:#123d68;--gs-gold:#c99a36;--gs-gold2:#e7c66c;--gs-ivory:#fffaf0;--gs-cream:#f7f2e7;--gs-rose:#ce405b;--gs-blue:#4e84b5;--gs-green:#5f9a70;--gs-text:#112846;--gs-muted:#68778d;position:relative;color:var(--gs-text);font-feature-settings:"palt" 1;line-break:strict;word-break:normal;overflow-wrap:normal}
.tc-gsales-v1855 *{box-sizing:border-box}.tc-gsales-v1855 h1,.tc-gsales-v1855 h2,.tc-gsales-v1855 h3,.tc-gsales-v1855 p,.tc-gsales-v1855 b,.tc-gsales-v1855 strong,.tc-gsales-v1855 small,.tc-gsales-v1855 span{overflow:visible;text-overflow:clip}.tc-gsales-v1855 h1,.tc-gsales-v1855 h2{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;text-wrap:balance}.tc-gsales-v1855 p{line-height:1.9}.tc-gsales-v1855 svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

.tc-gsales-v1855 .tc-gsales-hero{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);gap:clamp(32px,4vw,70px);align-items:center;padding:clamp(54px,6vw,92px) clamp(34px,5vw,78px);border:1px solid rgba(207,176,101,.38);border-radius:34px;background:radial-gradient(circle at 20% 4%,rgba(255,255,255,.98),rgba(255,250,239,.94) 38%,rgba(244,238,224,.92) 100%);box-shadow:0 28px 70px rgba(16,42,73,.11);overflow:hidden}
.tc-gsales-v1855 .tc-gsales-hero:before{content:"";position:absolute;left:-7%;bottom:-46%;width:520px;height:520px;border-radius:50%;border:1px solid rgba(201,154,54,.15)}.tc-gsales-v1855 .tc-gsales-hero:after{content:"";position:absolute;right:-120px;top:-140px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(231,198,108,.23),rgba(231,198,108,0) 68%)}
.tc-gsales-v1855 .tc-gsales-hero-copy,.tc-gsales-v1855 .tc-gsales-hero-stage{position:relative;z-index:1}.tc-gsales-v1855 .tc-gsales-kicker,.tc-gsales-v1855 .tc-gsales-heading>span{display:inline-flex;align-items:center;gap:9px;color:#a77923;font-size:11px;font-weight:900;letter-spacing:.19em;text-transform:uppercase}.tc-gsales-v1855 .tc-gsales-kicker:before,.tc-gsales-v1855 .tc-gsales-heading>span:before{content:"";width:28px;height:1px;background:#d1a445}.tc-gsales-v1855 .tc-gsales-hero h1{max-width:700px;margin:16px 0 20px;font-size:clamp(42px,5.5vw,78px);line-height:1.15;letter-spacing:.01em;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-hero h1 strong{color:#b58523;font-weight:700}.tc-gsales-v1855 .tc-gsales-lead{max-width:700px;margin:0;color:#53657d;font-size:clamp(15px,1.35vw,19px)}
.tc-gsales-v1855 .tc-gsales-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:28px}.tc-gsales-v1855 .tc-gsales-primary,.tc-gsales-v1855 .tc-gsales-secondary{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:54px;padding:14px 24px;border-radius:999px;font-weight:900;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.tc-gsales-v1855 .tc-gsales-primary{color:#fff;background:linear-gradient(135deg,#c93453,#df526b);box-shadow:0 12px 26px rgba(197,48,78,.21)}.tc-gsales-v1855 .tc-gsales-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(197,48,78,.27)}.tc-gsales-v1855 .tc-gsales-secondary{border:1px solid #cfb36b;background:rgba(255,255,255,.8);color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-secondary:hover{background:#fff}.tc-gsales-v1855 .tc-gsales-microcopy{margin:12px 0 0;color:#7f8895;font-size:12px}.tc-gsales-v1855 .tc-gsales-hero-trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}.tc-gsales-v1855 .tc-gsales-hero-trust span{display:flex;align-items:center;gap:8px;color:#57677d;font-size:12px}.tc-gsales-v1855 .tc-gsales-hero-trust svg{width:25px;height:25px;color:#9a7626}.tc-gsales-v1855 .tc-gsales-prelaunch{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:start;margin-top:18px;padding:14px 16px;border:1px solid #ead9a9;border-radius:14px;background:rgba(255,250,235,.75);font-size:12px;color:#6b5b36}.tc-gsales-v1855 .tc-gsales-prelaunch strong{color:#8d691d}

.tc-gsales-v1855 .tc-gsales-hero-stage{min-height:560px;display:flex;align-items:center;justify-content:center}.tc-gsales-v1855 .tc-gsales-hero-glow{position:absolute;inset:10% 7%;border-radius:50%;background:radial-gradient(circle,#fff 0,rgba(255,255,255,.7) 35%,rgba(231,198,108,.16) 70%,transparent 75%);filter:blur(2px)}.tc-gsales-v1855 .tc-gsales-dashboard-card{position:relative;z-index:2;width:min(100%,690px);padding:22px;border:1px solid rgba(255,255,255,.22);border-radius:28px;background:linear-gradient(160deg,#0b2d55,#0d3b68);box-shadow:0 32px 80px rgba(9,34,63,.28);color:#fff}.tc-gsales-v1855 .tc-gsales-dash-head{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center}.tc-gsales-v1855 .tc-gsales-dash-head>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #dab453;border-radius:11px;color:#e8c768;font-family:Georgia,serif;font-weight:900}.tc-gsales-v1855 .tc-gsales-dash-head div{display:grid;gap:3px}.tc-gsales-v1855 .tc-gsales-dash-head small{font-size:9px;letter-spacing:.16em;color:#b7c9dc}.tc-gsales-v1855 .tc-gsales-dash-head b{font-size:15px}.tc-gsales-v1855 .tc-gsales-dash-head em{padding:7px 10px;border-radius:999px;background:#163f6c;color:#d7e5f1;font-size:11px;font-style:normal}.tc-gsales-v1855 .tc-gsales-dash-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.tc-gsales-v1855 .tc-gsales-dash-metrics>div{padding:14px;border-radius:16px;background:#fff;color:#243a56;box-shadow:inset 0 0 0 1px #e4eaf0}.tc-gsales-v1855 .tc-gsales-dash-metrics span{display:block;font-size:10px;color:#738196}.tc-gsales-v1855 .tc-gsales-dash-metrics b{display:block;margin-top:5px;font-size:25px;color:#173e67}.tc-gsales-v1855 .tc-gsales-dash-metrics small{color:#4d9867;font-size:10px}.tc-gsales-v1855 .tc-gsales-dashboard-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:12px;margin-top:12px}.tc-gsales-v1855 .tc-gsales-mini-chart,.tc-gsales-v1855 .tc-gsales-rank-mini,.tc-gsales-v1855 .tc-gsales-follow{padding:15px;border-radius:16px;background:#fff;color:#263a55}.tc-gsales-v1855 .tc-gsales-mini-chart>strong,.tc-gsales-v1855 .tc-gsales-rank-mini>strong,.tc-gsales-v1855 .tc-gsales-follow>strong{display:block;margin-bottom:10px;font-size:11px}.tc-gsales-v1855 .tc-gsales-bars{display:flex;align-items:flex-end;gap:8px;height:92px;padding:8px 8px 0;border-bottom:1px solid #e4e9ef}.tc-gsales-v1855 .tc-gsales-bars i{flex:1;height:var(--h);border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#80b7df,#3f79aa)}.tc-gsales-v1855 .tc-gsales-mini-chart small{display:block;margin-top:5px;color:#9aa5b3;font-size:8px;text-align:center}.tc-gsales-v1855 .tc-gsales-rank-mini{display:grid;align-content:start;gap:7px}.tc-gsales-v1855 .tc-gsales-rank-mini>span{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;font-size:10px}.tc-gsales-v1855 .tc-gsales-rank-mini b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f3e3b3;color:#80631f}.tc-gsales-v1855 .tc-gsales-rank-mini em{font-style:normal;color:#52708e}.tc-gsales-v1855 .tc-gsales-follow{margin-top:12px;display:grid;gap:7px}.tc-gsales-v1855 .tc-gsales-follow>span{display:grid;grid-template-columns:24px 60px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-top:1px solid #edf0f3;font-size:9px}.tc-gsales-v1855 .tc-gsales-follow i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#f2d9dd;color:#9e3348;font-style:normal}.tc-gsales-v1855 .tc-gsales-follow small{color:#7a8797}.tc-gsales-v1855 .tc-gsales-follow em{color:#9aa5b3;font-style:normal}.tc-gsales-v1855 .tc-gsales-script{position:absolute;right:-18px;bottom:12px;z-index:3;color:#b7882e;font-family:"Segoe Script","Brush Script MT",cursive;font-size:22px;line-height:1.15;transform:rotate(-6deg)}

.tc-gsales-v1855 .tc-gsales-section{border-top:0;padding:clamp(68px,8vw,118px) 0}.tc-gsales-v1855 .tc-gsales-heading{max-width:940px;margin-bottom:34px}.tc-gsales-v1855 .tc-gsales-heading.is-center{margin-inline:auto;text-align:center}.tc-gsales-v1855 .tc-gsales-heading.is-center>span{justify-content:center}.tc-gsales-v1855 .tc-gsales-heading h2{margin:10px 0 12px;font-size:clamp(34px,4vw,58px);line-height:1.26;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-heading h2 strong{color:#ae7f22;font-weight:700}.tc-gsales-v1855 .tc-gsales-heading h3{margin:8px 0 12px;color:#a47725;font-size:clamp(18px,1.7vw,25px);letter-spacing:.04em}.tc-gsales-v1855 .tc-gsales-heading p{margin:0;color:#738095;font-size:14px}

.tc-gsales-v1855 .tc-gsales-problems{position:relative}.tc-gsales-v1855 .tc-gsales-problem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.tc-gsales-v1855 .tc-gsales-problem-grid article{min-width:0;padding:28px 24px 30px;border:1px solid #e5e9ed;border-radius:22px;background:linear-gradient(180deg,#fff,#fbfcfd);box-shadow:0 18px 45px rgba(17,44,76,.06);text-align:center}.tc-gsales-v1855 .tc-gsales-illustration{display:grid;place-items:center;width:108px;height:88px;margin:0 auto 13px;border-radius:25px;background:linear-gradient(145deg,#edf5fc,#fff9e8);color:#4a79a4}.tc-gsales-v1855 .tc-gsales-illustration svg{width:62px;height:62px}.tc-gsales-v1855 .tc-gsales-problem-grid b{display:block;margin:8px 0 10px;font-size:18px;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-problem-grid p{margin:0;color:#748196;font-size:13px}

.tc-gsales-v1855 .tc-gsales-brand{margin-inline:calc(50% - 50vw);padding-inline:max(22px,calc((100vw - 1500px)/2));background:linear-gradient(100deg,#eef3f7 0%,#fff 38%,#fffaf1 100%)}.tc-gsales-v1855 .tc-gsales-brand-layout{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(0,1.45fr);gap:44px;align-items:center}.tc-gsales-v1855 .tc-gsales-brand-art{position:relative}.tc-gsales-v1855 .tc-gsales-growth-scene{display:block;width:100%;height:auto;filter:drop-shadow(0 20px 38px rgba(29,55,80,.12))}.tc-gsales-v1855 .tc-gsales-brand-art>span{position:absolute;left:28px;bottom:22px;color:#a97b27;font-family:"Segoe Script","Brush Script MT",cursive;font-size:24px;line-height:1.15;transform:rotate(-4deg)}.tc-gsales-v1855 .tc-gsales-brand-copy .tc-gsales-heading{margin-bottom:24px}.tc-gsales-v1855 .tc-gsales-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tc-gsales-v1855 .tc-gsales-feature-grid article{min-width:0;padding:19px;border:1px solid #e9e4d7;border-radius:18px;background:rgba(255,255,255,.86);box-shadow:0 8px 24px rgba(19,44,76,.045)}.tc-gsales-v1855 .tc-gsales-feature-grid article>div{display:grid;place-items:center;width:38px;height:38px;margin-bottom:11px;border-radius:12px;background:#f8f1dd;color:#99742a}.tc-gsales-v1855 .tc-gsales-feature-grid svg{width:22px;height:22px}.tc-gsales-v1855 .tc-gsales-feature-grid h3{margin:0 0 7px;font-size:15px;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-feature-grid p{margin:0;color:#778499;font-size:12px;line-height:1.75}

.tc-gsales-v1855 .tc-gsales-flow{overflow:hidden}.tc-gsales-v1855 .tc-gsales-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;gap:12px;align-items:center}.tc-gsales-v1855 .tc-gsales-steps article{min-width:0;text-align:center}.tc-gsales-v1855 .tc-gsales-steps article>b{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 12px;border-radius:50%;background:linear-gradient(145deg,#d8b356,#a77821);color:#fff;font-size:12px;box-shadow:0 6px 15px rgba(169,120,33,.2)}.tc-gsales-v1855 .tc-gsales-steps article>div{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 12px;border:1px solid #d9e3ec;border-radius:50%;background:#f6faff;color:#336999}.tc-gsales-v1855 .tc-gsales-steps svg{width:38px;height:38px}.tc-gsales-v1855 .tc-gsales-steps h3{margin:0 0 6px;color:var(--gs-navy);font-size:16px}.tc-gsales-v1855 .tc-gsales-steps p{margin:0;color:#7b8899;font-size:12px;line-height:1.65}.tc-gsales-v1855 .tc-gsales-steps>i{font-style:normal;color:#c8a14c;font-size:22px}

.tc-gsales-v1855 .tc-gsales-users{background:linear-gradient(180deg,transparent,#fbfaf6 17%,#fbfaf6 83%,transparent)}.tc-gsales-v1855 .tc-gsales-user-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.tc-gsales-v1855 .tc-gsales-user-grid article{min-width:0;padding:24px 16px;border:1px solid #e7e9ec;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(19,44,76,.05);text-align:center}.tc-gsales-v1855 .tc-gsales-user-grid article>div{display:grid;place-items:center;width:84px;height:76px;margin:0 auto 12px;border-radius:22px;background:linear-gradient(145deg,#f9f2dc,#edf4fb);color:#496f93}.tc-gsales-v1855 .tc-gsales-user-grid svg{width:50px;height:50px}.tc-gsales-v1855 .tc-gsales-user-grid h3{margin:0 0 8px;color:var(--gs-navy);font-size:15px}.tc-gsales-v1855 .tc-gsales-user-grid p{margin:0;color:#778496;font-size:12px;line-height:1.7}

.tc-gsales-v1855 .tc-gsales-plan-section{position:relative;margin-inline:calc(50% - 50vw);padding-inline:max(22px,calc((100vw - 1500px)/2));background:linear-gradient(180deg,#fff,#fffaf0 14%,#fffaf0 86%,#fff)}.tc-gsales-v1855 .tc-gsales-plan-value-note{max-width:1100px;margin:-18px auto 18px;text-align:right;color:#9d7624;font-size:12px;line-height:1.35}.tc-gsales-v1855 .tc-gsales-plan-value-note strong{font-size:17px}.tc-gsales-v1855 .tc-gsales-plan-wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:22px;max-width:1120px;margin:0 auto}.tc-gsales-v1855 .tc-gsales-plan-card,.tc-gsales-v1855 .tc-gsales-renewal{position:relative;min-width:0;border-radius:26px;box-shadow:0 22px 55px rgba(17,40,69,.1)}.tc-gsales-v1855 .tc-gsales-plan-card{padding:36px;background:#fff;border:1px solid #d7bb70}.tc-gsales-v1855 .tc-gsales-pass-badge{position:absolute;right:30px;top:26px;display:grid;place-items:center;width:74px;height:74px;border-radius:50%;border:1px solid #d2ac4f;background:radial-gradient(circle at 35% 30%,#f5df9d,#b78529 68%);color:#fff;text-align:center;font-family:Georgia,serif;font-size:10px;font-weight:900;line-height:1.15;box-shadow:0 8px 20px rgba(177,132,41,.24)}.tc-gsales-v1855 .tc-gsales-plan-top small{font-size:11px;letter-spacing:.13em;color:#997229;font-weight:900}.tc-gsales-v1855 .tc-gsales-plan-top h3{margin:8px 0 14px;font-size:24px;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-price{display:flex;align-items:flex-end;gap:8px;margin:12px 0}.tc-gsales-v1855 .tc-gsales-price b{font-size:52px;line-height:1;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-price span{padding-bottom:5px;font-size:12px;font-weight:800}.tc-gsales-v1855 .tc-gsales-plan-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:19px 0}.tc-gsales-v1855 .tc-gsales-plan-facts span{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 7px;border-radius:11px;background:#fbf5e5;color:#6c5b36;font-size:11px;font-weight:800;text-align:center}.tc-gsales-v1855 .tc-gsales-plan-facts svg{width:18px;height:18px;color:#ad8128}.tc-gsales-v1855 .tc-gsales-plan-lead{padding:12px 14px;border-radius:12px;background:#eef7f2;color:#4e6859;font-size:12px}.tc-gsales-v1855 .tc-gsales-plan-card ul,.tc-gsales-v1855 .tc-gsales-renewal ul{list-style:none;padding:0;margin:18px 0}.tc-gsales-v1855 .tc-gsales-plan-card li,.tc-gsales-v1855 .tc-gsales-renewal li{position:relative;padding:6px 0 6px 24px;font-size:12px}.tc-gsales-v1855 .tc-gsales-plan-card li{color:#46556c}.tc-gsales-v1855 .tc-gsales-plan-card li:before,.tc-gsales-v1855 .tc-gsales-renewal li:before{content:"✓";position:absolute;left:0;font-weight:900}.tc-gsales-v1855 .tc-gsales-plan-card li:before{color:#548969}.tc-gsales-v1855 .tc-gsales-plan-card .tc-gsales-primary{width:100%;margin-top:4px}.tc-gsales-v1855 .tc-gsales-plan-safe{margin-top:12px;color:#8a929d;font-size:10px;text-align:center}.tc-gsales-v1855 .tc-gsales-renewal{overflow:hidden;padding:36px;background:linear-gradient(150deg,#08264b,#123f6d);color:#fff}.tc-gsales-v1855 .tc-gsales-renewal>span{color:#e1be61;font-size:9px;font-weight:900;letter-spacing:.15em}.tc-gsales-v1855 .tc-gsales-renewal h3{max-width:430px;margin:11px 0 10px;font-size:29px;line-height:1.38}.tc-gsales-v1855 .tc-gsales-renewal p{max-width:430px;margin:0;color:#d2deea;font-size:13px}.tc-gsales-v1855 .tc-gsales-renewal-calendar{position:absolute;right:-12px;top:94px;width:130px;height:130px;color:rgba(255,255,255,.08)}.tc-gsales-v1855 .tc-gsales-renewal ul{position:relative;z-index:1}.tc-gsales-v1855 .tc-gsales-renewal li{color:#dce6ef}.tc-gsales-v1855 .tc-gsales-renewal li:before{color:#e1be61}.tc-gsales-v1855 .tc-gsales-renewal-example{display:grid;grid-template-columns:auto 1fr auto 1.15fr;gap:8px;align-items:center;margin-top:18px;padding:13px;border-radius:13px;background:rgba(255,255,255,.08);font-size:11px}.tc-gsales-v1855 .tc-gsales-renewal-example small{color:#e3c56e}.tc-gsales-v1855 .tc-gsales-renewal-example i{font-style:normal;color:#a7bbce}

.tc-gsales-v1855 .tc-gsales-table-wrap{overflow:auto;border:1px solid #e4e8ec;border-radius:20px;box-shadow:0 12px 32px rgba(20,47,78,.06)}.tc-gsales-v1855 .tc-gsales-table-wrap table{width:100%;min-width:760px;border-collapse:collapse;background:#fff}.tc-gsales-v1855 .tc-gsales-table-wrap th,.tc-gsales-v1855 .tc-gsales-table-wrap td{padding:16px 18px;border-bottom:1px solid #eceff2;text-align:center;font-size:12px}.tc-gsales-v1855 .tc-gsales-table-wrap th:first-child,.tc-gsales-v1855 .tc-gsales-table-wrap td:first-child{text-align:left}.tc-gsales-v1855 .tc-gsales-table-wrap thead th{background:#f2f6f9;color:#4a5870}.tc-gsales-v1855 .tc-gsales-table-wrap thead th:last-child{background:var(--gs-navy);color:#fff}.tc-gsales-v1855 .tc-gsales-table-wrap td:last-child{background:#fbf5e6;color:#7c6228}.tc-gsales-v1855 .tc-gsales-table-wrap tr:last-child td{border-bottom:0}.tc-gsales-v1855 .tc-gsales-compare-mobile{display:none}

.tc-gsales-v1855 .tc-gsales-voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tc-gsales-v1855 .tc-gsales-voice-grid article{padding:28px;border-radius:20px;background:#fff;border:1px solid #e7e9ed}.tc-gsales-v1855 .tc-gsales-voice-grid article>span{font-size:42px;line-height:.8;color:#d5b65f}.tc-gsales-v1855 .tc-gsales-voice-grid blockquote{margin:12px 0 18px;color:#33435d;line-height:1.85}.tc-gsales-v1855 .tc-gsales-voice-grid footer{font-size:12px;color:#7a8798}.tc-gsales-v1855 .tc-gsales-voice-placeholder{display:grid;grid-template-columns:80px 1fr;gap:20px;align-items:center;max-width:900px;margin:0 auto;padding:30px 34px;border:1px solid #e7d8ae;border-radius:20px;background:#fffdf7;box-shadow:0 10px 28px rgba(79,62,28,.04)}.tc-gsales-v1855 .tc-gsales-voice-icon{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:#f4e8c8;color:#a67c28}.tc-gsales-v1855 .tc-gsales-voice-icon svg{width:38px;height:38px}.tc-gsales-v1855 .tc-gsales-voice-placeholder span{display:block;font-size:9px;letter-spacing:.16em;color:#aa8431;font-weight:900}.tc-gsales-v1855 .tc-gsales-voice-placeholder strong{display:block;margin:7px 0;font-size:17px;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-voice-placeholder p{margin:0;color:#748094;font-size:12px}

.tc-gsales-v1855 .tc-gsales-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tc-gsales-v1855 .tc-gsales-faq details{border:1px solid #e4e8ed;border-radius:14px;background:#fff;padding:0 18px;box-shadow:0 6px 18px rgba(19,44,76,.035)}.tc-gsales-v1855 .tc-gsales-faq summary{cursor:pointer;padding:18px 0;font-weight:900;color:var(--gs-navy);list-style:none}.tc-gsales-v1855 .tc-gsales-faq summary::-webkit-details-marker{display:none}.tc-gsales-v1855 .tc-gsales-faq summary:after{content:"＋";float:right;color:#a67b28}.tc-gsales-v1855 .tc-gsales-faq details[open] summary:after{content:"−"}.tc-gsales-v1855 .tc-gsales-faq details p{margin:0;padding:0 0 18px;color:#66748a;font-size:12px}.tc-gsales-v1855 .tc-gsales-faq-link{display:inline-block;margin-top:18px;color:#8d6b23;font-weight:900;font-size:12px}

.tc-gsales-v1855 .tc-gsales-final{position:relative;overflow:hidden;padding:64px 34px;border-radius:28px;text-align:center;background:linear-gradient(120deg,#08264b,#144a78);color:#fff;box-shadow:0 24px 60px rgba(10,33,59,.18)}.tc-gsales-v1855 .tc-gsales-final:after{content:"";position:absolute;right:-50px;bottom:-90px;width:430px;height:220px;border-radius:50% 50% 0 0;background:linear-gradient(145deg,rgba(91,134,171,.1),rgba(221,185,85,.22));transform:rotate(-8deg)}.tc-gsales-v1855 .tc-gsales-final-laurel{position:absolute;left:38px;top:50%;transform:translateY(-50%);font-size:82px;color:rgba(224,190,101,.42)}.tc-gsales-v1855 .tc-gsales-final>span{position:relative;z-index:1;font-size:9px;letter-spacing:.18em;color:#e0bd65}.tc-gsales-v1855 .tc-gsales-final h2{position:relative;z-index:1;margin:10px 0;font-size:clamp(34px,4vw,54px);line-height:1.26}.tc-gsales-v1855 .tc-gsales-final h2 strong{color:#e4c66f}.tc-gsales-v1855 .tc-gsales-final p{position:relative;z-index:1;max-width:720px;margin:0 auto 22px;color:#d7e2ed;font-size:13px}.tc-gsales-v1855 .tc-gsales-final .tc-gsales-primary{position:relative;z-index:1;background:linear-gradient(135deg,#cf3b58,#df5870)}.tc-gsales-v1855 .tc-gsales-final>small{position:relative;z-index:1;display:block;margin-top:11px;color:#b8c8d8;font-size:10px}

@media(max-width:1180px){.tc-gsales-v1855 .tc-gsales-hero{grid-template-columns:1fr;padding:50px}.tc-gsales-v1855 .tc-gsales-hero-stage{min-height:auto}.tc-gsales-v1855 .tc-gsales-dashboard-card{max-width:780px}.tc-gsales-v1855 .tc-gsales-script{right:30px}.tc-gsales-v1855 .tc-gsales-brand-layout{grid-template-columns:1fr}.tc-gsales-v1855 .tc-gsales-brand-art{max-width:760px;margin:auto}.tc-gsales-v1855 .tc-gsales-feature-grid{grid-template-columns:repeat(3,1fr)}.tc-gsales-v1855 .tc-gsales-user-grid{grid-template-columns:repeat(3,1fr)}.tc-gsales-v1855 .tc-gsales-steps{grid-template-columns:repeat(5,1fr);gap:14px}.tc-gsales-v1855 .tc-gsales-steps>i{display:none}}
@media(max-width:900px){.tc-gsales-v1855 .tc-gsales-problem-grid{grid-template-columns:1fr 1fr}.tc-gsales-v1855 .tc-gsales-feature-grid{grid-template-columns:1fr 1fr}.tc-gsales-v1855 .tc-gsales-plan-wrap{grid-template-columns:1fr}.tc-gsales-v1855 .tc-gsales-faq-grid{grid-template-columns:1fr}.tc-gsales-v1855 .tc-gsales-steps{grid-template-columns:1fr 1fr}.tc-gsales-v1855 .tc-gsales-dashboard-grid{grid-template-columns:1fr}.tc-gsales-v1855 .tc-gsales-script{display:none}}
@media(max-width:700px){.tc-system-page-typing-coach-groups .tc-system-main__inner{padding-inline:0}.tc-gsales-v1855{padding-inline:14px}.tc-gsales-v1855 .tc-gsales-pc-break{display:none}.tc-gsales-v1855 .tc-gsales-hero{padding:34px 20px;border-radius:22px;gap:30px}.tc-gsales-v1855 .tc-gsales-hero h1{font-size:clamp(38px,11vw,52px);line-height:1.22}.tc-gsales-v1855 .tc-gsales-lead{font-size:14px}.tc-gsales-v1855 .tc-gsales-actions{align-items:stretch}.tc-gsales-v1855 .tc-gsales-primary,.tc-gsales-v1855 .tc-gsales-secondary{width:100%;min-height:52px}.tc-gsales-v1855 .tc-gsales-hero-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tc-gsales-v1855 .tc-gsales-hero-trust span{justify-content:center;flex-direction:column;text-align:center;font-size:10px}.tc-gsales-v1855 .tc-gsales-prelaunch{grid-template-columns:1fr}.tc-gsales-v1855 .tc-gsales-dashboard-card{padding:14px;border-radius:20px}.tc-gsales-v1855 .tc-gsales-dash-head{grid-template-columns:34px 1fr}.tc-gsales-v1855 .tc-gsales-dash-head>span{width:34px;height:34px}.tc-gsales-v1855 .tc-gsales-dash-head em{display:none}.tc-gsales-v1855 .tc-gsales-dash-metrics{grid-template-columns:1fr 1fr}.tc-gsales-v1855 .tc-gsales-dash-metrics>div:last-child{grid-column:1/-1}.tc-gsales-v1855 .tc-gsales-follow>span{grid-template-columns:22px 48px 1fr}.tc-gsales-v1855 .tc-gsales-follow em{display:none}.tc-gsales-v1855 .tc-gsales-section{padding:58px 0}.tc-gsales-v1855 .tc-gsales-heading h2{font-size:clamp(32px,9vw,42px)}.tc-gsales-v1855 .tc-gsales-problem-grid,.tc-gsales-v1855 .tc-gsales-feature-grid,.tc-gsales-v1855 .tc-gsales-user-grid,.tc-gsales-v1855 .tc-gsales-steps,.tc-gsales-v1855 .tc-gsales-voice-grid{grid-template-columns:1fr}.tc-gsales-v1855 .tc-gsales-brand,.tc-gsales-v1855 .tc-gsales-plan-section{margin-inline:-14px;padding-inline:14px}.tc-gsales-v1855 .tc-gsales-brand-art>span{font-size:18px}.tc-gsales-v1855 .tc-gsales-plan-card,.tc-gsales-v1855 .tc-gsales-renewal{padding:26px 20px}.tc-gsales-v1855 .tc-gsales-pass-badge{right:18px;top:18px;width:62px;height:62px}.tc-gsales-v1855 .tc-gsales-price b{font-size:44px}.tc-gsales-v1855 .tc-gsales-plan-facts{grid-template-columns:1fr 1fr}.tc-gsales-v1855 .tc-gsales-plan-value-note{text-align:center;margin-top:-10px}.tc-gsales-v1855 .tc-gsales-renewal-example{grid-template-columns:1fr;text-align:center}.tc-gsales-v1855 .tc-gsales-table-wrap{display:none}.tc-gsales-v1855 .tc-gsales-compare-mobile{display:grid;gap:12px}.tc-gsales-v1855 .tc-gsales-compare-mobile article{padding:22px;border:1px solid #e3e8ed;border-radius:18px;background:#fff}.tc-gsales-v1855 .tc-gsales-compare-mobile article.is-tc{border-color:#d8bd76;background:#fffaf0}.tc-gsales-v1855 .tc-gsales-compare-mobile h3{margin:0 0 8px;color:var(--gs-navy)}.tc-gsales-v1855 .tc-gsales-compare-mobile p{margin:0 0 10px;color:#6e7b8d;font-size:12px}.tc-gsales-v1855 .tc-gsales-compare-mobile ul{margin:0;padding-left:20px;color:#69778a;font-size:12px;line-height:1.8}.tc-gsales-v1855 .tc-gsales-voice-placeholder{grid-template-columns:1fr;text-align:center;padding:26px 20px}.tc-gsales-v1855 .tc-gsales-voice-icon{margin:auto}.tc-gsales-v1855 .tc-gsales-final{padding:44px 20px}.tc-gsales-v1855 .tc-gsales-final-laurel{display:none}}

/* ---- typing-coach-polish-v1856 | assets/css/polish-v1856.css ---- */
/* Typing Coach v1.85.6 — Group Sales LP design-comp fidelity & premium editorial finish */
.tc-system-page-typing-coach-groups .tc-system-main{background:#fbfaf7}
.tc-system-page-typing-coach-groups .tc-system-main__inner{max-width:1680px;padding:0 clamp(18px,2.4vw,42px) 70px}
.tc-gsales-v1856{max-width:1580px;padding:18px 0 82px;--gs-navy:#08264b;--gs-ink:#102642;--gs-gold:#bd8c28;--gs-gold-light:#e2c46e;--gs-ivory:#fffaf0;--gs-warm:#f7f2e7;--gs-blue:#4b83b4;--gs-green:#5a936b;--gs-rose:#cf405b;--gs-muted:#68788e}
.tc-gsales-v1856 h1,.tc-gsales-v1856 h2{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-weight:700;letter-spacing:.005em;text-wrap:balance}
.tc-gsales-v1856 p,.tc-gsales-v1856 h1,.tc-gsales-v1856 h2,.tc-gsales-v1856 h3,.tc-gsales-v1856 strong,.tc-gsales-v1856 b{word-break:normal;overflow-wrap:anywhere;line-break:strict}
.tc-gsales-v1856 .tc-gsales-pc-break{display:block}

/* HERO — closer to the design comp: editorial copy + lifestyle scene + dashboard overlap */
.tc-gsales-v1856 .tc-gsales-hero{min-height:660px;grid-template-columns:minmax(0,.88fr) minmax(620px,1.12fr);gap:clamp(28px,3.4vw,58px);padding:clamp(48px,5vw,78px) clamp(38px,4.8vw,74px);border-radius:30px;background:linear-gradient(105deg,#fffdf9 0%,#fff8e9 47%,#eef4f8 100%);border:1px solid rgba(194,153,59,.28);box-shadow:0 22px 62px rgba(18,43,73,.10)}
.tc-gsales-v1856 .tc-gsales-hero:before{left:-130px;bottom:-260px;width:650px;height:650px;border-color:rgba(190,143,38,.14)}
.tc-gsales-v1856 .tc-gsales-hero:after{right:-80px;top:-100px;width:420px;height:420px;background:radial-gradient(circle,rgba(229,198,111,.26),rgba(229,198,111,0) 68%)}
.tc-gsales-v1856 .tc-gsales-kicker{font-size:10px;letter-spacing:.22em;color:#a9791e}
.tc-gsales-v1856 .tc-gsales-hero h1{max-width:610px;margin:15px 0 20px;font-size:clamp(48px,4.7vw,74px);line-height:1.13}
.tc-gsales-v1856 .tc-gsales-hero h1 strong{color:#a97820}
.tc-gsales-v1856 .tc-gsales-lead{max-width:610px;font-size:clamp(14px,1.1vw,17px);line-height:1.95;color:#52637a}
.tc-gsales-v1856 .tc-gsales-actions{margin-top:24px}
.tc-gsales-v1856 .tc-gsales-primary,.tc-gsales-v1856 .tc-gsales-secondary{min-height:55px;padding-inline:25px;border-radius:999px}
.tc-gsales-v1856 .tc-gsales-primary{background:linear-gradient(135deg,#cb3152,#df536c);box-shadow:0 14px 28px rgba(190,45,76,.22)}
.tc-gsales-v1856 .tc-gsales-secondary{border-color:#c8ad66;background:rgba(255,255,255,.82)}
.tc-gsales-v1856 .tc-gsales-microcopy{margin-top:10px;font-size:11px}
.tc-gsales-v1856 .tc-gsales-hero-trust{margin-top:21px;gap:14px 24px}
.tc-gsales-v1856 .tc-gsales-hero-trust span{font-size:11px}
.tc-gsales-v1856 .tc-gsales-hero-trust svg{width:27px;height:27px}
.tc-gsales-v1856 .tc-gsales-prelaunch{max-width:590px;margin-top:15px;padding:11px 14px;background:rgba(255,250,236,.84)}
.tc-gsales-v1856 .tc-gsales-hero-stage{min-height:570px;align-items:center;justify-content:flex-start;isolation:isolate}
.tc-gsales-v1856 .tc-gsales-hero-life{position:absolute;right:-38px;top:-50px;width:min(54%,360px);height:620px;z-index:0;opacity:.96;filter:saturate(.88)}
.tc-gsales-v1856 .tc-gsales-hero-life svg{width:100%;height:100%;stroke:none}
.tc-gsales-v1856 .tc-gsales-hero-glow{inset:8% 9% 9% 0;background:radial-gradient(circle at 45% 50%,rgba(255,255,255,.98),rgba(255,255,255,.56) 42%,rgba(225,194,108,.11) 70%,transparent 76%)}
.tc-gsales-v1856 .tc-gsales-dashboard-card{width:min(82%,720px);margin-left:0;padding:22px;border-radius:24px;transform:translateX(0);box-shadow:0 30px 72px rgba(8,38,75,.28);background:linear-gradient(155deg,#0b315b,#0a2a50 72%,#0f406e);border:1px solid rgba(255,255,255,.21)}
.tc-gsales-v1856 .tc-gsales-dash-head>span{width:44px;height:50px;border-radius:12px}
.tc-gsales-v1856 .tc-gsales-dash-head b{font-size:14px}.tc-gsales-v1856 .tc-gsales-dash-head em{font-size:10px;background:#174d7c}
.tc-gsales-v1856 .tc-gsales-dash-metrics{gap:9px}.tc-gsales-v1856 .tc-gsales-dash-metrics>div{padding:13px 11px}.tc-gsales-v1856 .tc-gsales-dash-metrics b{font-size:24px}
.tc-gsales-v1856 .tc-gsales-bars{height:86px}.tc-gsales-v1856 .tc-gsales-script{right:0;bottom:5px;font-size:20px;z-index:4;color:#ad7a20}

/* SECTION RHYTHM — less empty space, clearer bands */
.tc-gsales-v1856 .tc-gsales-section{padding:clamp(62px,6.3vw,92px) 0}
.tc-gsales-v1856 .tc-gsales-heading{max-width:980px;margin-bottom:30px}
.tc-gsales-v1856 .tc-gsales-heading>span{font-size:9px;letter-spacing:.22em}
.tc-gsales-v1856 .tc-gsales-heading h2{margin:9px 0 10px;font-size:clamp(34px,3.5vw,52px);line-height:1.28}
.tc-gsales-v1856 .tc-gsales-heading h3{font-size:clamp(17px,1.5vw,23px);margin:7px 0 9px}
.tc-gsales-v1856 .tc-gsales-heading p{font-size:13px;line-height:1.75}

/* PROBLEM & SOLUTION */
.tc-gsales-v1856 .tc-gsales-problems{margin-inline:calc(50% - 50vw);padding-inline:max(28px,calc((100vw - 1580px)/2));background:linear-gradient(180deg,#fff 0,#fbfaf7 100%)}
.tc-gsales-v1856 .tc-gsales-problem-grid{gap:20px}
.tc-gsales-v1856 .tc-gsales-problem-grid article{padding:24px 21px 26px;border-radius:17px;box-shadow:0 15px 36px rgba(17,44,76,.055)}
.tc-gsales-v1856 .tc-gsales-illustration{width:100%;height:130px;margin-bottom:10px;border-radius:16px;background:linear-gradient(145deg,#f6faff,#fffaf0);border:1px solid #edf0f3}
.tc-gsales-v1856 .tc-gsales-illustration svg{width:74px;height:74px;color:#507fa8;stroke-width:1.8}
.tc-gsales-v1856 .tc-gsales-problem-grid b{font-size:17px}.tc-gsales-v1856 .tc-gsales-problem-grid p{font-size:12px;line-height:1.75}

/* WHY TYPING COACH — editorial two-column image/benefit layout */
.tc-gsales-v1856 .tc-gsales-brand{margin-inline:calc(50% - 50vw);padding-inline:max(28px,calc((100vw - 1580px)/2));background:linear-gradient(105deg,#eef4f8 0,#fff 42%,#fff9ee 100%)}
.tc-gsales-v1856 .tc-gsales-brand-layout{grid-template-columns:minmax(430px,.86fr) minmax(0,1.34fr);gap:38px}
.tc-gsales-v1856 .tc-gsales-brand-art{position:relative;min-height:485px;display:flex;align-items:stretch}
.tc-gsales-v1856 .tc-gsales-brand-art>svg{width:100%;height:100%;min-height:460px;border-radius:28px;filter:drop-shadow(0 20px 32px rgba(25,54,86,.08));stroke:none}
.tc-gsales-v1856 .tc-gsales-brand-art>span{position:absolute;left:36px;bottom:31px;font-family:"Segoe Script","Brush Script MT",cursive;font-size:22px;line-height:1.28;color:#a87521;transform:rotate(-6deg);text-shadow:0 2px 10px rgba(255,255,255,.9)}
.tc-gsales-v1856 .tc-gsales-feature-grid{gap:13px}
.tc-gsales-v1856 .tc-gsales-feature-grid article{padding:19px 18px 19px 61px;min-height:126px;border-radius:15px;box-shadow:0 10px 27px rgba(21,49,79,.04)}
.tc-gsales-v1856 .tc-gsales-feature-grid article>div{position:absolute;left:17px;top:19px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #e3d7b6;border-radius:50%;background:#fff8e8;color:#9d7624}
.tc-gsales-v1856 .tc-gsales-feature-grid article>div svg{width:19px;height:19px}
.tc-gsales-v1856 .tc-gsales-feature-grid h3{font-size:14px;margin:1px 0 6px}.tc-gsales-v1856 .tc-gsales-feature-grid p{font-size:11px;line-height:1.65}

/* HOW IT WORKS — compact infographic line, not a wall of cards */
.tc-gsales-v1856 .tc-gsales-flow{margin-inline:calc(50% - 50vw);padding-inline:max(28px,calc((100vw - 1580px)/2));background:#fff}
.tc-gsales-v1856 .tc-gsales-steps{grid-template-columns:repeat(5,1fr);gap:28px;position:relative;align-items:start}
.tc-gsales-v1856 .tc-gsales-steps:before{content:"";position:absolute;left:8%;right:8%;top:53px;height:1px;background:linear-gradient(90deg,transparent,#c7a04a 9%,#c7a04a 91%,transparent)}
.tc-gsales-v1856 .tc-gsales-steps>i{display:none}
.tc-gsales-v1856 .tc-gsales-steps article{position:relative;z-index:1;min-height:0;padding:0 12px 12px;border:0;background:transparent;text-align:center}
.tc-gsales-v1856 .tc-gsales-steps article>b{margin:0 auto 12px;width:42px;height:42px;background:linear-gradient(145deg,#c8952f,#dfc168);color:#fff;box-shadow:0 7px 15px rgba(184,135,36,.19)}
.tc-gsales-v1856 .tc-gsales-steps article>div{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 9px;border-radius:50%;background:#f7fbff;border:1px solid #dce7ef;color:#2e6ba0;box-shadow:0 9px 22px rgba(28,70,105,.06)}
.tc-gsales-v1856 .tc-gsales-steps article>div svg{width:36px;height:36px}.tc-gsales-v1856 .tc-gsales-steps h3{font-size:14px;margin:6px 0}.tc-gsales-v1856 .tc-gsales-steps p{font-size:11px;line-height:1.6}

/* FOR WHO */
.tc-gsales-v1856 .tc-gsales-users{margin-inline:calc(50% - 50vw);padding-inline:max(28px,calc((100vw - 1580px)/2));background:linear-gradient(180deg,#fffdf9,#fbfaf7)}
.tc-gsales-v1856 .tc-gsales-user-grid{gap:15px}
.tc-gsales-v1856 .tc-gsales-user-grid article{position:relative;overflow:hidden;min-height:175px;padding:27px 17px 19px;border-radius:16px;background:#fff;box-shadow:0 11px 28px rgba(15,39,67,.05)}
.tc-gsales-v1856 .tc-gsales-user-grid article:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#d7bd78,#6f9fc5)}
.tc-gsales-v1856 .tc-gsales-user-grid article>div{width:76px;height:76px;margin:0 auto 10px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(145deg,#f8fbfe,#fff7e5);color:#4c82ad}
.tc-gsales-v1856 .tc-gsales-user-grid article>div svg{width:45px;height:45px}.tc-gsales-v1856 .tc-gsales-user-grid h3{font-size:14px}.tc-gsales-v1856 .tc-gsales-user-grid p{font-size:11px;line-height:1.6}

/* PRICE — closer to comp proportions */
.tc-gsales-v1856 .tc-gsales-plan-section{margin-inline:calc(50% - 50vw);padding-inline:max(28px,calc((100vw - 1580px)/2));background:linear-gradient(180deg,#fbf7ed 0,#fffaf2 100%)}
.tc-gsales-v1856 .tc-gsales-plan-wrap{max-width:1120px;grid-template-columns:1.04fr .96fr;gap:20px}
.tc-gsales-v1856 .tc-gsales-plan-card,.tc-gsales-v1856 .tc-gsales-renewal{border-radius:19px;box-shadow:0 16px 40px rgba(17,40,69,.085)}
.tc-gsales-v1856 .tc-gsales-plan-card{padding:30px;border:1.5px solid #d2ab4d}.tc-gsales-v1856 .tc-gsales-pass-badge{width:76px;height:76px;right:25px;top:24px;font-size:11px}
.tc-gsales-v1856 .tc-gsales-plan-top h3{font-size:20px}.tc-gsales-v1856 .tc-gsales-price{padding:15px 0}.tc-gsales-v1856 .tc-gsales-price b{font-size:52px}
.tc-gsales-v1856 .tc-gsales-plan-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 4px}.tc-gsales-v1856 .tc-gsales-plan-facts span{justify-content:center;text-align:center;padding:10px 6px;border-radius:10px;background:#fbf8ef;font-size:10px}.tc-gsales-v1856 .tc-gsales-plan-facts svg{width:18px;height:18px}
.tc-gsales-v1856 .tc-gsales-plan-lead{font-size:12px;line-height:1.75}.tc-gsales-v1856 .tc-gsales-plan-card ul{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin:14px 0}.tc-gsales-v1856 .tc-gsales-plan-card li{font-size:11px;padding-block:5px}
.tc-gsales-v1856 .tc-gsales-renewal{position:relative;padding:32px 34px;background:linear-gradient(145deg,#08264b,#0c365f 70%,#174a79)}.tc-gsales-v1856 .tc-gsales-renewal h3{font-size:27px}.tc-gsales-v1856 .tc-gsales-renewal p,.tc-gsales-v1856 .tc-gsales-renewal li{font-size:11px;line-height:1.65}
.tc-gsales-v1856 .tc-gsales-plan-value-note{margin-bottom:12px;font-size:11px}.tc-gsales-v1856 .tc-gsales-plan-value-note strong{font-size:16px}

/* COMPARISON + editorial illustration */
.tc-gsales-v1856 .tc-gsales-compare{margin-inline:calc(50% - 50vw);padding-inline:max(28px,calc((100vw - 1580px)/2));background:#fff}
.tc-gsales-v1856 .tc-gsales-compare-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:stretch}
.tc-gsales-v1856 .tc-gsales-table-wrap{align-self:center;border-radius:16px;box-shadow:0 10px 26px rgba(20,47,78,.05)}
.tc-gsales-v1856 .tc-gsales-table-wrap table{min-width:700px}.tc-gsales-v1856 .tc-gsales-table-wrap th,.tc-gsales-v1856 .tc-gsales-table-wrap td{padding:13px 15px;font-size:11px}
.tc-gsales-v1856 .tc-gsales-compare-scene{position:relative;min-height:330px}.tc-gsales-v1856 .tc-gsales-compare-scene>svg{width:100%;height:100%;stroke:none}.tc-gsales-v1856 .tc-gsales-compare-scene>span{position:absolute;right:10px;top:9px;color:#a97921;font-family:"Segoe Script","Brush Script MT",cursive;font-size:23px;line-height:1.15;transform:rotate(-6deg)}

/* VOICE */
.tc-gsales-v1856 .tc-gsales-voices{margin-inline:calc(50% - 50vw);padding-inline:max(28px,calc((100vw - 1580px)/2));background:linear-gradient(180deg,#fffdf8,#fbfaf7)}
.tc-gsales-v1856 .tc-gsales-voice-placeholder{max-width:980px;border-radius:16px;padding:24px 30px}.tc-gsales-v1856 .tc-gsales-voice-icon{width:62px;height:62px}.tc-gsales-v1856 .tc-gsales-voice-placeholder strong{font-size:15px}

/* FAQ */
.tc-gsales-v1856 .tc-gsales-faq details{border-radius:10px;padding-inline:16px;box-shadow:0 5px 15px rgba(19,44,76,.025)}.tc-gsales-v1856 .tc-gsales-faq summary{padding:15px 0;font-size:12px}.tc-gsales-v1856 .tc-gsales-faq details p{font-size:11px}

/* FINAL CTA with scenic backdrop */
.tc-gsales-v1856 .tc-gsales-final{min-height:245px;padding:50px 34% 50px 46px;text-align:left;border-radius:18px;background:linear-gradient(110deg,#08264b,#0e3b66);box-shadow:0 18px 44px rgba(10,33,59,.17)}
.tc-gsales-v1856 .tc-gsales-final-scene{position:absolute;right:0;top:0;width:46%;height:100%;z-index:0;opacity:.95}.tc-gsales-v1856 .tc-gsales-final-scene svg{width:100%;height:100%;stroke:none}.tc-gsales-v1856 .tc-gsales-final:after{display:none}.tc-gsales-v1856 .tc-gsales-final-laurel{left:17px;font-size:65px}
.tc-gsales-v1856 .tc-gsales-final h2{font-size:clamp(31px,3.2vw,46px);line-height:1.32}.tc-gsales-v1856 .tc-gsales-final p{margin:0 0 18px;max-width:720px;font-size:12px}.tc-gsales-v1856 .tc-gsales-final .tc-gsales-primary{min-width:250px}.tc-gsales-v1856 .tc-gsales-final>small{margin-top:9px;font-size:9px}

/* desktop fidelity at typical 1366/1440 */
@media (max-width:1320px){
 .tc-gsales-v1856 .tc-gsales-hero{grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr)}
 .tc-gsales-v1856 .tc-gsales-dashboard-card{width:86%}
 .tc-gsales-v1856 .tc-gsales-brand-layout{grid-template-columns:minmax(380px,.82fr) minmax(0,1.18fr)}
 .tc-gsales-v1856 .tc-gsales-compare-layout{grid-template-columns:1fr 250px}
}
@media (max-width:1120px){
 .tc-gsales-v1856 .tc-gsales-hero{grid-template-columns:1fr;padding:48px}.tc-gsales-v1856 .tc-gsales-hero-stage{min-height:560px}.tc-gsales-v1856 .tc-gsales-hero-life{right:0;width:300px}.tc-gsales-v1856 .tc-gsales-dashboard-card{width:min(78%,700px)}
 .tc-gsales-v1856 .tc-gsales-brand-layout{grid-template-columns:1fr}.tc-gsales-v1856 .tc-gsales-brand-art{max-width:760px;min-height:420px;margin:auto}.tc-gsales-v1856 .tc-gsales-brand-art>svg{min-height:410px}
 .tc-gsales-v1856 .tc-gsales-feature-grid{grid-template-columns:repeat(3,1fr)}
 .tc-gsales-v1856 .tc-gsales-user-grid{grid-template-columns:repeat(3,1fr)}
 .tc-gsales-v1856 .tc-gsales-compare-layout{grid-template-columns:1fr}.tc-gsales-v1856 .tc-gsales-compare-scene{display:none}
}
@media (max-width:820px){
 .tc-gsales-v1856 .tc-gsales-problem-grid{grid-template-columns:1fr 1fr}.tc-gsales-v1856 .tc-gsales-feature-grid{grid-template-columns:1fr 1fr}.tc-gsales-v1856 .tc-gsales-plan-wrap{grid-template-columns:1fr}.tc-gsales-v1856 .tc-gsales-faq-grid{grid-template-columns:1fr}.tc-gsales-v1856 .tc-gsales-steps{grid-template-columns:1fr 1fr;gap:20px}.tc-gsales-v1856 .tc-gsales-steps:before{display:none}.tc-gsales-v1856 .tc-gsales-user-grid{grid-template-columns:1fr 1fr}.tc-gsales-v1856 .tc-gsales-plan-card ul{grid-template-columns:1fr}
 .tc-gsales-v1856 .tc-gsales-final{padding:42px 24px;text-align:center}.tc-gsales-v1856 .tc-gsales-final-scene{opacity:.28;width:100%}.tc-gsales-v1856 .tc-gsales-final p{margin-inline:auto}
}
@media (max-width:700px){
 .tc-system-page-typing-coach-groups .tc-system-main__inner{padding-inline:0}.tc-gsales-v1856{padding-inline:14px}.tc-gsales-v1856 .tc-gsales-pc-break{display:none}
 .tc-gsales-v1856 .tc-gsales-hero{min-height:0;padding:32px 19px 26px;border-radius:20px;gap:24px}.tc-gsales-v1856 .tc-gsales-hero h1{font-size:clamp(36px,10.5vw,50px);line-height:1.2}.tc-gsales-v1856 .tc-gsales-lead{font-size:13px;line-height:1.85}
 .tc-gsales-v1856 .tc-gsales-actions{align-items:stretch}.tc-gsales-v1856 .tc-gsales-primary,.tc-gsales-v1856 .tc-gsales-secondary{width:100%;min-height:50px}
 .tc-gsales-v1856 .tc-gsales-hero-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.tc-gsales-v1856 .tc-gsales-hero-trust span{flex-direction:column;text-align:center;font-size:9px}.tc-gsales-v1856 .tc-gsales-prelaunch{grid-template-columns:1fr}
 .tc-gsales-v1856 .tc-gsales-hero-stage{min-height:455px;display:block}.tc-gsales-v1856 .tc-gsales-hero-life{right:-32px;top:5px;width:230px;height:415px;opacity:.42}.tc-gsales-v1856 .tc-gsales-dashboard-card{width:92%;margin:55px 0 0;padding:13px;border-radius:18px}.tc-gsales-v1856 .tc-gsales-dash-head{grid-template-columns:34px 1fr}.tc-gsales-v1856 .tc-gsales-dash-head>span{width:34px;height:38px}.tc-gsales-v1856 .tc-gsales-dash-head em{display:none}.tc-gsales-v1856 .tc-gsales-dash-head b{font-size:11px}.tc-gsales-v1856 .tc-gsales-dash-metrics{grid-template-columns:repeat(3,1fr);gap:6px}.tc-gsales-v1856 .tc-gsales-dash-metrics>div{padding:9px 5px}.tc-gsales-v1856 .tc-gsales-dash-metrics b{font-size:17px}.tc-gsales-v1856 .tc-gsales-dashboard-grid{grid-template-columns:1fr}.tc-gsales-v1856 .tc-gsales-rank-mini{display:none}.tc-gsales-v1856 .tc-gsales-follow>span{grid-template-columns:22px 46px 1fr}.tc-gsales-v1856 .tc-gsales-follow em{display:none}.tc-gsales-v1856 .tc-gsales-script{font-size:16px;right:0}
 .tc-gsales-v1856 .tc-gsales-section{padding:52px 0}.tc-gsales-v1856 .tc-gsales-heading{margin-bottom:24px}.tc-gsales-v1856 .tc-gsales-heading h2{font-size:clamp(30px,8.7vw,40px)}.tc-gsales-v1856 .tc-gsales-heading p{font-size:12px}
 .tc-gsales-v1856 .tc-gsales-problems,.tc-gsales-v1856 .tc-gsales-brand,.tc-gsales-v1856 .tc-gsales-flow,.tc-gsales-v1856 .tc-gsales-users,.tc-gsales-v1856 .tc-gsales-plan-section,.tc-gsales-v1856 .tc-gsales-compare,.tc-gsales-v1856 .tc-gsales-voices{margin-inline:-14px;padding-inline:14px}
 .tc-gsales-v1856 .tc-gsales-problem-grid,.tc-gsales-v1856 .tc-gsales-feature-grid,.tc-gsales-v1856 .tc-gsales-user-grid,.tc-gsales-v1856 .tc-gsales-steps,.tc-gsales-v1856 .tc-gsales-voice-grid{grid-template-columns:1fr}
 .tc-gsales-v1856 .tc-gsales-problem-grid article{padding:20px}.tc-gsales-v1856 .tc-gsales-illustration{height:112px}
 .tc-gsales-v1856 .tc-gsales-brand-art{min-height:310px}.tc-gsales-v1856 .tc-gsales-brand-art>svg{min-height:300px}.tc-gsales-v1856 .tc-gsales-brand-art>span{left:25px;bottom:22px;font-size:17px}.tc-gsales-v1856 .tc-gsales-feature-grid article{min-height:0}
 .tc-gsales-v1856 .tc-gsales-steps article{padding:0 12px 18px}.tc-gsales-v1856 .tc-gsales-steps article>div{width:64px;height:64px}
 .tc-gsales-v1856 .tc-gsales-user-grid article{min-height:0}.tc-gsales-v1856 .tc-gsales-plan-wrap{gap:14px}.tc-gsales-v1856 .tc-gsales-plan-card,.tc-gsales-v1856 .tc-gsales-renewal{padding:24px 19px}.tc-gsales-v1856 .tc-gsales-pass-badge{right:17px;top:18px;width:63px;height:63px}.tc-gsales-v1856 .tc-gsales-price b{font-size:43px}.tc-gsales-v1856 .tc-gsales-plan-facts{grid-template-columns:1fr 1fr}.tc-gsales-v1856 .tc-gsales-renewal-example{grid-template-columns:1fr;text-align:center}
 .tc-gsales-v1856 .tc-gsales-table-wrap{display:none}.tc-gsales-v1856 .tc-gsales-compare-mobile{display:grid;gap:10px}.tc-gsales-v1856 .tc-gsales-voice-placeholder{grid-template-columns:1fr;text-align:center;padding:22px 18px}.tc-gsales-v1856 .tc-gsales-voice-icon{margin:auto}
 .tc-gsales-v1856 .tc-gsales-final{padding:38px 20px;border-radius:16px}.tc-gsales-v1856 .tc-gsales-final-laurel{display:none}.tc-gsales-v1856 .tc-gsales-final h2{font-size:31px}.tc-gsales-v1856 .tc-gsales-final .tc-gsales-primary{min-width:0;width:100%}
}

/* ---- typing-coach-polish-v1857 | assets/css/polish-v1857.css ---- */
/* Typing Coach v1.85.7 — Group Sales LP master-comp fidelity */
.tc-system-page-typing-coach-groups .tc-system-main{background:#fffdf9;overflow:hidden}
.tc-system-page-typing-coach-groups .tc-system-main__inner{max-width:none;padding:0 0 72px}
.tc-gsales-v1857{max-width:none;margin:0;padding:0 0 88px;--gs-content:1240px;--gs-navy:#08264b;--gs-ink:#112642;--gs-gold:#bd8b27;--gs-gold2:#e1c36c;--gs-cream:#fffaf0;--gs-rose:#d3395a;--gs-muted:#67778c}
.tc-gsales-v1857 .tc-gsales-pc-break{display:block}
.tc-gsales-v1857 h1,.tc-gsales-v1857 h2{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;letter-spacing:.01em;text-wrap:balance}
.tc-gsales-v1857 p,.tc-gsales-v1857 h1,.tc-gsales-v1857 h2,.tc-gsales-v1857 h3,.tc-gsales-v1857 b,.tc-gsales-v1857 strong{word-break:normal;overflow-wrap:anywhere;line-break:strict}

/* HERO: full-bleed editorial composition */
.tc-gsales-v1857 .tc-gsales-hero{margin:0;min-height:620px;padding:58px max(28px,calc((100vw - var(--gs-content))/2)) 54px;grid-template-columns:minmax(0,.86fr) minmax(560px,1.14fr);gap:40px;border:0;border-radius:0;box-shadow:none;background:linear-gradient(100deg,#fffdf8 0%,#fff8e9 48%,#eef4f8 100%)}
.tc-gsales-v1857 .tc-gsales-hero:before{left:-170px;bottom:-260px;width:610px;height:610px;border-color:rgba(189,139,39,.13)}
.tc-gsales-v1857 .tc-gsales-hero:after{right:-30px;top:-120px;width:460px;height:460px;background:radial-gradient(circle,rgba(224,193,109,.25),rgba(224,193,109,0) 67%)}
.tc-gsales-v1857 .tc-gsales-hero-copy{align-self:center;max-width:580px;padding-block:8px}
.tc-gsales-v1857 .tc-gsales-kicker{font-size:9px;letter-spacing:.22em;color:#a87a22}
.tc-gsales-v1857 .tc-gsales-hero h1{margin:16px 0 20px;max-width:560px;font-size:clamp(52px,4.7vw,72px);line-height:1.12;color:#0a2749}
.tc-gsales-v1857 .tc-gsales-hero h1 strong{color:#a8771e}
.tc-gsales-v1857 .tc-gsales-lead{max-width:555px;font-size:15px;line-height:1.95;color:#54657a}
.tc-gsales-v1857 .tc-gsales-actions{margin-top:25px;gap:12px}
.tc-gsales-v1857 .tc-gsales-primary,.tc-gsales-v1857 .tc-gsales-secondary{min-height:54px;border-radius:999px;padding-inline:25px}
.tc-gsales-v1857 .tc-gsales-primary{background:linear-gradient(135deg,#cf3152,#e1516a);box-shadow:0 13px 28px rgba(199,47,79,.24)}
.tc-gsales-v1857 .tc-gsales-secondary{background:rgba(255,255,255,.9);border-color:#ccb067}
.tc-gsales-v1857 .tc-gsales-microcopy{font-size:10px;color:#8a9098}
.tc-gsales-v1857 .tc-gsales-hero-trust{gap:15px 24px;margin-top:21px}
.tc-gsales-v1857 .tc-gsales-hero-trust span{font-size:10px}.tc-gsales-v1857 .tc-gsales-hero-trust svg{width:23px;height:23px}
.tc-gsales-v1857 .tc-gsales-prelaunch{max-width:565px;font-size:10px;background:rgba(255,249,232,.86)}
.tc-gsales-v1857 .tc-gsales-hero-stage{min-height:510px;align-items:center;justify-content:flex-start;overflow:visible}
.tc-gsales-v1857 .tc-gsales-hero-life{right:0;top:0;width:260px;height:510px;opacity:1;background:url('../images/group-sales-v1857/group-hero-classroom.jpg') center/cover no-repeat;border-radius:0;filter:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 25%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 25%,#000 100%)}
.tc-gsales-v1857 .tc-gsales-hero-life svg{display:none}
.tc-gsales-v1857 .tc-gsales-hero-glow{inset:8% 10% 9% 1%;background:radial-gradient(circle at 48% 52%,rgba(255,255,255,.98),rgba(255,255,255,.72) 43%,rgba(229,198,111,.12) 69%,transparent 77%)}
.tc-gsales-v1857 .tc-gsales-dashboard-card{width:min(72%,690px);margin-left:0;padding:20px;border-radius:20px;box-shadow:0 28px 70px rgba(8,38,75,.30);z-index:3;transform:translateX(0)}
.tc-gsales-v1857 .tc-gsales-dash-head>span{width:40px;height:44px}.tc-gsales-v1857 .tc-gsales-dash-head b{font-size:13px}.tc-gsales-v1857 .tc-gsales-dash-head em{font-size:9px}
.tc-gsales-v1857 .tc-gsales-dash-metrics b{font-size:22px}.tc-gsales-v1857 .tc-gsales-bars{height:80px}
.tc-gsales-v1857 .tc-gsales-script{right:7px;bottom:12px;font-size:19px;color:#aa7922;z-index:4}

/* Shared section frame */
.tc-gsales-v1857 .tc-gsales-section{margin-inline:0;padding:74px max(28px,calc((100vw - var(--gs-content))/2));}
.tc-gsales-v1857 .tc-gsales-heading{max-width:900px;margin-bottom:28px}
.tc-gsales-v1857 .tc-gsales-heading>span{font-size:8px;letter-spacing:.22em;color:#aa7b25}
.tc-gsales-v1857 .tc-gsales-heading h2{margin:9px 0 10px;font-size:clamp(34px,3.2vw,48px);line-height:1.27;color:#0a2749}
.tc-gsales-v1857 .tc-gsales-heading h2 strong{color:#a97820}.tc-gsales-v1857 .tc-gsales-heading h3{font-size:20px;color:#a57a29}.tc-gsales-v1857 .tc-gsales-heading p{font-size:12px;line-height:1.8;color:#728096}

/* Problem cards with reference illustrations */
.tc-gsales-v1857 .tc-gsales-problems{background:linear-gradient(180deg,#fff 0,#fdfbf7 100%)}
.tc-gsales-v1857 .tc-gsales-problem-grid{gap:18px}
.tc-gsales-v1857 .tc-gsales-problem-grid article{padding:20px 18px 22px;border-radius:14px;box-shadow:0 11px 30px rgba(17,44,76,.055);border-color:#edf0f2}
.tc-gsales-v1857 .tc-gsales-illustration{width:100%;height:88px;margin:0 0 10px;border-radius:11px;background:#fff center/cover no-repeat;border:0}
.tc-gsales-v1857 .tc-gsales-problem-grid article:nth-child(1) .tc-gsales-illustration{background-image:url('../images/group-sales-v1857/group-problem-1.jpg')}
.tc-gsales-v1857 .tc-gsales-problem-grid article:nth-child(2) .tc-gsales-illustration{background-image:url('../images/group-sales-v1857/group-problem-2.jpg')}
.tc-gsales-v1857 .tc-gsales-problem-grid article:nth-child(3) .tc-gsales-illustration{background-image:url('../images/group-sales-v1857/group-problem-3.jpg')}
.tc-gsales-v1857 .tc-gsales-problem-grid article:nth-child(4) .tc-gsales-illustration{background-image:url('../images/group-sales-v1857/group-problem-4.jpg')}
.tc-gsales-v1857 .tc-gsales-illustration svg{display:none}
.tc-gsales-v1857 .tc-gsales-problem-grid b{font-size:15px}.tc-gsales-v1857 .tc-gsales-problem-grid p{font-size:11px;line-height:1.7}

/* WHY TYPING COACH */
.tc-gsales-v1857 .tc-gsales-brand{background:linear-gradient(100deg,#eef4f8 0%,#fff 44%,#fff9ee 100%)}
.tc-gsales-v1857 .tc-gsales-brand-layout{grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr);gap:36px}
.tc-gsales-v1857 .tc-gsales-brand-art{min-height:430px;border-radius:0;background:url('../images/group-sales-v1857/group-brand-students.jpg') left center/cover no-repeat;overflow:hidden;box-shadow:none}
.tc-gsales-v1857 .tc-gsales-brand-art>svg{display:none}.tc-gsales-v1857 .tc-gsales-brand-art>span{left:26px;bottom:18px;font-size:19px;color:#a87622;text-shadow:0 2px 12px #fff}
.tc-gsales-v1857 .tc-gsales-feature-grid{gap:11px}
.tc-gsales-v1857 .tc-gsales-feature-grid article{min-height:108px;padding:16px 15px 16px 55px;border-radius:12px;box-shadow:0 8px 22px rgba(21,49,79,.035)}
.tc-gsales-v1857 .tc-gsales-feature-grid article>div{left:14px;top:16px;width:31px;height:31px}.tc-gsales-v1857 .tc-gsales-feature-grid h3{font-size:13px}.tc-gsales-v1857 .tc-gsales-feature-grid p{font-size:10px;line-height:1.65}

/* Flow */
.tc-gsales-v1857 .tc-gsales-flow{background:#fff}.tc-gsales-v1857 .tc-gsales-steps{gap:20px}.tc-gsales-v1857 .tc-gsales-steps:before{top:48px;left:7%;right:7%}.tc-gsales-v1857 .tc-gsales-steps article>b{width:40px;height:40px}.tc-gsales-v1857 .tc-gsales-steps article>div{width:64px;height:64px}.tc-gsales-v1857 .tc-gsales-steps h3{font-size:13px}.tc-gsales-v1857 .tc-gsales-steps p{font-size:10px}

/* FOR WHO: use the reference illustration crops */
.tc-gsales-v1857 .tc-gsales-users{background:linear-gradient(180deg,#fffdf9,#fbfaf7)}
.tc-gsales-v1857 .tc-gsales-user-grid{gap:14px}
.tc-gsales-v1857 .tc-gsales-user-grid article{min-height:168px;padding:18px 14px 18px;border-radius:13px}
.tc-gsales-v1857 .tc-gsales-user-grid article>div{width:100%;height:78px;margin:0 0 8px;border-radius:8px;background:#fff center/cover no-repeat}
.tc-gsales-v1857 .tc-gsales-user-grid article:nth-child(1)>div{background-image:url('../images/group-sales-v1857/group-user-1.jpg')}
.tc-gsales-v1857 .tc-gsales-user-grid article:nth-child(2)>div{background-image:url('../images/group-sales-v1857/group-user-2.jpg')}
.tc-gsales-v1857 .tc-gsales-user-grid article:nth-child(3)>div{background-image:url('../images/group-sales-v1857/group-user-3.jpg')}
.tc-gsales-v1857 .tc-gsales-user-grid article:nth-child(4)>div{background-image:url('../images/group-sales-v1857/group-user-4.jpg')}
.tc-gsales-v1857 .tc-gsales-user-grid article:nth-child(5)>div{background-image:url('../images/group-sales-v1857/group-user-5.jpg')}
.tc-gsales-v1857 .tc-gsales-user-grid article>div svg{display:none}.tc-gsales-v1857 .tc-gsales-user-grid h3{font-size:13px}.tc-gsales-v1857 .tc-gsales-user-grid p{font-size:10px;line-height:1.55}

/* Price */
.tc-gsales-v1857 .tc-gsales-plan-section{background:linear-gradient(180deg,#fbf6ea,#fffaf1)}
.tc-gsales-v1857 .tc-gsales-plan-wrap{max-width:1030px;grid-template-columns:1fr 1fr;gap:18px}
.tc-gsales-v1857 .tc-gsales-plan-card,.tc-gsales-v1857 .tc-gsales-renewal{border-radius:15px;box-shadow:0 15px 38px rgba(17,40,69,.08)}
.tc-gsales-v1857 .tc-gsales-plan-card{padding:27px;border:1.5px solid #d4ac4f}.tc-gsales-v1857 .tc-gsales-pass-badge{width:68px;height:68px;right:22px;top:20px;font-size:10px}.tc-gsales-v1857 .tc-gsales-price b{font-size:48px}
.tc-gsales-v1857 .tc-gsales-plan-facts span{font-size:9px}.tc-gsales-v1857 .tc-gsales-plan-lead{font-size:11px}.tc-gsales-v1857 .tc-gsales-plan-card li{font-size:10px}
.tc-gsales-v1857 .tc-gsales-renewal{padding:29px 31px}.tc-gsales-v1857 .tc-gsales-renewal h3{font-size:25px}.tc-gsales-v1857 .tc-gsales-renewal p,.tc-gsales-v1857 .tc-gsales-renewal li{font-size:10px}.tc-gsales-v1857 .tc-gsales-plan-value-note{font-size:10px}.tc-gsales-v1857 .tc-gsales-plan-value-note strong{font-size:15px}

/* Compare */
.tc-gsales-v1857 .tc-gsales-compare{background:#fff}
.tc-gsales-v1857 .tc-gsales-compare-layout{grid-template-columns:minmax(0,1fr) 225px;gap:18px;max-width:1120px;margin:0 auto}
.tc-gsales-v1857 .tc-gsales-table-wrap{border-radius:12px}.tc-gsales-v1857 .tc-gsales-table-wrap th,.tc-gsales-v1857 .tc-gsales-table-wrap td{padding:11px 13px;font-size:10px}
.tc-gsales-v1857 .tc-gsales-compare-scene{min-height:270px;border-radius:12px;background:url('../images/group-sales-v1857/group-compare-hands.jpg') center/cover no-repeat;overflow:hidden}
.tc-gsales-v1857 .tc-gsales-compare-scene>svg{display:none}.tc-gsales-v1857 .tc-gsales-compare-scene>span{right:15px;top:15px;font-size:20px;color:#a87720;text-shadow:0 2px 8px #fff}

/* Voice + FAQ */
.tc-gsales-v1857 .tc-gsales-voices{background:linear-gradient(180deg,#fffdf8,#fbfaf7)}.tc-gsales-v1857 .tc-gsales-voice-placeholder{max-width:900px;padding:21px 27px;border-radius:13px}.tc-gsales-v1857 .tc-gsales-voice-placeholder strong{font-size:14px}
.tc-gsales-v1857 .tc-gsales-faq{padding-top:62px}.tc-gsales-v1857 .tc-gsales-faq-grid{gap:9px}.tc-gsales-v1857 .tc-gsales-faq details{border-radius:8px}.tc-gsales-v1857 .tc-gsales-faq summary{padding:13px 0;font-size:11px}.tc-gsales-v1857 .tc-gsales-faq details p{font-size:10px}

/* Final: scenic image from the approved comp */
.tc-gsales-v1857 .tc-gsales-final{max-width:var(--gs-content);margin:18px auto 0;min-height:230px;padding:46px 44% 46px 48px;border-radius:14px;text-align:left;background:linear-gradient(105deg,#08264b,#103f69);box-shadow:0 16px 40px rgba(10,33,59,.15)}
.tc-gsales-v1857 .tc-gsales-final-scene{right:0;top:0;width:48%;height:100%;background:url('../images/group-sales-v1857/group-final-mountain.jpg') center/cover no-repeat;opacity:.92}
.tc-gsales-v1857 .tc-gsales-final-scene svg{display:none}.tc-gsales-v1857 .tc-gsales-final h2{font-size:clamp(30px,3vw,43px)}.tc-gsales-v1857 .tc-gsales-final p{font-size:11px}.tc-gsales-v1857 .tc-gsales-final .tc-gsales-primary{min-width:245px}.tc-gsales-v1857 .tc-gsales-final>small{font-size:9px}

@media(max-width:1180px){
 .tc-gsales-v1857 .tc-gsales-hero{grid-template-columns:1fr;padding-inline:42px}.tc-gsales-v1857 .tc-gsales-hero-stage{min-height:510px}.tc-gsales-v1857 .tc-gsales-dashboard-card{width:min(76%,680px)}.tc-gsales-v1857 .tc-gsales-hero-life{width:265px}
 .tc-gsales-v1857 .tc-gsales-brand-layout{grid-template-columns:1fr}.tc-gsales-v1857 .tc-gsales-brand-art{max-width:760px;min-height:390px;margin:auto}
 .tc-gsales-v1857 .tc-gsales-feature-grid{grid-template-columns:repeat(3,1fr)}.tc-gsales-v1857 .tc-gsales-user-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
 .tc-gsales-v1857 .tc-gsales-problem-grid,.tc-gsales-v1857 .tc-gsales-feature-grid{grid-template-columns:1fr 1fr}.tc-gsales-v1857 .tc-gsales-plan-wrap{grid-template-columns:1fr}.tc-gsales-v1857 .tc-gsales-steps{grid-template-columns:1fr 1fr}.tc-gsales-v1857 .tc-gsales-steps:before{display:none}.tc-gsales-v1857 .tc-gsales-user-grid{grid-template-columns:1fr 1fr}.tc-gsales-v1857 .tc-gsales-compare-layout{grid-template-columns:1fr}.tc-gsales-v1857 .tc-gsales-compare-scene{display:none}
 .tc-gsales-v1857 .tc-gsales-final{margin-inline:18px;padding:40px 24px;text-align:center}.tc-gsales-v1857 .tc-gsales-final-scene{width:100%;opacity:.22}.tc-gsales-v1857 .tc-gsales-final p{margin-inline:auto}
}
@media(max-width:700px){
 .tc-gsales-v1857{padding-bottom:48px}.tc-gsales-v1857 .tc-gsales-pc-break{display:none}
 .tc-gsales-v1857 .tc-gsales-hero{min-height:0;padding:34px 18px 28px;gap:22px;grid-template-columns:1fr}.tc-gsales-v1857 .tc-gsales-hero h1{font-size:clamp(37px,10.5vw,49px);line-height:1.18}.tc-gsales-v1857 .tc-gsales-lead{font-size:13px;line-height:1.85}
 .tc-gsales-v1857 .tc-gsales-actions{align-items:stretch}.tc-gsales-v1857 .tc-gsales-primary,.tc-gsales-v1857 .tc-gsales-secondary{width:100%}.tc-gsales-v1857 .tc-gsales-hero-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tc-gsales-v1857 .tc-gsales-hero-trust span{flex-direction:column;text-align:center;font-size:9px}.tc-gsales-v1857 .tc-gsales-prelaunch{grid-template-columns:1fr}
 .tc-gsales-v1857 .tc-gsales-hero-stage{min-height:430px;display:block}.tc-gsales-v1857 .tc-gsales-hero-life{right:-22px;top:5px;width:190px;height:370px;opacity:.42}.tc-gsales-v1857 .tc-gsales-dashboard-card{width:92%;margin:50px 0 0;padding:13px;border-radius:17px}.tc-gsales-v1857 .tc-gsales-dash-head{grid-template-columns:34px 1fr}.tc-gsales-v1857 .tc-gsales-dash-head>span{width:34px;height:36px}.tc-gsales-v1857 .tc-gsales-dash-head em{display:none}.tc-gsales-v1857 .tc-gsales-dash-metrics{grid-template-columns:repeat(3,1fr);gap:6px}.tc-gsales-v1857 .tc-gsales-dash-metrics b{font-size:16px}.tc-gsales-v1857 .tc-gsales-dashboard-grid{grid-template-columns:1fr}.tc-gsales-v1857 .tc-gsales-rank-mini{display:none}.tc-gsales-v1857 .tc-gsales-follow>span{grid-template-columns:22px 45px 1fr}.tc-gsales-v1857 .tc-gsales-follow em{display:none}.tc-gsales-v1857 .tc-gsales-script{font-size:15px}
 .tc-gsales-v1857 .tc-gsales-section{padding:50px 14px}.tc-gsales-v1857 .tc-gsales-heading{margin-bottom:22px}.tc-gsales-v1857 .tc-gsales-heading h2{font-size:clamp(30px,8.5vw,40px)}.tc-gsales-v1857 .tc-gsales-heading p{font-size:11px}
 .tc-gsales-v1857 .tc-gsales-problem-grid,.tc-gsales-v1857 .tc-gsales-feature-grid,.tc-gsales-v1857 .tc-gsales-user-grid,.tc-gsales-v1857 .tc-gsales-steps,.tc-gsales-v1857 .tc-gsales-voice-grid{grid-template-columns:1fr}
 .tc-gsales-v1857 .tc-gsales-brand-art{min-height:300px}.tc-gsales-v1857 .tc-gsales-brand-art>span{font-size:16px}.tc-gsales-v1857 .tc-gsales-plan-card,.tc-gsales-v1857 .tc-gsales-renewal{padding:22px 18px}.tc-gsales-v1857 .tc-gsales-plan-facts{grid-template-columns:1fr 1fr}.tc-gsales-v1857 .tc-gsales-table-wrap{display:none}.tc-gsales-v1857 .tc-gsales-compare-mobile{display:grid;gap:10px}
 .tc-gsales-v1857 .tc-gsales-final{margin-inline:14px;padding:36px 18px;border-radius:13px}.tc-gsales-v1857 .tc-gsales-final h2{font-size:29px}.tc-gsales-v1857 .tc-gsales-final .tc-gsales-primary{min-width:0;width:100%}
}

/* ---- typing-coach-polish-v1858 | assets/css/polish-v1858.css ---- */
/* Typing Coach v1.85.8 — Group Sales LP readability + premium rhythm */
.tc-system-page-typing-coach-groups .tc-system-main{background:#fffdf9}
.tc-gsales-v1858{
  --gs-content:1120px;
  --gs-reading:720px;
  --gs-wide:1180px;
}
.tc-gsales-v1858 p{line-height:1.82}
.tc-gsales-v1858 .tc-gsales-pc-break{display:block}

/* 01. Page width: backgrounds may breathe full-width, information does not. */
.tc-gsales-v1858 .tc-gsales-hero{
  width:min(calc(100% - 48px),var(--gs-wide));
  margin:0 auto;
  min-height:590px;
  padding:54px 54px 50px;
  grid-template-columns:minmax(0,.88fr) minmax(500px,1.12fr);
  gap:34px;
  border-radius:0 0 24px 24px;
}
.tc-gsales-v1858 .tc-gsales-hero-copy{max-width:500px}
.tc-gsales-v1858 .tc-gsales-hero h1{max-width:500px;font-size:clamp(48px,4.25vw,64px);line-height:1.14}
.tc-gsales-v1858 .tc-gsales-lead{max-width:500px;font-size:14px;line-height:1.9}
.tc-gsales-v1858 .tc-gsales-microcopy{max-width:470px;font-size:10.5px;line-height:1.7}
.tc-gsales-v1858 .tc-gsales-prelaunch{max-width:500px}
.tc-gsales-v1858 .tc-gsales-hero-stage{min-height:480px}
.tc-gsales-v1858 .tc-gsales-hero-life{height:480px;width:245px}
.tc-gsales-v1858 .tc-gsales-dashboard-card{width:min(76%,620px);padding:18px;border-radius:18px}
.tc-gsales-v1858 .tc-gsales-script{font-size:18px}

/* 02. Section rhythm and readable measure */
.tc-gsales-v1858 .tc-gsales-section{
  padding-top:68px;
  padding-bottom:68px;
  padding-left:max(24px,calc((100vw - var(--gs-content))/2));
  padding-right:max(24px,calc((100vw - var(--gs-content))/2));
}
.tc-gsales-v1858 .tc-gsales-heading{max-width:var(--gs-reading);margin-bottom:30px}
.tc-gsales-v1858 .tc-gsales-heading.is-center{max-width:780px;margin-left:auto;margin-right:auto}
.tc-gsales-v1858 .tc-gsales-heading h2{font-size:clamp(31px,2.8vw,43px);line-height:1.34}
.tc-gsales-v1858 .tc-gsales-heading h3{font-size:18px;line-height:1.55}
.tc-gsales-v1858 .tc-gsales-heading p{max-width:680px;font-size:12.5px;line-height:1.82}

/* 03. Problems: shorter line length and stronger card hierarchy */
.tc-gsales-v1858 .tc-gsales-problem-grid{max-width:1040px;margin:0 auto;gap:16px}
.tc-gsales-v1858 .tc-gsales-problem-grid article{padding:18px 16px 21px;border-radius:13px}
.tc-gsales-v1858 .tc-gsales-illustration{height:96px;margin-bottom:12px;border-radius:10px}
.tc-gsales-v1858 .tc-gsales-problem-grid b{display:block;font-size:15px;line-height:1.45}
.tc-gsales-v1858 .tc-gsales-problem-grid p{max-width:205px;margin:7px auto 0;font-size:11.5px;line-height:1.75}

/* 04. WHY: keep the editorial image, reduce the reading width of each feature. */
.tc-gsales-v1858 .tc-gsales-brand-layout{max-width:1080px;margin:0 auto;grid-template-columns:minmax(340px,.82fr) minmax(0,1.18fr);gap:30px;align-items:center}
.tc-gsales-v1858 .tc-gsales-brand-art{min-height:390px}
.tc-gsales-v1858 .tc-gsales-brand-art>span{display:none}
.tc-gsales-v1858 .tc-gsales-brand-copy>.tc-gsales-heading{max-width:640px;margin-bottom:23px}
.tc-gsales-v1858 .tc-gsales-feature-grid{gap:10px}
.tc-gsales-v1858 .tc-gsales-feature-grid article{min-height:104px;padding:15px 13px 15px 50px;border-radius:11px}
.tc-gsales-v1858 .tc-gsales-feature-grid article>div{left:12px;top:15px;width:29px;height:29px}
.tc-gsales-v1858 .tc-gsales-feature-grid h3{font-size:12.5px;line-height:1.5}
.tc-gsales-v1858 .tc-gsales-feature-grid p{font-size:10.5px;line-height:1.7}

/* 05. Flow: compact, connected, and centered. */
.tc-gsales-v1858 .tc-gsales-steps{max-width:1040px;margin:0 auto;gap:14px}
.tc-gsales-v1858 .tc-gsales-steps:before{left:8%;right:8%;top:46px}
.tc-gsales-v1858 .tc-gsales-steps article{padding-inline:8px}
.tc-gsales-v1858 .tc-gsales-steps article>b{width:38px;height:38px}
.tc-gsales-v1858 .tc-gsales-steps article>div{width:58px;height:58px}
.tc-gsales-v1858 .tc-gsales-steps article>div svg{width:31px;height:31px}
.tc-gsales-v1858 .tc-gsales-steps h3{font-size:12.5px}
.tc-gsales-v1858 .tc-gsales-steps p{max-width:150px;margin-left:auto;margin-right:auto;font-size:10.5px;line-height:1.6}

/* 06. FOR WHO: smaller cards + clean icon-led visuals improve scanability. */
.tc-gsales-v1858 .tc-gsales-user-grid{max-width:1020px;margin:0 auto;gap:12px}
.tc-gsales-v1858 .tc-gsales-user-grid article{min-height:150px;padding:18px 12px 16px;border-radius:12px}
.tc-gsales-v1858 .tc-gsales-user-grid article>div{
  width:64px;height:64px;margin:0 auto 10px;
  display:grid;place-items:center;
  border-radius:18px;
  background:linear-gradient(145deg,#f8fbfe,#fff7e8) !important;
  background-image:none !important;
  color:#477da8;
}
.tc-gsales-v1858 .tc-gsales-user-grid article>div svg{display:block;width:36px;height:36px}
.tc-gsales-v1858 .tc-gsales-user-grid h3{font-size:12.5px;line-height:1.45}
.tc-gsales-v1858 .tc-gsales-user-grid p{max-width:155px;margin:5px auto 0;font-size:10.5px;line-height:1.6}

/* 07. Price: premium, compact decision zone. */
.tc-gsales-v1858 .tc-gsales-plan-section>.tc-gsales-heading{max-width:760px}
.tc-gsales-v1858 .tc-gsales-plan-value-note{max-width:940px;margin-left:auto;margin-right:auto;font-size:11px}
.tc-gsales-v1858 .tc-gsales-plan-wrap{max-width:940px;margin-left:auto;margin-right:auto;grid-template-columns:1fr 1fr;gap:16px}
.tc-gsales-v1858 .tc-gsales-plan-card{padding:25px}
.tc-gsales-v1858 .tc-gsales-renewal{padding:27px 29px}
.tc-gsales-v1858 .tc-gsales-price b{font-size:46px}
.tc-gsales-v1858 .tc-gsales-plan-facts span{font-size:9.5px}
.tc-gsales-v1858 .tc-gsales-plan-lead{max-width:430px;font-size:11.5px;line-height:1.75}
.tc-gsales-v1858 .tc-gsales-plan-card li,.tc-gsales-v1858 .tc-gsales-renewal p,.tc-gsales-v1858 .tc-gsales-renewal li{font-size:10.5px;line-height:1.7}
.tc-gsales-v1858 .tc-gsales-renewal h3{font-size:24px;line-height:1.45}

/* 08. Comparison: avoid tiny, stretched table cells. */
.tc-gsales-v1858 .tc-gsales-compare-layout{max-width:1000px;margin:0 auto;grid-template-columns:minmax(0,1fr) 205px;gap:16px}
.tc-gsales-v1858 .tc-gsales-table-wrap table{min-width:660px}
.tc-gsales-v1858 .tc-gsales-table-wrap th,.tc-gsales-v1858 .tc-gsales-table-wrap td{padding:11px 12px;font-size:10.5px;line-height:1.55}
.tc-gsales-v1858 .tc-gsales-compare-scene{min-height:250px}
.tc-gsales-v1858 .tc-gsales-compare-scene>span{display:none}

/* 09. Voice, FAQ and final CTA stay narrower than the viewport. */
.tc-gsales-v1858 .tc-gsales-voice-placeholder{max-width:820px;padding:20px 24px}
.tc-gsales-v1858 .tc-gsales-voice-placeholder strong{font-size:13.5px;line-height:1.6}
.tc-gsales-v1858 .tc-gsales-voice-placeholder p{font-size:11px;line-height:1.7}
.tc-gsales-v1858 .tc-gsales-faq>.tc-gsales-heading,
.tc-gsales-v1858 .tc-gsales-faq-grid,
.tc-gsales-v1858 .tc-gsales-faq-link{max-width:940px;margin-left:auto;margin-right:auto}
.tc-gsales-v1858 .tc-gsales-faq-grid{gap:8px 10px}
.tc-gsales-v1858 .tc-gsales-faq summary{font-size:11.5px}
.tc-gsales-v1858 .tc-gsales-faq details p{font-size:10.5px;line-height:1.7}
.tc-gsales-v1858 .tc-gsales-final{max-width:1080px;margin-top:12px;min-height:220px;padding:42px 43% 42px 44px}
.tc-gsales-v1858 .tc-gsales-final h2{font-size:clamp(29px,2.75vw,40px);line-height:1.38}
.tc-gsales-v1858 .tc-gsales-final p{max-width:570px;font-size:11.5px;line-height:1.75}

/* 10. Large desktop: do not let reading measures become oversized. */
@media(min-width:1500px){
  .tc-gsales-v1858 .tc-gsales-hero{width:min(calc(100% - 96px),1180px)}
  .tc-gsales-v1858 .tc-gsales-section{padding-left:max(32px,calc((100vw - 1120px)/2));padding-right:max(32px,calc((100vw - 1120px)/2))}
}

/* 11. Tablet: preserve breathing room, switch before cards get too narrow. */
@media(max-width:1180px){
  .tc-gsales-v1858 .tc-gsales-hero{width:min(calc(100% - 36px),1040px);grid-template-columns:1fr;padding:46px 42px;border-radius:0 0 20px 20px}
  .tc-gsales-v1858 .tc-gsales-hero-copy{max-width:650px;margin:0 auto;text-align:center}
  .tc-gsales-v1858 .tc-gsales-hero h1,.tc-gsales-v1858 .tc-gsales-lead,.tc-gsales-v1858 .tc-gsales-microcopy,.tc-gsales-v1858 .tc-gsales-prelaunch{margin-left:auto;margin-right:auto;max-width:650px}
  .tc-gsales-v1858 .tc-gsales-actions,.tc-gsales-v1858 .tc-gsales-hero-trust{justify-content:center}
  .tc-gsales-v1858 .tc-gsales-dashboard-card{width:min(78%,650px);margin-left:8%}
  .tc-gsales-v1858 .tc-gsales-brand-layout{grid-template-columns:1fr;max-width:880px}
  .tc-gsales-v1858 .tc-gsales-brand-art{max-width:660px;margin:auto;min-height:340px}
  .tc-gsales-v1858 .tc-gsales-brand-copy>.tc-gsales-heading{margin-left:auto;margin-right:auto;text-align:center}
  .tc-gsales-v1858 .tc-gsales-feature-grid{grid-template-columns:repeat(3,1fr)}
  .tc-gsales-v1858 .tc-gsales-plan-wrap{max-width:900px}
}

@media(max-width:900px){
  .tc-gsales-v1858 .tc-gsales-problem-grid{grid-template-columns:1fr 1fr;max-width:720px}
  .tc-gsales-v1858 .tc-gsales-feature-grid{grid-template-columns:1fr 1fr;max-width:720px;margin:0 auto}
  .tc-gsales-v1858 .tc-gsales-steps{grid-template-columns:1fr 1fr;max-width:680px}.tc-gsales-v1858 .tc-gsales-steps:before{display:none}
  .tc-gsales-v1858 .tc-gsales-user-grid{grid-template-columns:repeat(2,1fr);max-width:680px}
  .tc-gsales-v1858 .tc-gsales-plan-wrap{grid-template-columns:1fr;max-width:660px}
  .tc-gsales-v1858 .tc-gsales-compare-layout{grid-template-columns:1fr;max-width:760px}.tc-gsales-v1858 .tc-gsales-compare-scene{display:none}
  .tc-gsales-v1858 .tc-gsales-faq-grid{grid-template-columns:1fr;max-width:720px}
}

@media(max-width:700px){
  .tc-gsales-v1858 .tc-gsales-pc-break{display:none}
  .tc-gsales-v1858 .tc-gsales-hero{width:100%;padding:32px 18px 28px;border-radius:0;gap:20px}
  .tc-gsales-v1858 .tc-gsales-hero-copy{text-align:left}
  .tc-gsales-v1858 .tc-gsales-hero h1{font-size:clamp(36px,10vw,47px);line-height:1.2}
  .tc-gsales-v1858 .tc-gsales-lead{font-size:13px;line-height:1.8}
  .tc-gsales-v1858 .tc-gsales-actions,.tc-gsales-v1858 .tc-gsales-hero-trust{justify-content:flex-start}
  .tc-gsales-v1858 .tc-gsales-hero-stage{min-height:410px}.tc-gsales-v1858 .tc-gsales-dashboard-card{width:93%;margin:46px 0 0;padding:12px}.tc-gsales-v1858 .tc-gsales-hero-life{width:180px;height:350px}
  .tc-gsales-v1858 .tc-gsales-section{padding:48px 16px}
  .tc-gsales-v1858 .tc-gsales-heading h2{font-size:clamp(29px,8vw,38px)}
  .tc-gsales-v1858 .tc-gsales-problem-grid,.tc-gsales-v1858 .tc-gsales-feature-grid,.tc-gsales-v1858 .tc-gsales-steps,.tc-gsales-v1858 .tc-gsales-user-grid{grid-template-columns:1fr}
  .tc-gsales-v1858 .tc-gsales-problem-grid p,.tc-gsales-v1858 .tc-gsales-user-grid p{max-width:280px}
  .tc-gsales-v1858 .tc-gsales-brand-art{min-height:285px}
  .tc-gsales-v1858 .tc-gsales-plan-card,.tc-gsales-v1858 .tc-gsales-renewal{padding:22px 18px}
  .tc-gsales-v1858 .tc-gsales-table-wrap{display:none}.tc-gsales-v1858 .tc-gsales-compare-mobile{display:grid;gap:10px;max-width:620px;margin:0 auto}
  .tc-gsales-v1858 .tc-gsales-final{margin-inline:14px;padding:34px 18px;text-align:center}.tc-gsales-v1858 .tc-gsales-final-scene{width:100%;opacity:.2}.tc-gsales-v1858 .tc-gsales-final p{margin-left:auto;margin-right:auto}
}

/* ---- typing-coach-polish-v1859 | assets/css/polish-v1859.css ---- */
/* Typing Coach v1.85.9 — Group Sales LP final readability + visual hierarchy polish */
.tc-gsales-v1859{
  --gs-content:1100px;
  --gs-reading:700px;
}
.tc-gsales-v1859 p,
.tc-gsales-v1859 h1,
.tc-gsales-v1859 h2,
.tc-gsales-v1859 h3,
.tc-gsales-v1859 b,
.tc-gsales-v1859 strong{
  word-break:normal;
  overflow-wrap:break-word;
  line-break:strict;
}

/* HERO: keep the premium composition, strengthen small supporting copy. */
.tc-gsales-v1859 .tc-gsales-hero{width:min(calc(100% - 52px),1160px);gap:36px}
.tc-gsales-v1859 .tc-gsales-hero-copy{max-width:505px}
.tc-gsales-v1859 .tc-gsales-kicker{font-size:10px}
.tc-gsales-v1859 .tc-gsales-hero h1{max-width:505px}
.tc-gsales-v1859 .tc-gsales-lead{max-width:500px;font-size:14.5px;line-height:1.92;color:#506279}
.tc-gsales-v1859 .tc-gsales-microcopy{font-size:11px;line-height:1.72;color:#747f8e}
.tc-gsales-v1859 .tc-gsales-hero-trust{gap:15px 22px}
.tc-gsales-v1859 .tc-gsales-hero-trust span{font-size:11.5px;color:#506178}
.tc-gsales-v1859 .tc-gsales-prelaunch{font-size:11px;line-height:1.7}

/* Shared section hierarchy: readable copy stays narrower than visual bands. */
.tc-gsales-v1859 .tc-gsales-section{
  padding-left:max(24px,calc((100vw - var(--gs-content))/2));
  padding-right:max(24px,calc((100vw - var(--gs-content))/2));
}
.tc-gsales-v1859 .tc-gsales-heading{max-width:var(--gs-reading)}
.tc-gsales-v1859 .tc-gsales-heading.is-center{max-width:760px}
.tc-gsales-v1859 .tc-gsales-heading>span{font-size:8.5px}
.tc-gsales-v1859 .tc-gsales-heading p{max-width:650px;font-size:13px;line-height:1.85}

/* Problems: stronger scan hierarchy without making the cards bulky. */
.tc-gsales-v1859 .tc-gsales-problem-grid{max-width:1000px;gap:16px}
.tc-gsales-v1859 .tc-gsales-problem-grid article{padding:18px 16px 22px}
.tc-gsales-v1859 .tc-gsales-illustration{height:100px}
.tc-gsales-v1859 .tc-gsales-problem-grid b{font-size:15.5px;line-height:1.46;color:#153452}
.tc-gsales-v1859 .tc-gsales-problem-grid p{max-width:210px;font-size:12px;line-height:1.74;color:#68788b}

/* WHY: the image remains editorial; benefit cards read more comfortably. */
.tc-gsales-v1859 .tc-gsales-brand-layout{max-width:1040px;grid-template-columns:minmax(330px,.80fr) minmax(0,1.20fr);gap:34px}
.tc-gsales-v1859 .tc-gsales-brand-art{min-height:382px;border-radius:16px;overflow:hidden}
.tc-gsales-v1859 .tc-gsales-feature-grid{gap:12px}
.tc-gsales-v1859 .tc-gsales-feature-grid article{min-height:112px;padding:17px 15px 17px 52px;border:1px solid rgba(218,226,233,.86);box-shadow:0 9px 22px rgba(21,49,79,.035)}
.tc-gsales-v1859 .tc-gsales-feature-grid article>div{left:13px;top:17px;width:30px;height:30px}
.tc-gsales-v1859 .tc-gsales-feature-grid h3{font-size:13.3px;line-height:1.48;color:#153452}
.tc-gsales-v1859 .tc-gsales-feature-grid p{font-size:11.2px;line-height:1.72;color:#6a788a}

/* HOW IT WORKS: make it feel like an infographic, not small footnotes. */
.tc-gsales-v1859 .tc-gsales-steps{max-width:990px;gap:12px}
.tc-gsales-v1859 .tc-gsales-steps:before{top:50px;left:7%;right:7%;height:2px;background:linear-gradient(90deg,transparent,#d0ad5a 10%,#d0ad5a 90%,transparent)}
.tc-gsales-v1859 .tc-gsales-steps article{padding-inline:9px}
.tc-gsales-v1859 .tc-gsales-steps article>b{width:42px;height:42px;font-size:11px;box-shadow:0 7px 15px rgba(184,135,36,.17)}
.tc-gsales-v1859 .tc-gsales-steps article>div{width:64px;height:64px;border-color:#d7e3ec;background:linear-gradient(145deg,#f7fbff,#fffaf0)}
.tc-gsales-v1859 .tc-gsales-steps article>div svg{width:34px;height:34px}
.tc-gsales-v1859 .tc-gsales-steps h3{font-size:13.2px;line-height:1.45;color:#153452}
.tc-gsales-v1859 .tc-gsales-steps p{max-width:155px;font-size:11px;line-height:1.62;color:#718095}

/* FOR WHO: retain the clean icon approach but improve text readability. */
.tc-gsales-v1859 .tc-gsales-user-grid{max-width:990px;gap:12px}
.tc-gsales-v1859 .tc-gsales-user-grid article{min-height:154px;padding:18px 12px 17px}
.tc-gsales-v1859 .tc-gsales-user-grid h3{font-size:13.2px}
.tc-gsales-v1859 .tc-gsales-user-grid p{font-size:11px;line-height:1.62}

/* PRICE: align both decision cards and increase supporting-copy legibility. */
.tc-gsales-v1859 .tc-gsales-plan-wrap{max-width:920px;gap:18px;align-items:stretch}
.tc-gsales-v1859 .tc-gsales-plan-card,
.tc-gsales-v1859 .tc-gsales-renewal{height:100%;min-height:500px}
.tc-gsales-v1859 .tc-gsales-plan-card{padding:27px}
.tc-gsales-v1859 .tc-gsales-renewal{padding:29px 30px}
.tc-gsales-v1859 .tc-gsales-plan-facts span{font-size:10px}
.tc-gsales-v1859 .tc-gsales-plan-lead{font-size:11.7px;line-height:1.78}
.tc-gsales-v1859 .tc-gsales-plan-card li,
.tc-gsales-v1859 .tc-gsales-renewal p,
.tc-gsales-v1859 .tc-gsales-renewal li{font-size:11px;line-height:1.72}
.tc-gsales-v1859 .tc-gsales-plan-safe{font-size:9.8px;line-height:1.6}

/* COMPARE: table is the hero; use the built-in illustration rather than a narrow cropped photo. */
.tc-gsales-v1859 .tc-gsales-compare-layout{
  max-width:980px;
  grid-template-columns:minmax(0,820px) 145px;
  gap:18px;
  align-items:stretch;
  justify-content:center;
}
.tc-gsales-v1859 .tc-gsales-table-wrap{border-radius:12px;overflow:hidden;box-shadow:0 10px 28px rgba(17,44,76,.045)}
.tc-gsales-v1859 .tc-gsales-table-wrap table{min-width:700px}
.tc-gsales-v1859 .tc-gsales-table-wrap th,
.tc-gsales-v1859 .tc-gsales-table-wrap td{padding:12px 13px;font-size:11.1px;line-height:1.55}
.tc-gsales-v1859 .tc-gsales-table-wrap th{font-size:10.8px}
.tc-gsales-v1859 .tc-gsales-compare-scene{
  min-height:236px;
  border:1px solid #eadfbd;
  border-radius:14px;
  background:linear-gradient(180deg,#fffaf0,#edf4f9);
  box-shadow:0 10px 24px rgba(18,46,77,.055);
  overflow:hidden;
}
.tc-gsales-v1859 .tc-gsales-compare-scene>svg{display:block;width:100%;height:100%;object-fit:cover}
.tc-gsales-v1859 .tc-gsales-compare-scene>span{display:none}

/* VOICE: make the future social-proof zone feel intentional even before testimonials arrive. */
.tc-gsales-v1859 .tc-gsales-voice-placeholder{max-width:800px;min-height:98px;padding:22px 25px;border-color:#e7d7a9;background:linear-gradient(100deg,#fffdf8,#fff9ed);box-shadow:0 8px 24px rgba(60,45,19,.035)}
.tc-gsales-v1859 .tc-gsales-voice-placeholder strong{font-size:14px;line-height:1.58}
.tc-gsales-v1859 .tc-gsales-voice-placeholder p{font-size:11.4px;line-height:1.72}
.tc-gsales-v1859 .tc-gsales-voice-grid{max-width:980px;margin-left:auto;margin-right:auto}

/* FAQ: retain the current calm density, with slightly larger labels. */
.tc-gsales-v1859 .tc-gsales-faq>.tc-gsales-heading,
.tc-gsales-v1859 .tc-gsales-faq-grid,
.tc-gsales-v1859 .tc-gsales-faq-link{max-width:900px}
.tc-gsales-v1859 .tc-gsales-faq summary{font-size:12px;line-height:1.55}
.tc-gsales-v1859 .tc-gsales-faq details p{font-size:11px;line-height:1.72}

/* FINAL CTA: remove the cropped CTA artifact from the old photo and use the clean local landscape SVG. */
.tc-gsales-v1859 .tc-gsales-final{
  max-width:1040px;
  min-height:224px;
  padding:43px 42% 43px 46px;
  overflow:hidden;
  background:linear-gradient(105deg,#08264b 0%,#0b3159 60%,#123f69 100%);
}
.tc-gsales-v1859 .tc-gsales-final>*:not(.tc-gsales-final-scene){position:relative;z-index:2}
.tc-gsales-v1859 .tc-gsales-final-scene{
  width:43%;
  height:100%;
  right:0;
  top:0;
  opacity:1;
  background:none;
  overflow:hidden;
}
.tc-gsales-v1859 .tc-gsales-final-scene>svg{display:block;width:100%;height:100%;opacity:.95}
.tc-gsales-v1859 .tc-gsales-final-scene:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,#0d335c 0%,rgba(13,51,92,.55) 22%,rgba(13,51,92,0) 55%);
  pointer-events:none;
}
.tc-gsales-v1859 .tc-gsales-final h2{font-size:clamp(29px,2.65vw,39px);line-height:1.38}
.tc-gsales-v1859 .tc-gsales-final p{max-width:540px;font-size:11.8px;line-height:1.76}
.tc-gsales-v1859 .tc-gsales-final .tc-gsales-primary{min-width:250px}
.tc-gsales-v1859 .tc-gsales-final>small{font-size:9.5px;line-height:1.6}

@media(max-width:1180px){
  .tc-gsales-v1859 .tc-gsales-hero{width:min(calc(100% - 36px),1020px)}
  .tc-gsales-v1859 .tc-gsales-brand-layout{max-width:850px}
  .tc-gsales-v1859 .tc-gsales-plan-wrap{max-width:880px}
  .tc-gsales-v1859 .tc-gsales-compare-layout{max-width:740px;grid-template-columns:1fr 130px}
}

@media(max-width:900px){
  .tc-gsales-v1859 .tc-gsales-problem-grid{max-width:700px}
  .tc-gsales-v1859 .tc-gsales-feature-grid{max-width:700px}
  .tc-gsales-v1859 .tc-gsales-steps{max-width:650px}
  .tc-gsales-v1859 .tc-gsales-plan-card,
  .tc-gsales-v1859 .tc-gsales-renewal{min-height:0}
  .tc-gsales-v1859 .tc-gsales-compare-layout{grid-template-columns:1fr;max-width:730px}
  .tc-gsales-v1859 .tc-gsales-compare-scene{display:none}
  .tc-gsales-v1859 .tc-gsales-final{padding-right:34%;}
}

@media(max-width:700px){
  .tc-gsales-v1859 .tc-gsales-hero{width:100%}
  .tc-gsales-v1859 .tc-gsales-lead{font-size:13.2px}
  .tc-gsales-v1859 .tc-gsales-microcopy,.tc-gsales-v1859 .tc-gsales-prelaunch{font-size:10.7px}
  .tc-gsales-v1859 .tc-gsales-problem-grid p,.tc-gsales-v1859 .tc-gsales-user-grid p{max-width:300px}
  .tc-gsales-v1859 .tc-gsales-feature-grid article{min-height:0;padding:17px 15px 17px 52px}
  .tc-gsales-v1859 .tc-gsales-steps p{max-width:250px}
  .tc-gsales-v1859 .tc-gsales-final{margin-inline:14px;padding:36px 19px;text-align:center;min-height:280px}
  .tc-gsales-v1859 .tc-gsales-final-scene{width:100%;opacity:.25}
  .tc-gsales-v1859 .tc-gsales-final-scene:before{background:linear-gradient(180deg,rgba(8,38,75,.42),rgba(8,38,75,.62))}
  .tc-gsales-v1859 .tc-gsales-final p{margin-left:auto;margin-right:auto}
  .tc-gsales-v1859 .tc-gsales-final .tc-gsales-primary{min-width:0;width:100%}
}

/* ---- typing-coach-polish-v18510 | assets/css/polish-v18510.css ---- */
/* Typing Coach v1.85.10 — Group Sales LP readability, density, and demo-scope polish */
.tc-gsales-v18510{
  --gs-content:1040px;
  --gs-reading:720px;
  --gs-copy:#53657a;
}
.tc-gsales-v18510 .tc-gsales-section{padding-top:76px;padding-bottom:76px}
.tc-gsales-v18510 .tc-gsales-heading{max-width:var(--gs-reading)}
.tc-gsales-v18510 .tc-gsales-heading.is-center{max-width:780px}
.tc-gsales-v18510 .tc-gsales-heading>span{font-size:10px;letter-spacing:.16em}
.tc-gsales-v18510 .tc-gsales-heading h2{font-size:clamp(31px,3.1vw,43px);line-height:1.38;letter-spacing:.01em}
.tc-gsales-v18510 .tc-gsales-heading h3{font-size:clamp(17px,1.55vw,21px);line-height:1.55}
.tc-gsales-v18510 .tc-gsales-heading p{max-width:680px;font-size:15px;line-height:1.9;color:var(--gs-copy)}

/* HERO — make the sales copy comfortable to read without sacrificing the visual stage. */
.tc-gsales-v18510 .tc-gsales-hero{width:min(calc(100% - 64px),1120px);gap:38px;padding-top:56px;padding-bottom:56px}
.tc-gsales-v18510 .tc-gsales-hero-copy{max-width:510px}
.tc-gsales-v18510 .tc-gsales-kicker{font-size:11px;letter-spacing:.17em}
.tc-gsales-v18510 .tc-gsales-hero h1{max-width:510px;font-size:clamp(48px,4.2vw,64px);line-height:1.15}
.tc-gsales-v18510 .tc-gsales-lead{max-width:505px;font-size:16px;line-height:1.95;color:#4f6176}
.tc-gsales-v18510 .tc-gsales-microcopy{font-size:13px;line-height:1.75;color:#6d7988}
.tc-gsales-v18510 .tc-gsales-actions{gap:12px}
.tc-gsales-v18510 .tc-gsales-primary,
.tc-gsales-v18510 .tc-gsales-secondary{min-height:48px;padding:12px 20px;font-size:15px;line-height:1.35}
.tc-gsales-v18510 .tc-gsales-hero-trust{gap:14px 18px}
.tc-gsales-v18510 .tc-gsales-hero-trust span{font-size:12.5px;line-height:1.45}
.tc-gsales-v18510 .tc-gsales-prelaunch{font-size:12.5px;line-height:1.7}

/* Problem cards — larger type and more breathing room. */
.tc-gsales-v18510 .tc-gsales-problem-grid{max-width:980px;gap:18px}
.tc-gsales-v18510 .tc-gsales-problem-grid article{min-height:260px;padding:20px 18px 24px}
.tc-gsales-v18510 .tc-gsales-illustration{height:108px;margin-bottom:13px}
.tc-gsales-v18510 .tc-gsales-problem-grid b{font-size:17px;line-height:1.45}
.tc-gsales-v18510 .tc-gsales-problem-grid p{max-width:215px;font-size:13.5px;line-height:1.78;color:#66768a}

/* WHY TYPING COACH — preserve the premium 3x2 grid, but stop shrinking the copy. */
.tc-gsales-v18510 .tc-gsales-brand-layout{max-width:1020px;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:38px}
.tc-gsales-v18510 .tc-gsales-brand-art{min-height:410px}
.tc-gsales-v18510 .tc-gsales-feature-grid{gap:14px}
.tc-gsales-v18510 .tc-gsales-feature-grid article{min-height:132px;padding:18px 16px 18px 56px}
.tc-gsales-v18510 .tc-gsales-feature-grid article>div{left:15px;top:18px;width:32px;height:32px}
.tc-gsales-v18510 .tc-gsales-feature-grid h3{font-size:14.5px;line-height:1.52}
.tc-gsales-v18510 .tc-gsales-feature-grid p{font-size:12.6px;line-height:1.76;color:#647488}

/* 5-step flow — graphic first, captions still readable. */
.tc-gsales-v18510 .tc-gsales-steps{max-width:990px;gap:18px}
.tc-gsales-v18510 .tc-gsales-steps:before{top:52px;left:7%;right:7%}
.tc-gsales-v18510 .tc-gsales-steps article{padding-inline:10px}
.tc-gsales-v18510 .tc-gsales-steps article>b{width:44px;height:44px;font-size:12px}
.tc-gsales-v18510 .tc-gsales-steps article>div{width:68px;height:68px}
.tc-gsales-v18510 .tc-gsales-steps article>div svg{width:36px;height:36px}
.tc-gsales-v18510 .tc-gsales-steps h3{font-size:14.5px;line-height:1.5}
.tc-gsales-v18510 .tc-gsales-steps p{max-width:168px;font-size:12.3px;line-height:1.65;color:#6c7b8e}

/* Audience cards — do not sacrifice body copy for a 5-column desktop row. */
.tc-gsales-v18510 .tc-gsales-user-grid{max-width:990px;gap:14px}
.tc-gsales-v18510 .tc-gsales-user-grid article{min-height:174px;padding:20px 14px 18px}
.tc-gsales-v18510 .tc-gsales-user-grid article>div{width:54px;height:54px;margin-bottom:11px}
.tc-gsales-v18510 .tc-gsales-user-grid h3{font-size:14.5px;line-height:1.48}
.tc-gsales-v18510 .tc-gsales-user-grid p{max-width:168px;font-size:12.2px;line-height:1.67;color:#6a798c}

/* Pricing — reduce fine print, enlarge decision-critical details. */
.tc-gsales-v18510 .tc-gsales-plan-wrap{max-width:900px;gap:20px}
.tc-gsales-v18510 .tc-gsales-plan-card,
.tc-gsales-v18510 .tc-gsales-renewal{min-height:510px}
.tc-gsales-v18510 .tc-gsales-plan-card{padding:30px}
.tc-gsales-v18510 .tc-gsales-renewal{padding:31px 32px}
.tc-gsales-v18510 .tc-gsales-plan-card h3,
.tc-gsales-v18510 .tc-gsales-renewal h3{font-size:22px;line-height:1.45}
.tc-gsales-v18510 .tc-gsales-price{font-size:clamp(38px,4vw,50px)}
.tc-gsales-v18510 .tc-gsales-plan-facts{gap:8px}
.tc-gsales-v18510 .tc-gsales-plan-facts span{font-size:12.5px;line-height:1.45;padding:7px 9px}
.tc-gsales-v18510 .tc-gsales-plan-lead{font-size:13.8px;line-height:1.82}
.tc-gsales-v18510 .tc-gsales-plan-card li,
.tc-gsales-v18510 .tc-gsales-renewal p,
.tc-gsales-v18510 .tc-gsales-renewal li{font-size:13px;line-height:1.75}
.tc-gsales-v18510 .tc-gsales-plan-safe{font-size:11.8px;line-height:1.65}
.tc-gsales-v18510 .tc-gsales-plan-card .tc-gsales-primary{font-size:15.5px;min-height:50px}

/* Comparison — table remains primary and should be readable at a glance. */
.tc-gsales-v18510 .tc-gsales-compare-layout{max-width:960px;grid-template-columns:minmax(0,800px) 140px;gap:20px}
.tc-gsales-v18510 .tc-gsales-table-wrap table{min-width:720px}
.tc-gsales-v18510 .tc-gsales-table-wrap th,
.tc-gsales-v18510 .tc-gsales-table-wrap td{padding:13px 14px;font-size:13px;line-height:1.55}
.tc-gsales-v18510 .tc-gsales-table-wrap th{font-size:12.5px}
.tc-gsales-v18510 .tc-gsales-compare-scene{min-height:250px}

/* VOICE — prepare for genuine testimonials with readable profile information. */
.tc-gsales-v18510 .tc-gsales-voice-placeholder{max-width:780px;min-height:106px;padding:24px 27px}
.tc-gsales-v18510 .tc-gsales-voice-placeholder strong{font-size:15px;line-height:1.55}
.tc-gsales-v18510 .tc-gsales-voice-placeholder p{font-size:13px;line-height:1.75}
.tc-gsales-v18510 .tc-gsales-voice-grid article{font-size:13px;line-height:1.75}

/* FAQ — purchase hesitation content should never be tiny. */
.tc-gsales-v18510 .tc-gsales-faq>.tc-gsales-heading,
.tc-gsales-v18510 .tc-gsales-faq-grid,
.tc-gsales-v18510 .tc-gsales-faq-link{max-width:860px}
.tc-gsales-v18510 .tc-gsales-faq-grid{gap:10px 12px}
.tc-gsales-v18510 .tc-gsales-faq summary{min-height:48px;padding:14px 4px;font-size:14px;line-height:1.55}
.tc-gsales-v18510 .tc-gsales-faq details p{font-size:13px;line-height:1.78}
.tc-gsales-v18510 .tc-gsales-faq-link{font-size:13px}

/* Closing CTA — slightly larger explanatory copy and a comfortable button target. */
.tc-gsales-v18510 .tc-gsales-final{max-width:1000px;min-height:236px}
.tc-gsales-v18510 .tc-gsales-final h2{font-size:clamp(30px,2.8vw,40px)}
.tc-gsales-v18510 .tc-gsales-final p{max-width:540px;font-size:14px;line-height:1.8}
.tc-gsales-v18510 .tc-gsales-final .tc-gsales-primary{min-height:50px;font-size:15px}
.tc-gsales-v18510 .tc-gsales-final>small{font-size:11.5px;line-height:1.65}

/* Large tablet: change layout before shrinking type. */
@media(max-width:1100px){
  .tc-gsales-v18510 .tc-gsales-hero{width:min(calc(100% - 40px),980px)}
  .tc-gsales-v18510 .tc-gsales-brand-layout{max-width:860px;grid-template-columns:1fr}
  .tc-gsales-v18510 .tc-gsales-brand-art{max-width:620px;min-height:330px;margin:0 auto}
  .tc-gsales-v18510 .tc-gsales-feature-grid{max-width:800px;margin:0 auto;grid-template-columns:repeat(2,1fr)}
  .tc-gsales-v18510 .tc-gsales-user-grid{max-width:760px;grid-template-columns:repeat(3,1fr)}
  .tc-gsales-v18510 .tc-gsales-steps{max-width:780px;grid-template-columns:repeat(3,1fr)}
  .tc-gsales-v18510 .tc-gsales-steps:before{display:none}
  .tc-gsales-v18510 .tc-gsales-plan-wrap{max-width:840px}
  .tc-gsales-v18510 .tc-gsales-compare-layout{max-width:760px;grid-template-columns:1fr}
  .tc-gsales-v18510 .tc-gsales-compare-scene{display:none}
}

@media(max-width:820px){
  .tc-gsales-v18510 .tc-gsales-section{padding-top:62px;padding-bottom:62px}
  .tc-gsales-v18510 .tc-gsales-heading p{font-size:14.5px}
  .tc-gsales-v18510 .tc-gsales-hero{grid-template-columns:1fr;width:min(calc(100% - 28px),720px);padding:40px 28px;gap:26px}
  .tc-gsales-v18510 .tc-gsales-hero-copy{max-width:640px;margin:0 auto}
  .tc-gsales-v18510 .tc-gsales-hero h1,.tc-gsales-v18510 .tc-gsales-lead{max-width:640px}
  .tc-gsales-v18510 .tc-gsales-lead{font-size:15.5px}
  .tc-gsales-v18510 .tc-gsales-problem-grid{grid-template-columns:repeat(2,1fr);max-width:700px}
  .tc-gsales-v18510 .tc-gsales-feature-grid{grid-template-columns:repeat(2,1fr);max-width:700px}
  .tc-gsales-v18510 .tc-gsales-user-grid{grid-template-columns:repeat(2,1fr);max-width:640px}
  .tc-gsales-v18510 .tc-gsales-steps{grid-template-columns:repeat(2,1fr);max-width:620px}
  .tc-gsales-v18510 .tc-gsales-plan-wrap{grid-template-columns:1fr;max-width:650px}
  .tc-gsales-v18510 .tc-gsales-plan-card,.tc-gsales-v18510 .tc-gsales-renewal{min-height:0}
  .tc-gsales-v18510 .tc-gsales-faq-grid{grid-template-columns:1fr;max-width:700px}
  .tc-gsales-v18510 .tc-gsales-final{padding-right:35%}
}

/* Mobile: typography is allowed to stay large; layout does the collapsing. */
@media(max-width:700px){
  .tc-gsales-v18510 .tc-gsales-section{padding:54px 18px}
  .tc-gsales-v18510 .tc-gsales-heading>span{font-size:10px}
  .tc-gsales-v18510 .tc-gsales-heading h2{font-size:clamp(28px,8.3vw,36px);line-height:1.42}
  .tc-gsales-v18510 .tc-gsales-heading h3{font-size:17px}
  .tc-gsales-v18510 .tc-gsales-heading p{font-size:15px;line-height:1.82}
  .tc-gsales-v18510 .tc-gsales-hero{width:100%;padding:34px 18px 30px;border-radius:0;gap:22px}
  .tc-gsales-v18510 .tc-gsales-hero h1{font-size:clamp(36px,10.2vw,46px);line-height:1.2}
  .tc-gsales-v18510 .tc-gsales-lead{font-size:15px;line-height:1.85}
  .tc-gsales-v18510 .tc-gsales-microcopy,.tc-gsales-v18510 .tc-gsales-prelaunch{font-size:12.5px}
  .tc-gsales-v18510 .tc-gsales-primary,.tc-gsales-v18510 .tc-gsales-secondary{width:100%;min-height:48px;font-size:15px}
  .tc-gsales-v18510 .tc-gsales-hero-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .tc-gsales-v18510 .tc-gsales-hero-trust span{font-size:11.5px;text-align:center}
  .tc-gsales-v18510 .tc-gsales-problem-grid,
  .tc-gsales-v18510 .tc-gsales-feature-grid,
  .tc-gsales-v18510 .tc-gsales-user-grid,
  .tc-gsales-v18510 .tc-gsales-steps{grid-template-columns:1fr;max-width:520px}
  .tc-gsales-v18510 .tc-gsales-problem-grid article{min-height:0;padding:20px 18px 22px}
  .tc-gsales-v18510 .tc-gsales-problem-grid b{font-size:17px}
  .tc-gsales-v18510 .tc-gsales-problem-grid p{max-width:360px;font-size:14px}
  .tc-gsales-v18510 .tc-gsales-feature-grid article{min-height:0;padding:18px 16px 18px 58px}
  .tc-gsales-v18510 .tc-gsales-feature-grid h3{font-size:15px}
  .tc-gsales-v18510 .tc-gsales-feature-grid p{font-size:13.5px}
  .tc-gsales-v18510 .tc-gsales-steps article{padding:7px 12px 18px}
  .tc-gsales-v18510 .tc-gsales-steps h3{font-size:15px}
  .tc-gsales-v18510 .tc-gsales-steps p{max-width:340px;font-size:13.2px}
  .tc-gsales-v18510 .tc-gsales-user-grid article{min-height:0;padding:20px 16px}
  .tc-gsales-v18510 .tc-gsales-user-grid h3{font-size:15px}
  .tc-gsales-v18510 .tc-gsales-user-grid p{max-width:340px;font-size:13.2px}
  .tc-gsales-v18510 .tc-gsales-plan-card,.tc-gsales-v18510 .tc-gsales-renewal{padding:24px 20px}
  .tc-gsales-v18510 .tc-gsales-plan-card li,.tc-gsales-v18510 .tc-gsales-renewal p,.tc-gsales-v18510 .tc-gsales-renewal li{font-size:13.5px}
  .tc-gsales-v18510 .tc-gsales-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tc-gsales-v18510 .tc-gsales-table-wrap th,.tc-gsales-v18510 .tc-gsales-table-wrap td{font-size:12.8px}
  .tc-gsales-v18510 .tc-gsales-voice-placeholder strong{font-size:15px}
  .tc-gsales-v18510 .tc-gsales-voice-placeholder p{font-size:13.5px}
  .tc-gsales-v18510 .tc-gsales-faq summary{font-size:14.5px}
  .tc-gsales-v18510 .tc-gsales-faq details p{font-size:13.5px}
  .tc-gsales-v18510 .tc-gsales-final{margin-inline:14px;padding:36px 20px;text-align:center;min-height:300px}
  .tc-gsales-v18510 .tc-gsales-final-scene{width:100%;opacity:.23}
  .tc-gsales-v18510 .tc-gsales-final p{font-size:14px;margin-left:auto;margin-right:auto}
  .tc-gsales-v18510 .tc-gsales-final .tc-gsales-primary{width:100%}
}

/* ---- typing-coach-polish-v18511 | assets/css/polish-v18511.css ---- */
/* Typing Coach v1.85.11 — Group Sales LP FAQ independence + HERO line-break polish */

/*
 * HERO
 * Keep the key phrase 「成長が見える時間」 together on the two-column desktop stage.
 * The previous .88/1.12 split left the copy column just narrow enough to break 「時間」.
 */
@media(min-width:1181px){
  .tc-gsales-v18511 .tc-gsales-hero{
    width:min(calc(100% - 52px),1160px);
    grid-template-columns:minmax(0,.96fr) minmax(500px,1.04fr);
    gap:32px;
  }
  .tc-gsales-v18511 .tc-gsales-hero-copy,
  .tc-gsales-v18511 .tc-gsales-hero h1{max-width:520px}
  .tc-gsales-v18511 .tc-gsales-hero h1{font-size:clamp(48px,4.2vw,58px)}
  .tc-gsales-v18511 .tc-gsales-hero h1 strong{
    display:inline-block;
    white-space:nowrap;
    font-size:.86em;
    letter-spacing:-.02em;
  }
}

/*
 * FAQ
 * Each desktop column owns its own vertical flow. Opening one answer therefore never
 * stretches the neighboring card or creates an empty white 'opened' card.
 */
.tc-gsales-v18511 .tc-gsales-faq-grid{
  align-items:start;
  gap:12px;
}
.tc-gsales-v18511 .tc-gsales-faq-column{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}
.tc-gsales-v18511 .tc-gsales-faq details{
  align-self:stretch;
  height:auto;
  min-height:0;
}
.tc-gsales-v18511 .tc-gsales-faq-link{
  margin-top:20px;
  font-size:13.5px;
  line-height:1.65;
  color:#765716;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  text-decoration-color:rgba(118,87,22,.42);
}
.tc-gsales-v18511 .tc-gsales-faq-link:hover,
.tc-gsales-v18511 .tc-gsales-faq-link:focus-visible{
  color:#5f4510;
  text-decoration-color:currentColor;
}

/* One-column FAQ keeps the natural reading order: first column (Q1-Q3), then Q4-Q6. */
@media(max-width:820px){
  .tc-gsales-v18511 .tc-gsales-faq-grid{grid-template-columns:1fr}
}

/* On small screens, allow natural Japanese wrapping instead of forcing desktop nowrap. */
@media(max-width:1180px){
  .tc-gsales-v18511 .tc-gsales-hero h1 strong{white-space:normal}
}

/* ---- typing-coach-polish-v18513 | assets/css/polish-v18513.css ---- */
/* Typing Coach v1.85.13 — Typing Coach for Teams HERO brand lockup */

/*
 * Give the service name its own visual identity without sacrificing the plain-Japanese
 * explanation of the offer. The order is: brand -> audience/use -> benefit headline.
 */
.tc-gsales-v18513 .tc-gsales-brand-lockup{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
  margin:0 0 16px;
  line-height:1.2;
}
.tc-gsales-v18513 .tc-gsales-brand-name{
  display:block;
  color:#9b6d18;
  font-size:18px;
  font-weight:800;
  letter-spacing:.035em;
}
.tc-gsales-v18513 .tc-gsales-brand-context{
  display:block;
  color:#6f7884;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.06em;
}

/* Existing HERO h1 margins assumed a one-line kicker. Rebalance the gap for the lockup. */
.tc-gsales-v18513 .tc-gsales-hero h1{margin-top:0}

@media(max-width:1180px){
  .tc-gsales-v18513 .tc-gsales-brand-lockup{margin-bottom:14px}
  .tc-gsales-v18513 .tc-gsales-brand-name{font-size:17px}
}

@media(max-width:700px){
  .tc-gsales-v18513 .tc-gsales-brand-lockup{gap:4px;margin-bottom:13px}
  .tc-gsales-v18513 .tc-gsales-brand-name{font-size:16px;letter-spacing:.025em}
  .tc-gsales-v18513 .tc-gsales-brand-context{font-size:11px;letter-spacing:.035em;line-height:1.45}
}

/* ---- typing-coach-polish-v18514 | assets/css/polish-v18514.css ---- */
/* Typing Coach v1.85.14 — Teams application / offer mode UX */
.tc-gsales-v18514 .tc-gsales-primary.is-disabled{display:inline-flex;align-items:center;justify-content:center;opacity:.66;cursor:not-allowed;pointer-events:none;filter:saturate(.55)}
.tc-gsales-v18514 .tc-gsales-prelaunch.is-free{border-color:#b8dcc5;background:#eff9f2;color:#185b34}
.tc-gsales-v18514 .tc-gsales-prelaunch.is-closed{border-color:#e3ccd1;background:#fff5f6;color:#7a3141}
.tc-gsales-v18514 .tc-gsales-apply{background:linear-gradient(135deg,#fbfcfd 0%,#fff9ec 100%)}
.tc-gsales-v18514 .tc-gsales-apply-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.86fr);gap:34px;align-items:stretch;max-width:1120px;margin:34px auto 0}
.tc-gsales-v18514 .tc-gsales-apply-copy,.tc-gsales-v18514 .tc-gsales-apply-card{border:1px solid #e2e8ed;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(17,52,83,.07);padding:30px}
.tc-gsales-v18514 .tc-gsales-apply-copy{background:linear-gradient(145deg,#0d3156,#123f6b);color:#fff;border-color:#183f65;position:relative;overflow:hidden}
.tc-gsales-v18514 .tc-gsales-apply-copy:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-58px;bottom:-76px;background:rgba(208,166,64,.13)}
.tc-gsales-v18514 .tc-gsales-apply-copy>span{display:block;color:#e4bd5b;font-weight:900;letter-spacing:.16em;font-size:11px;margin-bottom:8px}
.tc-gsales-v18514 .tc-gsales-apply-copy h3{margin:0 0 12px;color:#fff;font-size:clamp(22px,2.1vw,30px);line-height:1.45}
.tc-gsales-v18514 .tc-gsales-apply-copy p{color:#dce8f2;line-height:1.8;margin:0 0 18px}
.tc-gsales-v18514 .tc-gsales-apply-copy ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.tc-gsales-v18514 .tc-gsales-apply-copy li{position:relative;padding-left:22px;color:#f5f8fb;font-weight:700}.tc-gsales-v18514 .tc-gsales-apply-copy li:before{content:"✓";position:absolute;left:0;color:#e4bd5b;font-weight:900}
.tc-gsales-v18514 .tc-gsales-apply-card form{display:grid;gap:15px}.tc-gsales-v18514 .tc-gsales-apply-card h3{margin:0 0 4px;color:#173b5f;font-size:23px}.tc-gsales-v18514 .tc-gsales-apply-card>p{line-height:1.75;color:#53697c}
.tc-gsales-v18514 .tc-gsales-apply-card label{display:grid;gap:7px}.tc-gsales-v18514 .tc-gsales-apply-card label>span{font-size:13px;font-weight:900;color:#274a68}.tc-gsales-v18514 .tc-gsales-apply-card input,.tc-gsales-v18514 .tc-gsales-apply-card select{width:100%;min-height:48px;border:1px solid #cfdce6;border-radius:10px;background:#fff;padding:9px 12px;font-size:15px;color:#153650}.tc-gsales-v18514 .tc-gsales-apply-card input:focus,.tc-gsales-v18514 .tc-gsales-apply-card select:focus{outline:3px solid rgba(71,129,180,.18);border-color:#5d91bc}
.tc-gsales-v18514 .tc-gsales-apply-safe{margin:0;padding:12px 13px;border-radius:10px;background:#f6f9fb;color:#5e7080;font-size:12px;line-height:1.7}.tc-gsales-v18514 .tc-gsales-apply-login{display:block;margin-top:14px;text-align:center;color:#173e62;font-weight:800;text-decoration:none}.tc-gsales-v18514 .tc-gsales-apply-login:hover{text-decoration:underline}
.tc-gsales-v18514 .tc-gsales-apply-ready{padding:10px 12px;border-radius:9px;background:#eef8f1;color:#23623b;font-weight:900;border:1px solid #c9e6d2}
.tc-gsales-v18514 .tc-gsales-apply-notice{max-width:960px;margin:28px auto 0;padding:18px 20px;border:1px solid #e2d3a7;border-radius:14px;background:#fff9e8;color:#5d4a1d}.tc-gsales-v18514 .tc-gsales-apply-notice strong{display:block;margin-bottom:5px}.tc-gsales-v18514 .tc-gsales-apply-notice p{margin:0;line-height:1.7}.tc-gsales-v18514 .tc-gsales-apply-notice.is-error{border-color:#efc9cf;background:#fff3f5;color:#7c2838}.tc-gsales-v18514 .tc-gsales-apply-notice.is-closed{border-color:#d7dde4;background:#f7f8fa;color:#50606e}
.tc-gsales-v18514 .tc-gsales-plan-card.is-free-offer{border-color:#b8d9c3}.tc-gsales-v18514 .tc-gsales-plan-card.is-free-offer .tc-gsales-pass-badge{background:#397b53;color:#fff}.tc-gsales-v18514 .tc-gsales-plan-card.is-free-offer .tc-gsales-price b{color:#23623b}
.tc-group-create-route-card .tc-primary.tc-linkbtn{margin-top:8px;display:inline-flex}.tc-group-create-route-card>strong{display:block;color:#174a69;margin:8px 0}.tc-group-create-route-card>p{line-height:1.65}
@media(max-width:820px){.tc-gsales-v18514 .tc-gsales-apply-shell{grid-template-columns:1fr;gap:18px}.tc-gsales-v18514 .tc-gsales-apply-copy,.tc-gsales-v18514 .tc-gsales-apply-card{padding:22px}}
@media(max-width:560px){.tc-gsales-v18514 .tc-gsales-apply{padding-inline:0}.tc-gsales-v18514 .tc-gsales-apply-shell{margin-top:22px}.tc-gsales-v18514 .tc-gsales-apply-copy,.tc-gsales-v18514 .tc-gsales-apply-card{border-radius:16px;padding:19px}.tc-gsales-v18514 .tc-gsales-apply-card .tc-gsales-primary{width:100%}}

.tc-group-card.is-access-inactive{opacity:.96}.tc-group-manager-readonly{border-style:dashed}.tc-group-readonly-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 16px}.tc-group-manager-readonly .tc-group-manager-console-head p{max-width:760px}

/* ---- typing-coach-polish-v18516 | assets/css/polish-v18516.css ---- */
/* Typing Coach v1.85.16 — Teams management capacity diagram + LP closing rhythm */

/* The LP itself and the system page were both reserving large bottom padding.
 * Keep one modest page-ending space so the final CTA lands naturally into the footer. */
.tc-system-page-typing-coach-groups .tc-system-main__inner{padding-bottom:30px}
.tc-gsales-v18516{padding-bottom:0}
.tc-gsales-v18516 .tc-gsales-final{margin-bottom:0}

/* HERO: the account capacity is important enough to see before scrolling. */
.tc-gsales-v18516 .tc-gsales-hero-trust{flex-wrap:wrap}
.tc-gsales-v18516 .tc-gsales-capacity-trust b{white-space:nowrap}

/* MANAGEMENT — explain owner / team / delegated-manager relationships visually. */
.tc-gsales-v18516 .tc-gsales-management{
  background:linear-gradient(180deg,#f7fbfe 0%,#fffdf8 100%);
  border-top:1px solid #e8eef3;
  border-bottom:1px solid #ece6d6;
}
.tc-gsales-v18516 .tc-gsales-management>.tc-gsales-heading{margin-bottom:34px}
.tc-gsales-v18516 .tc-gsales-management-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  max-width:1040px;
  margin:0 auto 28px;
}
.tc-gsales-v18516 .tc-gsales-management-facts article{
  min-width:0;
  padding:20px 17px 18px;
  border:1px solid #dce6ee;
  border-radius:16px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 26px rgba(17,52,83,.06);
  text-align:center;
}
.tc-gsales-v18516 .tc-gsales-management-facts article>div{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  margin:0 auto 10px;
  border-radius:50%;
  background:#edf4fa;
  color:#17466e;
}
.tc-gsales-v18516 .tc-gsales-management-facts svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2}
.tc-gsales-v18516 .tc-gsales-management-facts span{display:block;color:#748292;font-size:11px;font-weight:800;letter-spacing:.05em}
.tc-gsales-v18516 .tc-gsales-management-facts strong{display:block;margin:5px 0 3px;color:#123a5e;font-size:20px;line-height:1.35}
.tc-gsales-v18516 .tc-gsales-management-facts small{display:block;color:#6d7b8c;font-size:12px;line-height:1.55}

.tc-gsales-v18516 .tc-gsales-management-map{
  position:relative;
  max-width:1040px;
  margin:0 auto;
  padding:28px;
  border:1px solid #d7e2ea;
  border-radius:22px;
  background:#fff;
  box-shadow:0 16px 42px rgba(13,48,80,.08);
}
.tc-gsales-v18516 .tc-gsales-owner-node{
  display:grid;
  grid-template-columns:52px 1fr;
  grid-template-rows:auto auto auto;
  column-gap:15px;
  align-items:center;
  width:min(430px,100%);
  margin:0 auto;
  padding:17px 20px;
  border:1px solid #d4b65f;
  border-radius:16px;
  background:linear-gradient(135deg,#0d3157,#154a76);
  color:#fff;
  box-shadow:0 11px 28px rgba(9,42,73,.16);
}
.tc-gsales-v18516 .tc-gsales-owner-node>div{grid-row:1/4;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.11);color:#e5c76e}
.tc-gsales-v18516 .tc-gsales-owner-node svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:2}
.tc-gsales-v18516 .tc-gsales-owner-node small{color:#e6c76e;font-size:9px;font-weight:900;letter-spacing:.16em}
.tc-gsales-v18516 .tc-gsales-owner-node strong{font-size:19px;line-height:1.35}
.tc-gsales-v18516 .tc-gsales-owner-node span{color:#d7e4ef;font-size:12px;line-height:1.55}

.tc-gsales-v18516 .tc-gsales-management-line{position:relative;height:50px;max-width:82%;margin:0 auto}
.tc-gsales-v18516 .tc-gsales-management-line:before{content:"";position:absolute;top:0;left:50%;height:27px;border-left:2px solid #c7d4df}
.tc-gsales-v18516 .tc-gsales-management-line:after{content:"";position:absolute;left:9%;right:9%;bottom:0;border-top:2px solid #c7d4df}
.tc-gsales-v18516 .tc-gsales-management-line i{position:absolute;left:50%;bottom:-5px;width:10px;height:10px;border-right:2px solid #c7d4df;border-bottom:2px solid #c7d4df;transform:translateX(-50%) rotate(45deg)}

.tc-gsales-v18516 .tc-gsales-team-nodes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.tc-gsales-v18516 .tc-gsales-team-nodes article{
  position:relative;
  min-width:0;
  padding:16px 12px 14px;
  border:1px solid #dce5ec;
  border-radius:13px;
  background:#f8fbfd;
  text-align:center;
}
.tc-gsales-v18516 .tc-gsales-team-nodes article:before{content:"";position:absolute;left:50%;top:-18px;height:18px;border-left:2px solid #c7d4df}
.tc-gsales-v18516 .tc-gsales-team-nodes b{display:block;color:#b07b1e;font-size:12px;letter-spacing:.08em}
.tc-gsales-v18516 .tc-gsales-team-nodes span{display:block;margin-top:5px;color:#193f61;font-size:13px;font-weight:850;line-height:1.4}
.tc-gsales-v18516 .tc-gsales-team-nodes small{display:block;margin-top:4px;color:#718091;font-size:10.5px;line-height:1.5}
.tc-gsales-v18516 .tc-gsales-team-nodes .is-more{border-style:dashed;background:#fffdf7}
.tc-gsales-v18516 .tc-gsales-team-nodes .is-more b{font-size:21px;line-height:.8}
.tc-gsales-v18516 .tc-gsales-team-nodes .is-limit{border-color:#d9bd71;background:#fff9eb}

.tc-gsales-v18516 .tc-gsales-subadmin-note{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  align-items:center;
  max-width:720px;
  margin:22px auto 0;
  padding:16px 18px;
  border-radius:14px;
  border:1px solid #cfe0d5;
  background:#f0f8f3;
}
.tc-gsales-v18516 .tc-gsales-subadmin-note>div{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff;color:#2f7150}
.tc-gsales-v18516 .tc-gsales-subadmin-note svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2}
.tc-gsales-v18516 .tc-gsales-subadmin-note p{margin:0}
.tc-gsales-v18516 .tc-gsales-subadmin-note strong{display:block;color:#265f44;font-size:14px}
.tc-gsales-v18516 .tc-gsales-subadmin-note span{display:block;margin-top:3px;color:#537264;font-size:12px;line-height:1.7}
.tc-gsales-v18516 .tc-gsales-management-footnote{max-width:880px;margin:14px auto 0;color:#718091;font-size:11.5px;line-height:1.7;text-align:center}

/* Pricing: distinguish account capacity from the unit a pass is applied to. */
.tc-gsales-v18516 .tc-gsales-plan-capacity-note{
  margin:11px 0 15px;
  padding:10px 12px;
  border-radius:9px;
  background:#f5f8fa;
  color:#5d7082;
  font-size:11.8px;
  line-height:1.65;
}
.tc-gsales-v18516 .tc-gsales-plan-capacity-note strong{color:#264d6c}

/* FAQ remains two independent natural-height columns. */
.tc-gsales-v18516 .tc-gsales-faq-grid{align-items:start;grid-auto-rows:max-content}
.tc-gsales-v18516 .tc-gsales-faq-column{align-self:start}

@media(max-width:980px){
  .tc-gsales-v18516 .tc-gsales-management-facts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
  .tc-gsales-v18516 .tc-gsales-team-nodes{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tc-gsales-v18516 .tc-gsales-team-nodes article:before{display:none}
  .tc-gsales-v18516 .tc-gsales-management-line{height:30px}
  .tc-gsales-v18516 .tc-gsales-management-line:after{display:none}
}

@media(max-width:700px){
  .tc-system-page-typing-coach-groups .tc-system-main__inner{padding-bottom:20px}
  .tc-gsales-v18516 .tc-gsales-hero-trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .tc-gsales-v18516 .tc-gsales-capacity-trust b{white-space:normal}
  .tc-gsales-v18516 .tc-gsales-management-facts{grid-template-columns:1fr;gap:10px}
  .tc-gsales-v18516 .tc-gsales-management-facts article{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto auto;column-gap:12px;text-align:left;padding:14px 15px}
  .tc-gsales-v18516 .tc-gsales-management-facts article>div{grid-row:1/4;width:44px;height:44px;margin:0}
  .tc-gsales-v18516 .tc-gsales-management-facts strong{margin:2px 0;font-size:18px}
  .tc-gsales-v18516 .tc-gsales-management-map{padding:20px 14px;border-radius:17px}
  .tc-gsales-v18516 .tc-gsales-owner-node{grid-template-columns:44px 1fr;padding:14px}
  .tc-gsales-v18516 .tc-gsales-owner-node>div{width:44px;height:44px}
  .tc-gsales-v18516 .tc-gsales-owner-node strong{font-size:17px}
  .tc-gsales-v18516 .tc-gsales-team-nodes{grid-template-columns:1fr 1fr;gap:8px}
  .tc-gsales-v18516 .tc-gsales-team-nodes article{padding:13px 9px}
  .tc-gsales-v18516 .tc-gsales-team-nodes .is-limit{grid-column:1/-1}
  .tc-gsales-v18516 .tc-gsales-subadmin-note{grid-template-columns:40px 1fr;padding:14px;gap:10px}
  .tc-gsales-v18516 .tc-gsales-subadmin-note>div{width:40px;height:40px}
  .tc-gsales-v18516 .tc-gsales-management-footnote{text-align:left;font-size:11px}
}

/* ---- typing-coach-polish-v18520 | assets/css/polish-v18520.css ---- */
/* v1.85.20 — goals, growth reports, feature guide and individual-plan foundation */
:root{
  --tc-18520-navy:#0b2f50;
  --tc-18520-navy2:#123e65;
  --tc-18520-gold:#c89d3f;
  --tc-18520-rose:#b94b62;
  --tc-18520-ink:#17324b;
  --tc-18520-muted:#61778a;
  --tc-18520-line:#d9e4ec;
  --tc-18520-soft:#f5f8fb;
  --tc-18520-blue:#eaf4fb;
  --tc-18520-green:#eaf6ef;
}

/* Header discoverability */
.tc-system-nav-features .tc-nav-icon{font-size:.78em}

/* Result: explicit phrase reaction. Generic clicks are not treated as signals. */
.tc-content-phrase-save-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid rgba(11,47,80,.13)}
.tc-content-phrase-save{appearance:none;border:1px solid #c6a24d;background:#fffaf0;color:#694f15;border-radius:999px;padding:10px 15px;font-size:14px;font-weight:800;line-height:1.3;cursor:pointer}
.tc-content-phrase-save:hover{background:#fff4d9}
.tc-content-phrase-save:focus-visible{outline:3px solid rgba(32,116,174,.28);outline-offset:2px}
.tc-content-phrase-save:disabled{opacity:.72;cursor:default}
.tc-content-phrase-save-row small{font-size:13px;line-height:1.55;color:#667b8c;flex:1 1 240px}

/* My Goals */
.tc-my-goals,.tc-my-growth-report-status{margin:24px 0;border:1px solid var(--tc-18520-line);border-radius:20px;padding:24px;background:#fff;box-shadow:0 10px 28px rgba(11,47,80,.055)}
.tc-my-goals{background:linear-gradient(145deg,#fff 0%,#fffaf1 100%);border-color:#eadcb8}
.tc-my-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.tc-my-section-head h3{margin:4px 0 7px;font-size:clamp(22px,2vw,29px);line-height:1.35;color:var(--tc-18520-navy)}
.tc-my-section-head p{margin:0;max-width:760px;color:#536a7e;font-size:15px;line-height:1.8}
.tc-my-feature-link{font-size:13px;font-weight:800;color:#315f86;text-decoration:none;white-space:nowrap;margin-top:7px}
.tc-my-feature-link:hover{text-decoration:underline}
.tc-my-goal-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tc-my-goal-cards article{position:relative;min-height:150px;border:1px solid #d9e4ec;border-radius:16px;background:#fff;padding:18px 20px 18px 62px}
.tc-my-goal-cards article>span{position:absolute;left:18px;top:18px;width:32px;height:32px;border-radius:10px;background:#e8f2f9;display:grid;place-items:center;color:#1e5b85;font-weight:900}
.tc-my-goal-cards article.is-future>span{background:#fff0f2;color:#a34558}
.tc-my-goal-cards small{display:block;color:#6c8091;font-size:12px;font-weight:850;letter-spacing:.04em;margin-bottom:7px}
.tc-my-goal-cards strong{display:block;color:#183b59;font-size:17px;line-height:1.62}
.tc-my-goal-cards p{margin:8px 0 0;color:#6b7f8f;font-size:13px;line-height:1.65}
.tc-my-goal-editor{margin-top:14px;border:1px solid #e5d6ad;border-radius:14px;background:#fff;overflow:hidden}
.tc-my-goal-editor>summary{cursor:pointer;padding:14px 17px;font-size:15px;font-weight:850;color:#173b5a;list-style-position:inside;background:#fffaf0}
.tc-my-goal-editor>form{padding:18px}
.tc-my-goal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.tc-my-goal-form-grid label>span,.tc-my-goal-number-grid label>span{display:block;margin-bottom:6px;font-size:13px;font-weight:800;color:#314e67}
.tc-my-goal-form-grid textarea,.tc-my-goal-number-grid input{width:100%;box-sizing:border-box;border:1px solid #cfdce6;border-radius:10px;background:#fff;padding:11px 12px;font:inherit;color:#17324b}
.tc-my-goal-form-grid textarea{resize:vertical;min-height:76px;line-height:1.6}
.tc-my-goal-number-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:14px;margin-top:14px}
.tc-my-goal-number-grid label{position:relative}.tc-my-goal-number-grid label small{position:absolute;right:12px;bottom:11px;color:#6c7f90}
.tc-my-goal-save{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}
.tc-my-goal-save small{max-width:680px;color:#6a7e8f;line-height:1.6}

/* My Growth report readiness */
.tc-my-growth-report-status{background:linear-gradient(145deg,#f8fbfd 0%,#eef7fb 100%)}
.tc-report-mini-flow{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin:18px 0 20px;padding:16px;border:1px solid #d5e5ef;border-radius:14px;background:#fff}
.tc-report-mini-flow span,.tc-report-mini-flow strong{border-radius:10px;padding:9px 11px;background:#eff5f9;color:#254b69;font-size:13px;font-weight:800}
.tc-report-mini-flow strong{background:#0b2f50;color:#fff}.tc-report-mini-flow i{font-style:normal;color:#9a7b31;font-weight:900}
.tc-report-readiness-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:12px 0}
.tc-report-readiness-head>div span{display:block;color:#6b7f8f;font-size:12px;font-weight:800}.tc-report-readiness-head>div strong{font-size:30px;color:#0b2f50}.tc-report-readiness-head p{margin:0;max-width:640px;color:#617789;line-height:1.6;font-size:13px}
.tc-report-readiness-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tc-report-readiness-grid article{border:1px solid #d6e3eb;border-radius:13px;background:#fff;padding:14px}
.tc-report-readiness-grid article>span{display:block;font-size:12px;color:#687e90;font-weight:800}.tc-report-readiness-grid article>b{display:block;margin:5px 0 10px;font-size:18px;color:#173b5a}.tc-report-readiness-grid article>i{display:block;height:7px;border-radius:99px;background:#e7eef3;overflow:hidden}.tc-report-readiness-grid article>i>em{display:block;height:100%;background:#7ea6c3;border-radius:inherit}.tc-report-readiness-grid article.is-met{border-color:#bad9c6;background:#f7fcf9}.tc-report-readiness-grid article.is-met>i>em{background:#5d9673}
.tc-report-privacy-note{margin:13px 0 0;padding:12px 14px;border-left:4px solid #d1aa4d;background:#fffaf0;color:#5a6e7e;font-size:13px;line-height:1.7}
.tc-report-latest-note{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:12px;margin-top:13px;padding:12px 14px;border-radius:12px;background:#0b2f50;color:#fff}.tc-report-latest-note span{font-size:12px;color:#e7c86d;font-weight:850}.tc-report-latest-note strong{font-size:14px}.tc-report-latest-note small{color:#d9e5ee}.tc-report-latest-note.is-empty{background:#fff;border:1px dashed #bfcfda;color:#17324b}.tc-report-latest-note.is-empty small{color:#687d8e}
.tc-my-benefits-more{text-align:center;margin:16px 0 0}.tc-my-benefits-more a{font-weight:850;color:#315f86;text-decoration:none}.tc-my-benefits-more a:hover{text-decoration:underline}

/* Comprehensive feature page */
.tc-features-page{max-width:1180px;margin:0 auto;color:var(--tc-18520-ink)}
.tc-features-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:34px;align-items:center;padding:58px 44px;border-radius:28px;background:linear-gradient(135deg,#082b49,#123f66);color:#fff;overflow:hidden;position:relative}
.tc-features-hero:after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;right:-170px;top:-180px;border:1px solid rgba(225,191,103,.26)}
.tc-features-hero .tc-kicker{color:#edcc75}.tc-features-hero h1{margin:8px 0 15px;font-size:clamp(34px,4vw,55px);line-height:1.2;letter-spacing:-.02em}.tc-features-hero h1 strong{color:#f0cf78}.tc-features-hero p{font-size:16px;line-height:1.9;color:#e1ebf2;max-width:720px}.tc-features-hero-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:22px}.tc-features-hero .tc-secondary{border-color:rgba(255,255,255,.48);color:#fff;background:rgba(255,255,255,.08)}
.tc-features-hero-map{position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:22px;border:1px solid rgba(255,255,255,.17);border-radius:20px;background:rgba(255,255,255,.07);backdrop-filter:blur(4px)}
.tc-features-hero-map span{display:block;padding:12px 14px;border-radius:10px;background:#fff;color:#153b5b;font-weight:900;text-align:center;letter-spacing:.08em}.tc-features-hero-map span:nth-of-type(3),.tc-features-hero-map span:nth-of-type(5){background:#fff8e8}.tc-features-hero-map i{text-align:center;font-style:normal;color:#efcc72;font-size:18px}
.tc-features-section{margin:34px 0;padding:38px 36px;border:1px solid #dde7ee;border-radius:24px;background:#fff}
.tc-features-heading{margin-bottom:24px}.tc-features-heading.is-center{text-align:center}.tc-features-heading>span{display:block;color:#a37a24;font-size:12px;font-weight:900;letter-spacing:.12em}.tc-features-heading h2{margin:7px 0 9px;font-size:clamp(27px,3vw,38px);line-height:1.3;color:#0b2f50}.tc-features-heading h2 strong{color:#a53f55}.tc-features-heading p{margin:0 auto;max-width:850px;color:#5d7385;font-size:15px;line-height:1.8}
.tc-features-six{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tc-features-six article{position:relative;min-height:210px;border:1px solid #dce6ed;border-radius:16px;padding:20px;background:#fbfdfe}.tc-features-six article>b{position:absolute;right:15px;top:12px;color:#d5b768;font-size:24px}.tc-features-six article>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e9f3fa;color:#1e5b85;font-weight:900}.tc-features-six article:nth-child(3n+2)>span{background:#fff6df;color:#8d6a17}.tc-features-six article:nth-child(3n)>span{background:#fbecef;color:#a34157}.tc-features-six h3{font-size:18px;margin:14px 0 7px;color:#173d5d}.tc-features-six p{font-size:14px;line-height:1.75;color:#61778a;margin:0}
.tc-features-report{background:linear-gradient(180deg,#f5fafd,#fff)}
.tc-report-flow{display:grid;grid-template-columns:repeat(11,auto);align-items:center;justify-content:center;gap:8px;overflow-x:auto;padding:12px 3px 20px}.tc-report-flow article{min-width:132px;text-align:center;border:1px solid #d5e2ea;border-radius:14px;background:#fff;padding:14px 10px}.tc-report-flow article.is-report{background:#0b2f50;color:#fff;border-color:#0b2f50}.tc-report-flow em{display:grid;place-items:center;width:28px;height:28px;margin:0 auto 7px;border-radius:50%;background:#dceaf4;color:#174d73;font-size:12px;font-style:normal;font-weight:900}.tc-report-flow .is-report em{background:#e5c56c;color:#5d4610}.tc-report-flow span{display:block;font-size:14px;font-weight:850}.tc-report-flow small{display:block;margin-top:4px;font-size:11px;color:#708495}.tc-report-flow .is-report small{color:#d6e5ef}.tc-report-flow>i{font-style:normal;color:#b08b33;font-weight:900}
.tc-report-evidence{display:grid;grid-template-columns:1fr 1.25fr;gap:22px;align-items:center;margin:12px 0 22px;padding:22px;border-radius:18px;background:#0e3659;color:#fff}.tc-report-evidence .tc-kicker{color:#edcb70}.tc-report-evidence h3{font-size:24px;margin:5px 0 8px}.tc-report-evidence p{margin:0;color:#dce8f0;line-height:1.75}.tc-report-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.tc-report-evidence-grid article{background:#fff;color:#173b5a;border-radius:12px;padding:13px;text-align:center}.tc-report-evidence-grid b{display:block;font-size:22px}.tc-report-evidence-grid span{font-size:12px;color:#667d8e;line-height:1.5}
.tc-report-output-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tc-report-output-grid article{border:1px solid #dce6ed;border-radius:14px;padding:17px;background:#fff}.tc-report-output-grid article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef5fa;color:#1d5d89;font-weight:900}.tc-report-output-grid h3{font-size:16px;margin:11px 0 5px}.tc-report-output-grid p{font-size:13px;line-height:1.7;color:#62798a;margin:0}.tc-report-format{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.tc-report-format>div{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;padding:15px;border-radius:14px;background:#fff8e9;border:1px solid #ead8aa}.tc-report-format>div>span{grid-row:1/3;display:grid;place-items:center;min-width:42px;height:42px;border-radius:10px;background:#fff;color:#8b6814;font-weight:900}.tc-report-format strong{font-size:15px}.tc-report-format small{font-size:12px;color:#6e7e89}
.tc-goal-story{background:#fffaf2;border-color:#eadcb8}.tc-goal-evolution{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px;align-items:center}.tc-goal-evolution article{min-height:110px;padding:18px;border-radius:14px;border:1px solid #ead9ac;background:#fff}.tc-goal-evolution small{display:block;color:#9a7726;font-weight:850;margin-bottom:8px}.tc-goal-evolution strong{font-size:16px;line-height:1.65;color:#29465d}.tc-goal-evolution i{font-style:normal;color:#b18c32;font-weight:900;font-size:20px}
.tc-plan-table-wrap{overflow:auto;border:1px solid #dce5eb;border-radius:15px}.tc-plan-table{width:100%;border-collapse:collapse;min-width:720px}.tc-plan-table th,.tc-plan-table td{padding:14px 16px;border-bottom:1px solid #e2e9ee;text-align:left;font-size:14px;line-height:1.55}.tc-plan-table th{background:#0b2f50;color:#fff;font-weight:850}.tc-plan-table th:nth-child(3){background:#9e3850}.tc-plan-table td:nth-child(2),.tc-plan-table td:nth-child(3){font-weight:750}.tc-plan-note{font-size:12px;color:#6c7f8f;line-height:1.6;margin:11px 2px 0}
.tc-features-accessible{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center;background:#f3f8fb}.tc-features-accessible h2{font-size:29px;margin:7px 0 10px;color:#0b2f50}.tc-features-accessible p{line-height:1.8;color:#5f7586}.tc-accessible-points{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.tc-accessible-points span{padding:12px;border:1px solid #d6e4ec;background:#fff;border-radius:10px;font-weight:800;color:#35546b;text-align:center}
.tc-features-final{text-align:center;padding:52px 24px;border-radius:24px;background:#0b2f50;color:#fff}.tc-features-final .tc-kicker{color:#ebc767}.tc-features-final h2{font-size:clamp(30px,3.5vw,44px);line-height:1.3;margin:8px 0 22px}.tc-features-final>div{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.tc-features-final .tc-secondary{color:#fff;border-color:rgba(255,255,255,.4);background:transparent}

/* Web report */
.tc-growth-report-page{max-width:1180px;margin:0 auto}.tc-report-page-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;padding:20px 22px;border:1px solid #dce6ed;border-radius:17px;background:#fff}.tc-report-page-tools h2{font-size:29px;margin:4px 0 6px;color:#0b2f50}.tc-report-page-tools p{margin:0;color:#657b8d}.tc-report-page-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:start}.tc-report-archive{position:sticky;top:18px;border:1px solid #dce6ed;border-radius:15px;background:#fff;padding:12px}.tc-report-archive>strong{display:block;padding:7px 8px 11px;color:#173b5b}.tc-report-archive a{display:block;padding:10px;border-radius:9px;text-decoration:none;color:#35546b}.tc-report-archive a:hover,.tc-report-archive a.is-current{background:#edf5fa;color:#0b2f50}.tc-report-archive a span,.tc-report-archive a small{display:block}.tc-report-archive a span{font-weight:800}.tc-report-archive a small{margin-top:3px;font-size:11px;color:#718696}
.tc-growth-report{border:1px solid #dce6ed;border-radius:20px;background:#fff;overflow:hidden}.tc-growth-report-hero{padding:30px 34px;background:linear-gradient(135deg,#0b2f50,#16466e);color:#fff}.tc-growth-report-hero>span{color:#ecc96c;font-size:12px;letter-spacing:.12em;font-weight:900}.tc-growth-report-hero h1{margin:6px 0 7px;font-size:34px}.tc-growth-report-hero p{margin:0;color:#dce7ef;line-height:1.65}.tc-growth-report>.tc-report-summary-grid,.tc-growth-report>.tc-report-section{margin-left:28px;margin-right:28px}.tc-report-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}.tc-report-summary-grid>div,.tc-report-kpis>div{padding:14px;border:1px solid #dce6ed;border-radius:12px;background:#f8fbfd}.tc-report-summary-grid span,.tc-report-kpis small{display:block;color:#6d8190;font-size:12px;font-weight:800}.tc-report-summary-grid b,.tc-report-kpis strong{display:block;margin-top:5px;color:#123c5d;font-size:21px}.tc-report-section{padding:25px 0;border-top:1px solid #e3e9ee}.tc-report-section h2{margin:5px 0 12px;color:#0b2f50;font-size:23px}.tc-report-goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tc-report-goal-grid>div{border:1px solid #e5d9b6;border-radius:13px;background:#fffaf1;padding:15px}.tc-report-goal-grid small{display:block;color:#987523;font-weight:850}.tc-report-goal-grid strong{display:block;margin-top:7px;line-height:1.65;color:#27465e}.tc-report-goal-grid p{margin:7px 0 0;font-size:12px;color:#637887}.tc-report-lead{color:#50687a;line-height:1.8}.tc-report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.tc-report-theme-list{display:flex;flex-wrap:wrap;gap:8px}.tc-report-theme-list span{padding:8px 11px;border-radius:999px;background:#edf5fa;color:#315a79;font-weight:750}.tc-report-theme-list b{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;border-radius:999px;background:#fff;color:#214d70;font-size:11px}.tc-report-quote-list blockquote,.tc-report-note-list p{margin:9px 0;padding:13px 15px;border-left:4px solid #d0a84b;background:#fffaf0;color:#405c71;line-height:1.75}.tc-report-next{margin-bottom:28px!important;padding:22px!important;border:0!important;border-radius:15px;background:#eff6fa}.tc-report-next ol{padding-left:23px}.tc-report-next li{margin:10px 0;color:#284b65;line-height:1.7}.tc-report-next>small{display:block;margin-top:13px;color:#687d8e;line-height:1.6}.tc-growth-report-empty{text-align:center;padding:36px}.tc-growth-report-empty h2{font-size:27px}

@media(max-width:960px){
  .tc-features-hero{grid-template-columns:1fr;padding:42px 28px}.tc-features-hero-map{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr}.tc-features-hero-map i{align-self:center}
  .tc-features-six{grid-template-columns:1fr 1fr}.tc-report-output-grid{grid-template-columns:1fr 1fr}.tc-report-evidence{grid-template-columns:1fr}.tc-report-readiness-grid{grid-template-columns:1fr 1fr}.tc-report-page-layout{grid-template-columns:1fr}.tc-report-archive{position:static;display:flex;overflow:auto;gap:6px}.tc-report-archive>strong{min-width:max-content}.tc-report-archive a{min-width:135px}.tc-features-accessible{grid-template-columns:1fr}
}
@media(max-width:720px){
  .tc-my-goals,.tc-my-growth-report-status{padding:18px 15px;border-radius:16px}.tc-my-section-head{display:block}.tc-my-feature-link{display:inline-block;margin-top:10px;white-space:normal}.tc-my-goal-cards,.tc-my-goal-form-grid{grid-template-columns:1fr}.tc-my-goal-number-grid{grid-template-columns:1fr 1fr}.tc-report-readiness-head{display:block}.tc-report-readiness-head p{margin-top:6px}.tc-report-mini-flow{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.tc-report-mini-flow span,.tc-report-mini-flow strong{min-width:max-content}.tc-report-latest-note{grid-template-columns:1fr;gap:4px}
  .tc-features-page{width:100%}.tc-features-hero{padding:34px 20px;border-radius:18px}.tc-features-hero h1{font-size:34px}.tc-features-hero-map{display:flex;flex-direction:row;overflow-x:auto;align-items:center;padding:14px}.tc-features-hero-map span{min-width:110px}.tc-features-section{margin:22px 0;padding:28px 18px;border-radius:18px}.tc-features-six{grid-template-columns:1fr}.tc-features-six article{min-height:auto}.tc-report-output-grid,.tc-report-format{grid-template-columns:1fr}.tc-goal-evolution{grid-template-columns:1fr}.tc-goal-evolution i{transform:rotate(90deg);text-align:center}.tc-accessible-points{grid-template-columns:1fr 1fr}.tc-report-evidence-grid{grid-template-columns:1fr 1fr}.tc-report-flow{justify-content:flex-start}.tc-report-page-tools{display:block}.tc-report-page-tools .tc-primary{margin-top:13px}.tc-growth-report>.tc-report-summary-grid,.tc-growth-report>.tc-report-section{margin-left:16px;margin-right:16px}.tc-growth-report-hero{padding:25px 20px}.tc-report-summary-grid,.tc-report-kpis,.tc-report-goal-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:460px){.tc-my-goal-number-grid,.tc-report-readiness-grid,.tc-report-evidence-grid,.tc-accessible-points,.tc-report-summary-grid,.tc-report-kpis,.tc-report-goal-grid{grid-template-columns:1fr}.tc-features-hero-actions>a,.tc-features-final a{width:100%;text-align:center;box-sizing:border-box}}

/* v1.85.20 goal history inside Growth & Action Report */
.tc-report-goal-history{margin-top:18px;padding:18px;border:1px solid #d9e4ec;border-radius:16px;background:linear-gradient(135deg,#fbfdff,#f5f8fb)}
.tc-report-goal-history-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.tc-report-goal-history-head>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff3d7;color:#916812;font-size:20px;font-weight:900}.tc-report-goal-history-head small{display:block;color:#9b7420;font-weight:900;letter-spacing:.1em}.tc-report-goal-history-head h3{margin:2px 0 0;font-size:18px;color:#17324b}
.tc-report-goal-timeline{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:9px}.tc-report-goal-timeline article{min-width:0;padding:13px;border-radius:12px;background:#fff;border:1px solid #e1e8ee}.tc-report-goal-timeline article small{display:block;color:#718497;margin-bottom:5px}.tc-report-goal-timeline article strong{display:block;line-height:1.55;overflow-wrap:anywhere}.tc-report-goal-timeline>i{align-self:center;font-style:normal;font-weight:900;color:#b08a35}.tc-report-goal-history>p{margin:12px 0 0;line-height:1.75;color:#536b7d}
@media(max-width:720px){.tc-report-goal-timeline{grid-template-columns:1fr}.tc-report-goal-timeline>i{transform:rotate(90deg);justify-self:center}.tc-report-goal-history{padding:15px}}

/* v1.85.20 purpose + goals */
.tc-my-goal-cards.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}.tc-my-goal-cards article.is-purpose>span{background:#fff6df;color:#8a681c;font-size:10px;letter-spacing:.08em}.tc-my-goal-form-grid.is-purpose-goals{grid-template-columns:1fr 1fr}.tc-my-goal-form-grid.is-purpose-goals .is-purpose-field{grid-column:1/-1}.tc-my-goal-form-grid label>small{display:block;margin-top:6px;color:#728493;font-size:12px;line-height:1.6}.tc-report-goal-grid.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.tc-my-goal-cards.is-three,.tc-report-goal-grid.is-three{grid-template-columns:1fr 1fr}}@media(max-width:700px){.tc-my-goal-cards.is-three,.tc-report-goal-grid.is-three,.tc-my-goal-form-grid.is-purpose-goals{grid-template-columns:1fr}.tc-my-goal-form-grid.is-purpose-goals .is-purpose-field{grid-column:auto}}
.tc-report-goal-timeline article>span{display:block;margin-top:6px;color:#6a7d8d;font-size:12px;line-height:1.55}

/* ---- typing-coach-polish-v18522 | assets/css/polish-v18522.css ---- */
/* v1.85.22 — public feature page: benefits first, plan-aware messaging, clearer report visuals */
.tc-features-hero h1 .tc-hero-line{display:inline-block;color:#fff;font-weight:inherit}
.tc-features-hero-map span{letter-spacing:0}
.tc-features-hero-map span b{display:block;font-size:14px;letter-spacing:.08em}
.tc-features-hero-map span small{display:block;margin-top:3px;font-size:12px;font-weight:800;color:#61778a;letter-spacing:0}
.tc-features-final>p{max-width:720px;margin:-10px auto 22px;color:#dce8f0;font-size:15px;line-height:1.8}

/* Comprehensive feature catalog */
.tc-feature-catalog{background:linear-gradient(180deg,#fff,#f8fbfd)}
.tc-feature-catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tc-feature-catalog-grid article{min-height:172px;padding:17px;border:1px solid #dce6ed;border-radius:15px;background:#fff}
.tc-feature-catalog-grid article>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#edf5fa;color:#1e5b85;font-size:13px;font-weight:900}
.tc-feature-catalog-grid article:nth-child(4n+2)>span{background:#fff6df;color:#8c6818}.tc-feature-catalog-grid article:nth-child(4n+3)>span{background:#fbecef;color:#a34157}.tc-feature-catalog-grid article:nth-child(4n)>span{background:#eaf6ef;color:#39755a}
.tc-feature-catalog-grid h3{margin:11px 0 6px;color:#173d5d;font-size:16px}.tc-feature-catalog-grid p{margin:0;color:#607789;font-size:13px;line-height:1.7}

/* Report materials: user-facing sources, not internal thresholds */
.tc-report-materials{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:22px;align-items:center;margin:12px 0 22px;padding:22px;border-radius:18px;background:#0e3659;color:#fff}
.tc-report-materials .tc-kicker{color:#edcb70}.tc-report-materials h3{margin:6px 0 9px;font-size:25px;line-height:1.35}.tc-report-materials p{margin:0;color:#dce8f0;line-height:1.8;font-size:14px}
.tc-report-materials-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.tc-report-materials-grid article{min-width:0;padding:13px 9px;border-radius:12px;background:#fff;color:#173b5a;text-align:center}.tc-report-materials-grid b{display:grid;place-items:center;width:32px;height:32px;margin:0 auto 8px;border-radius:9px;background:#edf5fa;color:#1f5d88}.tc-report-materials-grid span{display:block;font-size:12px;font-weight:900;line-height:1.45}.tc-report-materials-grid small{display:block;margin-top:5px;color:#6c8090;font-size:10.5px;line-height:1.45}
.tc-report-showcase{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:18px;align-items:stretch;margin:4px 0 18px}
.tc-report-preview{overflow:hidden;border:1px solid #d6e2ea;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(11,47,80,.06)}.tc-report-preview-head{padding:18px 20px;background:linear-gradient(135deg,#0b2f50,#16466e);color:#fff}.tc-report-preview-head>span{display:block;color:#e7c76c;font-size:10px;font-weight:900;letter-spacing:.1em}.tc-report-preview-head>strong{display:block;margin:4px 0;font-size:21px}.tc-report-preview-head>small{color:#dbe7ef}.tc-report-preview-body{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:14px}.tc-report-preview-body article{display:flex;gap:10px;align-items:center;padding:11px;border:1px solid #e0e8ee;border-radius:11px;background:#fbfdfe}.tc-report-preview-body article>span{display:grid;place-items:center;flex:0 0 27px;height:27px;border-radius:50%;background:#e8f2f8;color:#205c84;font-size:10px;font-weight:900}.tc-report-preview-body b{display:block;color:#23455f;font-size:12.5px;line-height:1.4}.tc-report-preview-body small{display:block;margin-top:2px;color:#718493;font-size:10.5px;line-height:1.4}.tc-report-preview-body article.is-next{grid-column:1/-1;background:#fff8e8;border-color:#ead7a4}.tc-report-preview-body article.is-next>span{background:#d1aa4d;color:#fff}
.tc-report-benefits{padding:23px;border:1px solid #dde7ee;border-radius:17px;background:#fff}.tc-report-benefits .tc-kicker{color:#a47b25}.tc-report-benefits h3{margin:7px 0 9px;color:#0b2f50;font-size:24px;line-height:1.4}.tc-report-benefits>p{margin:0;color:#5f7586;line-height:1.8;font-size:14px}.tc-report-benefit-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.tc-report-benefit-list span{padding:10px;border-radius:10px;background:#f1f7fa;color:#31556f;font-size:12px;font-weight:850;text-align:center}
.tc-report-format>div{padding:18px}.tc-report-format strong{font-size:16px}.tc-report-format small{font-size:13px;line-height:1.55}

/* Purpose and goal mock fields */
.tc-goal-input-mock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.tc-goal-input-mock article{position:relative;padding:18px;border:1px solid #ead9ac;border-radius:15px;background:#fff}.tc-goal-input-mock article>span{display:inline-block;margin-bottom:8px;padding:5px 8px;border-radius:999px;background:#fff6df;color:#8f6c1c;font-size:10px;font-weight:900;letter-spacing:.08em}.tc-goal-input-mock label{display:block;margin-bottom:7px;color:#27465e;font-size:13px;font-weight:900}.tc-goal-input-mock article>div{min-height:78px;padding:11px 12px;border:1px solid #d7e0e7;border-radius:10px;background:#fbfdfe;color:#778895;font-size:12px;line-height:1.65}.tc-goal-input-mock small{display:block;margin-top:7px;color:#718391;font-size:11px;line-height:1.5}

/* Plan-aware public benefit sections */
.tc-plan-current{background:linear-gradient(180deg,#fff,#fbfdff)}
.tc-plan-current-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.tc-plan-current-grid article{padding:18px 14px;border:1px solid #dce6ed;border-radius:14px;background:#fff;text-align:center}.tc-plan-current-grid article>span{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 9px;border-radius:11px;background:#edf5fa;color:#1d5d88;font-weight:900}.tc-plan-current-grid strong{display:block;color:#173d5d;font-size:15px}.tc-plan-current-grid small{display:block;margin-top:5px;color:#6a7f90;font-size:12px;line-height:1.55}.tc-plan-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}.tc-plan-status-note{max-width:760px;margin:17px auto 0;padding:12px 15px;border-radius:11px;background:#f7f9fb;color:#5c7182;font-size:13px;line-height:1.65;text-align:center}
.tc-plan-benefit-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;max-width:780px;margin:0 auto 20px}.tc-plan-benefit-strip article{padding:16px;border:1px solid #dce6ed;border-radius:14px;background:#f8fbfd;text-align:center}.tc-plan-benefit-strip article.is-premium{border-color:#ead0d8;background:#fff7f9}.tc-plan-benefit-strip article>span{display:block;color:#947024;font-size:10px;font-weight:900;letter-spacing:.1em}.tc-plan-benefit-strip article.is-premium>span{color:#9d3850}.tc-plan-benefit-strip strong{display:block;margin:4px 0;color:#173b5a;font-size:16px}.tc-plan-benefit-strip small{color:#6a7f8f}.tc-plan-benefit-strip>i{font-style:normal;color:#b18b34;font-size:20px;font-weight:900}

@media(max-width:960px){
  .tc-feature-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tc-report-materials{grid-template-columns:1fr}.tc-report-materials-grid{grid-template-columns:repeat(5,1fr)}
  .tc-report-showcase{grid-template-columns:1fr}.tc-goal-input-mock{grid-template-columns:1fr 1fr}.tc-plan-current-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .tc-features-hero h1 .tc-hero-line{display:block}
  .tc-features-hero-map span b{font-size:12px}.tc-features-hero-map span small{font-size:11px}
  .tc-feature-catalog-grid{grid-template-columns:1fr 1fr}.tc-feature-catalog-grid article{min-height:auto}
  .tc-report-materials-grid{grid-template-columns:1fr 1fr}.tc-report-preview-body{grid-template-columns:1fr}.tc-report-preview-body article.is-next{grid-column:auto}.tc-report-benefit-list{grid-template-columns:1fr}
  .tc-goal-input-mock{grid-template-columns:1fr}.tc-plan-benefit-strip{grid-template-columns:1fr}.tc-plan-benefit-strip>i{transform:rotate(90deg);text-align:center}.tc-plan-current-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:460px){
  .tc-feature-catalog-grid,.tc-report-materials-grid,.tc-plan-current-grid{grid-template-columns:1fr}
  .tc-plan-actions>a{width:100%;box-sizing:border-box;text-align:center}
}

/* ---- typing-coach-polish-v18523 | assets/css/polish-v18523.css ---- */
/* v1.85.23 — meaningful title wrapping, two purposes + two goals, guest conversion, coaching know-how */

/* Keep public titles readable: wrap between meaning chunks, not mid-phrase where avoidable. */
.tc-features-page h1,.tc-features-page h2,.tc-features-page h3{ text-wrap:balance; }
.tc-features-page .tc-title-row{display:block}
.tc-features-page .tc-title-chunk,.tc-features-page .tc-title-segment{display:inline-block;max-width:100%}
.tc-features-hero h1>strong{display:block;color:#f0cf78;font-weight:inherit}
.tc-features-hero h1 .tc-title-row,.tc-features-hero h1 .tc-title-chunk{word-break:keep-all;overflow-wrap:normal}
.tc-features-heading h2 .tc-title-segment+.tc-title-segment,.tc-features-accessible h2 .tc-title-segment+.tc-title-segment{margin-left:.18em}
.tc-features-final h2 .tc-title-segment{display:block}

/* Certified master coach / content-value section. */
.tc-coach-value{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);gap:28px;align-items:center;background:linear-gradient(135deg,#fffaf0,#fff 54%,#f4f9fc)}
.tc-coach-value-copy .tc-kicker{color:#9a7422}
.tc-coach-value-copy h2{margin:7px 0 12px;color:#0b2f50;font-size:clamp(27px,3vw,38px);line-height:1.35}
.tc-coach-value-copy h2 .tc-title-segment{display:block}
.tc-coach-value-copy p{margin:0;color:#5d7385;font-size:15px;line-height:1.85}
.tc-coach-value-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}
.tc-coach-value-points span{padding:8px 11px;border:1px solid #ead9aa;border-radius:999px;background:#fff;color:#6e5826;font-size:12px;font-weight:850}
.tc-coach-value-visual{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;padding:20px;border:1px solid #dbe6ed;border-radius:18px;background:#0d3558;box-shadow:0 12px 30px rgba(11,47,80,.08)}
.tc-coach-value-visual article{min-width:0;padding:18px 10px;border-radius:13px;background:#fff;text-align:center}
.tc-coach-value-visual article:nth-of-type(2){background:#fff8e9}.tc-coach-value-visual article:nth-of-type(3){background:#f0f7fb}
.tc-coach-value-visual b{display:block;color:#b08324;font-size:10px;letter-spacing:.12em}.tc-coach-value-visual strong{display:block;margin:5px 0;color:#173e5e;font-size:18px}.tc-coach-value-visual small{display:block;color:#6c8191;font-size:11px;line-height:1.5}
.tc-coach-value-visual i{font-style:normal;color:#e8c666;font-size:18px;font-weight:900}

/* Two purposes + two goals. */
.tc-goal-input-mock.is-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.tc-my-goal-cards.is-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.tc-my-goal-cards article.is-life-purpose>span{background:#edf6ee;color:#3b7658;font-size:9px;letter-spacing:.05em}
.tc-report-goal-grid.is-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.tc-my-goal-form-grid.is-purpose-goals .is-life-purpose-field{grid-column:auto}

/* Guest conversion remains visible at the end of the public feature page. */
.tc-features-group-link{display:inline-block;margin-top:16px;color:#dce8f0;text-decoration:none;font-size:13px;font-weight:800}
.tc-features-group-link:hover{text-decoration:underline;color:#fff}

@media(max-width:960px){
  .tc-coach-value{grid-template-columns:1fr}
  .tc-goal-input-mock.is-four{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .tc-features-heading h2 .tc-title-segment+.tc-title-segment,.tc-features-accessible h2 .tc-title-segment+.tc-title-segment{margin-left:0}
  .tc-coach-value-visual{grid-template-columns:1fr;gap:7px}.tc-coach-value-visual i{transform:rotate(90deg);text-align:center}
  .tc-goal-input-mock.is-four,.tc-my-goal-cards.is-four,.tc-report-goal-grid.is-four{grid-template-columns:1fr}
  .tc-features-hero h1 .tc-title-chunk{display:inline-block}
}
@media(max-width:460px){
  .tc-features-hero h1 .tc-title-row{word-break:normal;overflow-wrap:anywhere}
  .tc-features-hero h1 .tc-title-chunk{word-break:keep-all}
  .tc-coach-value{padding-left:18px;padding-right:18px}
}

/* ---- typing-coach-polish-v18524 | assets/css/polish-v18524.css ---- */
/* v1.85.24 — feature-page readability, meaningful title wrapping, richer coaching-theme presentation */

/* Public headings: prefer authored meaning chunks over arbitrary Japanese mid-phrase wraps. */
@media (min-width:721px){
  .tc-features-page .tc-title-segment,
  .tc-features-page .tc-title-chunk{
    word-break:keep-all;
    overflow-wrap:normal;
  }
}
.tc-features-page h1,.tc-features-page h2{line-break:strict}
.tc-coach-value-copy h2{font-size:clamp(26px,2.8vw,36px);line-height:1.36}
.tc-coach-value-copy h2 .tc-title-segment{margin:0}

/* Let the coach-value section breathe; the screenshot showed the copy becoming too cramped at laptop widths. */
.tc-coach-value-side{display:grid;gap:14px;min-width:0}
.tc-coach-value-copy p strong{color:#314e63;font-weight:850}
.tc-coach-theme-panel{padding:16px;border:1px solid #dbe6ed;border-radius:16px;background:#fff}
.tc-coach-theme-label{display:block;margin-bottom:10px;color:#9a7422;font-size:11px;font-weight:900;letter-spacing:.08em}
.tc-coach-theme-grid{display:flex;flex-wrap:wrap;gap:7px}
.tc-coach-theme-grid span{display:inline-flex;align-items:center;min-height:30px;padding:6px 9px;border:1px solid #e1e8ed;border-radius:999px;background:#f8fbfd;color:#35546b;font-size:11.5px;font-weight:800;line-height:1.35}
.tc-coach-theme-grid span:nth-child(4n+2){background:#fff8e9;border-color:#ead9ad;color:#795f27}
.tc-coach-theme-grid span:nth-child(4n+3){background:#fbeff2;border-color:#efd7dd;color:#8b4153}
.tc-coach-theme-grid span:nth-child(4n){background:#eef7f2;border-color:#d9e9df;color:#3f7158}
.tc-coach-theme-panel>small{display:block;margin-top:10px;color:#708391;font-size:11.5px;line-height:1.6}

/* A little more breathing room for dense public capability cards. */
.tc-feature-catalog-grid h3{font-size:16.5px;line-height:1.45}
.tc-feature-catalog-grid p{font-size:13.5px;line-height:1.75}
.tc-features-six p{font-size:14.25px}
.tc-features-accessible p{font-size:15px}

@media(max-width:1100px){
  .tc-coach-value{grid-template-columns:1fr}
  .tc-coach-value-side{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch}
  .tc-feature-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  .tc-coach-value-side{grid-template-columns:1fr}
  .tc-coach-value-copy h2{font-size:30px}
}
@media(max-width:720px){
  .tc-features-page .tc-title-segment,.tc-features-page .tc-title-chunk{word-break:normal;overflow-wrap:anywhere}
  .tc-coach-value-copy h2{font-size:27px}
  .tc-coach-theme-grid span{font-size:11px}
  .tc-feature-catalog-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:460px){
  .tc-feature-catalog-grid{grid-template-columns:1fr}
  .tc-coach-value-copy h2 .tc-title-segment{display:block}
}

/* ---- typing-coach-polish-v18525 | assets/css/polish-v18525.css ---- */
/* v1.85.25 — Coach Score explanation + public feature page readability refinements */

/* Public feature catalog: readability beats squeezing four cards into one row. */
.tc-feature-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tc-feature-catalog-grid article{min-height:158px;padding:19px}
.tc-feature-catalog-grid h3{font-size:17px}
.tc-feature-catalog-grid p{font-size:14px;line-height:1.78}

/* Coach Score explainer */
.tc-coach-score-explainer{background:linear-gradient(180deg,#f4f9fc 0%,#fff 100%);border-color:#d7e5ee}
.tc-coach-score-explainer .tc-features-heading>p{max-width:820px;margin-left:auto;margin-right:auto}
.tc-score-formula{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:13px;align-items:stretch;margin-top:24px}
.tc-score-formula>i{align-self:center;color:#b48b2c;font-size:28px;font-style:normal;font-weight:900}
.tc-score-formula>article{position:relative;min-width:0;padding:22px 20px 18px;border:1px solid #d8e4ec;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(10,47,80,.05)}
.tc-score-formula>article.is-skill{border-top:5px solid #123e64}
.tc-score-formula>article.is-continuity{border-top:5px solid #5c96b8}
.tc-score-formula>article.is-learning{border-top:5px solid #d2aa4e}
.tc-score-share{display:flex;align-items:baseline;gap:3px;margin-bottom:4px;color:#0e3659}
.tc-score-share strong{font-family:Georgia,"Times New Roman",serif;font-size:43px;line-height:1}
.tc-score-share small{font-size:13px;font-weight:900}
.tc-score-en{display:block;color:#9a7626;font-size:10px;font-weight:900;letter-spacing:.13em}
.tc-score-formula h3{margin:5px 0 7px;color:#163d5d;font-size:20px;line-height:1.4}
.tc-score-formula p{min-height:50px;margin:0 0 14px;color:#62798a;font-size:13.5px;line-height:1.7}
.tc-score-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.tc-score-formula .is-learning .tc-score-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}
.tc-score-breakdown span{display:grid;place-items:center;min-height:54px;padding:8px 6px;border-radius:11px;background:#f2f7fa;color:#36566d;font-size:11.5px;font-weight:850;line-height:1.35;text-align:center}
.tc-score-breakdown b{display:block;color:#173f60;font-size:18px;line-height:1.1}
.tc-score-total{margin-top:16px;padding:18px 20px;border-radius:16px;background:#0c3458;color:#fff;text-align:center}
.tc-score-total>div{display:flex;justify-content:center;align-items:center;gap:9px;flex-wrap:wrap;font-weight:900}
.tc-score-total>div span{display:inline-flex;align-items:center;justify-content:center;min-width:67px;padding:8px 10px;border-radius:10px;background:#fff;color:#183e5e;font-size:16px}
.tc-score-total>div i{color:#e9c866;font-style:normal;font-size:18px}
.tc-score-total>div strong{padding:9px 13px;border-radius:10px;background:#f3d175;color:#4b390f;font-size:17px}
.tc-score-total p{max-width:870px;margin:11px auto 0;color:#dbe8f0;font-size:13.5px;line-height:1.7}
.tc-score-total p b,.tc-score-total p strong{color:#fff}
.tc-score-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.tc-score-benefits span{position:relative;padding:11px 10px 11px 31px;border:1px solid #dce7ed;border-radius:12px;background:#fff;color:#38566b;font-size:12.5px;font-weight:850;line-height:1.45}
.tc-score-benefits span:before{content:'✓';position:absolute;left:11px;top:10px;color:#448163;font-weight:950}

/* The report path and evidence were too dense in the screenshot. Make the sequence easier to scan. */
.tc-report-flow{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;gap:10px;overflow:visible;padding:12px 0 20px}
.tc-report-flow>i{display:none}
.tc-report-flow article{min-width:0;padding:16px 12px}
.tc-report-flow span{font-size:14.5px}
.tc-report-flow small{font-size:11.5px;line-height:1.45}
.tc-report-materials{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.tc-report-materials-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.tc-report-materials-grid article{padding:14px 10px}
.tc-report-materials-grid span{font-size:12.5px}
.tc-report-materials-grid small{font-size:11px}

/* Examples are more useful when they are large enough to read. */
.tc-goal-input-mock.is-four{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tc-goal-input-mock label{font-size:14px}
.tc-goal-input-mock article>div{min-height:66px;font-size:13px}
.tc-goal-input-mock small{font-size:11.5px}
.tc-plan-current-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px;margin-left:auto;margin-right:auto}
.tc-plan-current-grid article{padding:19px 16px}
.tc-plan-current-grid strong{font-size:15.5px}
.tc-plan-current-grid small{font-size:12.5px}

/* Slightly more readable theme tags and core benefit body copy. */
.tc-coach-theme-grid span{font-size:12px;padding:7px 10px}
.tc-coach-theme-panel>small{font-size:12px}
.tc-features-six h3{font-size:18.5px;line-height:1.45}
.tc-features-six p{font-size:14.5px;line-height:1.78}

@media(max-width:980px){
  .tc-feature-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-score-formula{grid-template-columns:1fr}
  .tc-score-formula>i{transform:rotate(90deg);text-align:center;line-height:1}
  .tc-score-formula p{min-height:0}
  .tc-score-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-report-materials{grid-template-columns:1fr}
}
@media(max-width:720px){
  .tc-feature-catalog-grid{grid-template-columns:1fr}
  .tc-report-flow{grid-template-columns:1fr 1fr}
  .tc-report-materials-grid{grid-template-columns:1fr 1fr}
  .tc-goal-input-mock.is-four,.tc-plan-current-grid{grid-template-columns:1fr}
  .tc-score-share strong{font-size:38px}
}
@media(max-width:480px){
  .tc-report-flow,.tc-report-materials-grid,.tc-score-benefits{grid-template-columns:1fr}
  .tc-score-total{padding:16px 12px}
  .tc-score-total>div{gap:6px}
  .tc-score-total>div span{min-width:58px;font-size:14px}
  .tc-score-total>div strong{width:100%;box-sizing:border-box;font-size:15px}
}

/* ---- typing-coach-polish-v18526 | assets/css/polish-v18526.css ---- */
/* v1.85.26 — percentage-based Coach Score explanation + feature page scanability */

/* Headings: prefer intentional semantic chunks instead of awkward mid-word wrapping. */
.tc-features-page h1,.tc-features-page h2,.tc-features-page h3{word-break:keep-all;overflow-wrap:normal}
.tc-features-page .tc-title-segment,.tc-features-page .tc-title-chunk,.tc-features-page .tc-title-row{word-break:keep-all;overflow-wrap:normal}

/* Master-coach topics: group a long tag cloud into four easy-to-scan themes. */
.tc-coach-theme-groups{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tc-coach-theme-groups section{min-width:0;padding:11px;border:1px solid #e0e8ed;border-radius:13px;background:#f9fbfc}
.tc-coach-theme-groups section>b{display:block;margin-bottom:7px;color:#173f60;font-size:12.5px;line-height:1.4}
.tc-coach-theme-groups section>div{display:flex;flex-wrap:wrap;gap:6px}
.tc-coach-theme-groups section span{display:inline-flex;align-items:center;min-height:28px;padding:5px 8px;border:1px solid #e4e9ed;border-radius:999px;background:#fff;color:#466176;font-size:11.5px;font-weight:800;line-height:1.35}
.tc-coach-theme-groups section:nth-child(2){background:#fffaf0;border-color:#eadfca}
.tc-coach-theme-groups section:nth-child(3){background:#f4faf7;border-color:#dcebe3}
.tc-coach-theme-groups section:nth-child(4){background:#fbf5f7;border-color:#ebdde2}

/* Feature catalog: slightly larger body copy without adding more cognitive density. */
.tc-feature-catalog-grid h3{font-size:17.5px;line-height:1.45}
.tc-feature-catalog-grid p{font-size:14.5px;line-height:1.82}

/* Coach Score: percentages are the evaluation weights; the result itself is a 0–100 score. */
.tc-score-share small{font-size:16px;color:#9a7626}
.tc-score-breakdown b{font-size:17px}
.tc-score-total-label{display:block;margin-bottom:10px;color:#f0cf72;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.tc-score-total>div span{min-width:96px}
.tc-score-total>div strong{min-width:160px}

@media(max-width:980px){
  .tc-coach-theme-groups{grid-template-columns:1fr}
  .tc-features-page h2 .tc-title-segment{display:block;margin-left:0!important}
}
@media(max-width:620px){
  /* On small phones, allow wrapping inside long semantic chunks rather than overflowing. */
  .tc-features-page h1,.tc-features-page h2,.tc-features-page h3,
  .tc-features-page .tc-title-segment,.tc-features-page .tc-title-chunk,.tc-features-page .tc-title-row{word-break:normal;overflow-wrap:anywhere}
  .tc-score-total>div span,.tc-score-total>div strong{min-width:0;width:100%}
}

/* ---- typing-coach-polish-v18527 | assets/css/polish-v18527.css ---- */
/* v1.85.27 — certified-coach copy cleanup + consistent bottom TOP navigation */

/* Public copy: keep the certified-coach headline compact and easy to scan. */
.tc-coach-value-copy>h2{max-width:700px}
.tc-coach-value-copy>p{font-size:15px;line-height:1.9}
.tc-coach-theme-groups section>b{font-size:13px}
.tc-coach-theme-groups section span{font-size:12px;line-height:1.45}

/* Every Typing Coach system content page ends with one predictable way home.
   Keep this visually secondary to the page's main CTA, but large enough to find. */
.tc-system-top-return{
  width:min(100% - 40px,1180px);
  margin:clamp(26px,4vw,44px) auto 2px;
  display:flex;
  justify-content:center;
  align-items:center;
}
.tc-system-top-return>a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:168px;
  min-height:46px;
  padding:10px 20px;
  border:1px solid #cad6df;
  border-radius:999px;
  background:#fff;
  color:#173f60;
  text-decoration:none;
  font-size:14px;
  font-weight:850;
  line-height:1.2;
  box-shadow:0 8px 22px rgba(17,58,88,.06);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.tc-system-top-return>a:hover{
  transform:translateY(-1px);
  border-color:#c9a23d;
  background:#fffaf0;
  box-shadow:0 10px 26px rgba(17,58,88,.09);
}
.tc-system-top-return>a:focus-visible{outline:3px solid rgba(205,163,55,.34);outline-offset:3px}
.tc-system-top-return>a span{color:#b48720;font-size:17px;line-height:1}

/* Full-bleed sales/features pages should still land the return control on the same readable lane. */
.tc-system-page-typing-coach-groups .tc-system-top-return,
.tc-system-page-typing-coach-features .tc-system-top-return{margin-top:30px}

@media(max-width:700px){
  .tc-coach-value-copy>p{font-size:14.5px;line-height:1.85}
  .tc-system-top-return{width:calc(100% - 28px);margin-top:26px}
  .tc-system-top-return>a{width:100%;max-width:360px;min-height:48px}
}

/* ---- typing-coach-polish-v18528 | assets/css/polish-v18528.css ---- */
/* v1.85.28 — clarify TOP return as an in-page "back to top" control */

/* The current page owns the anchor. Keep keyboard focus/anchor positioning clear
   below the persistent Typing Coach header. */
#tc-page-top{scroll-margin-top:82px}

.tc-system-top-return>a span{
  font-size:18px;
  transform:translateY(-1px);
}

/* Smooth movement is helpful on long information pages, while respecting the
   visitor's reduced-motion preference. */
@media (prefers-reduced-motion:no-preference){
  html:has(#tc-page-top){scroll-behavior:smooth}
}

/* TOP itself is also a long content page, so give it the same predictable
   return control as the other Typing Coach information pages. */
.tc-home-system-page .tc-system-top-return{
  width:min(100% - 40px,1180px);
  margin:clamp(26px,4vw,44px) auto 2px;
}

@media(max-width:700px){
  .tc-home-system-page .tc-system-top-return{width:calc(100% - 28px)}
}

/* ---- typing-coach-polish-v18529 | assets/css/polish-v18529.css ---- */
/* v1.85.29 — My Typing Coach dashboard identity + section hierarchy */

.tc-system-page-my-typing-coach .tc-my-panel{
  padding-top:18px;
}
.tc-system-page-my-typing-coach .tc-my-panel [id]{scroll-margin-top:96px}

/* --------------------------------------------------------------------------
   Page identity: make it unmistakable that this is My Typing Coach
   -------------------------------------------------------------------------- */
.tc-my-page-hero{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);
  gap:28px;
  align-items:center;
  margin:0 0 14px;
  padding:30px 32px;
  border:1px solid rgba(229,186,84,.62);
  border-radius:22px;
  background:
    radial-gradient(circle at 92% 14%,rgba(224,184,85,.16),transparent 32%),
    linear-gradient(135deg,#0a2b4d 0%,#103b63 72%,#174a73 100%);
  color:#fff;
  box-shadow:0 16px 36px rgba(7,33,61,.14);
}
.tc-my-page-hero .tc-kicker{color:#e9c35d;letter-spacing:.13em}
.tc-my-page-hero-copy h1{
  margin:5px 0 10px;
  color:#fff;
  font-size:clamp(34px,4vw,50px);
  line-height:1.08;
  letter-spacing:-.025em;
}
.tc-my-page-hero-copy p{margin:0;max-width:720px;color:#dce8f2;font-size:15px;line-height:1.8}
.tc-my-page-hero-copy p strong{color:#fff;font-size:1.08em}
.tc-my-page-hero-status{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  padding:10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:17px;
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(3px);
}
.tc-my-page-hero-status article{
  min-width:0;
  padding:13px 12px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:12px;
  background:rgba(255,255,255,.96);
  color:#163754;
  text-align:center;
}
.tc-my-page-hero-status small,.tc-my-page-hero-status span{display:block;line-height:1.35}
.tc-my-page-hero-status small{color:#71869a;font-size:10px;font-weight:850;letter-spacing:.04em}
.tc-my-page-hero-status strong{display:block;margin:5px 0 4px;color:#0b3157;font-size:18px;line-height:1.2;overflow-wrap:anywhere}
.tc-my-page-hero-status span{color:#8a7a55;font-size:10px;font-weight:750}

.tc-my-jump-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0 0 14px;
  padding:10px;
  border:1px solid #dce5ed;
  border-radius:15px;
  background:#fff;
  box-shadow:0 7px 18px rgba(8,39,70,.04);
}
.tc-my-jump-nav a{
  min-width:0;
  padding:9px 14px;
  border-radius:999px;
  color:#35566f;
  font-size:12px;
  font-weight:850;
  line-height:1.25;
  text-decoration:none;
  white-space:nowrap;
}
.tc-my-jump-nav a:hover,.tc-my-jump-nav a:focus-visible{background:#eef5fa;color:#0c3159;outline:none}
.tc-my-jump-nav a:first-child{background:#fff4d8;color:#805f14}

/* --------------------------------------------------------------------------
   Consistent section rhythm and hierarchy
   -------------------------------------------------------------------------- */
.tc-my-hub-heading,.tc-my-zone-heading{
  margin-bottom:16px;
  padding-bottom:15px;
  border-bottom:1px solid rgba(19,57,88,.10);
}
.tc-my-hub-heading h2,.tc-my-zone-heading h2{
  margin:4px 0 7px;
  color:#0b3157;
  font-size:clamp(24px,2.5vw,31px);
  line-height:1.28;
  letter-spacing:-.01em;
}
.tc-my-hub-heading p,.tc-my-zone-heading p{margin:0;color:#5d7385;font-size:14px;line-height:1.75}

.tc-my-today-hub{
  margin:22px 0 26px;
  padding:23px;
  border:1px solid #e7d8ab;
  border-top:5px solid #d1a53e;
  border-radius:20px;
  background:linear-gradient(145deg,#fffdf8 0%,#fff9ed 100%);
  box-shadow:0 10px 28px rgba(11,47,80,.05);
}
.tc-my-today-hub .tc-my-daily-coaching,
.tc-my-today-hub .tc-my-next-step,
.tc-my-today-hub .tc-my-coach-action{
  margin:12px 0 0;
  box-shadow:none;
}
.tc-my-today-hub .tc-my-daily-coaching{background:#f8fbff}
.tc-my-today-hub .tc-my-next-step{background:#fff}

.tc-my-goals{
  border-top:5px solid #d0a343!important;
  box-shadow:0 10px 28px rgba(11,47,80,.05)!important;
}
.tc-my-growth-report-status{
  border-top:5px solid #4f91bd!important;
  box-shadow:0 10px 28px rgba(11,47,80,.05)!important;
}
.tc-my-goals .tc-my-section-head h3,.tc-my-growth-report-status .tc-my-section-head h3{font-size:clamp(23px,2.2vw,29px)}

/* Growth score becomes a real dashboard zone instead of isolated cards. */
.tc-my-score-zone{
  margin:28px 0;
  padding:24px;
  border:1px solid #cedde9;
  border-top:5px solid #133d64;
  border-radius:20px;
  background:linear-gradient(145deg,#f8fbfe 0%,#f1f7fb 100%);
  box-shadow:0 10px 28px rgba(11,47,80,.05);
}
.tc-my-score-zone .tc-my-coach-rank{margin:0 0 18px}
.tc-my-score-zone .tc-my-30day{margin-top:18px;background:#fff}
.tc-my-subsection-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin:3px 0 12px;
  padding:4px 2px 0;
}
.tc-my-subsection-head h3{margin:3px 0 4px;color:#0d3159;font-size:20px;line-height:1.35}
.tc-my-subsection-head p{margin:0;color:#65788a;font-size:13px;line-height:1.65}
.tc-my-score-zone .tc-my-stats{margin-bottom:0}
.tc-my-score-zone .tc-my-stats .tc-my-stat{background:#fff;box-shadow:0 5px 14px rgba(11,47,80,.035)}

/* The three score components show two different concepts clearly:
   current achievement and weight in the total score. */
.tc-my-rank-components>div{position:relative}
.tc-my-rank-components small{display:block;margin:2px 0 5px;color:rgba(255,255,255,.7);font-size:.64rem;font-weight:750}

/* Brand explanation stays useful, but no longer competes with the actual dashboard. */
.tc-my-brand-benefits{
  border-top:4px solid #d5b15b;
  box-shadow:0 8px 22px rgba(11,47,80,.035);
}
.tc-my-benefit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tc-my-benefit-grid article{padding:13px}

/* Practice history gets its own clearly bounded final section. */
.tc-my-history-section{
  margin:28px 0 8px;
  padding:22px;
  border:1px solid #d5e6dc;
  border-top:5px solid #4b9a6b;
  border-radius:20px;
  background:linear-gradient(145deg,#fff 0%,#fbfefc 100%);
  box-shadow:0 10px 28px rgba(11,47,80,.045);
}
.tc-my-history-section .tc-my-history-heading{margin-top:0;padding-top:0}
.tc-my-history-section .tc-my-recent-heading{font-size:clamp(23px,2.2vw,29px);color:#103b5d}
.tc-my-history-section .tc-table-wrap{margin-top:14px;border-radius:14px;overflow:auto;border:1px solid #dfe8e3;background:#fff}
.tc-my-history-section .tc-history-retention-note{margin-bottom:0}

/* Better readability in dense dashboard parts. */
.tc-system-page-my-typing-coach .tc-my-panel p,
.tc-system-page-my-typing-coach .tc-my-panel small{line-height:1.65}
.tc-system-page-my-typing-coach .tc-my-goal-cards article strong{line-height:1.55}
.tc-system-page-my-typing-coach .tc-report-readiness-grid article{background:#fff}
.tc-system-page-my-typing-coach .tc-user-faq-strip{margin-top:0}

@media(max-width:1050px){
  .tc-my-page-hero{grid-template-columns:1fr;gap:18px}
  .tc-my-page-hero-status{max-width:680px}
  .tc-my-benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-panel{padding-top:10px}
  .tc-my-page-hero{padding:24px 20px;border-radius:18px}
  .tc-my-page-hero-copy h1{font-size:34px}
  .tc-my-page-hero-status{grid-template-columns:1fr 1fr 1fr;padding:8px}
  .tc-my-page-hero-status article{padding:10px 8px}
  .tc-my-jump-nav{justify-content:flex-start;overflow-x:auto;padding:8px}
  .tc-my-jump-nav a{flex:0 0 auto}
  .tc-my-today-hub,.tc-my-score-zone,.tc-my-history-section{padding:18px 15px;border-radius:16px}
  .tc-my-benefit-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  .tc-my-page-hero-status{grid-template-columns:1fr}
  .tc-my-page-hero-copy p br{display:none}
  .tc-my-benefit-grid{grid-template-columns:1fr}
  .tc-my-subsection-head{display:block}
}

/* Major dashboard sections use H2 so the visual and semantic hierarchy match. */
.tc-my-goals .tc-my-section-head h2,
.tc-my-growth-report-status .tc-my-section-head h2{
  margin:4px 0 7px;
  color:#0b3157;
  font-size:clamp(23px,2.2vw,29px);
  line-height:1.32;
  letter-spacing:-.01em;
}

/* ---- typing-coach-polish-v18530 | assets/css/polish-v18530.css ---- */
/* v1.85.30 — consistent button affordance and hover/focus feedback.
   Buttons should look and feel interactive without changing the established color system. */

.tc-system-body button:not(:disabled),
.tc-standalone-body button:not(:disabled),
.tc-system-body a.tc-primary,
.tc-system-body a.tc-secondary,
.tc-system-body a.tc-linkbtn,
.tc-system-body a.tc-home-primary,
.tc-system-body a.tc-home-secondary,
.tc-system-body a.tc-home-faq-outline,
.tc-system-body a.tc-header-login-cta,
.tc-system-body a.tc-header-register-cta,
.tc-system-body a.tc-gsales-primary,
.tc-system-body a.tc-gsales-secondary,
.tc-system-body a.tc-thanks-cta,
.tc-system-body a.tc-page-prev,
.tc-system-body a.tc-page-next,
.tc-system-body .tc-system-top-return>a,
.tc-standalone-body a.tc-primary,
.tc-standalone-body a.tc-secondary,
.tc-standalone-body a.tc-linkbtn,
.tc-standalone-body a.tc-share-main {
  cursor:pointer;
  transition:
    translate .16s ease,
    box-shadow .16s ease,
    filter .16s ease,
    background-color .16s ease,
    border-color .16s ease,
    color .16s ease,
    opacity .16s ease;
}

/* Disabled controls remain clearly non-interactive. */
.tc-system-body button:disabled,
.tc-standalone-body button:disabled,
.tc-system-body [aria-disabled="true"],
.tc-standalone-body [aria-disabled="true"] {
  cursor:not-allowed;
}

/* Pointer devices get a consistent, visible lift + contrast change. */
@media (hover:hover) and (pointer:fine) {
  .tc-system-body button:not(:disabled):hover,
  .tc-standalone-body button:not(:disabled):hover,
  .tc-system-body a.tc-primary:hover,
  .tc-system-body a.tc-secondary:hover,
  .tc-system-body a.tc-linkbtn:hover,
  .tc-system-body a.tc-home-primary:hover,
  .tc-system-body a.tc-home-secondary:hover,
  .tc-system-body a.tc-home-faq-outline:hover,
  .tc-system-body a.tc-header-login-cta:hover,
  .tc-system-body a.tc-header-register-cta:hover,
  .tc-system-body a.tc-gsales-primary:hover,
  .tc-system-body a.tc-gsales-secondary:hover,
  .tc-system-body a.tc-thanks-cta:hover,
  .tc-system-body a.tc-page-prev:hover,
  .tc-system-body a.tc-page-next:hover,
  .tc-system-body .tc-system-top-return>a:hover,
  .tc-standalone-body a.tc-primary:hover,
  .tc-standalone-body a.tc-secondary:hover,
  .tc-standalone-body a.tc-linkbtn:hover,
  .tc-standalone-body a.tc-share-main:hover {
    translate:0 -2px;
    filter:brightness(.97) saturate(1.04);
    box-shadow:0 8px 20px rgba(11,47,80,.14);
  }

  /* Text-style buttons need a surface change too, not only a lift. */
  .tc-system-body button.tc-text-button:not(:disabled):hover,
  .tc-standalone-body button.tc-text-button:not(:disabled):hover,
  .tc-system-body a.tc-text-button:hover,
  .tc-standalone-body a.tc-text-button:hover {
    background:#f2f7fb;
    border-color:#b9ccda;
  }

  /* Destructive actions keep their semantic red cue. */
  .tc-system-body button.is-danger:not(:disabled):hover,
  .tc-standalone-body button.is-danger:not(:disabled):hover,
  .tc-system-body a.is-danger:hover,
  .tc-standalone-body a.is-danger:hover {
    background:#fff1f3;
    border-color:#d88996;
    color:#9f2639;
  }
}

/* Keyboard users get equally clear feedback. */
.tc-system-body button:focus-visible,
.tc-standalone-body button:focus-visible,
.tc-system-body a.tc-primary:focus-visible,
.tc-system-body a.tc-secondary:focus-visible,
.tc-system-body a.tc-linkbtn:focus-visible,
.tc-system-body a.tc-home-primary:focus-visible,
.tc-system-body a.tc-home-secondary:focus-visible,
.tc-system-body a.tc-home-faq-outline:focus-visible,
.tc-system-body a.tc-header-login-cta:focus-visible,
.tc-system-body a.tc-header-register-cta:focus-visible,
.tc-system-body a.tc-gsales-primary:focus-visible,
.tc-system-body a.tc-gsales-secondary:focus-visible,
.tc-system-body a.tc-thanks-cta:focus-visible,
.tc-system-body a.tc-page-prev:focus-visible,
.tc-system-body a.tc-page-next:focus-visible,
.tc-system-body .tc-system-top-return>a:focus-visible,
.tc-standalone-body a.tc-primary:focus-visible,
.tc-standalone-body a.tc-secondary:focus-visible,
.tc-standalone-body a.tc-linkbtn:focus-visible,
.tc-standalone-body a.tc-share-main:focus-visible {
  outline:3px solid rgba(45,105,167,.34);
  outline-offset:3px;
  box-shadow:0 0 0 2px #fff,0 7px 18px rgba(11,47,80,.14);
}

/* Press feedback makes the control feel like a button rather than a static card. */
.tc-system-body button:not(:disabled):active,
.tc-standalone-body button:not(:disabled):active,
.tc-system-body a.tc-primary:active,
.tc-system-body a.tc-secondary:active,
.tc-system-body a.tc-linkbtn:active,
.tc-system-body a.tc-home-primary:active,
.tc-system-body a.tc-home-secondary:active,
.tc-system-body a.tc-home-faq-outline:active,
.tc-system-body a.tc-gsales-primary:active,
.tc-system-body a.tc-gsales-secondary:active,
.tc-standalone-body a.tc-primary:active,
.tc-standalone-body a.tc-secondary:active,
.tc-standalone-body a.tc-linkbtn:active,
.tc-standalone-body a.tc-share-main:active {
  translate:0 0;
  box-shadow:0 3px 9px rgba(11,47,80,.12);
}

@media (prefers-reduced-motion:reduce) {
  .tc-system-body button,
  .tc-standalone-body button,
  .tc-system-body a,
  .tc-standalone-body a {
    transition:none!important;
  }
}

/* ---- typing-coach-polish-v18531 | assets/css/polish-v18531.css ---- */
/* v1.85.31 — member value delivery + report preview refinements */

/* Group sales: show what managers can easily give members. */
.tc-gsales-v18531 .tc-gsales-member-value{background:linear-gradient(180deg,#eef7fb 0%,#f8fbfd 100%)}
.tc-gsales-v18531 .tc-gsales-member-value-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.82fr);gap:34px;align-items:center;max-width:1000px;margin:30px auto 0}
.tc-gsales-v18531 .tc-gsales-member-value-points{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tc-gsales-v18531 .tc-gsales-member-value-points article{display:flex;gap:12px;padding:16px;border:1px solid #d9e5ec;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(15,56,88,.04)}
.tc-gsales-v18531 .tc-gsales-member-value-points article>b{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#fff5d9;color:#9b741b;font-size:11px}
.tc-gsales-v18531 .tc-gsales-member-value-points strong{display:block;color:#163c5d;font-size:14px;line-height:1.55}
.tc-gsales-v18531 .tc-gsales-member-value-points p{margin:5px 0 0;color:#66798a;font-size:12.5px;line-height:1.72}
.tc-gsales-v18531 .tc-gsales-member-value-easy{margin-top:13px;padding:18px 20px;border-radius:15px;background:#0d3458;color:#fff}
.tc-gsales-v18531 .tc-gsales-member-value-easy>span{display:block;color:#e9bd51;font-size:10px;font-weight:900;letter-spacing:.13em}
.tc-gsales-v18531 .tc-gsales-member-value-easy strong{display:block;margin:5px 0 7px;font-size:17px;line-height:1.55}
.tc-gsales-v18531 .tc-gsales-member-value-easy p{margin:0;color:#d8e6f0;font-size:12.5px;line-height:1.72}
.tc-gsales-v18531 .tc-gsales-member-value-preview{padding:20px;border:1px solid #d1e0e9;border-radius:18px;background:#fff;box-shadow:0 18px 44px rgba(14,54,85,.1)}
.tc-gsales-v18531 .tc-gsales-member-value-preview-head{padding-bottom:13px;border-bottom:1px solid #e4ebf0}.tc-gsales-v18531 .tc-gsales-member-value-preview-head span,.tc-gsales-v18531 .tc-gsales-member-value-preview-head strong,.tc-gsales-v18531 .tc-gsales-member-value-preview-head small{display:block}.tc-gsales-v18531 .tc-gsales-member-value-preview-head span{color:#a77d1d;font-size:9px;font-weight:900;letter-spacing:.12em}.tc-gsales-v18531 .tc-gsales-member-value-preview-head strong{margin-top:4px;color:#123b5c;font-size:18px}.tc-gsales-v18531 .tc-gsales-member-value-preview-head small{margin-top:3px;color:#7a8b98}
.tc-gsales-v18531 .tc-gsales-member-value-preview-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}.tc-gsales-v18531 .tc-gsales-member-value-preview-kpis span{padding:9px;border-radius:10px;background:#f4f8fb;text-align:center}.tc-gsales-v18531 .tc-gsales-member-value-preview-kpis small,.tc-gsales-v18531 .tc-gsales-member-value-preview-kpis b{display:block}.tc-gsales-v18531 .tc-gsales-member-value-preview-kpis small{font-size:9px;color:#718391}.tc-gsales-v18531 .tc-gsales-member-value-preview-kpis b{margin-top:2px;color:#153d5d;font-size:15px}
.tc-gsales-v18531 .tc-gsales-member-value-preview-card{margin-top:9px;padding:12px 13px;border-radius:11px;border:1px solid #dce6ed}.tc-gsales-v18531 .tc-gsales-member-value-preview-card small{display:block;font-weight:900;color:#54748c}.tc-gsales-v18531 .tc-gsales-member-value-preview-card ul{margin:7px 0 0;padding-left:18px;color:#405f76;font-size:11.5px;line-height:1.7}.tc-gsales-v18531 .tc-gsales-member-value-preview-card.is-next{background:#fff8e8;border-color:#ead48f}.tc-gsales-v18531 .tc-gsales-member-value-preview-card.is-next p{margin:6px 0 0;color:#5a4b25;font-size:11.5px;line-height:1.7}
.tc-gsales-v18531 .tc-gsales-member-value-preview-foot{display:flex;justify-content:space-between;gap:10px;margin-top:11px;padding-top:10px;border-top:1px solid #e5edf2;color:#668093;font-size:10px}.tc-gsales-v18531 .tc-gsales-member-value-preview-foot b{color:#123b5c}

/* Actual group manager: make member value obvious before operational controls. */
.tc-group-member-value-hero{margin:18px 0;padding:20px;border:1px solid #d3e3ec;border-radius:16px;background:linear-gradient(135deg,#eef7fb,#f9fcfd)}
.tc-group-member-value-hero h5,.tc-group-member-value-hero h3{margin:4px 0 7px;color:#103b5d;font-size:19px;line-height:1.5}
.tc-group-member-value-hero p{margin:0;color:#5e7689;line-height:1.7}
.tc-group-member-value-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-top:14px}
.tc-group-member-value-grid span{display:flex;flex-direction:column;gap:4px;min-height:54px;padding:10px;border:1px solid #dce7ee;border-radius:10px;background:#fff;color:#355a75;font-size:11px;font-weight:800;text-align:center;justify-content:center}
.tc-group-member-value-grid b{color:#ae8323;font-size:9px;letter-spacing:.08em}
.tc-group-admin-report-hub .tc-group-report-batch-mail{min-width:320px}

/* Member report: member-facing value pack. */
.tc-member-value-pack{margin:16px 0 18px;padding:18px;border:1px solid #cfe0ea;border-radius:16px;background:linear-gradient(135deg,#edf7fb,#fbfdfe)}
.tc-member-value-pack-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.tc-member-value-pack-head h6{margin:4px 0 5px;color:#123b5b;font-size:18px;line-height:1.5}.tc-member-value-pack-head p{margin:0;color:#60798b;line-height:1.65}
.tc-value-pack-auto{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#0d3458;color:#fff;font-size:10px;font-weight:900}
.tc-member-value-pack-grid{display:grid;grid-template-columns:1.45fr .7fr .7fr 1.25fr;gap:9px;margin-top:14px}
.tc-member-value-pack-grid article{padding:13px;border:1px solid #dce6ed;border-radius:12px;background:#fff}.tc-member-value-pack-grid article>span{display:block;color:#728492;font-size:10px;font-weight:900}.tc-member-value-pack-grid strong{display:block;margin-top:6px;color:#123b5b;font-size:22px}.tc-member-value-pack-grid small{display:block;margin-top:3px;color:#7b8d9a}.tc-member-value-pack-grid ul{margin:7px 0 0;padding-left:17px;color:#3f5e75;line-height:1.65}.tc-member-value-pack-grid p{margin:7px 0 0;color:#425f75;line-height:1.7}.tc-member-value-pack-grid .is-next{background:#fffaf0;border-color:#ead9a8}
.tc-member-value-pack-note{display:block;margin-top:9px;color:#788b98;line-height:1.55}

/* Group demo uses the same visual language. */
.tc-demo-member-value-hero{margin-top:16px}.tc-demo-member-value-hero .tc-group-member-value-grid{grid-template-columns:repeat(3,1fr)}

@media(max-width:1050px){
 .tc-gsales-v18531 .tc-gsales-member-value-layout{grid-template-columns:1fr;max-width:780px}
 .tc-gsales-v18531 .tc-gsales-member-value-preview{max-width:560px;margin:0 auto;width:100%;box-sizing:border-box}
 .tc-group-member-value-grid{grid-template-columns:repeat(3,1fr)}
 .tc-member-value-pack-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
 .tc-gsales-v18531 .tc-gsales-member-value-points{grid-template-columns:1fr}
 .tc-gsales-v18531 .tc-gsales-member-value-preview-kpis{grid-template-columns:1fr 1fr 1fr}
 .tc-group-member-value-grid,.tc-demo-member-value-hero .tc-group-member-value-grid{grid-template-columns:1fr 1fr}
 .tc-member-value-pack-head{display:block}.tc-value-pack-auto{display:inline-block;margin-top:8px}
 .tc-member-value-pack-grid{grid-template-columns:1fr}
}
.tc-gsales-v18531 .tc-gsales-member-value-demo{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:9px 13px;border:1px solid rgba(255,255,255,.45);border-radius:9px;color:#fff;text-decoration:none;font-size:12px;font-weight:850;transition:.18s ease}.tc-gsales-v18531 .tc-gsales-member-value-demo:hover,.tc-gsales-v18531 .tc-gsales-member-value-demo:focus-visible{background:#fff;color:#0d3458;transform:translateY(-1px)}

/* ---- typing-coach-polish-v18532 | assets/css/polish-v18532.css ---- */
/* v1.85.32 — report readability, identity and issuer polish */
.tc-growth-report-hero h1{
  color:#fff!important;
  line-height:1.25;
  overflow-wrap:normal;
  word-break:keep-all;
}
.tc-growth-report-hero>p{max-width:72ch}
.tc-report-hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:13px 0 9px;
}
.tc-report-hero-meta>span{
  display:flex;
  align-items:baseline;
  gap:7px;
  min-width:0;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:9px;
  background:rgba(255,255,255,.08);
}
.tc-report-hero-meta small{
  color:#cbdbe7;
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
}
.tc-report-hero-meta strong{
  color:#fff;
  font-size:13px;
  font-weight:850;
  overflow-wrap:anywhere;
}
.tc-report-goal-grid.is-four{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
}
.tc-report-goal-grid>div,
.tc-report-goal-timeline article{min-width:0}
.tc-report-goal-grid strong,
.tc-report-goal-grid p,
.tc-report-goal-timeline article strong,
.tc-report-goal-timeline article span{
  overflow-wrap:anywhere;
  word-break:normal;
}
.tc-report-goal-timeline{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap:12px;
  align-items:stretch;
}
.tc-report-goal-timeline>i{display:none}
.tc-report-goal-timeline article{
  display:flex;
  flex-direction:column;
  gap:6px;
  height:auto;
}
.tc-report-goal-timeline article small,
.tc-report-goal-timeline article strong,
.tc-report-goal-timeline article span{margin:0}
.tc-report-goal-timeline article strong{line-height:1.6}
.tc-report-goal-timeline article>span{
  margin-top:0;
  line-height:1.7;
}
.tc-report-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 28px 24px;
  padding:16px 0 0;
  border-top:1px solid #e2e9ee;
  color:#6b7f8e;
  font-size:12px;
}
.tc-report-footer strong{color:#173b5b;letter-spacing:.02em}
.tc-demo-report-footer{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:22px;
  padding-top:15px;
  border-top:1px solid #dce6ed;
  color:#687d8e;
  font-size:12px;
}
.tc-demo-report-footer strong{color:#173b5b}
@media(max-width:720px){
  .tc-report-hero-meta{display:grid;grid-template-columns:1fr}
  .tc-report-hero-meta>span{justify-content:space-between}
  .tc-report-footer,.tc-demo-report-footer{display:block}
  .tc-report-footer{margin-left:16px;margin-right:16px}
  .tc-report-footer strong,.tc-demo-report-footer strong{display:block;margin-top:5px}
}

/* ---- typing-coach-polish-v18533 | assets/css/polish-v18533.css ---- */
/* v1.85.33 — integrated report copy and delivery clarity */
.tc-growth-report-hero .tc-report-hero-description{margin:8px 0 0;max-width:760px;color:#dbe8f2!important;font-size:13px;line-height:1.75}

/* ---- typing-coach-polish-v18537 | assets/css/polish-v18537.css ---- */

.tc-audience-compare{background:linear-gradient(180deg,#f8fbfd,#fff)}.tc-audience-cards{display:grid;gap:14px;margin:0 auto 20px}.tc-audience-cards.is-3cols{grid-template-columns:repeat(3,minmax(0,1fr))}.tc-audience-cards.is-2cols{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}.tc-audience-cards article{position:relative;padding:22px 20px 20px;border:1px solid #dbe5eb;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(18,58,88,.05)}.tc-audience-cards article>span{display:block;font-size:10px;font-weight:900;letter-spacing:.12em;color:#957025}.tc-audience-cards article>strong{display:block;margin:5px 0 8px;color:#153b5b;font-size:20px}.tc-audience-cards article>p{margin:0 0 13px;color:#61778a;font-size:14px;line-height:1.7}.tc-audience-cards ul{margin:0;padding:0;list-style:none;display:grid;gap:7px}.tc-audience-cards li{position:relative;padding-left:20px;color:#405a6d;font-size:13.5px;line-height:1.55}.tc-audience-cards li:before{content:'✓';position:absolute;left:0;color:#2f7a54;font-weight:900}.tc-audience-cards .is-premium{border-color:#e5bdc7;background:linear-gradient(180deg,#fff8fa,#fff)}.tc-audience-cards .is-premium>span{color:#9e3850}.tc-audience-cards .is-groups{border-color:#c5d9e8;background:linear-gradient(180deg,#f5faff,#fff)}.tc-audience-cards .is-groups>span{color:#1e5b85}.tc-audience-status{display:inline-flex;margin-top:14px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:850}.tc-audience-status.is-open{background:#eaf7ee;color:#246341}.tc-audience-status.is-closed{background:#f5ecee;color:#7d3544}.tc-audience-table-wrap{overflow:auto;border:1px solid #dce5eb;border-radius:15px;background:#fff}.tc-audience-table{width:100%;border-collapse:collapse;min-width:760px}.tc-audience-table th,.tc-audience-table td{padding:13px 15px;border-bottom:1px solid #e4eaee;text-align:left;font-size:13.5px;line-height:1.55}.tc-audience-table th{background:#0b2f50;color:#fff}.tc-audience-table th:first-child{background:#173d5d}.tc-audience-table td:first-child{font-weight:850;color:#284b66}.tc-audience-table small{color:#6d7f8c}.tc-audience-groups-link{display:block;width:max-content;max-width:100%;margin:15px auto 0;color:#1d5d88;font-weight:850;text-decoration:none}.tc-audience-groups-link:hover{text-decoration:underline}@media(max-width:900px){.tc-audience-cards.is-3cols{grid-template-columns:1fr 1fr}.tc-audience-cards.is-3cols .is-groups{grid-column:1/-1}}@media(max-width:640px){.tc-audience-cards.is-3cols,.tc-audience-cards.is-2cols{grid-template-columns:1fr}.tc-audience-cards.is-3cols .is-groups{grid-column:auto}.tc-audience-cards article{padding:19px 16px}}

/* ---- typing-coach-polish-v18541 | assets/css/polish-v18541.css ---- */
/* v1.85.41 — settings-linked plan comparison clarity */
.tc-plan-table th small,
.tc-audience-table th small{
  display:block;
  margin-top:3px;
  font-size:10px;
  line-height:1.35;
  opacity:.84;
  color:inherit;
}
.tc-plan-compare-note{
  max-width:900px;
  margin:14px auto 0;
  padding:13px 15px;
  border:1px solid #ead9aa;
  border-radius:12px;
  background:#fff9ec;
  color:#52697a;
  font-size:13px;
  line-height:1.75;
}
.tc-plan-compare-note strong{color:#173d5d}
.tc-plan-application-note{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border:1px solid #dce5eb;
  border-radius:10px;
  background:#f5f8fa;
  color:#617484;
  font-size:13px;
  font-weight:800;
  line-height:1.5;
}
.tc-audience-role-map{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  max-width:900px;
  margin:0 auto 20px;
}
.tc-audience-role-map article{
  padding:15px 18px;
  border:1px solid #dbe5eb;
  border-radius:14px;
  background:#fff;
  text-align:center;
  box-shadow:0 6px 18px rgba(18,58,88,.035);
}
.tc-audience-role-map article.is-groups{
  border-color:#c5d9e8;
  background:#f3f8fc;
}
.tc-audience-role-map small{
  display:block;
  color:#8c6a24;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
}
.tc-audience-role-map .is-groups small{color:#1e5b85}
.tc-audience-role-map strong{
  display:block;
  margin:3px 0;
  color:#173d5d;
  font-size:17px;
  line-height:1.45;
}
.tc-audience-role-map span{
  display:block;
  color:#657a8b;
  font-size:12.5px;
  line-height:1.5;
}
.tc-audience-role-map>i{
  color:#8b9aa6;
  font-size:12px;
  font-style:normal;
  font-weight:850;
  white-space:nowrap;
}
.tc-audience-kind{
  display:inline-flex!important;
  width:max-content;
  margin:0 0 9px;
  padding:4px 8px;
  border-radius:999px;
  background:#eef4f7;
  color:#526b7d!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.03em!important;
  line-height:1.35;
}
.tc-audience-cards .is-premium .tc-audience-kind{
  background:#f8e9ed;
  color:#8f3249!important;
}
.tc-audience-cards .is-groups .tc-audience-kind{
  background:#e7f1f8;
  color:#1d5c86!important;
}
.tc-audience-plan-price{
  display:block;
  margin-top:12px;
  color:#5f7485;
  font-size:12px;
  font-weight:800;
  line-height:1.5;
}
.tc-audience-table-intro{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  margin:2px 0 10px;
  padding:12px 14px;
  border-radius:12px;
  background:#0b2f50;
  color:#fff;
}
.tc-audience-table-intro strong{
  flex:0 0 auto;
  font-size:13px;
  font-weight:900;
}
.tc-audience-table-intro span{
  color:#dbe7ef;
  font-size:12.5px;
  line-height:1.55;
  text-align:right;
}
.tc-audience-table th.is-premium{background:#9e3850}
.tc-audience-table th.is-groups{background:#1e5b85}
.tc-audience-table td.is-premium{background:#fff9fa}
.tc-audience-table td.is-groups{background:#f7fbfe}
.tc-audience-table tbody tr:first-child td{font-weight:850}
.tc-audience-table td small{
  display:block;
  margin-top:2px;
  line-height:1.5;
}
@media(max-width:720px){
  .tc-audience-role-map{grid-template-columns:1fr;gap:8px}
  .tc-audience-role-map>i{text-align:center}
  .tc-audience-table-intro{display:block}
  .tc-audience-table-intro span{display:block;margin-top:4px;text-align:left}
  .tc-plan-application-note{width:100%;box-sizing:border-box;text-align:center}
}

/* ---- typing-coach-polish-v18542 | assets/css/polish-v18542.css ---- */
/* v1.85.42 — paid application readiness states */
.tc-audience-status.is-setup{
  background:#fff3d9;
  color:#7a5208;
}
.tc-plan-application-note.is-setup{
  border-color:#e6cc8d;
  background:#fff9eb;
  color:#73520f;
}

/* ---- typing-coach-polish-v18543 | assets/css/polish-v18543.css ---- */
/* v1.85.43 — canonical 4 user types + logged-in access status */

/* Header membership badges */
.tc-header-membership-badges{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
.tc-header-membership-badges>span,.tc-current-user-status-badges>span{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:4px 8px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:9px;font-weight:950;letter-spacing:.08em;line-height:1;white-space:nowrap}
.tc-header-membership-badges .is-free{background:rgba(255,255,255,.1);color:#edf5fb}
.tc-header-membership-badges .is-plus{background:#a43a55;border-color:#d67a91;color:#fff}
.tc-header-membership-badges .is-teams{background:#e7b84e;border-color:#f0d17f;color:#0b3157}
@media(min-width:1101px) and (max-width:1450px){.tc-header-membership-badges{display:none}}
@media(max-width:700px){.tc-header-membership-badges{grid-column:1/-1;justify-content:center;order:-1}.tc-header-user-zone{grid-template-columns:1fr!important}.tc-header-user-zone .tc-system-logout{grid-column:auto!important}}

/* Four public usage types */
.tc-audience-axis-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 18px;align-items:start;margin:0 auto 18px;padding:14px 17px;max-width:1100px;border:1px solid #d9e4eb;border-left:4px solid #d4a439;border-radius:13px;background:#fbfdfe;color:#526b7d}
.tc-audience-axis-note strong{color:#173d5d;font-size:13px;white-space:nowrap}
.tc-audience-axis-note span{font-size:12.5px;line-height:1.7}
.tc-audience-role-map.is-four-way{grid-template-columns:minmax(0,1fr) auto minmax(0,1.15fr) auto minmax(0,1.15fr);max-width:1100px}
.tc-audience-role-map .is-guest{background:#f7f9fb;border-color:#d7e0e6}
.tc-audience-role-map .is-guest small{color:#667b8a}
.tc-audience-cards.is-4cols{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}
.tc-audience-cards .is-guest{border-color:#d6e0e6;background:linear-gradient(180deg,#f8fafb,#fff)}
.tc-audience-cards .is-guest>span{color:#5e7483}
.tc-audience-cards .is-guest .tc-audience-kind{background:#edf2f5;color:#536a79!important}
.tc-audience-status.is-future{background:#eef2f5;color:#5b7080}
.tc-audience-table.is-four-types{min-width:1080px}
.tc-audience-table th.is-guest{background:#506b7e}
.tc-audience-table td.is-guest{background:#fafcfd}
.tc-audience-two-axis-footnote{margin:13px 0 0;padding:12px 14px;border-radius:11px;background:#f4f8fb;color:#5d7181;font-size:12.5px;line-height:1.7}
.tc-audience-two-axis-footnote strong{color:#1b496b}
@media(max-width:1100px){.tc-audience-cards.is-4cols{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-audience-role-map.is-four-way{grid-template-columns:1fr auto 1fr}.tc-audience-role-map.is-four-way>article:last-child{grid-column:1/-1}.tc-audience-role-map.is-four-way>i:last-of-type{display:none}}
@media(max-width:720px){.tc-audience-axis-note{grid-template-columns:1fr}.tc-audience-role-map.is-four-way{grid-template-columns:1fr}.tc-audience-role-map.is-four-way>article:last-child{grid-column:auto}.tc-audience-role-map.is-four-way>i{display:block!important;text-align:center}.tc-audience-cards.is-4cols{grid-template-columns:1fr}}

/* Current user access card — reused on My Typing Coach and Account */
.tc-current-user-status-card{margin:18px 0 20px;padding:20px;border:1px solid #d6e2e9;border-radius:18px;background:linear-gradient(135deg,#fbfdff 0%,#fffdf7 100%);box-shadow:0 8px 26px rgba(13,48,79,.055)}
.tc-current-user-status-card.is-account{margin:18px 0 22px}
.tc-current-user-status-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.tc-current-user-status-heading .tc-kicker{color:#9a701d}
.tc-current-user-status-heading h2{margin:3px 0 4px;color:#123a5b;font-size:20px;line-height:1.4}
.tc-current-user-status-heading p{margin:0;max-width:800px;color:#657989;font-size:12.5px;line-height:1.7}
.tc-current-user-status-badges{display:flex;gap:6px;flex:0 0 auto;padding-top:2px}
.tc-current-user-status-badges>span{border-color:#d4dfe7;background:#fff;color:#3e596c}
.tc-current-user-status-badges .is-plus{border-color:#e0b0bd;background:#fff4f7;color:#92334c}
.tc-current-user-status-badges .is-teams{border-color:#ddc176;background:#fff7df;color:#77540d}
.tc-current-user-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tc-current-user-status-grid article{padding:14px 15px;border:1px solid #e0e7ec;border-radius:13px;background:#fff}
.tc-current-user-status-grid article.is-individual{border-top:3px solid #bd902e}
.tc-current-user-status-grid article.is-teams{border-top:3px solid #39759c}
.tc-current-user-status-grid article.is-practice{border-top:3px solid #4e8264}
.tc-current-user-status-grid small{display:block;color:#738697;font-size:10px;font-weight:900;letter-spacing:.04em}
.tc-current-user-status-grid strong{display:block;margin:4px 0 5px;color:#173d5d;font-size:16px;line-height:1.45;overflow-wrap:anywhere}
.tc-current-user-status-grid p{margin:0;color:#667a89;font-size:11.5px;line-height:1.65}
.tc-current-user-status-teams{margin-top:10px;border:1px solid #dde6eb;border-radius:11px;background:#fff}
.tc-current-user-status-teams summary{cursor:pointer;padding:10px 13px;color:#285471;font-size:12px;font-weight:850}
.tc-current-user-status-teams>div{display:grid;gap:6px;padding:0 12px 12px}
.tc-current-user-status-teams>div>span{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;background:#f6f9fb;color:#52697a;font-size:11.5px}
.tc-current-user-status-teams b{color:#173d5d}.tc-current-user-status-teams em{margin-left:auto;font-style:normal;font-weight:850;color:#2d668b}.tc-current-user-status-teams small{padding:2px 6px;border-radius:999px;background:#fff3d9;color:#785308;font-size:9px;font-weight:900}
.tc-current-user-status-actions{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:12px}
.tc-current-user-status-actions a{color:#1f608a;font-size:12px;font-weight:850;text-decoration:none}
.tc-current-user-status-actions a:hover{text-decoration:underline}
@media(max-width:900px){.tc-current-user-status-grid{grid-template-columns:1fr 1fr}.tc-current-user-status-grid .is-practice{grid-column:1/-1}}
@media(max-width:620px){.tc-current-user-status-card{padding:16px}.tc-current-user-status-heading{display:block}.tc-current-user-status-badges{margin-top:10px}.tc-current-user-status-grid{grid-template-columns:1fr}.tc-current-user-status-grid .is-practice{grid-column:auto}.tc-current-user-status-teams>div>span{align-items:flex-start;flex-wrap:wrap}.tc-current-user-status-teams em{margin-left:0}}

/* ---- typing-coach-polish-v18544 | assets/css/polish-v18544.css ---- */
/* Typing Coach v1.85.44 — membership status discoverability */

/* Global header: membership must be discoverable, not decorative. */
.tc-header-membership-badges{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  flex:0 0 auto!important;
  min-height:32px;
  padding:3px 5px 3px 7px;
  border:1px solid rgba(222,184,78,.34);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.tc-header-membership-badges>small{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  color:#e4bf59;
  font-size:9px;
  font-weight:950;
  letter-spacing:.08em;
  line-height:1;
  white-space:nowrap;
}
.tc-header-membership-badges>span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px;
  min-height:25px!important;
  padding:5px 9px!important;
  border:1px solid rgba(255,255,255,.28)!important;
  border-radius:999px!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.tc-header-membership-badges>span i{
  display:block;
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:currentColor;
  opacity:.85;
}
.tc-header-membership-badges .is-free{
  background:#f4f8fb!important;
  border-color:#d7e1e8!important;
  color:#244e6b!important;
}
.tc-header-membership-badges .is-plus{
  background:#a63b58!important;
  border-color:#d77d95!important;
  color:#fff!important;
  box-shadow:0 3px 10px rgba(164,58,85,.2);
}
.tc-header-membership-badges .is-teams{
  background:#e8bd57!important;
  border-color:#f1d487!important;
  color:#0c3457!important;
}
/* v1.85.43 hid the badge on this width. Keep it visible and compact instead. */
@media(min-width:1101px) and (max-width:1450px){
  .tc-header-membership-badges{display:inline-flex!important;padding-left:5px;gap:3px!important}
  .tc-header-membership-badges>small{font-size:8px}
  .tc-header-membership-badges>span{min-height:23px!important;padding:4px 7px!important;font-size:9px!important}
  .tc-header-membership-badges>span i{width:5px;height:5px;flex-basis:5px}
}
@media(min-width:1101px) and (max-width:1249px){
  .tc-header-membership-badges>small{display:none}
  .tc-header-membership-badges{padding:2px!important}
}
@media(max-width:1100px){
  .tc-header-membership-badges{display:inline-flex!important}
}
@media(max-width:700px){
  .tc-header-membership-badges{grid-column:1/-1;justify-content:center!important;order:-1;width:max-content;max-width:100%;margin:0 auto 2px}
}

/* My Typing Coach / Account: make the primary membership status unmistakable. */
.tc-current-user-status-badges{
  display:grid!important;
  grid-template-columns:auto auto;
  align-items:center;
  gap:5px 7px!important;
  flex:0 0 auto!important;
  min-width:210px;
  padding:10px 12px!important;
  border:1px solid #d8e2e8;
  border-radius:14px;
  background:#f9fbfc;
  box-shadow:0 5px 16px rgba(13,48,79,.055);
}
.tc-current-user-status-caption{
  grid-column:1/-1;
  display:block;
  margin:0;
  color:#708391;
  font-size:9.5px;
  font-weight:950;
  letter-spacing:.09em;
  line-height:1.2;
}
.tc-current-user-primary-badge{
  grid-column:1/-1;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px;
  min-height:38px!important;
  padding:8px 11px!important;
  border:1px solid #d3dee6!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#173f5e!important;
  line-height:1.2!important;
  box-shadow:0 2px 7px rgba(13,48,79,.04);
}
.tc-current-user-primary-badge i,
.tc-current-user-teams-badge i{
  display:block;
  width:9px;
  height:9px;
  flex:0 0 9px;
  border-radius:50%;
  background:currentColor;
  opacity:.82;
}
.tc-current-user-primary-badge strong{
  font-size:14px;
  font-weight:950;
  letter-spacing:.01em;
}
.tc-current-user-primary-badge.is-free{
  border-color:#bfcfd9!important;
  background:#f5f9fb!important;
  color:#174c70!important;
}
.tc-current-user-primary-badge.is-plus{
  border-color:#dca5b4!important;
  background:#fff3f6!important;
  color:#963650!important;
}
.tc-current-user-teams-badge{
  grid-column:1/-1;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:6px;
  width:max-content;
  min-height:27px!important;
  padding:5px 8px!important;
  border:1px solid #dbc279!important;
  border-radius:999px!important;
  background:#fff8e5!important;
  color:#73530d!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
}
.tc-current-user-teams-badge i{width:6px;height:6px;flex-basis:6px}

@media(max-width:900px){
  .tc-current-user-status-heading{gap:12px}
  .tc-current-user-status-badges{min-width:190px}
}
@media(max-width:620px){
  .tc-current-user-status-badges{
    width:100%;
    min-width:0;
    margin-top:12px!important;
    padding:10px!important;
  }
  .tc-current-user-primary-badge{width:100%}
}

/* ---- typing-coach-polish-v18545 | assets/css/polish-v18545.css ---- */
/* Typing Coach v1.85.45 — header membership badge clarity */

/*
 * The account tier is a navigation/status control, not a decorative micro badge.
 * Remove the nested "会員 + pill" appearance from v1.85.44 and present the
 * actual membership name as the primary object users can recognize instantly.
 */
.tc-header-membership-link{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  flex:0 0 auto!important;
  color:inherit!important;
  text-decoration:none!important;
  border-radius:13px;
  outline:none;
}
.tc-header-membership-badges{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.tc-header-membership-badges>small{display:none!important}
.tc-header-membership-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-height:34px!important;
  padding:6px 11px!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  font-size:11px!important;
  font-weight:950!important;
  letter-spacing:.015em!important;
  line-height:1!important;
  white-space:nowrap!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease!important;
}
.tc-header-membership-badge .tc-membership-badge-icon{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  flex:0 0 20px;
  border-radius:7px;
  background:rgba(255,255,255,.56);
}
.tc-header-membership-badge .tc-membership-badge-icon svg{
  display:block;
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tc-header-membership-badge .tc-membership-badge-label{
  display:block;
  font:inherit;
  color:inherit;
  white-space:nowrap;
}
.tc-header-membership-badge.is-free{
  background:#f4f8fb!important;
  border-color:#cddbe4!important;
  color:#174c70!important;
  box-shadow:0 3px 10px rgba(7,42,72,.08)!important;
}
.tc-header-membership-badge.is-plus{
  background:#a63b58!important;
  border-color:#d77d95!important;
  color:#fff!important;
  box-shadow:0 4px 12px rgba(164,58,85,.22)!important;
}
.tc-header-membership-badge.is-plus .tc-membership-badge-icon{background:rgba(255,255,255,.14)}
.tc-header-membership-badge.is-teams{
  background:#f2c75f!important;
  border-color:#f5d98f!important;
  color:#0c3457!important;
  box-shadow:0 3px 10px rgba(211,165,55,.16)!important;
}
.tc-header-membership-arrow{
  display:grid;
  place-items:center;
  width:18px;
  height:28px;
  color:#d6b450;
  font-size:18px;
  font-weight:850;
  line-height:1;
  opacity:.72;
  transition:transform .16s ease,opacity .16s ease;
}
.tc-header-membership-link:hover .tc-header-membership-badge,
.tc-header-membership-link:focus-visible .tc-header-membership-badge{
  transform:translateY(-1px);
}
.tc-header-membership-link:hover .tc-header-membership-arrow,
.tc-header-membership-link:focus-visible .tc-header-membership-arrow{
  transform:translateX(2px);
  opacity:1;
}
.tc-header-membership-link:focus-visible{
  box-shadow:0 0 0 3px rgba(232,189,87,.35);
}

/* Keep the full membership name visible on normal desktop widths. */
@media(min-width:1451px){
  .tc-header-membership-badge{min-height:36px!important;padding:7px 12px!important;font-size:11.5px!important}
}

/* On medium desktop the greeting already becomes secondary; preserve membership clarity. */
@media(min-width:1101px) and (max-width:1450px){
  .tc-header-membership-link{gap:3px!important}
  .tc-header-membership-badges{gap:4px!important}
  .tc-header-membership-badge{min-height:31px!important;padding:5px 8px!important;font-size:10px!important}
  .tc-header-membership-badge .tc-membership-badge-icon{width:17px;height:17px;flex-basis:17px;border-radius:6px}
  .tc-header-membership-badge .tc-membership-badge-icon svg{width:12px;height:12px}
  .tc-header-membership-arrow{width:13px;font-size:15px}
}

/* Tablet: maintain the status, let navigation scroll rather than hiding identity. */
@media(min-width:701px) and (max-width:1100px){
  .tc-header-membership-link{gap:2px!important}
  .tc-header-membership-badges{gap:3px!important}
  .tc-header-membership-badge{min-height:30px!important;padding:5px 7px!important;font-size:9.5px!important}
  .tc-header-membership-badge .tc-membership-badge-icon{width:16px;height:16px;flex-basis:16px}
  .tc-header-membership-badge .tc-membership-badge-icon svg{width:11px;height:11px}
  .tc-header-membership-arrow{display:none!important}
}

/* Mobile user utilities become their own row; keep the badge easy to tap. */
@media(max-width:700px){
  .tc-header-membership-link{
    order:-1;
    width:max-content;
    max-width:100%;
    margin:0 auto 2px;
  }
  .tc-header-membership-badges{justify-content:center!important;flex-wrap:wrap!important}
  .tc-header-membership-badge{min-height:34px!important;padding:6px 10px!important;font-size:10.5px!important}
  .tc-header-membership-arrow{display:none!important}
}

@media(max-width:420px){
  .tc-header-membership-badge{padding:6px 8px!important;font-size:10px!important}
  .tc-header-membership-badge .tc-membership-badge-icon{width:18px;height:18px;flex-basis:18px}
}

/* ---- typing-coach-polish-v18546 | assets/css/polish-v18546.css ---- */
/* v1.85.46 — Free / Plus differentiation and deeper-growth experience */
.tc-plus-growth-studio{margin:24px 0;padding:22px;border:1px solid #d7e2e9;border-radius:20px;background:linear-gradient(145deg,#fbfdff 0%,#fffaf0 100%);box-shadow:0 12px 34px rgba(12,48,78,.06)}
.tc-plus-growth-studio.is-unlocked{border-color:#d8c27f;background:linear-gradient(145deg,#fffdf8 0%,#f6fbff 58%,#fff7f8 100%)}
.tc-plus-growth-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:17px}
.tc-plus-growth-head .tc-kicker{color:#9a701d}.tc-plus-growth-head h2{margin:4px 0 5px;color:#123b5e;font-size:24px;line-height:1.35}.tc-plus-growth-head p{margin:0;max-width:820px;color:#637889;font-size:13px;line-height:1.75}
.tc-plus-access-badge{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border-radius:999px;font-size:10px;font-weight:950;letter-spacing:.09em;white-space:nowrap}
.tc-plus-access-badge.is-plus{border:1px solid #d8a14a;background:#0f385b;color:#f6c85d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.tc-plus-access-badge.is-launch{border:1px solid #b8d8c5;background:#edf8f2;color:#2e6b49}
.tc-plus-access-badge.is-preview{border:1px solid #e3b7c3;background:#fff3f6;color:#96364f}
.tc-plus-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tc-plus-preview-grid article{padding:15px;border:1px solid #dce6ec;border-radius:14px;background:#fff}.tc-plus-preview-grid span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-bottom:8px;border-radius:50%;background:#eef4f8;color:#315e7b;font-size:10px;font-weight:950}.tc-plus-preview-grid strong{display:block;margin-bottom:5px;color:#183f60;font-size:14px}.tc-plus-preview-grid p{margin:0;color:#657a89;font-size:11.5px;line-height:1.7}
.tc-plus-preview-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:13px;padding:13px 15px;border-radius:13px;background:#f7f9fb}.tc-plus-preview-foot>p{margin:0;max-width:780px;color:#637786;font-size:12px;line-height:1.7}.tc-plus-preview-foot>p strong{color:#173e60}.tc-plus-preview-foot>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.tc-plus-preview-status{color:#7a6a52;font-size:10px;font-weight:800;white-space:nowrap}
.tc-plus-launch-note{display:flex;gap:9px 14px;align-items:flex-start;margin-bottom:13px;padding:11px 13px;border:1px solid #cfe5d7;border-radius:12px;background:#f1faf5;color:#587363;font-size:11.5px;line-height:1.7}.tc-plus-launch-note strong{color:#286244;white-space:nowrap}.tc-plus-launch-note span{min-width:0}
.tc-plus-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tc-plus-insight-grid article{padding:15px 14px;border:1px solid #dce5ea;border-top:3px solid #c89a34;border-radius:14px;background:#fff}.tc-plus-insight-grid article:nth-child(2){border-top-color:#397ca5}.tc-plus-insight-grid article:nth-child(3){border-top-color:#4a8262}.tc-plus-insight-grid article:nth-child(4){border-top-color:#a94761}.tc-plus-insight-grid small{display:block;color:#718493;font-size:10px;font-weight:900;letter-spacing:.04em}.tc-plus-insight-grid strong{display:block;margin:5px 0 4px;color:#143c5e;font-size:22px;line-height:1.25}.tc-plus-insight-grid span{display:block;color:#697c8b;font-size:10.5px;line-height:1.5}
.tc-plus-recommendation{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:stretch;margin:12px 0;padding:17px;border-radius:16px;background:#103c60;color:#fff;box-shadow:0 8px 20px rgba(11,48,80,.12)}.tc-plus-recommendation .tc-kicker{color:#f1c55d}.tc-plus-recommendation h3{margin:4px 0 5px;color:#fff;font-size:18px;line-height:1.45}.tc-plus-recommendation p{margin:0;color:#d7e5ef;font-size:12px;line-height:1.75}.tc-plus-recommendation>div:last-child{display:flex;flex-direction:column;justify-content:center;padding:12px 14px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.07)}.tc-plus-recommendation>div:last-child small{color:#b9d0df;font-size:9px;font-weight:900}.tc-plus-recommendation>div:last-child strong{margin:4px 0 9px;color:#f6c85d;font-size:18px}.tc-plus-recommendation a{color:#fff;font-size:11px;font-weight:850;text-decoration:none}.tc-plus-recommendation a:hover{text-decoration:underline}
.tc-plus-deep-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.tc-plus-deep-grid>section{padding:17px;border:1px solid #dce5ea;border-radius:16px;background:#fff}.tc-plus-subhead>span{display:block;color:#a27518;font-size:9px;font-weight:950;letter-spacing:.12em}.tc-plus-subhead h3{margin:3px 0 5px;color:#163e60;font-size:17px}.tc-plus-subhead p{margin:0 0 10px;color:#697d8c;font-size:11px;line-height:1.65}.tc-plus-empty{margin:10px 0 0;padding:12px;border-radius:10px;background:#f6f9fb;color:#6c7e8b;font-size:11px;line-height:1.7}
.tc-plus-timeline>div:last-child{display:grid;gap:7px;margin-top:10px}.tc-plus-timeline article{position:relative;padding:10px 11px 10px 15px;border-left:3px solid #c99b36;border-radius:0 10px 10px 0;background:#fafcfd}.tc-plus-timeline article.is-best{border-left-color:#397aa1}.tc-plus-timeline article.is-accuracy{border-left-color:#4e8665}.tc-plus-timeline article.is-continuity{border-left-color:#a84a61}.tc-plus-timeline time{display:block;color:#7b8a95;font-size:9px}.tc-plus-timeline strong{display:block;margin:2px 0;color:#214865;font-size:12px}.tc-plus-timeline p{margin:0;color:#6a7c89;font-size:10.5px;line-height:1.55}
.tc-plus-phrase-list{display:grid;gap:7px;max-height:430px;overflow:auto;padding-right:3px}.tc-plus-phrase-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 9px;padding:11px 12px;border:1px solid #e4e9ed;border-radius:11px;background:#fcfdfe}.tc-plus-phrase-list blockquote{grid-column:1/-1;margin:0;color:#264a63;font-size:11.5px;font-weight:750;line-height:1.7}.tc-plus-phrase-list span{color:#9a6e1b;font-size:9px;font-weight:900}.tc-plus-phrase-list time{color:#85939d;font-size:9px;text-align:right}
/* Features comparison: make newly differentiated Plus rows easier to scan without relying on color alone. */
.tc-plan-table td:nth-child(3),.tc-audience-table td.is-premium{font-weight:650}.tc-plan-table tr:nth-last-child(-n+6) td:first-child{font-weight:800;color:#294f69}
@media(max-width:1050px){.tc-plus-preview-grid,.tc-plus-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-plus-recommendation{grid-template-columns:minmax(0,1fr) 190px}}
@media(max-width:780px){.tc-plus-growth-studio{padding:17px}.tc-plus-growth-head{display:block}.tc-plus-access-badge{margin-top:9px}.tc-plus-preview-foot{display:block}.tc-plus-preview-foot>div{justify-content:flex-start;margin-top:10px}.tc-plus-recommendation{grid-template-columns:1fr}.tc-plus-deep-grid{grid-template-columns:1fr}.tc-plus-launch-note{display:block}.tc-plus-launch-note strong{display:block;margin-bottom:3px}}
@media(max-width:560px){.tc-plus-preview-grid,.tc-plus-insight-grid{grid-template-columns:1fr}.tc-plus-growth-head h2{font-size:20px}.tc-plus-insight-grid strong{font-size:20px}.tc-plus-recommendation{padding:14px}.tc-plus-deep-grid>section{padding:14px}}

/* ---- typing-coach-polish-v18547 | assets/css/polish-v18547.css ---- */
/* v1.85.47 — Teams benefit entitlement + public access clarity */
.tc-plus-access-badge.is-teams-benefit{border-color:#d7b75f;background:#fff7dc;color:#70500b}
.tc-plus-teams-benefit-note{display:flex;gap:10px 14px;align-items:flex-start;margin:0 0 13px;padding:11px 13px;border:1px solid #e6d18e;border-radius:12px;background:linear-gradient(135deg,#fffaf0,#f6fbff);color:#5b6e7c;font-size:11.5px;line-height:1.7}
.tc-plus-teams-benefit-note strong{flex:0 0 auto;color:#7a590f;white-space:nowrap}.tc-plus-teams-benefit-note span{min-width:0}
.tc-current-user-teams-benefit-badge{grid-column:1/-1;border-color:#e0c56f!important;background:#fff8df!important;color:#79590d!important}
.tc-current-user-teams-benefit-badge i{width:7px;height:7px;border-radius:50%;background:#c79728;box-shadow:0 0 0 3px rgba(199,151,40,.14)}
.tc-current-user-status-grid .tc-inline-benefit{display:inline;color:#72530d;font-size:inherit;line-height:inherit}
.tc-current-user-status-teams small.is-benefit{background:#eef8f1;color:#2f6849}
.tc-gsales-teams-plus-benefit{margin:0 auto 22px;max-width:960px;padding:18px 20px;border:1px solid #e2c66e;border-radius:16px;background:linear-gradient(135deg,#fffaf0,#f6fbff);box-shadow:0 10px 28px rgba(19,55,84,.06);text-align:center}
.tc-gsales-teams-plus-benefit>span{display:block;color:#9a711b;font-size:10px;font-weight:950;letter-spacing:.14em}.tc-gsales-teams-plus-benefit>strong{display:block;margin:5px 0 7px;color:#173d5d;font-size:20px;line-height:1.45}.tc-gsales-teams-plus-benefit>p{margin:0;color:#607483;font-size:12.5px;line-height:1.8}
.tc-plan-compare-note.is-user-access-note{border-left:3px solid #d2aa48;background:#fffaf0}
@media(max-width:780px){.tc-plus-teams-benefit-note{display:block}.tc-plus-teams-benefit-note strong{display:block;margin-bottom:3px}.tc-gsales-teams-plus-benefit{padding:16px}.tc-gsales-teams-plus-benefit>strong{font-size:18px}}

/* ---- typing-coach-polish-v18551 | assets/css/polish-v18551.css ---- */
/* Typing Coach v1.85.51
 * Short-practice layout stability + compact metrics.
 * The sentence is the primary visual target. Session typography is decided
 * once from the selected questions and remains fixed during the session.
 */

/* Desktop/reference canvas: reclaim vertical space from KPI cards and give it
   to the example block without changing the one-screen reference height. */
.tc-practice-canvas{
  grid-template-rows:48px 72px 174px 76px 32px 228px 28px!important;
}
.tc-practice-canvas .tc-metrics-formal{
  height:72px!important;
}
.tc-practice-canvas .tc-metric-card{
  height:72px!important;
  min-height:72px!important;
  grid-template-columns:46px minmax(0,1fr)!important;
  gap:9px!important;
  padding:6px 12px!important;
}
.tc-practice-canvas .tc-metric-icon{
  width:38px!important;
  height:38px!important;
}
.tc-practice-canvas .tc-metric-icon svg{
  width:23px!important;
  height:23px!important;
}
.tc-practice-canvas .tc-metric-icon-x{
  font-size:30px!important;
}
.tc-practice-canvas .tc-metric-label{
  font-size:11.5px!important;
  line-height:1.05!important;
}
.tc-practice-canvas .tc-metric-label small{
  font-size:7px!important;
}
.tc-practice-canvas .tc-metric-copy{
  min-height:0!important;
}
.tc-practice-canvas .tc-metric-copy b{
  margin-top:1px!important;
  font-size:29px!important;
  line-height:1!important;
}
.tc-practice-canvas .tc-metric-sub{
  margin-top:1px!important;
  font-size:7.5px!important;
  line-height:1.05!important;
}

/* Short lessons: a stable two-line-safe sentence block. The actual font sizes
   are CSS variables set once when the session questions are prepared. */
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-sentence-formal{
  height:174px!important;
  min-height:174px!important;
  padding:4px 50px 0!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-rows:148px 20px!important;
  align-content:start!important;
}
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example{
  width:100%!important;
  height:148px!important;
  min-height:148px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:stretch!important;
  overflow:hidden!important;
}
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-jp,
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-kana,
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-roman{
  width:1260px!important;
  max-width:1260px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-jp{
  flex:0 0 auto!important;
  margin-top:0!important;
  padding-bottom:4px!important;
  font-size:var(--tc-short-jp-size,49px)!important;
  line-height:1.17!important;
  letter-spacing:.045em!important;
}
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-kana{
  flex:0 0 auto!important;
  margin-top:3px!important;
  font-size:var(--tc-short-kana-size,18.5px)!important;
  line-height:1.18!important;
  letter-spacing:.085em!important;
}
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-roman{
  flex:0 0 auto!important;
  margin-top:2px!important;
  font-size:var(--tc-short-roman-size,23.5px)!important;
  line-height:1.17!important;
  letter-spacing:.085em!important;
  word-break:break-all!important;
}
.tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-progress-row{
  margin:1px auto 0!important;
}

/* The session can intentionally use a two-line Japanese example. Reserve the
   space from question 1 so later questions never push kana/romaji downward. */
.tc-shell[data-short-layout="two-line"] .tc-practice-canvas .tc-current-example{
  justify-content:flex-start!important;
  padding-top:1px!important;
  box-sizing:border-box!important;
}

/* Fluid/tablet view: keep the same information hierarchy, but use available
   width rather than the 1600px reference canvas. */
@media(max-width:1100px){
  .tc-practice-canvas .tc-metric-card{
    min-height:64px!important;
    height:64px!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    padding:5px 8px!important;
  }
  .tc-practice-canvas .tc-metric-icon{
    width:32px!important;
    height:32px!important;
  }
  .tc-practice-canvas .tc-metric-icon svg{width:20px!important;height:20px!important;}
  .tc-practice-canvas .tc-metric-copy b{font-size:24px!important;}
  .tc-practice-canvas .tc-metric-sub{font-size:7px!important;}
  .tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-sentence-formal{
    height:auto!important;
    min-height:170px!important;
    padding:12px 10px 7px!important;
    display:block!important;
    overflow:visible!important;
  }
  .tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example{
    height:auto!important;
    min-height:138px!important;
    overflow:visible!important;
  }
  .tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-jp,
  .tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-kana,
  .tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-roman{
    width:100%!important;
    max-width:100%!important;
  }
}

@media(max-width:760px){
  .tc-practice-canvas .tc-metrics-formal{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    height:auto!important;
  }
  .tc-practice-canvas .tc-metric-card{
    height:58px!important;
    min-height:58px!important;
  }
  .tc-practice-canvas .tc-metric-copy b{font-size:22px!important;}
  .tc-shell[data-lesson-type="short"] .tc-practice-canvas .tc-sentence-formal{
    min-height:188px!important;
  }
}

/* ---- typing-coach-polish-v18552 | assets/css/polish-v18552.css ---- */
/* Typing Coach v1.85.52
 * Short-practice sentence lane repair.
 * The sentence must never sit underneath the KPI row.  KPI cards are clipped
 * to their own track, while Japanese / Kana / Romaji have dedicated lanes.
 */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas{
  grid-template-rows:48px 64px 182px 76px 32px 228px 28px!important;
  row-gap:3px!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metrics-formal{
  grid-row:2!important;
  height:64px!important;
  min-height:64px!important;
  max-height:64px!important;
  overflow:hidden!important;
  position:relative!important;
  z-index:1!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card{
  height:64px!important;
  min-height:64px!important;
  max-height:64px!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  gap:8px!important;
  padding:5px 10px!important;
  overflow:hidden!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metric-icon{
  width:34px!important;
  height:34px!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metric-icon svg{
  width:20px!important;
  height:20px!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metric-icon-x{
  font-size:26px!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metric-label{
  font-size:10.5px!important;
  line-height:1!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metric-label small{
  font-size:6.5px!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metric-copy b{
  margin-top:0!important;
  font-size:26px!important;
  line-height:.96!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-metric-sub{
  margin-top:0!important;
  font-size:6.8px!important;
  line-height:1!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-sentence-formal{
  grid-row:3!important;
  width:100%!important;
  height:182px!important;
  min-height:182px!important;
  max-height:182px!important;
  margin:0!important;
  padding:3px 50px 0!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:158px 20px!important;
  align-content:start!important;
  overflow:hidden!important;
  position:relative!important;
  z-index:2!important;
  background:#fff!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example{
  width:100%!important;
  height:158px!important;
  min-height:158px!important;
  max-height:158px!important;
  display:grid!important;
  grid-template-rows:98px 24px 32px!important;
  row-gap:1px!important;
  align-content:start!important;
  overflow:hidden!important;
  padding:0!important;
  box-sizing:border-box!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-jp,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-kana,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-roman{
  width:1260px!important;
  max-width:1260px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-jp{
  height:98px!important;
  min-height:98px!important;
  max-height:98px!important;
  margin-top:0!important;
  padding:0 0 3px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  font-size:var(--tc-short-jp-size,49px)!important;
  line-height:1.10!important;
  letter-spacing:.035em!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  border-bottom:1px dashed #c8cbd0!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-jp-line{
  display:block!important;
  width:100%!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-kana{
  height:24px!important;
  min-height:24px!important;
  max-height:24px!important;
  margin-top:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  font-size:var(--tc-short-kana-size,18.5px)!important;
  line-height:1.05!important;
  letter-spacing:.075em!important;
  white-space:nowrap!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-roman{
  height:32px!important;
  min-height:32px!important;
  max-height:32px!important;
  margin-top:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  font-size:var(--tc-short-roman-size,23.5px)!important;
  line-height:1.05!important;
  letter-spacing:.070em!important;
  white-space:nowrap!important;
  word-break:normal!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-progress-row{
  height:20px!important;
  min-height:20px!important;
  max-height:20px!important;
  margin:0 auto!important;
  align-self:start!important;
}

@media(max-width:1100px){
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-sentence-formal{
    height:auto!important;
    min-height:184px!important;
    max-height:none!important;
    padding:8px 12px 4px!important;
    overflow:visible!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example{
    width:100%!important;
    height:auto!important;
    min-height:158px!important;
    max-height:none!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-jp,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-kana,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="short"] .tc-practice-canvas .tc-current-example .tc-roman{
    width:100%!important;
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v18554 | assets/css/polish-v18554.css ---- */
/* v1.85.54 — history result replay + clearer history actions */
.tc-history-action{
  min-width:142px;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.tc-history-result-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 11px;
  border:1px solid #b8cadc;
  border-radius:9px;
  background:#f4f8fc;
  color:#0c416d;
  font-weight:800;
  font-size:13px;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.tc-history-result-btn:hover,.tc-history-result-btn:focus-visible{
  background:#fff;
  border-color:#6f9abc;
  box-shadow:0 6px 18px rgba(10,47,79,.10);
  transform:translateY(-1px);
}
.tc-history-result-detail{
  margin:28px 0 22px;
  padding:28px;
  border:1px solid #d5e0e9;
  border-top:4px solid #c5962e;
  border-radius:22px;
  background:#fff;
  box-shadow:0 16px 44px rgba(11,44,73,.08);
  scroll-margin-top:125px;
}
.tc-history-result-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:20px;
}
.tc-history-result-head h2{
  margin:4px 0 8px;
  color:#092f54;
  font-size:clamp(28px,3vw,40px);
  line-height:1.2;
}
.tc-history-result-head p{margin:0;color:#587086;line-height:1.75}
.tc-history-result-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.tc-history-result-grid article{
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:16px 12px;
  border:1px solid #dce6ee;
  border-radius:16px;
  background:#f8fbfd;
  text-align:center;
}
.tc-history-result-grid article:nth-child(1){border-top:3px solid #467fac}
.tc-history-result-grid article:nth-child(2){border-top:3px solid #5c8f6f}
.tc-history-result-grid article:nth-child(3){border-top:3px solid #bc526b}
.tc-history-result-grid article:nth-child(4){border-top:3px solid #c5962e}
.tc-history-result-grid strong{font-size:32px;line-height:1;color:#0a3158}
.tc-history-result-grid span{margin-top:8px;color:#64798c;font-weight:800;font-size:13px}
.tc-history-result-meta{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:12px 0 22px;
}
.tc-history-result-meta>span{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:10px 12px;
  border-radius:12px;
  background:#f5f7f9;
}
.tc-history-result-meta small{color:#75879a;font-size:11px;font-weight:700}
.tc-history-result-meta b{color:#173d61;font-size:14px}
.tc-history-result-card{
  margin-top:14px;
  padding:20px 22px;
  border:1px solid #dce5ec;
  border-radius:16px;
  background:#fbfcfd;
}
.tc-history-result-card.is-growth{background:#f4faf6;border-color:#cfe4d6}
.tc-history-result-card.is-coaching{background:#f6f9fd;border-color:#d6e2ef}
.tc-history-result-card.is-learning{background:#fffaf0;border-color:#ecdcae}
.tc-history-result-card h3{margin:5px 0 10px;color:#103a60;font-size:21px}
.tc-history-result-card p{margin:7px 0;color:#4f677b;line-height:1.8}
.tc-history-result-focus,.tc-history-question,.tc-history-perspective,.tc-history-highlight,.tc-history-actions{
  margin-top:14px;
  padding:14px 16px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(22,63,98,.10);
}
.tc-history-result-focus span,.tc-history-question span,.tc-history-highlight>span,.tc-history-actions>span{
  display:block;
  color:#708195;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
}
.tc-history-result-focus strong,.tc-history-question strong{display:block;margin-top:4px;color:#103b61;font-size:17px;line-height:1.55}
.tc-history-highlight blockquote{margin:7px 0 5px;padding:0;border:0;color:#173d61;font-size:19px;font-weight:800;line-height:1.65}
.tc-history-highlight small{color:#8d6817;font-weight:700}
.tc-history-perspective strong{color:#244b6d}
.tc-history-actions ul{margin:8px 0 0 18px}
.tc-history-actions li{margin:6px 0;color:#274b6a;font-weight:700}
.tc-history-actions li small{display:block;margin-top:2px;color:#6b7d8e;font-weight:400}
.tc-history-theme-badge{
  display:inline-flex;
  margin:2px 0 6px;
  padding:4px 9px;
  border-radius:999px;
  background:#fff2cf;
  color:#77540c;
  font-size:12px;
  font-weight:800;
}
.tc-history-result-compact-note{
  margin-top:14px;
  padding:14px 16px;
  border-radius:13px;
  background:#f7f7f8;
  color:#5c6a77;
}
.tc-history-result-compact-note p{margin:4px 0 0;line-height:1.7}
.tc-history-result-footer{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
@media (max-width:900px){
  .tc-history-result-grid,.tc-history-result-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-history-result-detail{padding:20px}
}
@media (max-width:620px){
  .tc-history-result-head{flex-direction:column}
  .tc-history-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-history-result-meta{grid-template-columns:1fr 1fr}
  .tc-history-result-grid article{min-height:94px}
  .tc-history-result-grid strong{font-size:26px}
  .tc-history-action{min-width:126px}
}

/* ---- typing-coach-polish-v18558 | assets/css/polish-v18558.css ---- */
/* v1.85.58: Member full-free features page polish */
.tc-plan-current#individual-plans .tc-features-heading{max-width:900px;margin-left:auto;margin-right:auto}
.tc-plan-current#individual-plans .tc-plan-current-grid{margin-top:18px}
.tc-plan-current#individual-plans .tc-plan-status-note{max-width:900px}

.tc-audience-role-map.is-three-way{
  grid-template-columns:minmax(0,.9fr) 34px minmax(0,1.08fr) 34px minmax(0,1.08fr);
  gap:12px;
  max-width:1100px;
}
.tc-audience-role-map.is-three-way>i{
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  border-radius:999px;
  background:#f1f5f7;
  color:#7d8e99;
  font-size:13px;
}
.tc-audience-role-map.is-three-way article{
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.tc-audience-role-map.is-three-way article.is-member{
  border-color:#dccb99;
  background:linear-gradient(180deg,#fffdf7,#fff);
}
.tc-audience-role-map.is-three-way article.is-member small{color:#8c6a24}
.tc-audience-role-map.is-three-way article.is-groups{
  border-color:#c5d9e8;
  background:linear-gradient(180deg,#f4f9fd,#fff);
}

.tc-audience-cards.is-3cols{align-items:stretch}
.tc-audience-cards.is-3cols>article{display:flex;flex-direction:column}
.tc-audience-cards.is-3cols>article ul{flex:1}
.tc-audience-cards.is-3cols .tc-audience-status{align-self:flex-start;margin-top:16px}
.tc-audience-cards.is-3cols .tc-audience-plan-price{display:block;margin-top:12px}

@media(max-width:820px){
  .tc-audience-role-map.is-three-way{
    grid-template-columns:1fr;
    gap:8px;
    max-width:680px;
  }
  .tc-audience-role-map.is-three-way>i{
    width:34px;
    min-width:34px;
    margin:0 auto;
  }
  .tc-audience-role-map.is-three-way>i:last-of-type{font-size:0}
  .tc-audience-role-map.is-three-way>i:last-of-type:after{content:'または';font-size:11px}
  .tc-audience-cards.is-3cols{grid-template-columns:1fr}
  .tc-audience-cards.is-3cols .is-groups{grid-column:auto}
}

@media(min-width:821px) and (max-width:1040px){
  .tc-audience-role-map.is-three-way{grid-template-columns:minmax(0,.85fr) 28px minmax(0,1fr) 28px minmax(0,1fr);gap:8px}
  .tc-audience-role-map.is-three-way>i{min-width:28px;width:28px;height:28px}
  .tc-audience-role-map.is-three-way article{padding:14px 12px}
  .tc-audience-role-map.is-three-way strong{font-size:15px}
  .tc-audience-role-map.is-three-way span{font-size:11.5px}
  .tc-audience-cards.is-3cols{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tc-audience-cards.is-3cols .is-groups{grid-column:auto}
}

/* ---- typing-coach-polish-v18559 | assets/css/polish-v18559.css ---- */
/* v1.85.59 — features page visual implementation aligned to design comp */
.tc-features-page{
  position:relative;
  padding:0 0 8px;
  background:
    radial-gradient(circle at 0% 14%,rgba(240,225,191,.38),transparent 28%),
    radial-gradient(circle at 100% 82%,rgba(214,232,245,.45),transparent 26%),
    linear-gradient(180deg,#f9fbfd 0%,#f7fafc 100%);
}
.tc-features-page:before{
  content:"";
  position:absolute;
  inset:180px 0 auto;
  height:140px;
  background:linear-gradient(180deg,rgba(250,245,235,.95),rgba(250,245,235,0));
  clip-path:ellipse(74% 62% at 50% 0%);
  pointer-events:none;
}
.tc-features-page .tc-features-section,
.tc-features-page .tc-features-hero,
.tc-features-page .tc-features-final{
  box-shadow:0 18px 44px rgba(11,47,80,.07);
}

/* Hero */
.tc-features-hero{
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:26px;
  padding:50px 42px 42px;
  background:
    radial-gradient(circle at 95% 6%,rgba(255,255,255,.08),transparent 22%),
    radial-gradient(circle at 8% 95%,rgba(232,198,107,.18),transparent 22%),
    linear-gradient(135deg,#082849 0%,#0e3b63 58%,#1b5278 100%);
}
.tc-features-hero:before{
  content:"";
  position:absolute;
  left:-4%;
  right:-4%;
  bottom:-86px;
  height:170px;
  background:linear-gradient(180deg,rgba(255,244,224,.94),rgba(255,244,224,.74));
  border-radius:50% 50% 0 0/100% 100% 0 0;
  transform:rotate(-2.6deg);
}
.tc-features-hero:after{
  width:440px;
  height:440px;
  right:-190px;
  top:-210px;
  border-color:rgba(225,191,103,.22);
}
.tc-features-hero>*{position:relative;z-index:1}
.tc-features-hero-copy{padding-right:10px}
.tc-features-hero-copy p{max-width:620px}
.tc-features-hero-actions .tc-primary{box-shadow:0 10px 24px rgba(10,20,35,.24)}

.tc-features-hero-art{
  position:relative;
  min-height:420px;
}
.tc-hero-device{
  position:absolute;
  left:0;
  top:20px;
  width:min(100%,420px);
  border-radius:26px;
  padding:16px 16px 18px;
  background:linear-gradient(180deg,#244766,#132f4b);
  box-shadow:0 24px 50px rgba(8,23,41,.38);
}
.tc-hero-device:after{
  content:"";
  position:absolute;
  left:5%;
  right:5%;
  bottom:-12px;
  height:14px;
  border-radius:999px;
  background:rgba(3,15,27,.35);
  filter:blur(7px);
}
.tc-hero-device-notch{
  display:block;
  width:112px;
  height:9px;
  border-radius:0 0 12px 12px;
  margin:0 auto 8px;
  background:#09192a;
}
.tc-hero-device-screen{
  border-radius:20px;
  padding:18px 18px 16px;
  background:linear-gradient(180deg,#fafdff,#eef4f9);
  color:#17324b;
  min-height:220px;
}
.tc-hero-screen-kicker{
  display:block;
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  color:#8b6a24;
}
.tc-hero-screen-title{
  display:block;
  margin-top:8px;
  font-size:28px;
  line-height:1.35;
  color:#173b5a;
}
.tc-hero-screen-lines{display:grid;gap:8px;margin-top:14px}
.tc-hero-screen-lines span{
  display:block;
  height:8px;
  border-radius:999px;
  background:linear-gradient(90deg,#d6e4ee,#eef4f8);
}
.tc-hero-screen-lines span:nth-child(1){width:74%}
.tc-hero-screen-lines span:nth-child(2){width:88%}
.tc-hero-screen-lines span:nth-child(3){width:61%}
.tc-hero-keyboard{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
  margin-top:18px;
  align-items:end;
}
.tc-hero-keyboard i{
  display:block;
  height:22px;
  border-radius:6px;
  background:#e3edf4;
  box-shadow:inset 0 -2px 0 rgba(10,37,60,.07);
}
.tc-hero-keyboard i:nth-child(6),
.tc-hero-keyboard i:nth-child(9),
.tc-hero-keyboard i:nth-child(12){background:#d7e8f7}
.tc-hero-keyboard i:nth-child(4),
.tc-hero-keyboard i:nth-child(11){background:#fae8b4}

.tc-hero-stat-card{
  position:absolute;
  right:118px;
  top:98px;
  width:168px;
  padding:16px 14px;
  border-radius:22px;
  background:#fff;
  color:#17324b;
  box-shadow:0 18px 36px rgba(11,47,80,.18);
  text-align:center;
}
.tc-hero-stat-card small{
  display:block;
  font-size:10px;
  letter-spacing:.16em;
  font-weight:900;
  color:#8d6c25;
}
.tc-hero-stat-card strong{
  display:block;
  margin-top:7px;
  font-size:42px;
  line-height:1;
  color:#1f5783;
}
.tc-hero-stat-card>span{display:block;margin-top:4px;font-size:12px;font-weight:900;color:#5f7586}
.tc-hero-stat-card>div{
  display:grid;
  grid-template-columns:auto 1fr auto 1fr;
  align-items:center;
  gap:6px 8px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #e0e9ef;
  text-align:left;
}
.tc-hero-stat-card b{font-size:19px;color:#0f4670}
.tc-hero-stat-card em{font-style:normal;font-size:11px;font-weight:800;color:#718596}

.tc-hero-books{
  position:absolute;
  right:10px;
  bottom:60px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.tc-hero-books span{
  display:block;
  min-width:124px;
  padding:11px 18px;
  border-radius:10px;
  background:linear-gradient(180deg,#fffdf8,#f1ddae);
  color:#28435a;
  font-size:14px;
  font-weight:900;
  letter-spacing:.06em;
  box-shadow:0 10px 24px rgba(7,24,40,.18);
  transform-origin:right center;
}
.tc-hero-books span:nth-child(2){transform:translateX(-10px)}
.tc-hero-books span:nth-child(3){transform:translateX(-18px)}
.tc-hero-books span:nth-child(4){transform:translateX(-6px)}

.tc-hero-tagline{
  position:absolute;
  right:18px;
  top:8px;
  color:#d7e7f2;
  font-size:24px;
  line-height:1.2;
  font-style:italic;
  font-family:"Brush Script MT", "Segoe Script", cursive;
  text-align:right;
  opacity:.96;
}
.tc-hero-stage-pills{
  position:absolute;
  right:0;
  top:34px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.tc-hero-stage-pills span{
  display:grid;
  place-items:center;
  width:132px;
  min-height:56px;
  border-radius:14px;
  border:1px solid rgba(227,190,92,.46);
  background:rgba(255,249,239,.98);
  color:#163b5a;
  box-shadow:0 12px 28px rgba(8,28,46,.18);
}
.tc-hero-stage-pills b{display:block;font-size:14px;letter-spacing:.12em}
.tc-hero-stage-pills small{display:block;margin-top:2px;font-size:11px;font-weight:800;color:#687c8c}

/* Shared cards */
.tc-features-heading>span{letter-spacing:.18em}
.tc-features-section{border-color:#e0e8ee;background:rgba(255,255,255,.94)}
.tc-features-six article,
.tc-feature-catalog-grid article,
.tc-score-formula article,
.tc-goal-input-mock article,
.tc-audience-cards>article,
.tc-plan-current-grid article,
.tc-plan-benefit-strip article,
.tc-report-materials-grid article,
.tc-report-preview article,
.tc-report-format>div{
  box-shadow:0 12px 28px rgba(11,47,80,.05);
}

/* 6 benefits */
.tc-features-six{gap:18px}
.tc-features-six article{
  min-height:200px;
  padding:24px 20px 22px;
  background:linear-gradient(180deg,#ffffff,#fbfdfd);
}
.tc-features-six article:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(237,244,249,.52),transparent 44%);
  pointer-events:none;
}
.tc-features-six article>b{font-size:20px;right:18px;top:14px}
.tc-features-six article>span{
  width:58px;
  height:58px;
  border-radius:16px;
  font-size:24px;
  box-shadow:inset 0 -3px 0 rgba(10,37,60,.05);
}
.tc-features-six h3{font-size:19px;margin-top:16px}

/* Growth cycle */
.tc-growth-cycle{
  background:linear-gradient(180deg,#fffefc,#ffffff);
  overflow:hidden;
}
.tc-growth-cycle-layout{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(250px,.55fr);
  gap:18px;
  align-items:center;
}
.tc-growth-cycle-track{
  display:grid;
  grid-template-columns:repeat(11,auto);
  align-items:center;
  gap:8px;
  overflow-x:auto;
  padding:10px 2px 4px;
}
.tc-growth-cycle-track article{
  min-width:124px;
  padding:16px 12px;
  border:1px solid #dfE8ef;
  border-radius:999px;
  background:#fff;
  text-align:center;
  box-shadow:0 12px 26px rgba(11,47,80,.05);
}
.tc-growth-cycle-track article span{
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  margin:0 auto 10px;
  border-radius:50%;
  background:#edf5fb;
  color:#285a82;
  font-size:23px;
  font-weight:900;
}
.tc-growth-cycle-track article:nth-of-type(3n) span{background:#fff7e2;color:#9a7220}
.tc-growth-cycle-track article:nth-of-type(5n) span{background:#f6ecf0;color:#a1445b}
.tc-growth-cycle-track article strong{display:block;font-size:18px;color:#163c5c}
.tc-growth-cycle-track article small{display:block;margin-top:5px;font-size:12px;line-height:1.55;color:#6d8192}
.tc-growth-cycle-track article.is-growth{
  background:linear-gradient(180deg,#c89d3f,#b88825);
  border-color:#b88825;
}
.tc-growth-cycle-track article.is-growth span{background:rgba(255,255,255,.18);color:#fff}
.tc-growth-cycle-track article.is-growth strong,
.tc-growth-cycle-track article.is-growth small{color:#fff}
.tc-growth-cycle-track>i{
  font-style:normal;
  font-size:28px;
  color:#b99748;
  line-height:1;
}
.tc-growth-cycle-side{position:relative;min-height:228px}
.tc-growth-cycle-note{
  position:absolute;
  right:10px;
  top:0;
  color:#315a79;
  font-size:28px;
  line-height:1.2;
  font-style:italic;
  font-family:"Brush Script MT", "Segoe Script", cursive;
  text-align:right;
}
.tc-growth-cycle-figure{
  position:absolute;
  inset:auto 0 0 auto;
  width:230px;
  height:200px;
  border-radius:26px 26px 0 26px;
  background:linear-gradient(180deg,#fbfdff,#eef5f9);
  overflow:hidden;
}
.tc-growth-cycle-figure:before{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:0;
  height:18px;
  border-radius:18px 18px 0 0;
  background:#f0d9a2;
}
.tc-growth-cycle-monitor{
  position:absolute;
  right:20px;
  bottom:54px;
  width:96px;
  height:78px;
  border-radius:12px;
  background:linear-gradient(180deg,#ffffff,#edf4fa);
  border:1px solid #d6e2eb;
}
.tc-growth-cycle-monitor:before{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  top:14px;
  height:8px;
  border-radius:999px;
  background:#d6e3ee;
}
.tc-growth-cycle-monitor:after{
  content:"";
  position:absolute;
  left:14px;
  right:14px;
  bottom:18px;
  height:26px;
  background:linear-gradient(90deg,#b8d3ea 20%,#86badf 20% 36%,#f1d48a 36% 58%,#dce9f3 58%);
  border-radius:8px;
}
.tc-growth-cycle-person{position:absolute;left:26px;bottom:28px;width:100px;height:128px}
.tc-growth-cycle-person i{display:block;position:absolute;right:22px;top:4px;width:38px;height:38px;border-radius:50%;background:#27445d}
.tc-growth-cycle-person b{display:block;position:absolute;left:0;bottom:0;width:96px;height:96px;border-radius:46px 46px 18px 18px;background:linear-gradient(180deg,#7aa5ca,#3b6286)}
.tc-growth-cycle-plant{position:absolute;left:10px;bottom:12px;width:40px;height:60px}
.tc-growth-cycle-plant:before{content:"";position:absolute;left:10px;bottom:0;width:20px;height:18px;border-radius:4px;background:#b9984c}
.tc-growth-cycle-plant span{position:absolute;display:block;width:20px;height:32px;border-radius:20px 20px 4px 20px;background:#8eb38b}
.tc-growth-cycle-plant span:first-child{left:2px;bottom:18px;transform:rotate(-24deg)}
.tc-growth-cycle-plant span:last-child{right:2px;bottom:24px;transform:rotate(24deg)}

/* Catalog */
.tc-feature-catalog-grid{gap:14px}
.tc-feature-catalog-grid article{
  position:relative;
  min-height:152px;
  padding:18px 16px 16px 18px;
  border:1px solid #deE7ee;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#fbfcfd);
}
.tc-feature-catalog-grid article>span{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:14px;
  background:#eef5fa;
  color:#1d5d87;
  font-weight:900;
}
.tc-feature-catalog-grid article:nth-child(3n)>span{background:#fff7e5;color:#9b7625}
.tc-feature-catalog-grid article:nth-child(4n)>span{background:#f7edf0;color:#a0435b}
.tc-feature-catalog-grid article:nth-child(4),
.tc-feature-catalog-grid article:nth-child(10){
  background:linear-gradient(180deg,#fbfdff,#f4f9fc);
}
.tc-feature-catalog-grid article:nth-child(4):after,
.tc-feature-catalog-grid article:nth-child(10):after{
  content:"";
  position:absolute;
  right:18px;
  bottom:18px;
  width:84px;
  height:44px;
  border-radius:12px;
  background:
    linear-gradient(180deg,transparent 0 72%,#d4e1ea 72% 74%,transparent 74%),
    linear-gradient(90deg,#96bddb 18%,transparent 18% 22%,#f0cf7d 22% 44%,transparent 44% 48%,#d56d81 48% 72%,transparent 72% 76%,#b7d2e7 76%);
  opacity:.92;
}
.tc-feature-catalog-grid h3{font-size:18px;margin:14px 0 8px;color:#173b5b}

/* Coach score */
.tc-coach-score-explainer{background:linear-gradient(180deg,#fff,#fbfdff)}
.tc-score-formula{gap:12px;align-items:stretch}
.tc-score-formula article{
  border-radius:18px;
  background:#fff;
  border:1px solid #deE7ee;
  padding:20px 18px 18px;
}
.tc-score-formula article.is-skill{border-top:4px solid #4a86b1}
.tc-score-formula article.is-continuity{border-top:4px solid #6b8fb4}
.tc-score-formula article.is-learning{border-top:4px solid #d4a74d}
.tc-score-share{display:flex;align-items:flex-end;gap:2px;margin-bottom:10px;color:#143a58}
.tc-score-share strong{font-size:44px;line-height:1}.tc-score-share small{font-size:20px;font-weight:900;transform:translateY(-6px)}
.tc-score-en{display:block;font-size:12px;letter-spacing:.14em;color:#718596;font-weight:900}
.tc-score-breakdown span{background:#f5f8fb}
.tc-score-total{margin-top:16px;padding:18px 20px;border:1px solid #dbe6ee;border-radius:18px;background:#0b2f50;color:#fff;text-align:center;box-shadow:0 16px 34px rgba(11,47,80,.12)}
.tc-score-total-label{display:block;color:#ebc767;font-size:11px;font-weight:900;letter-spacing:.16em}
.tc-score-total>div{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.tc-score-total i{font-style:normal;color:#ebc767}
.tc-score-total p{margin:12px auto 0;max-width:900px;color:#dce7ef;line-height:1.8}
.tc-score-benefits{margin-top:14px}
.tc-score-benefits span{box-shadow:0 8px 18px rgba(11,47,80,.04)}

/* Report section */
.tc-features-report{background:linear-gradient(180deg,#f5fafd,#fff)}
.tc-report-materials,
.tc-report-showcase{
  border:1px solid #deE7ee;
  border-radius:22px;
  background:#fff;
}
.tc-report-showcase{position:relative;overflow:hidden}
.tc-report-showcase:after{
  content:"";
  position:absolute;
  right:-20px;
  bottom:-24px;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(216,232,243,.9),rgba(216,232,243,0));
  pointer-events:none;
}
.tc-report-preview-head{background:linear-gradient(135deg,#0e3558,#18486e)}
.tc-report-preview-body article.is-next{box-shadow:0 12px 28px rgba(11,47,80,.08)}
.tc-report-benefits{
  position:relative;
  padding-right:150px;
}
.tc-report-benefits:after{
  content:"";
  position:absolute;
  right:12px;
  bottom:8px;
  width:108px;
  height:120px;
  border-radius:28px 28px 0 28px;
  background:linear-gradient(180deg,#dbeaf4,#f8fbfe);
  box-shadow:inset 0 -16px 0 #fff4d6;
}
.tc-report-benefits:before{
  content:"";
  position:absolute;
  right:44px;
  bottom:68px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#315e85;
  z-index:1;
}

/* Goals */
.tc-goal-story{background:linear-gradient(180deg,#fffefc,#fff)}
.tc-goal-input-mock.is-four article{
  position:relative;
  overflow:hidden;
  background:#fff;
}
.tc-goal-input-mock.is-four article:before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:62px;
  background:linear-gradient(180deg,rgba(240,246,250,.95),rgba(240,246,250,.58));
}
.tc-goal-input-mock.is-four article:nth-child(2):before{background:linear-gradient(180deg,rgba(251,241,244,.95),rgba(251,241,244,.55))}
.tc-goal-input-mock.is-four article:nth-child(3):before{background:linear-gradient(180deg,rgba(239,247,252,.95),rgba(239,247,252,.55))}
.tc-goal-input-mock.is-four article:nth-child(4):before{background:linear-gradient(180deg,rgba(255,246,226,.95),rgba(255,246,226,.55))}
.tc-goal-input-mock.is-four article>*{position:relative;z-index:1}
.tc-goal-input-mock.is-four article span{
  border-radius:999px;
  padding:5px 10px;
  background:#fff;
  box-shadow:0 6px 16px rgba(11,47,80,.06);
}
.tc-goal-evolution article{box-shadow:0 10px 24px rgba(11,47,80,.05)}

/* Member / usage visuals */
.tc-plan-current#individual-plans,
.tc-audience-compare{
  background:linear-gradient(180deg,#ffffff,#fbfdfe);
}
.tc-plan-current-grid,
.tc-audience-cards{gap:16px}
.tc-plan-current-grid article,
.tc-audience-cards>article,
.tc-plan-benefit-strip article{
  border-radius:18px;
  border:1px solid #dce7ee;
  background:#fff;
}
.tc-audience-cards>article{
  position:relative;
  overflow:hidden;
}
.tc-audience-cards>article:before{
  content:"";
  display:block;
  width:84px;
  height:84px;
  border-radius:50%;
  margin:0 auto 12px;
  background:linear-gradient(180deg,#ebf3f9,#d4e4ef);
  box-shadow:inset 0 -12px 0 rgba(255,255,255,.68);
}
.tc-audience-cards>article.is-free:before{background:linear-gradient(180deg,#fbf3da,#ead39a)}
.tc-audience-cards>article.is-premium:before{background:linear-gradient(180deg,#f8e8ec,#e3b8c2)}
.tc-audience-cards>article.is-groups:before{background:linear-gradient(180deg,#e7f2fa,#c9deee)}
.tc-audience-cards>article strong,
.tc-audience-cards>article p,
.tc-audience-cards>article ul,
.tc-audience-cards>article small,
.tc-audience-cards>article span{position:relative;z-index:1}
.tc-audience-cards>article ul{padding-left:20px}
.tc-audience-table-wrap,
.tc-plan-table-wrap{box-shadow:0 12px 28px rgba(11,47,80,.04)}
.tc-audience-table thead th,
.tc-plan-table thead th{font-size:14px}
.tc-audience-table-intro,
.tc-plan-status-note,
.tc-plan-compare-note{border-radius:16px}

/* Accessible */
.tc-features-accessible{background:linear-gradient(180deg,#f5f9fc,#f0f6fa)}
.tc-accessible-points span{border-radius:14px}

/* Final CTA */
.tc-features-final{
  position:relative;
  overflow:hidden;
  padding:58px 24px 62px;
  background:
    linear-gradient(180deg,rgba(7,34,57,.18),rgba(7,34,57,.18)),
    radial-gradient(circle at 18% 84%,rgba(221,186,96,.16),transparent 20%),
    linear-gradient(135deg,#0a2d4d 0%,#113d65 52%,#0b2f50 100%);
}
.tc-features-final:before,
.tc-features-final:after{
  content:"";
  position:absolute;
  bottom:0;
  width:44%;
  height:120px;
  background:linear-gradient(180deg,rgba(12,31,49,0),rgba(4,18,31,.34) 14%,rgba(3,14,24,.74) 100%);
}
.tc-features-final:before{left:-2%;clip-path:polygon(0 100%,0 44%,18% 34%,32% 48%,52% 18%,72% 46%,100% 0,100% 100%)}
.tc-features-final:after{right:-2%;clip-path:polygon(0 100%,0 10%,28% 42%,46% 20%,64% 56%,80% 34%,100% 48%,100% 100%)}
.tc-features-final>*{position:relative;z-index:1}
.tc-features-group-link{display:inline-block;margin-top:16px;color:#e8eff5}

@media(max-width:1180px){
  .tc-hero-stage-pills{position:static;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:18px}
  .tc-hero-stage-pills span{width:auto;min-height:64px}
  .tc-features-hero-art{padding-top:12px;min-height:510px}
  .tc-hero-tagline{top:12px;right:0}
}
@media(max-width:960px){
  .tc-features-hero{grid-template-columns:1fr;padding:36px 24px 28px}
  .tc-features-hero:before{bottom:-72px;height:140px}
  .tc-features-hero-copy{padding-right:0}
  .tc-features-hero-art{min-height:470px}
  .tc-hero-device{position:relative;left:auto;top:auto;width:min(100%,440px)}
  .tc-hero-stat-card{right:10px;top:108px}
  .tc-hero-books{right:0;bottom:22px}
  .tc-growth-cycle-layout{grid-template-columns:1fr}
  .tc-growth-cycle-side{min-height:180px}
  .tc-growth-cycle-figure{position:relative;margin:26px 0 0 auto}
  .tc-growth-cycle-note{right:18px}
}
@media(max-width:720px){
  .tc-features-page:before{display:none}
  .tc-features-hero{padding:30px 18px 24px}
  .tc-features-hero-art{min-height:auto;display:flex;flex-direction:column;gap:16px}
  .tc-hero-device,
  .tc-hero-stat-card,
  .tc-hero-books,
  .tc-hero-tagline,
  .tc-hero-stage-pills{position:static}
  .tc-hero-device{width:100%}
  .tc-hero-screen-title{font-size:24px}
  .tc-hero-stat-card{width:100%;box-sizing:border-box}
  .tc-hero-books{flex-direction:row;flex-wrap:wrap}
  .tc-hero-books span{transform:none;min-width:0;flex:1 1 calc(50% - 6px);text-align:center}
  .tc-hero-tagline{text-align:left;font-size:22px;padding-left:4px}
  .tc-hero-stage-pills{grid-template-columns:repeat(2,1fr)}
  .tc-growth-cycle-track{grid-template-columns:1fr;gap:10px}
  .tc-growth-cycle-track>i{transform:rotate(90deg);justify-self:center}
  .tc-growth-cycle-track article{min-width:0;border-radius:22px}
  .tc-growth-cycle-note{position:static;display:block;margin-bottom:12px;text-align:left}
  .tc-growth-cycle-figure{width:100%;max-width:260px;height:190px}
  .tc-report-benefits{padding-right:0}
  .tc-report-benefits:after,
  .tc-report-benefits:before{display:none}
  .tc-audience-cards>article:before{width:72px;height:72px}
}
@media(max-width:460px){
  .tc-hero-stage-pills{grid-template-columns:1fr}
  .tc-hero-books span{flex-basis:100%}
  .tc-features-heading h2{font-size:29px}
}

/* ---- typing-coach-polish-v18560 | assets/css/polish-v18560.css ---- */
/* v1.85.60 — features page second-pass visual refinement against approved design comp */

/* Make the page read as one designed experience rather than stacked outer cards. */
.tc-features-page{
  max-width:1260px;
  overflow:hidden;
  border-radius:28px;
  background:
    radial-gradient(circle at 0 12%,rgba(247,234,207,.72),transparent 24%),
    radial-gradient(circle at 100% 68%,rgba(220,235,245,.55),transparent 24%),
    #fbfcfd;
}
.tc-features-page>.tc-features-section{
  margin:0;
  padding:62px 46px;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:#fff;
}
.tc-features-page>.tc-features-section:nth-of-type(even){background:#fffdf8}
.tc-features-page>.tc-feature-catalog,
.tc-features-page>.tc-coach-score-explainer,
.tc-features-page>.tc-audience-compare{background:#fbfdff}
.tc-features-page>.tc-features-report{background:linear-gradient(180deg,#eef7fc 0%,#f9fcfe 54%,#fff 100%)}
.tc-features-page>.tc-goal-story{background:linear-gradient(180deg,#fffaf0,#fffdf8)}
.tc-features-page>.tc-features-accessible{background:linear-gradient(180deg,#f2f8fb,#edf5f9)}
.tc-features-page>.tc-plan-current,
.tc-features-page>.tc-plan-compare{background:#fff}

/* Hero cleanup: closer to comp, remove the extra vertical TYPE/LEARN pills that competed with the mockup. */
.tc-features-hero{
  min-height:500px;
  border-radius:0;
  box-shadow:none!important;
  padding:64px 54px 56px;
  grid-template-columns:minmax(0,1.06fr) minmax(420px,.94fr);
  background:
    radial-gradient(circle at 94% 12%,rgba(208,226,238,.13),transparent 18%),
    linear-gradient(135deg,#062846 0%,#0c365c 58%,#154b72 100%);
}
.tc-features-hero:before{bottom:-112px;height:190px;background:linear-gradient(180deg,#f8edcf,#fff9ed)}
.tc-features-hero-copy{align-self:center}
.tc-features-hero-copy h1{font-size:clamp(38px,4.4vw,62px);line-height:1.16}
.tc-features-hero-copy p{font-size:16px;max-width:660px}
.tc-hero-stage-pills{display:none!important}
.tc-features-hero-art{min-height:390px}
.tc-hero-device{left:6px;top:70px;width:390px;transform:perspective(900px) rotateY(-4deg)}
.tc-hero-stat-card{right:72px;top:128px;width:156px}
.tc-hero-books{right:0;bottom:40px}
.tc-hero-tagline{right:18px;top:22px;font-size:25px;color:#dbeaf4}
.tc-hero-device-screen{min-height:226px}
.tc-hero-device-screen:after{
  content:"";
  position:absolute;
  left:66px;
  bottom:34px;
  width:126px;
  height:54px;
  border-radius:15px 15px 6px 6px;
  background:
    linear-gradient(90deg,transparent 0 7%,#d4e4ef 7% 14%,transparent 14% 21%,#d4e4ef 21% 28%,transparent 28% 35%,#f3d88b 35% 43%,transparent 43% 50%,#d4e4ef 50% 57%,transparent 57% 64%,#d4e4ef 64% 71%,transparent 71% 78%,#d4e4ef 78% 85%,transparent 85%),
    linear-gradient(180deg,#f7fbfe,#e6f0f6);
  box-shadow:0 8px 18px rgba(11,47,80,.08);
}

/* Benefits: larger, cleaner icons and more breathing room. */
.tc-features-page>.tc-features-section:first-of-type{padding-top:70px}
.tc-features-six{gap:20px}
.tc-features-six article{min-height:218px;padding:26px 24px 24px;border-color:#e3e9ee;background:#fff;box-shadow:0 14px 32px rgba(11,47,80,.055)}
.tc-features-six article>span{width:64px;height:64px;border-radius:50%;font-size:26px;background:#eef6fc}
.tc-features-six article:nth-child(2)>span,.tc-features-six article:nth-child(5)>span{background:#fff4d9}
.tc-features-six article:nth-child(3)>span,.tc-features-six article:nth-child(6)>span{background:#f9ecef}
.tc-features-six article>b{font-size:18px;letter-spacing:.06em}
.tc-features-six h3{font-size:20px}

/* Growth cycle: use a real illustration asset and let the cycle itself dominate the section. */
.tc-growth-cycle{overflow:hidden}
.tc-growth-cycle-layout{grid-template-columns:minmax(0,1.28fr) minmax(300px,.55fr);gap:28px}
.tc-growth-cycle-track{gap:10px;padding:18px 2px 8px}
.tc-growth-cycle-track article{min-width:134px;padding:18px 12px;border-radius:24px;background:#fff}
.tc-growth-cycle-track article span{width:68px;height:68px;font-size:26px}
.tc-growth-cycle-track>i{font-size:34px;color:#b99748}
.tc-growth-cycle-side{min-height:255px}
.tc-growth-cycle-note{right:12px;top:4px;font-size:27px;z-index:2}
.tc-growth-cycle-figure{
  width:330px;
  height:230px;
  right:0;
  bottom:-8px;
  border-radius:0;
  background:url('../images/features-growth.svg') center/contain no-repeat;
  overflow:visible;
}
.tc-growth-cycle-figure>*{display:none}

/* The supervision section was visually too heavy; keep the content but present it as a refined editorial band. */
.tc-coach-value{
  grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr)!important;
  gap:32px!important;
  padding-top:48px!important;
  padding-bottom:48px!important;
  background:linear-gradient(135deg,#fffdf9 0%,#f6fbfe 100%)!important;
}
.tc-coach-value-copy h2{font-size:clamp(28px,3vw,40px)!important;max-width:720px!important}
.tc-coach-value-copy>p{font-size:14.5px!important;line-height:1.9!important}
.tc-coach-value-side{align-self:center}
.tc-coach-value-visual{box-shadow:0 14px 30px rgba(11,47,80,.06);border-radius:18px;overflow:hidden}
.tc-coach-theme-panel{padding:18px!important;border-radius:18px!important;box-shadow:0 12px 28px rgba(11,47,80,.045)}
.tc-coach-theme-groups{gap:8px!important}
.tc-coach-theme-groups section{padding:10px 12px!important}

/* Feature catalog: mimic comp's mixed feature cards + UI snippets. */
.tc-feature-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}
.tc-feature-catalog-grid article{min-height:160px!important;padding:20px!important;border-radius:17px!important;background:#fff!important;box-shadow:0 12px 28px rgba(11,47,80,.05)!important}
.tc-feature-catalog-grid article.has-mini-ui{grid-row:span 2;min-height:336px!important;background:linear-gradient(180deg,#fff,#f7fbfe)!important}
.tc-feature-catalog-grid article>span{width:50px;height:50px;border-radius:14px}
.tc-feature-catalog-grid article.has-mini-ui:after{display:none!important}
.tc-mini-result-ui{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;padding:14px;border-radius:15px;background:#f3f8fb;border:1px solid #dbe6ee}
.tc-mini-result-ui>div:not(.tc-mini-result-bars){padding:10px;border-radius:11px;background:#fff}
.tc-mini-result-ui small{display:block;color:#718596;font-size:10px;font-weight:900;letter-spacing:.05em}
.tc-mini-result-ui strong{display:block;margin-top:4px;color:#0d416a;font-size:27px}
.tc-mini-result-bars{grid-column:1/-1;display:flex;align-items:end;gap:7px;height:78px;padding:10px 8px 0}
.tc-mini-result-bars i{flex:1;border-radius:6px 6px 2px 2px;background:#8bb9d9}
.tc-mini-result-bars i:nth-child(1){height:32%}.tc-mini-result-bars i:nth-child(2){height:58%}.tc-mini-result-bars i:nth-child(3){height:43%}.tc-mini-result-bars i:nth-child(4){height:76%;background:#d4aa50}.tc-mini-result-bars i:nth-child(5){height:92%}
.tc-mini-score-ui{margin-top:18px;padding:16px;border-radius:16px;background:#0b2f50;color:#fff;text-align:center}
.tc-mini-score-ui>b{display:block;font-size:42px;line-height:1;color:#f0cd72}
.tc-mini-score-ui>span{display:block;margin-top:4px;font-size:11px;font-weight:900;letter-spacing:.08em;color:#dce8f0}
.tc-mini-score-ui>div{display:grid;grid-template-columns:7fr 2fr 1fr;gap:4px;height:8px;margin-top:14px}
.tc-mini-score-ui i{display:block;border-radius:999px;background:#69a1c9}.tc-mini-score-ui i:nth-child(2){background:#8eb57c}.tc-mini-score-ui i:nth-child(3){background:#d3a548}

/* Metrics: make the 70/20/10 cards more like the approved comp. */
.tc-coach-score-explainer{padding-top:64px!important;padding-bottom:64px!important}
.tc-score-formula{grid-template-columns:1fr auto 1fr auto 1fr!important;gap:14px!important}
.tc-score-formula article{padding:24px 22px 22px!important;border-radius:18px!important;background:#fff!important}
.tc-score-share strong{font-size:52px!important}
.tc-score-total{border-radius:16px!important;padding:16px 20px!important}
.tc-score-benefits span{background:#fff!important}

/* Growth report: turn the right side into a real coaching visual instead of abstract placeholder shapes. */
.tc-report-showcase{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)!important;gap:20px!important;background:#fff!important}
.tc-report-benefits{min-height:320px;padding:28px 30px 28px!important;background:linear-gradient(180deg,#fff,#f6fbfe)}
.tc-report-benefits:after{
  display:block!important;
  right:10px!important;
  bottom:10px!important;
  width:190px!important;
  height:160px!important;
  border-radius:0!important;
  background:url('../images/features-coach.svg') center/contain no-repeat!important;
  box-shadow:none!important;
  opacity:1!important;
}
.tc-report-benefits:before{display:none!important}
.tc-report-benefits>p,.tc-report-benefit-list,.tc-report-advice-mock{position:relative;z-index:2;max-width:68%}
.tc-report-advice-mock{margin:18px 0;padding:15px 16px;border:1px solid #d8e5ee;border-radius:14px;background:#fff;box-shadow:0 12px 26px rgba(11,47,80,.055)}
.tc-report-advice-mock small{display:block;color:#a07a25;font-size:10px;font-weight:900;letter-spacing:.08em}
.tc-report-advice-mock strong{display:block;margin-top:7px;color:#173b5a;font-size:16px;line-height:1.6}
.tc-report-advice-mock span{display:block;margin-top:6px;color:#6b7f8e;font-size:12px;line-height:1.6}

/* Purpose cards: clearer Why/What grouping and a small staircase motif. */
.tc-goal-story{position:relative;overflow:hidden}
.tc-goal-story:after{content:"";position:absolute;left:34px;bottom:34px;width:150px;height:72px;background:linear-gradient(135deg,transparent 0 22%,#e7d9aa 22% 42%,transparent 42% 50%,#d6c27d 50% 70%,transparent 70% 78%,#c7a957 78%);clip-path:polygon(0 100%,0 72%,31% 72%,31% 49%,60% 49%,60% 24%,87% 24%,87% 0,100% 0,100% 100%);opacity:.55;pointer-events:none}
.tc-goal-input-mock.is-four{position:relative;z-index:1}
.tc-goal-input-mock.is-four article{border-radius:16px!important;box-shadow:0 12px 28px rgba(11,47,80,.05)}

/* Member section: four benefits should feel like designed tiles, not a settings summary. */
.tc-plan-current#individual-plans .tc-plan-current-grid{grid-template-columns:repeat(4,1fr)!important;gap:14px!important}
.tc-plan-current#individual-plans .tc-plan-current-grid article{min-height:118px!important;padding:20px 16px!important;text-align:center!important}
.tc-plan-current#individual-plans .tc-plan-current-grid article>span{display:grid!important;place-items:center!important;width:46px!important;height:46px!important;margin:0 auto 10px!important;border-radius:50%!important;background:#fff3d5!important;color:#9b7420!important;font-size:20px!important}
.tc-plan-current#individual-plans .tc-plan-status-note{background:transparent!important;border:0!important;text-align:center!important}

/* Usage type illustrations */
.tc-audience-cards>article:before{width:112px!important;height:92px!important;margin:0 auto 15px!important;border-radius:20px!important;background-size:contain!important;background-repeat:no-repeat!important;background-position:center!important;box-shadow:none!important}
.tc-audience-cards>article.is-guest:before{background-image:url('../images/features-guest.svg')!important;background-color:transparent!important}
.tc-audience-cards>article.is-free:before{background-image:url('../images/features-member.svg')!important;background-color:transparent!important}
.tc-audience-cards>article.is-premium:before{background-image:url('../images/features-member.svg')!important;background-color:transparent!important;filter:hue-rotate(318deg) saturate(.7)}
.tc-audience-cards>article.is-groups:before{background-image:url('../images/features-teams.svg')!important;background-color:transparent!important}
.tc-audience-cards>article{padding-top:20px!important}
.tc-audience-cards>article.is-free{border-color:#d7bb71!important;box-shadow:0 16px 34px rgba(171,131,38,.09)!important}
.tc-audience-table-wrap{border-radius:16px!important;overflow:hidden!important}
.tc-audience-table thead th{background:#0b3a60!important;color:#fff!important}

/* Accessible band */
.tc-features-accessible{grid-template-columns:1.05fr .95fr!important;gap:30px!important;padding-top:38px!important;padding-bottom:38px!important}
.tc-accessible-points span{box-shadow:0 8px 18px rgba(11,47,80,.04)}

/* Final CTA: use dedicated landscape/person illustration asset. */
.tc-features-final{
  margin:0!important;
  min-height:265px;
  border-radius:0!important;
  padding:64px 30px 58px!important;
  background:
    linear-gradient(90deg,rgba(6,33,55,.24),rgba(6,33,55,.12)),
    url('../images/features-future.svg') center/cover no-repeat!important;
  box-shadow:none!important;
}
.tc-features-final:before,.tc-features-final:after{display:none!important}
.tc-features-final h2{text-shadow:0 2px 12px rgba(0,0,0,.2)}
.tc-features-final p{max-width:720px;margin-left:auto;margin-right:auto;color:#dfeaf1}

@media(max-width:1100px){
  .tc-features-hero{grid-template-columns:1fr!important;min-height:auto!important;padding-bottom:42px!important}
  .tc-features-hero-art{min-height:430px!important;max-width:720px;width:100%;margin:0 auto}
  .tc-hero-device{left:0!important;top:48px!important}.tc-hero-stat-card{right:120px!important}.tc-hero-books{right:8px!important}
  .tc-feature-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .tc-report-showcase{grid-template-columns:1fr!important}
  .tc-report-benefits>p,.tc-report-benefit-list,.tc-report-advice-mock{max-width:72%}
}
@media(max-width:820px){
  .tc-features-page{border-radius:18px}
  .tc-features-page>.tc-features-section{padding:42px 22px}
  .tc-features-hero{padding:38px 22px 30px!important}
  .tc-features-hero-art{min-height:520px!important}
  .tc-hero-device{position:relative!important;top:0!important;width:min(100%,430px)!important}
  .tc-hero-stat-card{right:0!important;top:110px!important}
  .tc-hero-books{bottom:0!important}
  .tc-growth-cycle-layout{grid-template-columns:1fr!important}
  .tc-growth-cycle-side{min-height:230px!important}
  .tc-feature-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tc-score-formula{grid-template-columns:1fr!important}.tc-score-formula>i{transform:rotate(90deg);text-align:center}
  .tc-plan-current#individual-plans .tc-plan-current-grid{grid-template-columns:repeat(2,1fr)!important}
  .tc-report-benefits>p,.tc-report-benefit-list,.tc-report-advice-mock{max-width:100%}
  .tc-report-benefits{padding-bottom:185px!important}
  .tc-report-benefits:after{left:50%!important;right:auto!important;transform:translateX(-50%)}
  .tc-coach-value{grid-template-columns:1fr!important}
}
@media(max-width:560px){
  .tc-feature-catalog-grid{grid-template-columns:1fr!important}
  .tc-feature-catalog-grid article.has-mini-ui{grid-row:auto!important;min-height:0!important}
  .tc-plan-current#individual-plans .tc-plan-current-grid{grid-template-columns:1fr!important}
  .tc-features-hero-art{min-height:auto!important;display:block!important}
  .tc-hero-device,.tc-hero-stat-card,.tc-hero-books,.tc-hero-tagline{position:relative!important;inset:auto!important;transform:none!important;margin:14px auto!important}
  .tc-hero-stat-card{width:100%!important;box-sizing:border-box}
  .tc-hero-books{display:grid!important;grid-template-columns:1fr 1fr!important}
  .tc-hero-books span{transform:none!important;min-width:0!important}
  .tc-hero-tagline{text-align:left!important;font-size:21px!important}
}

/* ---- typing-coach-polish-v18561 | assets/css/polish-v18561.css ---- */
/* v1.85.61 — features page composition refinement: stronger hero, richer section bands, clearer editorial visuals */

/* 1) Stronger page rhythm: distinct background bands rather than card-on-card repetition. */
.tc-features-page{
  max-width:1320px;
  background:#fff;
}
.tc-features-page>.tc-features-section{
  padding-top:72px;
  padding-bottom:72px;
}
.tc-features-page>.tc-features-section:nth-of-type(even){background:#fff}
.tc-features-page>.tc-features-section:nth-of-type(1){background:linear-gradient(180deg,#fffaf1 0%,#fffdf9 100%)}
.tc-features-page>.tc-growth-cycle{background:#fff}
.tc-features-page>.tc-coach-value{background:linear-gradient(135deg,#fffdf8 0%,#f4f9fc 100%)!important}
.tc-features-page>.tc-feature-catalog{background:linear-gradient(180deg,#f3f8fb 0%,#f8fbfd 100%)}
.tc-features-page>.tc-coach-score-explainer{background:#fff}
.tc-features-page>.tc-features-report{background:linear-gradient(180deg,#edf7fc 0%,#f8fcfe 100%)}
.tc-features-page>.tc-goal-story{background:linear-gradient(180deg,#fff8ea 0%,#fffdf8 100%)}
.tc-features-page>#individual-plans{background:linear-gradient(180deg,#fffdf7 0%,#fff 100%)}
.tc-features-page>.tc-audience-compare{background:linear-gradient(180deg,#f2f8fc 0%,#f8fbfd 100%)}
.tc-features-page>.tc-features-accessible{background:linear-gradient(180deg,#eef6fa 0%,#eaf3f8 100%)}

/* 2) HERO: make the right-side visual a co-star, not a small decoration. */
.tc-features-hero{
  min-height:545px;
  grid-template-columns:minmax(0,1.02fr) minmax(500px,.98fr);
  gap:38px;
  padding:68px 58px 64px;
}
.tc-features-hero-copy h1{font-size:clamp(40px,4.7vw,66px);max-width:680px}
.tc-features-hero-copy p{max-width:650px;font-size:16.5px}
.tc-features-hero-art{min-height:440px}
.tc-hero-device{left:-6px;top:68px;width:455px}
.tc-hero-device-screen{min-height:248px;position:relative}
.tc-hero-screen-title{font-size:31px}
.tc-hero-stat-card{right:78px;top:128px;width:180px;padding:18px 16px}
.tc-hero-stat-card strong{font-size:48px}
.tc-hero-books{right:-2px;bottom:36px}
.tc-hero-books span{min-width:140px;padding:12px 20px}
.tc-hero-tagline{right:12px;top:18px;font-size:27px}
.tc-features-hero-actions{margin-top:26px}
.tc-features-hero-actions .tc-linkbtn{padding-left:22px;padding-right:22px}

/* 3) 6 benefits: lighter outer framing, stronger icon hierarchy. */
.tc-features-six article{border-color:rgba(208,220,228,.82);box-shadow:0 14px 34px rgba(11,47,80,.045)}
.tc-features-six article>span{box-shadow:0 8px 18px rgba(11,47,80,.055),inset 0 -3px 0 rgba(10,37,60,.04)}

/* 4) Growth cycle: more horizontal storytelling and stronger illustration. */
.tc-growth-cycle-layout{grid-template-columns:minmax(0,1.34fr) minmax(320px,.5fr)}
.tc-growth-cycle-track article{min-width:140px}
.tc-growth-cycle-side{min-height:285px}
.tc-growth-cycle-figure{width:365px;height:255px}
.tc-growth-cycle-note{font-size:30px;right:24px}

/* 5) Coaching / supervision section: 50/50 editorial layout with a large visual. */
.tc-coach-value{
  grid-template-columns:minmax(0,1fr) minmax(430px,1fr)!important;
  gap:42px!important;
  align-items:center!important;
}
.tc-coach-value-copy h2{font-size:clamp(30px,3.2vw,42px)!important}
.tc-coach-value-copy>p{font-size:15px!important;line-height:1.92!important}
.tc-coach-value-side{display:grid;grid-template-columns:1fr;gap:16px}
.tc-coach-editorial-visual{
  min-height:250px;
  border-radius:22px;
  background:url('../images/features-coaching.svg') center/cover no-repeat;
  box-shadow:0 18px 38px rgba(11,47,80,.07);
  position:relative;
  overflow:hidden;
}
.tc-coach-editorial-visual span{
  position:absolute;
  left:22px;
  bottom:18px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(7,42,70,.88);
  color:#f0cf78;
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
}
.tc-coach-value-visual{transform:none!important}
.tc-coach-value-visual article{padding:14px 10px!important}
.tc-coach-theme-panel{background:rgba(255,255,255,.92)!important}
.tc-coach-theme-groups{grid-template-columns:1fr 1fr!important}

/* 6) Feature catalog: UI mock cards stay visually larger, while surrounding cards recede. */
.tc-feature-catalog-grid article{box-shadow:0 10px 24px rgba(11,47,80,.04)!important}
.tc-feature-catalog-grid article.has-mini-ui{
  border-color:#cfdfe9!important;
  box-shadow:0 18px 38px rgba(11,47,80,.07)!important;
}
.tc-mini-result-ui,.tc-mini-score-ui{transform:translateY(2px)}

/* 7) Coach Score: make the 70 / 20 / 10 cards the focus; keep the explanatory bar compact. */
.tc-score-formula article{box-shadow:0 16px 34px rgba(11,47,80,.055)!important}
.tc-score-total{max-width:980px;margin-left:auto;margin-right:auto}
.tc-score-benefits{max-width:980px;margin-left:auto;margin-right:auto}

/* 8) Report: split information density into report preview + compact coaching card + illustration. */
.tc-features-report .tc-report-flow{margin-bottom:16px}
.tc-report-showcase{
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)!important;
  gap:24px!important;
  align-items:stretch!important;
}
.tc-report-preview{box-shadow:0 18px 38px rgba(11,47,80,.065)}
.tc-report-benefits{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  grid-template-areas:
    "kicker visual"
    "title visual"
    "copy visual"
    "advice visual"
    "list list";
  column-gap:20px;
  align-content:start;
  min-height:340px;
  padding:28px!important;
}
.tc-report-benefits>.tc-kicker{grid-area:kicker}
.tc-report-benefits>h3{grid-area:title;margin-top:8px}
.tc-report-benefits>p{grid-area:copy;max-width:none!important}
.tc-report-advice-mock{grid-area:advice;max-width:none!important}
.tc-report-benefit-list{grid-area:list;max-width:none!important;margin-top:12px}
.tc-report-benefits:after{
  grid-area:visual;
  position:static!important;
  display:block!important;
  width:190px!important;
  height:230px!important;
  align-self:end;
  justify-self:end;
  background:url('../images/features-coach.svg') center/contain no-repeat!important;
}
.tc-report-benefit-list{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}

/* 9) Purpose / goals: clearer visual grouping, less form-like. */
.tc-goal-input-mock.is-four{gap:16px!important}
.tc-goal-input-mock.is-four article{border-color:#e2e8ed!important}
.tc-goal-evolution{max-width:980px;margin-left:auto;margin-right:auto}

/* 10) Member section: make free full access feel like a key benefit / CTA. */
.tc-plan-current#individual-plans{
  position:relative;
  overflow:hidden;
  padding-top:78px!important;
  padding-bottom:72px!important;
  background:
    radial-gradient(circle at 50% 0,rgba(235,203,112,.18),transparent 30%),
    linear-gradient(180deg,#fffdf6 0%,#fff 100%)!important;
}
.tc-plan-current#individual-plans:before{
  content:"";
  position:absolute;
  left:12%;right:12%;top:0;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,#c89d3f,transparent);
}
.tc-plan-current#individual-plans .tc-features-heading h2{font-size:clamp(30px,3.2vw,42px)}
.tc-plan-current#individual-plans .tc-plan-current-grid{max-width:1050px;margin-left:auto;margin-right:auto}
.tc-plan-current#individual-plans .tc-plan-current-grid article{
  min-height:138px!important;
  border-color:#eadfbe!important;
  background:linear-gradient(180deg,#fff,#fffdf8)!important;
  box-shadow:0 16px 32px rgba(144,105,25,.055)!important;
}
.tc-plan-current#individual-plans .tc-plan-current-grid article>span{
  width:58px!important;height:58px!important;font-size:24px!important;
  box-shadow:0 10px 24px rgba(183,136,35,.10)!important;
}
.tc-plan-current#individual-plans .tc-plan-actions{justify-content:center;margin-top:24px}
.tc-plan-current#individual-plans .tc-plan-actions .tc-primary{box-shadow:0 12px 28px rgba(156,113,25,.18)}

/* 11) Usage comparison: larger role illustrations, clearer separation from Member section. */
.tc-audience-compare{padding-top:76px!important}
.tc-audience-cards>article:before{width:126px!important;height:104px!important}
.tc-audience-cards>article{box-shadow:0 14px 30px rgba(11,47,80,.045)!important}
.tc-audience-cards>article.is-free{box-shadow:0 18px 36px rgba(171,131,38,.11)!important}
.tc-audience-table-wrap{margin-top:18px}

/* 12) Final CTA: slightly taller and more immersive. */
.tc-features-final{min-height:300px;padding-top:74px!important;padding-bottom:68px!important}
.tc-features-final h2{font-size:clamp(32px,3.8vw,48px)}

@media(max-width:1180px){
  .tc-features-hero{grid-template-columns:1fr!important}
  .tc-features-hero-art{max-width:780px;min-height:475px!important}
  .tc-hero-device{width:470px}
  .tc-hero-stat-card{right:125px}
  .tc-coach-value{grid-template-columns:1fr!important}
  .tc-coach-value-side{max-width:820px;width:100%;margin:0 auto}
  .tc-coach-editorial-visual{min-height:300px}
}
@media(max-width:900px){
  .tc-features-page>.tc-features-section{padding-top:52px;padding-bottom:52px}
  .tc-growth-cycle-layout{grid-template-columns:1fr}
  .tc-report-benefits{grid-template-columns:1fr;grid-template-areas:"kicker" "title" "copy" "advice" "visual" "list"}
  .tc-report-benefits:after{justify-self:center;width:240px!important;height:190px!important}
  .tc-report-benefit-list{grid-template-columns:1fr!important}
  .tc-coach-theme-groups{grid-template-columns:1fr!important}
}
@media(max-width:720px){
  .tc-features-hero{padding:38px 22px 30px!important}
  .tc-features-hero-art{min-height:auto!important}
  .tc-hero-device{width:100%!important}
  .tc-hero-stat-card{width:100%!important}
  .tc-coach-editorial-visual{min-height:220px}
  .tc-plan-current#individual-plans{padding-top:54px!important;padding-bottom:52px!important}
  .tc-audience-compare{padding-top:54px!important}
}

/* ---- typing-coach-polish-v18562 | assets/css/polish-v18562.css ---- */
/* v1.85.62 — features page visibility / contrast repair and final polish */

/* 1) Growth & Action Report: v1.85.59+ changed the panel to white while older text colors assumed navy.
      Restore a deliberate dark intro panel so all copy is readable and the section regains visual hierarchy. */
.tc-features-page .tc-report-materials{
  position:relative;
  z-index:1;
  background:linear-gradient(135deg,#0b3153 0%,#154b72 100%)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 18px 38px rgba(11,47,80,.12)!important;
  overflow:hidden;
}
.tc-features-page .tc-report-materials:before{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  border-radius:50%;
  right:-110px;
  top:-150px;
  border:1px solid rgba(239,203,112,.18);
  pointer-events:none;
}
.tc-features-page .tc-report-materials>div,
.tc-features-page .tc-report-materials-grid{position:relative;z-index:1}
.tc-features-page .tc-report-materials .tc-kicker{color:#edcb70!important}
.tc-features-page .tc-report-materials h3{color:#fff!important}
.tc-features-page .tc-report-materials p{color:#dce8f0!important}
.tc-features-page .tc-report-materials-grid article{
  background:#fff!important;
  color:#173b5a!important;
  border:1px solid rgba(214,227,236,.95)!important;
  box-shadow:0 10px 24px rgba(5,24,40,.14)!important;
}
.tc-features-page .tc-report-materials-grid article b{background:#edf5fa!important;color:#1f5d88!important}
.tc-features-page .tc-report-materials-grid article span{color:#173b5a!important}
.tc-features-page .tc-report-materials-grid article small{color:#6c8090!important}

/* 2) Guard against decorative layers covering real content. */
.tc-features-page>.tc-features-section{position:relative}
.tc-features-page>.tc-features-section>*{position:relative;z-index:1}
.tc-features-page .tc-goal-story:after{z-index:0!important;opacity:.36!important}
.tc-features-page .tc-features-final>*{position:relative;z-index:2}

/* 3) Report showcase: keep all text above illustration layers and give the right panel a clear reading lane. */
.tc-features-page .tc-report-showcase{overflow:visible!important}
.tc-features-page .tc-report-preview,
.tc-features-page .tc-report-benefits{position:relative;z-index:1}
.tc-features-page .tc-report-benefits>*{position:relative;z-index:2}
.tc-features-page .tc-report-benefits:after{z-index:1!important;pointer-events:none!important}
.tc-features-page .tc-report-benefits>p{color:#536b7d!important}
.tc-features-page .tc-report-advice-mock{color:#17324b!important}

/* 4) Readability: slightly stronger body contrast across the long feature page. */
.tc-features-page .tc-features-heading p,
.tc-features-page .tc-features-six p,
.tc-features-page .tc-feature-catalog-grid p,
.tc-features-page .tc-coach-value-copy>p,
.tc-features-page .tc-goal-story .tc-features-heading p,
.tc-features-page .tc-plan-current .tc-features-heading p,
.tc-features-page .tc-audience-compare .tc-features-heading p{
  color:#506a7d!important;
}
.tc-features-page .tc-features-six h3,
.tc-features-page .tc-feature-catalog-grid h3,
.tc-features-page .tc-coach-value h2,
.tc-features-page .tc-features-report h2,
.tc-features-page .tc-goal-story h2,
.tc-features-page #individual-plans h2,
.tc-features-page .tc-audience-compare h2{color:#0b2f50!important}

/* 5) Editorial coaching block: ensure the illustration never crowds the text at intermediate widths. */
.tc-features-page .tc-coach-editorial-visual{isolation:isolate}
.tc-features-page .tc-coach-editorial-visual span{z-index:2}
.tc-features-page .tc-coach-value-copy{min-width:0}
.tc-features-page .tc-coach-value-copy p{overflow-wrap:anywhere}

/* 6) Member and usage sections: preserve emphasis but keep copy comfortably readable. */
.tc-features-page #individual-plans .tc-plan-status-note{color:#536a7c!important;line-height:1.75!important}
.tc-features-page .tc-audience-cards>article p,
.tc-features-page .tc-audience-cards>article li{color:#526b7d!important}
.tc-features-page .tc-audience-cards>article strong{color:#173b5a!important}
.tc-features-page .tc-audience-table td{color:#314e65!important}

/* 7) Better tablet behavior: avoid squeezing text under illustrations. */
@media(max-width:1100px){
  .tc-features-page .tc-report-materials{grid-template-columns:1fr!important;gap:18px!important}
  .tc-features-page .tc-report-materials-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .tc-features-page .tc-report-showcase{grid-template-columns:1fr!important}
  .tc-features-page .tc-report-benefits{min-height:0!important}
}
@media(max-width:760px){
  .tc-features-page .tc-report-materials{padding:22px 18px!important}
  .tc-features-page .tc-report-materials-grid{grid-template-columns:1fr 1fr!important}
  .tc-features-page .tc-report-benefits{grid-template-columns:1fr!important;grid-template-areas:"kicker" "title" "copy" "advice" "visual" "list"!important}
  .tc-features-page .tc-report-benefits:after{position:static!important;justify-self:center!important;transform:none!important;width:220px!important;height:170px!important}
}
@media(max-width:520px){
  .tc-features-page .tc-report-materials-grid{grid-template-columns:1fr!important}
  .tc-features-page .tc-report-benefits:after{width:190px!important;height:150px!important}
}

/* ---- typing-coach-polish-v18563 | assets/css/polish-v18563.css ---- */
/* v1.85.63 — feature-page text clipping prevention and responsive readability polish */

/* 1) Safety baseline: section headings must always stay inside their own grid/content lane. */
.tc-features-page .tc-features-section h2,
.tc-features-page .tc-features-section h3,
.tc-features-page .tc-features-section p,
.tc-features-page .tc-features-section li,
.tc-features-page .tc-features-section strong,
.tc-features-page .tc-features-section small{
  max-width:100%;
  box-sizing:border-box;
}
.tc-features-page .tc-features-section h2 .tc-title-segment{
  display:block!important;
  max-width:100%!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  line-break:strict;
}

/* 2) Coaching section: the previous keep-all rule let the final title line extend under the visual column. */
.tc-features-page .tc-coach-value{
  grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr)!important;
  gap:46px!important;
  overflow:visible!important;
}
.tc-features-page .tc-coach-value>*{
  min-width:0!important;
  max-width:100%!important;
}
.tc-features-page .tc-coach-value-copy{
  position:relative;
  z-index:3;
  padding-right:4px;
  overflow:visible!important;
}
.tc-features-page .tc-coach-value-copy h2{
  width:100%!important;
  max-width:100%!important;
  margin:8px 0 16px!important;
  font-size:clamp(29px,2.8vw,40px)!important;
  line-height:1.34!important;
  letter-spacing:-.02em;
  overflow:visible!important;
}
.tc-features-page .tc-coach-value-copy h2 .tc-title-segment{
  margin:0!important;
  padding:0!important;
}
.tc-features-page .tc-coach-value-copy h2 .tc-title-segment + .tc-title-segment{
  margin-top:.06em!important;
}
.tc-features-page .tc-coach-value-copy>p{
  width:100%!important;
  max-width:100%!important;
  color:#445f73!important;
  line-height:1.92!important;
  overflow:visible!important;
  overflow-wrap:anywhere!important;
}
.tc-features-page .tc-coach-value-side{
  position:relative;
  z-index:1;
  min-width:0!important;
}
.tc-features-page .tc-coach-editorial-visual,
.tc-features-page .tc-coach-value-visual,
.tc-features-page .tc-coach-theme-panel{
  max-width:100%!important;
  box-sizing:border-box;
}

/* 3) General two-column safety around illustrated feature sections. */
.tc-features-page .tc-growth-cycle-layout>*,
.tc-features-page .tc-report-showcase>*,
.tc-features-page .tc-features-accessible>*,
.tc-features-page .tc-report-materials>*{
  min-width:0;
  max-width:100%;
}
.tc-features-page .tc-report-benefits,
.tc-features-page .tc-report-preview,
.tc-features-page .tc-goal-story,
.tc-features-page #individual-plans,
.tc-features-page .tc-audience-compare{
  overflow:visible;
}

/* 4) Keep decorative visuals behind readable copy. */
.tc-features-page .tc-coach-editorial-visual,
.tc-features-page .tc-growth-cycle-side,
.tc-features-page .tc-report-benefits:after,
.tc-features-page .tc-goal-story:after{
  pointer-events:none;
}
.tc-features-page .tc-coach-value-copy,
.tc-features-page .tc-features-heading,
.tc-features-page .tc-report-benefits>*:not(:empty),
.tc-features-page .tc-goal-story .tc-goal-input-mock,
.tc-features-page .tc-plan-current-grid,
.tc-features-page .tc-audience-cards,
.tc-features-page .tc-audience-table-wrap{
  position:relative;
  z-index:2;
}

/* 5) A little more breathing room in dense copy/cards without weakening the design comp. */
.tc-features-page .tc-coach-value-points{margin-top:20px!important;row-gap:9px!important}
.tc-features-page .tc-coach-theme-panel{padding:18px!important}
.tc-features-page .tc-feature-catalog-grid article p,
.tc-features-page .tc-features-six article p,
.tc-features-page .tc-audience-cards article p,
.tc-features-page .tc-audience-cards article li{
  line-height:1.72!important;
}
.tc-features-page .tc-audience-table th,
.tc-features-page .tc-audience-table td{
  vertical-align:top;
}

/* 6) Laptop / tablet: move illustrated coaching content below before the copy becomes cramped. */
@media(max-width:1240px){
  .tc-features-page .tc-coach-value{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .tc-features-page .tc-coach-value-copy{
    max-width:900px!important;
  }
  .tc-features-page .tc-coach-value-side{
    width:100%;
    max-width:900px!important;
    margin:0 auto;
  }
  .tc-features-page .tc-coach-editorial-visual{min-height:280px!important}
}

@media(max-width:900px){
  .tc-features-page .tc-coach-value-copy h2{
    font-size:clamp(28px,5vw,36px)!important;
  }
  .tc-features-page .tc-coach-value-copy>p{
    font-size:14.5px!important;
    line-height:1.88!important;
  }
  .tc-features-page .tc-coach-theme-groups{grid-template-columns:1fr!important}
  .tc-features-page .tc-audience-table-wrap,
  .tc-features-page .tc-plan-table-wrap{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
}

@media(max-width:720px){
  .tc-features-page .tc-coach-value-copy h2{
    font-size:29px!important;
    line-height:1.4!important;
  }
  .tc-features-page .tc-coach-editorial-visual{min-height:210px!important}
  .tc-features-page .tc-coach-value-visual{padding:14px!important}
  .tc-features-page .tc-coach-value-points span{white-space:normal!important}
}

@media(max-width:460px){
  .tc-features-page .tc-coach-value-copy h2{font-size:27px!important}
  .tc-features-page .tc-features-section h2 .tc-title-segment{overflow-wrap:anywhere!important}
}

/* ---- typing-coach-polish-v18564 | assets/css/polish-v18564.css ---- */
/* v1.85.64 — report-title composition, comparison CTAs, and final feature-page usability polish */

/* 1) Growth & Action Report heading: keep the intended message to two lines on desktop. */
.tc-features-page .tc-features-report .tc-report-section-title{
  max-width:920px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.tc-features-page .tc-features-report .tc-report-section-title .tc-report-title-line2{
  display:block!important;
}
.tc-features-page .tc-features-report .tc-report-section-title .tc-report-title-line2 strong{
  display:inline!important;
  color:#a53f55!important;
  font-weight:900!important;
}
@media(min-width:821px){
  .tc-features-page .tc-features-report .tc-report-section-title .tc-report-title-line2{
    white-space:nowrap!important;
    overflow-wrap:normal!important;
  }
}

/* 2) Comparison cards: give every choice a clear next action and keep button baselines aligned. */
.tc-features-page .tc-audience-cards>article{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
}
.tc-features-page .tc-audience-cards>article>ul{
  flex:1 1 auto!important;
}
.tc-features-page .tc-audience-cards .tc-audience-status{
  align-self:flex-start!important;
}
.tc-features-page .tc-audience-card-action{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  box-sizing:border-box;
  margin-top:14px;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none!important;
  font-size:13px;
  line-height:1.35;
  font-weight:900;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;
}
.tc-features-page .tc-audience-card-action:hover{
  transform:translateY(-1px);
  box-shadow:0 9px 20px rgba(11,47,80,.10);
}
.tc-features-page .tc-audience-card-action:focus-visible{
  outline:3px solid rgba(32,116,174,.25);
  outline-offset:2px;
}
.tc-features-page .tc-audience-card-action.is-guest-action{
  border:1px solid #b9cddd;
  background:#f8fbfd;
  color:#244f70;
}
.tc-features-page .tc-audience-card-action.is-member-action{
  border:1px solid #c79a37;
  background:linear-gradient(180deg,#d3a843,#bc8c27);
  color:#fff;
  box-shadow:0 9px 20px rgba(170,122,30,.16);
}
.tc-features-page .tc-audience-card-action.is-plus-action{
  border:1px solid #a94359;
  background:linear-gradient(180deg,#b94b62,#9c354d);
  color:#fff;
}
.tc-features-page .tc-audience-card-action.is-teams-action{
  border:1px solid #174d76;
  background:linear-gradient(180deg,#164a70,#0d3558);
  color:#fff;
}

/* 3) Repeat the next step after the detailed table, so users do not have to scroll back up. */
.tc-features-page .tc-audience-next-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:20px;
}
.tc-features-page .tc-audience-next-actions.is-four{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.tc-features-page .tc-audience-next-action{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:76px;
  padding:13px 14px;
  border:1px solid #d8e4ec;
  border-radius:15px;
  background:#fff;
  text-decoration:none!important;
  box-sizing:border-box;
  box-shadow:0 9px 22px rgba(11,47,80,.045);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.tc-features-page .tc-audience-next-action:hover{
  transform:translateY(-2px);
  box-shadow:0 13px 28px rgba(11,47,80,.08);
}
.tc-features-page .tc-audience-next-action small{
  display:block;
  margin-bottom:4px;
  color:#708493!important;
  font-size:11px;
  font-weight:850;
}
.tc-features-page .tc-audience-next-action strong{
  display:block;
  color:#173b5a!important;
  font-size:14px;
  line-height:1.45;
}
.tc-features-page .tc-audience-next-action.is-member{
  border-color:#d5b25e;
  background:linear-gradient(180deg,#fffdf7,#fff8e9);
}
.tc-features-page .tc-audience-next-action.is-plus{
  border-color:#ddb7c0;
  background:linear-gradient(180deg,#fffafb,#fdf1f4);
}
.tc-features-page .tc-audience-next-action.is-teams{
  border-color:#bad2e3;
  background:linear-gradient(180deg,#f8fcff,#f0f7fb);
}

/* 4) Fine tuning around the comparison area: slightly stronger separation and legibility. */
.tc-features-page .tc-audience-compare .tc-audience-table-intro{
  margin-top:20px!important;
  border:1px solid #d7e3eb!important;
  box-shadow:0 8px 20px rgba(11,47,80,.035);
}
.tc-features-page .tc-audience-table-wrap{
  margin-top:10px!important;
}
.tc-features-page .tc-audience-two-axis-footnote{
  line-height:1.75!important;
}

/* 5) Keep visual polish without sacrificing text readability. */
.tc-features-page .tc-features-report .tc-features-heading p{
  max-width:820px!important;
}
.tc-features-page .tc-report-flow{
  margin-top:2px!important;
}
.tc-features-page .tc-coach-value-copy>p,
.tc-features-page .tc-features-report p,
.tc-features-page .tc-audience-compare p{
  text-wrap:pretty;
}

@media(max-width:1040px){
  .tc-features-page .tc-audience-next-actions,
  .tc-features-page .tc-audience-next-actions.is-four{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:820px){
  .tc-features-page .tc-features-report .tc-report-section-title .tc-report-title-line2{
    white-space:normal!important;
  }
}
@media(max-width:640px){
  .tc-features-page .tc-audience-next-actions,
  .tc-features-page .tc-audience-next-actions.is-four{
    grid-template-columns:1fr;
  }
  .tc-features-page .tc-audience-card-action{
    min-height:46px;
    font-size:13.5px;
  }
}

/* ---- typing-coach-polish-v18565 | assets/css/polish-v18565.css ---- */
/* v1.85.65 — compact feature headings, vertical rhythm, and comparison-area finishing polish */

/* Short section titles should read as one intentional headline on desktop, not as forced fragments. */
.tc-features-page .tc-heading-one-line{
  width:100%;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-align:center;
  text-wrap:balance;
}
.tc-features-page .tc-heading-one-line .tc-title-segment{
  display:inline!important;
  margin-left:0!important;
  max-width:none!important;
  white-space:inherit!important;
  overflow-wrap:normal!important;
  word-break:keep-all!important;
}
@media(min-width:821px){
  .tc-features-page .tc-heading-one-line{
    white-space:nowrap!important;
    font-size:clamp(28px,2.55vw,38px)!important;
    line-height:1.25!important;
  }
  .tc-features-page .tc-heading-one-line-wide{
    font-size:clamp(27px,2.35vw,36px)!important;
  }
}
@media(max-width:820px){
  .tc-features-page .tc-heading-one-line{
    white-space:normal!important;
  }
  .tc-features-page .tc-heading-one-line .tc-title-segment{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

/* The first benefit section now follows the centered design-comp hierarchy. */
.tc-features-page .tc-core-benefits .tc-features-heading{
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:28px;
}
.tc-features-page .tc-core-benefits .tc-features-six{
  margin-top:2px;
}

/* Keep short headline sections visually compact so the page scans more smoothly. */
.tc-features-page .tc-growth-cycle .tc-features-heading,
.tc-features-page .tc-feature-catalog .tc-features-heading,
.tc-features-page .tc-audience-compare .tc-features-heading{
  margin-bottom:26px!important;
}
.tc-features-page .tc-growth-cycle .tc-features-heading p,
.tc-features-page .tc-feature-catalog .tc-features-heading p,
.tc-features-page .tc-audience-compare .tc-features-heading p{
  margin-top:10px!important;
}

/* Improve the editorial rhythm between dense and visual sections. */
.tc-features-page .tc-feature-catalog-grid{
  align-items:stretch;
}
.tc-features-page .tc-feature-catalog-grid>article{
  height:100%;
  box-sizing:border-box;
}
.tc-features-page .tc-features-six>article{
  height:100%;
  box-sizing:border-box;
}
.tc-features-page .tc-score-formula>article{
  min-width:0;
}

/* Comparison cards: make each option feel like a self-contained decision card. */
.tc-features-page .tc-audience-cards>article{
  padding-bottom:18px!important;
}
.tc-features-page .tc-audience-cards>article>.tc-audience-card-action{
  margin-top:16px!important;
}
.tc-features-page .tc-audience-cards>article.is-free,
.tc-features-page .tc-audience-cards>article.is-member{
  border-color:#d7b65e!important;
  box-shadow:0 14px 32px rgba(166,124,34,.09)!important;
}
.tc-features-page .tc-audience-card-action{
  min-height:46px!important;
}
.tc-features-page .tc-audience-next-actions{
  margin-top:18px!important;
  padding-top:2px;
}

/* Long detail tables should never make the whole section feel clipped on medium screens. */
@media(max-width:1100px){
  .tc-features-page .tc-audience-table-wrap,
  .tc-features-page .tc-plan-table-wrap{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
  }
  .tc-features-page .tc-audience-table,
  .tc-features-page .tc-plan-table{
    min-width:760px;
  }
}

/* Preserve readable whitespace without reintroducing the old card-stack feeling. */
.tc-features-page .tc-features-section{
  scroll-margin-top:96px;
}
.tc-features-page .tc-features-heading h2{
  text-wrap:balance;
}
.tc-features-page .tc-features-heading p{
  text-wrap:pretty;
}

@media(max-width:720px){
  .tc-features-page .tc-core-benefits .tc-features-heading,
  .tc-features-page .tc-growth-cycle .tc-features-heading,
  .tc-features-page .tc-feature-catalog .tc-features-heading,
  .tc-features-page .tc-audience-compare .tc-features-heading{
    margin-bottom:20px!important;
  }
  .tc-features-page .tc-heading-one-line{
    font-size:29px!important;
    line-height:1.34!important;
  }
}

/* ---- typing-coach-polish-v18566 | assets/css/polish-v18566.css ---- */
/* v1.85.66 — feature-page final rhythm / balance polish based on v1.85.65 live screenshot */

/* 1) Tighten section-to-section rhythm by roughly 10–15% without losing premium whitespace. */
.tc-features-page>.tc-features-section{
  margin-top:28px!important;
  margin-bottom:28px!important;
  padding-top:64px!important;
  padding-bottom:64px!important;
}
.tc-features-page>.tc-core-benefits,
.tc-features-page>.tc-growth-cycle,
.tc-features-page>.tc-feature-catalog,
.tc-features-page>.tc-coach-score-explainer,
.tc-features-page>.tc-goal-story{
  padding-top:60px!important;
  padding-bottom:60px!important;
}
.tc-features-page>#individual-plans,
.tc-features-page>.tc-audience-compare{
  padding-top:64px!important;
  padding-bottom:62px!important;
}
.tc-features-page>.tc-features-accessible{
  padding-top:48px!important;
  padding-bottom:48px!important;
}
.tc-features-page .tc-features-heading{margin-bottom:24px!important}
.tc-features-page .tc-core-benefits .tc-features-heading,
.tc-features-page .tc-growth-cycle .tc-features-heading,
.tc-features-page .tc-feature-catalog .tc-features-heading,
.tc-features-page .tc-audience-compare .tc-features-heading{
  margin-bottom:23px!important;
}

/* 2) Coaching section: give the copy slightly more room and reduce the visual by about 5–10%. */
@media(min-width:1241px){
  .tc-features-page .tc-coach-value{
    grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr)!important;
    gap:34px!important;
  }
  .tc-features-page .tc-coach-value-copy h2{
    font-size:clamp(29px,2.55vw,38px)!important;
    line-height:1.32!important;
  }
  .tc-features-page .tc-coach-value-side{
    width:94%!important;
    max-width:560px!important;
    justify-self:end!important;
  }
  .tc-features-page .tc-coach-editorial-visual{
    min-height:228px!important;
  }
  .tc-features-page .tc-coach-theme-panel{
    padding:16px!important;
  }
}
.tc-features-page .tc-coach-value-copy>p{
  max-width:720px!important;
}
.tc-features-page .tc-coach-value-points{
  margin-top:17px!important;
}

/* 3) Growth & Action Report: separate the blocks more clearly so the information does not feel compressed. */
.tc-features-page .tc-features-report .tc-report-flow{
  max-width:1000px;
  margin-left:auto!important;
  margin-right:auto!important;
  margin-bottom:22px!important;
}
.tc-features-page .tc-features-report .tc-report-flow article{
  padding-top:14px!important;
  padding-bottom:14px!important;
}
.tc-features-page .tc-report-materials{
  margin-top:18px!important;
  margin-bottom:26px!important;
  padding:22px!important;
  gap:20px!important;
}
.tc-features-page .tc-report-materials>div:first-child{
  max-width:440px;
}
.tc-features-page .tc-report-materials h3{
  font-size:24px!important;
  line-height:1.38!important;
}
.tc-features-page .tc-report-materials-grid{
  gap:10px!important;
}
.tc-features-page .tc-report-materials-grid article{
  padding:13px 10px!important;
}
.tc-features-page .tc-report-showcase{
  margin-top:18px!important;
  margin-bottom:24px!important;
  gap:22px!important;
}
.tc-features-page .tc-report-preview-body{
  gap:10px!important;
  padding:16px!important;
}
.tc-features-page .tc-report-benefits{
  padding:26px!important;
}
.tc-features-page .tc-report-benefits h3{
  margin-bottom:10px!important;
}
.tc-features-page .tc-report-benefits>p{
  line-height:1.78!important;
}
.tc-features-page .tc-report-advice-mock{
  margin-top:14px!important;
}
.tc-features-page .tc-report-benefit-list{
  margin-top:16px!important;
  gap:9px!important;
}
.tc-features-page .tc-report-format{
  margin-top:20px!important;
}

/* 4) Feature / score sections: align card baselines and trim small dead spaces. */
.tc-features-page .tc-feature-catalog-grid,
.tc-features-page .tc-features-six,
.tc-features-page .tc-score-formula{
  align-items:stretch!important;
}
.tc-features-page .tc-feature-catalog-grid>article,
.tc-features-page .tc-features-six>article,
.tc-features-page .tc-score-formula>article{
  height:100%!important;
}
.tc-features-page .tc-score-total{
  margin-top:14px!important;
}
.tc-features-page .tc-score-benefits{
  margin-top:12px!important;
}

/* 5) Purpose / Member / comparison: keep important actions visually connected to the content above. */
.tc-features-page .tc-goal-input-mock.is-four{
  margin-top:18px!important;
}
.tc-features-page .tc-goal-evolution{
  margin-top:16px!important;
}
.tc-features-page #individual-plans .tc-plan-current-grid{
  margin-top:20px!important;
}
.tc-features-page #individual-plans .tc-plan-status-note{
  margin-top:18px!important;
}
.tc-features-page #individual-plans .tc-plan-actions{
  margin-top:20px!important;
}
.tc-features-page .tc-audience-cards{
  margin-top:18px!important;
}
.tc-features-page .tc-audience-table-intro{
  margin-top:18px!important;
}
.tc-features-page .tc-audience-next-actions{
  margin-top:16px!important;
}

/* 6) Comparison table: slightly stronger row rhythm and legibility on desktop. */
.tc-features-page .tc-audience-table th,
.tc-features-page .tc-plan-table th{
  padding:13px 14px!important;
  font-size:13.5px!important;
  line-height:1.45!important;
}
.tc-features-page .tc-audience-table td,
.tc-features-page .tc-plan-table td{
  padding:12px 14px!important;
  font-size:13.5px!important;
  line-height:1.62!important;
}
.tc-features-page .tc-audience-table tbody tr:nth-child(even) td,
.tc-features-page .tc-plan-table tbody tr:nth-child(even) td{
  background:rgba(242,247,250,.62);
}
.tc-features-page .tc-audience-table tbody tr:hover td,
.tc-features-page .tc-plan-table tbody tr:hover td{
  background:#f8fbfd;
}

/* 7) Bottom utility block: keep it compact so the final CTA arrives sooner. */
.tc-features-page .tc-features-accessible h2{
  margin-bottom:8px!important;
}
.tc-features-page .tc-features-accessible p{
  margin-top:0!important;
  margin-bottom:0!important;
}
.tc-features-page .tc-accessible-points{
  gap:8px!important;
}

@media(max-width:1240px){
  .tc-features-page>.tc-features-section{
    padding-top:56px!important;
    padding-bottom:56px!important;
  }
  .tc-features-page>.tc-coach-value{
    padding-top:58px!important;
    padding-bottom:58px!important;
  }
  .tc-features-page .tc-coach-value-side{
    max-width:820px!important;
  }
}

@media(max-width:900px){
  .tc-features-page>.tc-features-section{
    margin-top:22px!important;
    margin-bottom:22px!important;
    padding-top:48px!important;
    padding-bottom:48px!important;
  }
  .tc-features-page .tc-report-materials{
    margin-bottom:22px!important;
  }
  .tc-features-page .tc-report-showcase{
    margin-top:14px!important;
    gap:18px!important;
  }
  .tc-features-page .tc-audience-table,
  .tc-features-page .tc-plan-table{
    min-width:800px!important;
  }
}

@media(max-width:720px){
  .tc-features-page>.tc-features-section{
    margin-top:18px!important;
    margin-bottom:18px!important;
    padding-top:40px!important;
    padding-bottom:40px!important;
  }
  .tc-features-page>.tc-features-accessible{
    padding-top:34px!important;
    padding-bottom:34px!important;
  }
  .tc-features-page .tc-report-materials{
    padding:19px 16px!important;
  }
  .tc-features-page .tc-report-benefits{
    padding:21px!important;
  }
  .tc-features-page .tc-audience-table th,
  .tc-features-page .tc-plan-table th,
  .tc-features-page .tc-audience-table td,
  .tc-features-page .tc-plan-table td{
    font-size:13px!important;
  }
}

/* ---- typing-coach-polish-v18567 | assets/css/polish-v18567.css ---- */
/* v1.85.67 — feature page completion polish: cycle fit, catalog alignment, report spacing, compact usage guide */

/* 1) Growth cycle: show all six steps without a desktop scrollbar. */
@media(min-width:901px){
  .tc-features-page .tc-growth-cycle-layout{
    grid-template-columns:minmax(0,1.22fr) minmax(210px,.38fr)!important;
    gap:22px!important;
  }
  .tc-features-page .tc-growth-cycle-track{
    grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1.08fr)!important;
    gap:5px!important;
    overflow:visible!important;
    padding:14px 0 4px!important;
    scrollbar-width:none;
  }
  .tc-features-page .tc-growth-cycle-track::-webkit-scrollbar{display:none!important}
  .tc-features-page .tc-growth-cycle-track>article{
    min-width:0!important;
    width:auto!important;
    padding:14px 7px!important;
    border-radius:18px!important;
  }
  .tc-features-page .tc-growth-cycle-track>article>span{
    width:52px!important;
    height:52px!important;
    font-size:21px!important;
    margin-bottom:8px!important;
  }
  .tc-features-page .tc-growth-cycle-track>article>strong{
    font-size:15px!important;
    line-height:1.35!important;
    white-space:nowrap;
  }
  .tc-features-page .tc-growth-cycle-track>article>small{
    font-size:10.5px!important;
    line-height:1.5!important;
  }
  .tc-features-page .tc-growth-cycle-track>i{
    align-self:center!important;
    justify-self:center!important;
    font-size:24px!important;
    line-height:1!important;
  }
  .tc-features-page .tc-growth-cycle-track>article.is-growth{
    transform:translateY(-2px);
    box-shadow:0 14px 28px rgba(177,132,36,.20)!important;
  }
  .tc-features-page .tc-growth-cycle-track>article.is-growth>span{
    width:58px!important;
    height:58px!important;
    font-size:24px!important;
  }
}
@media(min-width:901px) and (max-width:1100px){
  .tc-features-page .tc-growth-cycle-layout{grid-template-columns:1fr!important}
  .tc-features-page .tc-growth-cycle-side{
    min-height:150px!important;
    max-width:300px;
    justify-self:end;
    width:100%;
  }
}

/* 2) Feature catalog: regular cards form a clean grid; UI examples live in their own strip. */
.tc-features-page .tc-feature-catalog-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-auto-rows:1fr;
  gap:14px!important;
}
.tc-features-page .tc-feature-catalog-grid>article{
  min-height:166px!important;
  height:100%!important;
  padding:18px!important;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
}
.tc-features-page .tc-feature-catalog-grid>article>h3{margin-bottom:7px!important}
.tc-features-page .tc-feature-catalog-grid>article>p{margin-top:0!important}
.tc-features-page .tc-feature-catalog-grid>article:after{display:none!important}
.tc-features-page .tc-feature-visual-strip{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);
  gap:14px;
  margin-top:16px;
}
.tc-features-page .tc-feature-visual-strip>article{
  min-width:0;
  min-height:150px;
  display:grid;
  grid-template-columns:minmax(170px,.62fr) minmax(0,1.38fr);
  align-items:center;
  gap:18px;
  padding:18px 20px;
  border:1px solid #dce7ee;
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#f7fbfe);
  box-shadow:0 12px 28px rgba(11,47,80,.045);
  box-sizing:border-box;
}
.tc-features-page .tc-feature-score-mock{
  grid-template-columns:1fr!important;
  gap:10px!important;
  text-align:center;
}
.tc-features-page .tc-feature-visual-label small{
  display:block;
  color:#a07928;
  font-size:10px;
  font-weight:900;
  letter-spacing:.15em;
}
.tc-features-page .tc-feature-visual-label strong{
  display:block;
  margin-top:5px;
  color:#173b5a;
  font-size:17px;
  line-height:1.5;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-ui{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  margin:0!important;
  padding:12px!important;
  border-radius:14px!important;
  background:#f1f7fb!important;
  border:1px solid #dce7ee!important;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-ui>div:not(.tc-mini-result-bars){
  padding:8px!important;
  border-radius:10px!important;
  background:#fff!important;
  text-align:center;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-ui small{
  display:block;
  color:#718596;
  font-size:9.5px;
  font-weight:900;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-ui strong{
  display:block;
  margin-top:3px;
  color:#0d416a;
  font-size:23px;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-bars{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  align-items:end;
  gap:5px;
  height:28px;
  padding:0 5px;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-bars i{
  display:block;
  border-radius:5px 5px 2px 2px;
  background:#78acd2;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-bars i:nth-child(1){height:32%}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-bars i:nth-child(2){height:54%}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-bars i:nth-child(3){height:72%;background:#d7ae4f}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-bars i:nth-child(4){height:88%}
.tc-features-page .tc-feature-visual-strip .tc-mini-result-bars i:nth-child(5){height:100%;background:#6fa680}
.tc-features-page .tc-feature-visual-strip .tc-mini-score-ui{
  width:min(100%,190px);
  margin:0 auto!important;
  padding:14px!important;
}
.tc-features-page .tc-feature-visual-strip .tc-mini-score-ui>b{font-size:38px!important}

/* 3) Growth report: add breathing room without increasing the section too much. */
.tc-features-page .tc-features-report .tc-report-flow{margin-bottom:26px!important}
.tc-features-page .tc-report-materials{margin-bottom:30px!important}
.tc-features-page .tc-report-showcase{gap:26px!important;margin-bottom:28px!important}
.tc-features-page .tc-report-preview-body{gap:12px!important}
.tc-features-page .tc-report-benefit-list{gap:10px!important;margin-top:18px!important}
.tc-features-page .tc-report-format{margin-top:24px!important}

/* 4) Usage comparison: replace the repeated large role-map with one light positioning bar. */
.tc-features-page .tc-audience-role-bar{
  display:grid;
  grid-template-columns:minmax(0,.82fr) 30px minmax(0,1.15fr) 30px minmax(0,1.15fr);
  gap:8px;
  align-items:center;
  max-width:920px;
  margin:0 auto 18px;
  padding:9px 12px;
  border:1px solid #dce6ed;
  border-radius:16px;
  background:rgba(248,251,253,.9);
}
.tc-features-page .tc-audience-role-bar>span{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:6px 8px;
  border-radius:11px;
  background:#fff;
  color:#173b5a;
  box-sizing:border-box;
}
.tc-features-page .tc-audience-role-bar>span.is-member{
  border:1px solid #dfc67f;
  background:linear-gradient(180deg,#fffdf8,#fff9e9);
}
.tc-features-page .tc-audience-role-bar>span.is-teams{
  border:1px solid #c9dce9;
  background:linear-gradient(180deg,#fbfdff,#f1f8fc);
}
.tc-features-page .tc-audience-role-bar small{
  color:#748797;
  font-size:10.5px;
  font-weight:800;
  white-space:nowrap;
}
.tc-features-page .tc-audience-role-bar strong{
  color:#173b5a;
  font-size:13px;
  line-height:1.35;
  white-space:nowrap;
}
.tc-features-page .tc-audience-role-bar>i{
  text-align:center;
  font-style:normal;
  color:#a78434;
  font-size:17px;
  font-weight:900;
}
.tc-features-page .tc-audience-cards{margin-top:12px!important}

/* Keep the final comparison decision area visually compact. */
.tc-features-page .tc-audience-table-intro{margin-top:16px!important}
.tc-features-page .tc-audience-next-actions{margin-top:14px!important}

@media(max-width:1100px){
  .tc-features-page .tc-feature-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .tc-features-page .tc-feature-visual-strip{grid-template-columns:1fr 1fr}
  .tc-features-page .tc-feature-visual-strip>article{grid-template-columns:1fr;gap:12px}
  .tc-features-page .tc-feature-result-mock{text-align:center}
}
@media(max-width:820px){
  .tc-features-page .tc-feature-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tc-features-page .tc-feature-visual-strip{grid-template-columns:1fr}
  .tc-features-page .tc-audience-role-bar{
    grid-template-columns:1fr;
    max-width:620px;
    padding:10px;
  }
  .tc-features-page .tc-audience-role-bar>i{transform:rotate(90deg)}
  .tc-features-page .tc-audience-role-bar>span{justify-content:flex-start;padding-left:14px}
}
@media(max-width:720px){
  .tc-features-page .tc-feature-catalog-grid{grid-template-columns:1fr!important}
  .tc-features-page .tc-feature-catalog-grid>article{min-height:0!important}
  .tc-features-page .tc-feature-visual-strip>article{padding:16px}
  .tc-features-page .tc-feature-visual-strip .tc-mini-result-ui{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .tc-features-page .tc-report-materials{margin-bottom:24px!important}
  .tc-features-page .tc-report-showcase{gap:20px!important;margin-bottom:22px!important}
}

/* ---- typing-coach-polish-v18568 | assets/css/polish-v18568.css ---- */
/* v1.85.68 — feature page stability polish: growth-cycle containment + final alignment */

/* Growth cycle: keep the illustration completely inside its own column so the gold GROW card never gets covered. */
@media(min-width:1101px){
  .tc-features-page .tc-growth-cycle-layout{
    grid-template-columns:minmax(0,1fr) 238px!important;
    gap:18px!important;
    align-items:center!important;
  }
  .tc-features-page .tc-growth-cycle-track{
    position:relative;
    z-index:2;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  .tc-features-page .tc-growth-cycle-side{
    position:relative!important;
    z-index:1!important;
    width:238px!important;
    max-width:238px!important;
    min-width:0!important;
    min-height:214px!important;
    justify-self:end!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .tc-features-page .tc-growth-cycle-note{
    position:absolute!important;
    top:0!important;
    right:4px!important;
    max-width:210px!important;
    font-size:24px!important;
    line-height:1.2!important;
    text-align:right!important;
    z-index:2!important;
  }
  .tc-features-page .tc-growth-cycle-figure{
    position:absolute!important;
    inset:auto 0 0 auto!important;
    width:232px!important;
    max-width:100%!important;
    height:176px!important;
    margin:0!important;
    background-size:contain!important;
    background-position:right bottom!important;
    overflow:hidden!important;
  }
  .tc-features-page .tc-growth-cycle-track>article.is-growth{
    position:relative!important;
    z-index:3!important;
    transform:none!important;
  }
}

/* Mid-size desktop/tablet: put the illustration below the six-step track instead of squeezing it beside the last step. */
@media(min-width:821px) and (max-width:1100px){
  .tc-features-page .tc-growth-cycle-layout{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .tc-features-page .tc-growth-cycle-side{
    position:relative!important;
    width:100%!important;
    max-width:320px!important;
    min-height:170px!important;
    justify-self:end!important;
    overflow:hidden!important;
  }
  .tc-features-page .tc-growth-cycle-note{
    top:2px!important;
    right:4px!important;
    font-size:23px!important;
  }
  .tc-features-page .tc-growth-cycle-figure{
    width:245px!important;
    height:168px!important;
    right:0!important;
    bottom:0!important;
    background-size:contain!important;
  }
}

/* The cycle itself should remain visually complete, with no clipping at either edge. */
.tc-features-page .tc-growth-cycle{
  overflow:hidden!important;
}
.tc-features-page .tc-growth-cycle-track>article,
.tc-features-page .tc-growth-cycle-track>i{
  position:relative;
  z-index:2;
}
.tc-features-page .tc-growth-cycle-track>article.is-growth{
  border-color:#b88926!important;
  box-shadow:0 12px 26px rgba(177,132,36,.18)!important;
}

/* Final alignment polish for visual strips and long content blocks. */
.tc-features-page .tc-feature-visual-strip,
.tc-features-page .tc-report-showcase,
.tc-features-page .tc-audience-cards{
  align-items:stretch!important;
}
.tc-features-page .tc-feature-visual-strip>article,
.tc-features-page .tc-report-showcase>*{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.tc-features-page .tc-report-showcase{
  overflow:hidden!important;
}
.tc-features-page .tc-report-preview,
.tc-features-page .tc-report-benefits{
  height:100%;
}

/* Keep comparison-card actions aligned without forcing text to collide. */
.tc-features-page .tc-audience-cards>article{
  min-width:0!important;
}
.tc-features-page .tc-audience-card-actions{
  margin-top:auto!important;
  padding-top:14px!important;
}
.tc-features-page .tc-audience-card-actions .tc-linkbtn{
  max-width:100%!important;
  box-sizing:border-box!important;
  white-space:normal!important;
  text-align:center!important;
}

/* Mobile keeps the safe vertical layout and never lets the illustration float over the cycle. */
@media(max-width:820px){
  .tc-features-page .tc-growth-cycle-side{
    position:relative!important;
    overflow:hidden!important;
  }
  .tc-features-page .tc-growth-cycle-figure{
    position:relative!important;
    inset:auto!important;
    margin:18px 0 0 auto!important;
    max-width:240px!important;
  }
}

/* ---- typing-coach-polish-v18569 | assets/css/polish-v18569.css ---- */
/* v1.85.69 — responsive completion: system header + growth cycle on smartphone/tablet */

/* -------------------------------------------------------------------------
   System header
   701–1100px previously used a horizontally scrolling navigation. On real
   phones/tablets (and some high-DPR screenshots) that produced a visible
   scrollbar and hid later navigation items. Keep every destination visible
   instead: brand/user controls on the first row, navigation in a compact grid.
   ------------------------------------------------------------------------- */
@media(max-width:1100px){
  body.tc-system-body .tc-system-header{
    position:relative!important;
    top:auto!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  body.tc-system-body .tc-system-header .tc-app-header__inner{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    gap:8px 12px!important;
    width:100%!important;
    max-width:100%!important;
    padding:10px 14px 11px!important;
    box-sizing:border-box!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    margin:0!important;
    justify-self:start!important;
  }
  body.tc-system-body .tc-system-header .tc-header-nav-zone{
    display:contents!important;
  }
  body.tc-system-body .tc-system-header .tc-primary-nav,
  body.tc-system-body .tc-system-header .tc-system-nav{
    grid-column:1 / -1!important;
    grid-row:2!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    scrollbar-width:none!important;
    white-space:normal!important;
  }
  body.tc-system-body .tc-system-header .tc-primary-nav::-webkit-scrollbar,
  body.tc-system-body .tc-system-header .tc-system-nav::-webkit-scrollbar{
    display:none!important;
  }
  body.tc-system-body .tc-system-header .tc-primary-nav>a,
  body.tc-system-body .tc-system-header .tc-system-nav>a{
    width:auto!important;
    min-width:0!important;
    min-height:40px!important;
    margin:0!important;
    padding:6px 7px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    box-sizing:border-box!important;
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:anywhere!important;
    text-align:center!important;
    font-size:11px!important;
    line-height:1.25!important;
  }
  body.tc-system-body .tc-system-header .tc-header-user-zone{
    grid-column:2!important;
    grid-row:1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    justify-self:end!important;
    min-width:0!important;
    max-width:100%!important;
    gap:7px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    white-space:nowrap!important;
  }
  body.tc-system-body .tc-system-header .tc-header-user-zone .tc-user-greeting{
    display:none!important;
  }
  body.tc-system-body .tc-system-header .tc-header-membership-link{
    min-width:0!important;
    max-width:260px!important;
    margin:0!important;
  }
  body.tc-system-body .tc-system-header .tc-header-membership-badge{
    min-width:0!important;
    max-width:220px!important;
  }
  body.tc-system-body .tc-system-header .tc-membership-badge-label{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  body.tc-system-body .tc-system-header .tc-system-logout,
  body.tc-system-body .tc-system-header .tc-system-login{
    flex:0 0 auto!important;
    min-height:34px!important;
    width:auto!important;
    margin:0!important;
    padding:6px 10px!important;
    white-space:nowrap!important;
  }
}

@media(max-width:600px){
  body.tc-system-body .tc-system-header .tc-app-header__inner{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto auto!important;
    gap:8px!important;
    padding:9px 10px 10px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo{
    grid-column:1!important;
    grid-row:1!important;
    justify-self:center!important;
  }
  body.tc-system-body .tc-system-header .tc-header-user-zone{
    grid-column:1!important;
    grid-row:2!important;
    justify-self:center!important;
    justify-content:center!important;
    width:100%!important;
    padding:6px 0 0!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
  }
  body.tc-system-body .tc-system-header .tc-primary-nav,
  body.tc-system-body .tc-system-header .tc-system-nav{
    grid-column:1!important;
    grid-row:3!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.tc-system-body .tc-system-header .tc-primary-nav>a,
  body.tc-system-body .tc-system-header .tc-system-nav>a{
    min-height:42px!important;
    font-size:11.5px!important;
  }
}

/* -------------------------------------------------------------------------
   Growth cycle
   Desktop keeps the six-step horizontal story. At tablet/smartphone widths,
   remove horizontal scrolling entirely and use a compact card grid. The
   supporting illustration becomes a normal-flow block beneath the cards so
   it can never cover the final GROW step or create a large empty canvas.
   ------------------------------------------------------------------------- */
@media(max-width:1100px){
  .tc-features-page .tc-growth-cycle{
    overflow:hidden!important;
  }
  .tc-features-page .tc-growth-cycle-layout{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
    align-items:start!important;
  }
  .tc-features-page .tc-growth-cycle-track{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:8px 0 0!important;
    overflow:visible!important;
    scrollbar-width:none!important;
  }
  .tc-features-page .tc-growth-cycle-track::-webkit-scrollbar{
    display:none!important;
  }
  .tc-features-page .tc-growth-cycle-track>i{
    display:none!important;
  }
  .tc-features-page .tc-growth-cycle-track>article,
  .tc-features-page .tc-growth-cycle-track>article.is-growth{
    width:auto!important;
    min-width:0!important;
    min-height:154px!important;
    margin:0!important;
    padding:15px 10px 14px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:18px!important;
    transform:none!important;
    box-sizing:border-box!important;
  }
  .tc-features-page .tc-growth-cycle-track>article>span,
  .tc-features-page .tc-growth-cycle-track>article.is-growth>span{
    width:54px!important;
    height:54px!important;
    margin:0 auto 9px!important;
    font-size:21px!important;
    flex:0 0 54px!important;
  }
  .tc-features-page .tc-growth-cycle-track>article>strong{
    font-size:16px!important;
    line-height:1.35!important;
    white-space:nowrap!important;
  }
  .tc-features-page .tc-growth-cycle-track>article>small{
    margin-top:5px!important;
    font-size:11px!important;
    line-height:1.55!important;
    text-align:center!important;
  }
  .tc-features-page .tc-growth-cycle-side{
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:14px 18px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 210px!important;
    align-items:center!important;
    gap:18px!important;
    justify-self:stretch!important;
    overflow:hidden!important;
    border:1px solid #e0e9ef!important;
    border-radius:20px!important;
    background:linear-gradient(135deg,#fbfdff,#f2f8fb)!important;
    box-sizing:border-box!important;
  }
  .tc-features-page .tc-growth-cycle-note{
    position:static!important;
    max-width:none!important;
    margin:0!important;
    font-size:24px!important;
    line-height:1.35!important;
    text-align:left!important;
    align-self:center!important;
  }
  .tc-features-page .tc-growth-cycle-figure{
    position:relative!important;
    inset:auto!important;
    width:200px!important;
    max-width:100%!important;
    height:150px!important;
    min-height:0!important;
    margin:0!important;
    justify-self:end!important;
    overflow:hidden!important;
    background-size:contain!important;
    background-position:center bottom!important;
    box-sizing:border-box!important;
  }
}

@media(max-width:620px){
  .tc-features-page .tc-growth-cycle-track{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .tc-features-page .tc-growth-cycle-track>article,
  .tc-features-page .tc-growth-cycle-track>article.is-growth{
    min-height:146px!important;
  }
  .tc-features-page .tc-growth-cycle-side{
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:16px!important;
  }
  .tc-features-page .tc-growth-cycle-note{
    font-size:22px!important;
    text-align:center!important;
  }
  .tc-features-page .tc-growth-cycle-figure{
    width:min(100%,220px)!important;
    height:150px!important;
    justify-self:center!important;
  }
}

@media(max-width:380px){
  .tc-features-page .tc-growth-cycle-track{
    grid-template-columns:1fr!important;
  }
  .tc-features-page .tc-growth-cycle-track>article,
  .tc-features-page .tc-growth-cycle-track>article.is-growth{
    min-height:128px!important;
  }
}

/* Feature-page overflow guard: wide comparison/table components must scroll in
   their own wrappers, never make the complete page/header horizontally scroll. */
@media(max-width:1100px){
  body.tc-system-body .tc-system-main,
  body.tc-system-body .tc-system-main__inner,
  body.tc-system-body .tc-features-page{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body.tc-system-body .tc-features-page{
    overflow-x:clip!important;
  }
  .tc-features-page .tc-audience-table-wrap,
  .tc-features-page .tc-plan-table-wrap{
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
}

/* ---- typing-coach-polish-v18570 | assets/css/polish-v18570.css ---- */
/* v1.85.70 — feature page final completion polish based on v1.85.69 live PC/SP review */

/* -------------------------------------------------------------------------
   1) Growth report: remove the artificial equal-height stretch that left a
   large blank area below the report preview. Each side now ends naturally.
   ------------------------------------------------------------------------- */
.tc-features-page .tc-report-showcase{
  align-items:start!important;
}
.tc-features-page .tc-report-showcase>.tc-report-preview,
.tc-features-page .tc-report-showcase>.tc-report-benefits{
  height:auto!important;
  min-height:0!important;
  align-self:start!important;
}
.tc-features-page .tc-report-preview{
  overflow:hidden!important;
}
.tc-features-page .tc-report-preview-body{
  padding-bottom:16px!important;
}
.tc-features-page .tc-report-preview-body>article:last-child{
  margin-bottom:0!important;
}
.tc-features-page .tc-report-benefits{
  min-height:0!important;
}

/* Keep the two report columns visually related even though they no longer
   stretch to identical heights. */
@media(min-width:901px){
  .tc-features-page .tc-report-showcase{
    grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)!important;
    gap:24px!important;
  }
  .tc-features-page .tc-report-preview{
    box-shadow:0 16px 34px rgba(11,47,80,.06)!important;
  }
  .tc-features-page .tc-report-benefits{
    box-shadow:0 16px 34px rgba(11,47,80,.05)!important;
  }
}

/* -------------------------------------------------------------------------
   2) Coaching section: the copy is the message, the illustration supports it.
   Reduce the visual by a few percent and give the heading/body calmer rhythm.
   ------------------------------------------------------------------------- */
@media(min-width:1241px){
  .tc-features-page .tc-coach-value{
    grid-template-columns:minmax(0,1.15fr) minmax(370px,.85fr)!important;
    gap:36px!important;
  }
  .tc-features-page .tc-coach-value-side{
    width:91%!important;
    max-width:535px!important;
  }
  .tc-features-page .tc-coach-editorial-visual{
    min-height:218px!important;
  }
}
.tc-features-page .tc-coach-value-copy h2{
  margin-bottom:18px!important;
}
.tc-features-page .tc-coach-value-copy>p{
  margin-top:0!important;
}
.tc-features-page .tc-coach-value-points{
  margin-top:18px!important;
}

/* -------------------------------------------------------------------------
   3) Final spacing system: unify vertical rhythm without making the long page
   feel cramped. These values intentionally only nudge v1.85.69.
   ------------------------------------------------------------------------- */
.tc-features-page>.tc-features-section{
  margin-top:26px!important;
  margin-bottom:26px!important;
}
.tc-features-page .tc-features-heading{
  margin-bottom:22px!important;
}
.tc-features-page .tc-features-heading>p{
  margin-top:7px!important;
}
.tc-features-page .tc-features-six,
.tc-features-page .tc-feature-catalog-grid,
.tc-features-page .tc-score-formula,
.tc-features-page .tc-goal-input-mock.is-four,
.tc-features-page .tc-audience-cards{
  margin-top:0!important;
}

/* Report section gets a little more local breathing room while the overall
   page rhythm stays compact. */
.tc-features-page .tc-features-report .tc-report-flow{
  margin-bottom:24px!important;
}
.tc-features-page .tc-report-materials{
  margin-bottom:26px!important;
}
.tc-features-page .tc-report-showcase{
  margin-top:16px!important;
  margin-bottom:24px!important;
}
.tc-features-page .tc-report-format{
  margin-top:20px!important;
}

/* Purpose / Member / usage comparison: keep CTA proximity consistent. */
.tc-features-page .tc-goal-evolution{margin-top:15px!important}
.tc-features-page #individual-plans .tc-plan-current-grid{margin-top:18px!important}
.tc-features-page #individual-plans .tc-plan-status-note{margin-top:16px!important}
.tc-features-page #individual-plans .tc-plan-actions{margin-top:18px!important}
.tc-features-page .tc-audience-role-bar{margin-bottom:15px!important}
.tc-features-page .tc-audience-cards{margin-top:0!important}
.tc-features-page .tc-audience-table-intro{margin-top:16px!important}
.tc-features-page .tc-audience-next-actions{margin-top:14px!important}

/* -------------------------------------------------------------------------
   4) Comparison remains compact. Do not add another explanatory layer; improve
   scanability only. */
.tc-features-page .tc-audience-table-wrap{
  margin-top:12px!important;
}
.tc-features-page .tc-audience-table tbody tr:last-child td,
.tc-features-page .tc-plan-table tbody tr:last-child td{
  border-bottom:0!important;
}
.tc-features-page .tc-audience-card-actions .tc-linkbtn{
  min-height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* -------------------------------------------------------------------------
   5) Bottom utility → final CTA transition. */
.tc-features-page>.tc-features-accessible{
  margin-bottom:20px!important;
}
.tc-features-page>.tc-features-final{
  margin-top:0!important;
}

@media(max-width:1240px){
  .tc-features-page .tc-coach-value-side{
    width:100%!important;
    max-width:760px!important;
  }
}

@media(max-width:900px){
  .tc-features-page>.tc-features-section{
    margin-top:21px!important;
    margin-bottom:21px!important;
  }
  .tc-features-page .tc-report-showcase{
    gap:20px!important;
  }
  .tc-features-page .tc-report-preview,
  .tc-features-page .tc-report-benefits{
    width:100%!important;
  }
}

@media(max-width:720px){
  .tc-features-page>.tc-features-section{
    margin-top:17px!important;
    margin-bottom:17px!important;
  }
  .tc-features-page .tc-features-heading{
    margin-bottom:19px!important;
  }
  .tc-features-page .tc-report-showcase{
    margin-top:12px!important;
    gap:16px!important;
  }
  .tc-features-page .tc-report-materials{
    margin-bottom:20px!important;
  }
  .tc-features-page>.tc-features-accessible{
    margin-bottom:14px!important;
  }
}

/* ---- typing-coach-polish-v18571 | assets/css/polish-v18571.css ---- */
/* v1.85.71 — Teams closed-offer copy and contrast polish */
.tc-gsales-v18571 .tc-gsales-primary.is-disabled.is-closed{
  opacity:1;
  filter:none;
  cursor:default;
  pointer-events:none;
  background:#eef4f8;
  border:1px solid #bfd0dc;
  color:#23465f;
  box-shadow:none;
}
.tc-gsales-v18571 .tc-gsales-primary.is-disabled.is-closed:before{
  content:"";
  width:8px;
  height:8px;
  margin-right:8px;
  border-radius:50%;
  background:#8da9bc;
  flex:0 0 auto;
}

/* Closed mode is an information state, not an error state. */
.tc-gsales-v18571 .tc-gsales-apply-notice.is-closed{
  max-width:900px;
  margin:26px auto 0;
  padding:22px 24px;
  border:1px solid #bfd4e3;
  border-left:5px solid #6d96b4;
  border-radius:16px;
  background:linear-gradient(135deg,#f7fbfd,#eef5f9);
  color:#314f65;
  box-shadow:0 10px 26px rgba(11,47,80,.05);
}
.tc-gsales-v18571 .tc-gsales-apply-notice.is-closed strong{
  color:#0b2f50;
  font-size:17px;
  line-height:1.5;
}
.tc-gsales-v18571 .tc-gsales-apply-notice.is-closed p{
  color:#49657a;
  line-height:1.8;
}
.tc-gsales-v18571 .tc-gsales-apply-notice.is-closed.is-explore{
  text-align:center;
  background:linear-gradient(135deg,#fffdf7,#f8fbfd);
  border-color:#dec98f;
  border-left-color:#c79b39;
}
.tc-gsales-v18571 .tc-gsales-apply-notice.is-closed.is-explore .tc-gsales-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  margin-top:14px;
  padding:0 22px;
  border-color:#9fb9cc;
  color:#17466a;
  background:#fff;
}
.tc-gsales-v18571 .tc-gsales-apply-notice.is-closed.is-explore .tc-gsales-secondary:hover{
  border-color:#6f9ab8;
  background:#f5fafd;
}

/* Keep the two closed-state sections visually distinct: status first, explore second. */
.tc-gsales-v18571 .tc-gsales-apply{
  background:linear-gradient(180deg,#fff,#fbfcfd);
}
.tc-gsales-v18571 .tc-gsales-plan-section{
  background:linear-gradient(180deg,#fff9ec,#fffdf8);
}
.tc-gsales-v18571 .tc-gsales-plan-section>.tc-gsales-heading h2 strong{
  color:#9a7627;
}

/* Final CTA: usable action + readable status note on dark navy. */
.tc-gsales-v18571 .tc-gsales-final .tc-gsales-final-demo{
  background:linear-gradient(135deg,#d5aa4d,#e4c56d);
  color:#102f49;
  box-shadow:0 12px 26px rgba(5,20,34,.24);
}
.tc-gsales-v18571 .tc-gsales-final .tc-gsales-final-demo:hover{
  background:linear-gradient(135deg,#dfba61,#edd485);
  color:#0b2942;
}
.tc-gsales-v18571 .tc-gsales-final>small{
  display:inline-block;
  margin-top:14px;
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#f2f7fb;
  font-size:10px;
  font-weight:750;
  line-height:1.45;
  letter-spacing:.01em;
}

/* Closed state wording should remain legible on compact screens. */
@media(max-width:700px){
  .tc-gsales-v18571 .tc-gsales-apply-notice.is-closed{
    margin-top:20px;
    padding:18px 17px;
    text-align:left;
  }
  .tc-gsales-v18571 .tc-gsales-apply-notice.is-closed.is-explore{
    text-align:center;
  }
  .tc-gsales-v18571 .tc-gsales-primary.is-disabled.is-closed{
    width:100%;
    white-space:normal;
    text-align:center;
  }
  .tc-gsales-v18571 .tc-gsales-final>small{
    max-width:100%;
    border-radius:14px;
  }
}

/* ---- typing-coach-polish-v18572 | assets/css/polish-v18572.css ---- */
/* v1.85.72 — Teams public copy + heading line-break polish */
.tc-gsales-v18572 .tc-gsales-heading h2{
  text-wrap:balance;
}

/* The brand promise is short enough to read as one clean desktop line. */
@media(min-width:1100px){
  .tc-gsales-v18572 .tc-gsales-brand-copy .tc-gsales-heading.is-brand-promise{
    max-width:none;
  }
  .tc-gsales-v18572 .tc-gsales-brand-copy .tc-gsales-heading.is-brand-promise h2{
    white-space:nowrap;
    font-size:clamp(29px,2.25vw,36px);
    line-height:1.34;
    letter-spacing:-.025em;
  }
  .tc-gsales-v18572 .tc-gsales-brand-copy .tc-gsales-heading.is-brand-promise h2 strong{
    display:inline;
  }

  /* Other short section titles should stay on one line when desktop space permits. */
  .tc-gsales-v18572 .tc-gsales-management>.tc-gsales-heading h2,
  .tc-gsales-v18572 .tc-gsales-flow>.tc-gsales-heading h2,
  .tc-gsales-v18572 .tc-gsales-users>.tc-gsales-heading h2,
  .tc-gsales-v18572 .tc-gsales-apply>.tc-gsales-heading h2,
  .tc-gsales-v18572 .tc-gsales-plan-section>.tc-gsales-heading h2,
  .tc-gsales-v18572 .tc-gsales-compare>.tc-gsales-heading h2,
  .tc-gsales-v18572 .tc-gsales-voices>.tc-gsales-heading h2{
    max-width:none;
    white-space:nowrap;
    font-size:clamp(29px,2.45vw,39px);
    line-height:1.36;
    letter-spacing:-.02em;
  }
}

/* Medium screens: prefer balanced natural breaks rather than forced fragments. */
@media(min-width:701px) and (max-width:1099px){
  .tc-gsales-v18572 .tc-gsales-heading h2{
    max-width:920px;
    margin-left:auto;
    margin-right:auto;
    line-height:1.38;
  }
  .tc-gsales-v18572 .tc-gsales-brand-copy .tc-gsales-heading h2{
    max-width:100%;
    margin-left:0;
    margin-right:0;
  }
}

/* Mobile: never force a desktop single line. Keep phrases readable and inside the viewport. */
@media(max-width:700px){
  .tc-gsales-v18572 .tc-gsales-heading h2,
  .tc-gsales-v18572 .tc-gsales-brand-copy .tc-gsales-heading.is-brand-promise h2{
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
    text-wrap:balance;
  }
}

/* ---- typing-coach-polish-v18573 | assets/css/polish-v18573.css ---- */
/* v1.85.73 — Teams free-use feedback request UX */
.tc-gsales-v18573 .tc-gsales-feedback-condition{
  display:flex;
  align-items:flex-start;
  gap:12px;
  max-width:620px;
  margin-top:14px;
  padding:14px 16px;
  border:1px solid #e7d49c;
  border-radius:14px;
  background:linear-gradient(180deg,#fffdf5,#fff8e8);
  color:#42566a;
  box-shadow:0 10px 24px rgba(26,48,72,.05);
}
.tc-gsales-v18573 .tc-gsales-feedback-condition>span{
  display:grid;
  place-items:center;
  flex:0 0 34px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#f3d98d;
  color:#72530f;
  font-size:16px;
}
.tc-gsales-v18573 .tc-gsales-feedback-condition strong{
  display:block;
  margin:0 0 4px;
  color:#193b59;
  font-size:13px;
}
.tc-gsales-v18573 .tc-gsales-feedback-condition p{
  margin:0;
  color:#607385;
  font-size:12px;
  line-height:1.7;
}

.tc-group-feedback-request{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:14px 0 18px;
  padding:18px 20px;
  border:1px solid #e6d39a;
  border-left:5px solid #c79a32;
  border-radius:16px;
  background:linear-gradient(135deg,#fffdf5,#fff8e8);
  box-shadow:0 10px 26px rgba(23,55,83,.06);
}
.tc-group-feedback-request .tc-kicker{
  display:block;
  color:#9a7420;
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  margin-bottom:4px;
}
.tc-group-feedback-request strong{
  display:block;
  color:#173b5b;
  font-size:18px;
  line-height:1.45;
}
.tc-group-feedback-request p{
  margin:5px 0 0;
  max-width:760px;
  color:#627688;
  font-size:13px;
  line-height:1.7;
}
.tc-group-feedback-request .tc-linkbtn{
  flex:0 0 auto;
  white-space:nowrap;
}

@media(max-width:760px){
  .tc-gsales-v18573 .tc-gsales-feedback-condition{max-width:none}
  .tc-group-feedback-request{display:block;padding:16px}
  .tc-group-feedback-request .tc-linkbtn{display:flex;width:100%;box-sizing:border-box;margin-top:14px;white-space:normal;text-align:center}
}

/* ---- typing-coach-polish-v18575 | assets/css/polish-v18575.css ---- */
/* v1.85.75 — TOP page visual polish and growth-first home experience */

/* Overall page rhythm */
body.tc-home-system-page .tc-home{
  --tc-home-ivory:#fffaf1;
  --tc-home-blue:#f2f8fc;
  --tc-home-line:#dbe6ee;
}
.tc-home-section{margin-top:64px}
.tc-home-section:nth-of-type(odd){scroll-margin-top:90px}

/* Hero: stronger growth dashboard */
.tc-home-hero{
  grid-template-columns:minmax(0,1.42fr) minmax(390px,.82fr)!important;
  min-height:540px;
  border-radius:28px!important;
}
.tc-home-hero-copy{padding:56px clamp(36px,4.5vw,72px)!important}
.tc-home-hero-panel{
  padding:36px 28px!important;
  align-items:stretch!important;
  text-align:left!important;
}
.tc-home-hero-panel>.tc-home-mark{align-self:center}
.tc-home-hero-panel>small{align-self:center}
.tc-home-mini-stats{margin-top:22px!important;gap:12px!important}
.tc-home-mini-stats div{
  padding:15px 10px!important;
  background:rgba(255,255,255,.085)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.tc-home-mini-stats b{font-size:26px!important}

.tc-home-resume-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  margin-top:22px;
  padding:14px 16px;
  border:1px solid #dbe6ee;
  border-radius:15px;
  background:linear-gradient(135deg,#f7fbff,#fffaf0);
  box-shadow:0 8px 20px rgba(11,47,80,.05);
}
.tc-home-resume-card>span{
  display:grid;
  place-items:center;
  min-width:82px;
  min-height:40px;
  padding:0 10px;
  border-radius:999px;
  background:#0b2f50;
  color:#efc96c;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}
.tc-home-resume-card small{display:block;color:#748697;font-size:11px;font-weight:800}
.tc-home-resume-card strong{display:block;margin-top:3px;color:#173b5b;font-size:15px;line-height:1.5}
.tc-home-resume-card>a{color:#8d6619!important;font-weight:900;text-decoration:none!important;white-space:nowrap}
.tc-home-resume-card>a:hover{text-decoration:underline!important}

.tc-home-hero-growth{
  display:grid;
  grid-template-columns:minmax(132px,.72fr) minmax(0,1.28fr);
  gap:10px;
  margin-top:12px;
}
.tc-home-hero-rank,
.tc-home-hero-spark{
  min-height:92px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  background:rgba(255,255,255,.065);
  padding:13px 14px;
}
.tc-home-hero-rank small,
.tc-home-hero-spark small{
  display:block;
  color:#efc96c;
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
}
.tc-home-hero-rank strong{display:block;margin-top:5px;color:#fff;font-size:20px;line-height:1.1}
.tc-home-hero-rank span{display:block;margin-top:4px;color:#cbd9e5;font-size:11px}
.tc-home-hero-spark>div{
  display:flex;
  align-items:flex-end;
  gap:5px;
  height:50px;
  margin-top:7px;
  padding:0 2px;
}
.tc-home-hero-spark i{
  display:block;
  flex:1 1 0;
  min-width:5px;
  min-height:8px;
  border-radius:4px 4px 2px 2px;
  background:linear-gradient(180deg,#efcf79,#77abd2);
  opacity:.95;
}

/* Recent growth panel */
.tc-home-growth-now{
  margin-top:34px!important;
  padding:28px 30px;
  border:1px solid #d7e5ef;
  border-radius:24px;
  background:
    radial-gradient(circle at 90% 10%,rgba(199,154,59,.11),transparent 22%),
    linear-gradient(135deg,#f4f9fd 0%,#fff 52%,#fffaf0 100%);
  box-shadow:0 14px 32px rgba(11,47,80,.055);
}
.tc-home-growth-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:18px;
}
.tc-home-growth-head h2{
  margin:5px 0 5px!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  color:#102f50!important;
  font-size:clamp(25px,2.5vw,36px)!important;
  line-height:1.25!important;
}
.tc-home-growth-head p{margin:0;color:#667b8d;line-height:1.6}
.tc-home-growth-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 16px;
  border:1px solid #b9cede;
  border-radius:11px;
  background:#fff;
  color:#154f78!important;
  font-weight:850;
  text-decoration:none!important;
  white-space:nowrap;
}
.tc-home-growth-link:hover{background:#f7fbfe;transform:translateY(-1px)}
.tc-home-growth-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tc-home-growth-grid article{
  position:relative;
  min-height:138px;
  padding:18px 16px 16px 58px;
  border:1px solid #dce7ee;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 20px rgba(11,47,80,.04);
}
.tc-home-growth-icon{
  position:absolute;
  left:16px;
  top:17px;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:10px;
  background:#edf5fa;
  color:#275f89;
  font-size:17px;
  font-weight:900;
}
.tc-home-growth-grid article.is-rank .tc-home-growth-icon{background:#fff5da;color:#99701e}
.tc-home-growth-grid article.is-week .tc-home-growth-icon{background:#edf5fa;color:#2f6c97}
.tc-home-growth-grid article.is-wpm .tc-home-growth-icon{background:#edf8f1;color:#4e8363}
.tc-home-growth-grid article.is-next .tc-home-growth-icon{background:#fff0f3;color:#a74a5e}
.tc-home-growth-grid small{display:block;color:#6a7f91;font-size:11px;font-weight:850}
.tc-home-growth-grid strong{display:block;margin-top:8px;color:#123b5d;font-size:25px;line-height:1.15}
.tc-home-growth-grid em{display:block;margin-top:7px;color:#6b7e8f;font-size:11px;font-style:normal;line-height:1.5}

/* Member lesson section */
.tc-home .tc-member-practice-section{
  background:linear-gradient(135deg,#fff 0%,#f7fbfe 55%,#fffaf1 100%)!important;
}
.tc-home .tc-top-practice-card{transition:transform .2s ease,box-shadow .2s ease}
.tc-home .tc-top-practice-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(11,47,80,.10)}
.tc-home .tc-top-practice-visual{position:relative;overflow:hidden}
.tc-home-lesson-icon{
  position:absolute!important;
  right:16px;
  top:16px;
  display:grid!important;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:16px;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  color:#f1cf78!important;
  font-size:24px!important;
  font-weight:900!important;
  line-height:1!important;
  backdrop-filter:blur(2px);
}
.tc-home .tc-top-practice-visual>b{padding-right:52px}

/* Popular: distinguish from normal catalogue */
.tc-home-popular-cards{
  background:
    radial-gradient(circle at 92% 16%,rgba(199,154,59,.12),transparent 24%),
    linear-gradient(135deg,#fffaf0 0%,#fffdf8 58%,#f6f9fc 100%)!important;
}
.tc-home-popular-cards .tc-top-practice-card{border-color:#ead9af!important}
.tc-home-popular-rank{
  position:absolute!important;
  left:15px;
  top:15px;
  z-index:3;
  display:grid!important;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:7px;
  padding:6px 9px!important;
  border-radius:999px;
  background:rgba(255,248,226,.96)!important;
  color:#1b4262!important;
  border:1px solid rgba(231,201,121,.82)!important;
  box-shadow:0 6px 16px rgba(10,28,47,.11);
}
.tc-home-popular-rank b{font-size:16px!important;color:#a97818!important;line-height:1!important}
.tc-home-popular-rank small{font-size:8px!important;font-weight:900!important;letter-spacing:.08em!important;color:#526b7e!important}
.tc-home-popular-cards .tc-home-lesson-icon{top:55px}
.tc-home-popular-cards .tc-top-practice-visual>span:not(.tc-home-popular-rank):not(.tc-home-lesson-icon){margin-top:38px}

/* Teams: slightly stronger visual weight */
.tc-home-for-groups{
  background:linear-gradient(135deg,#f7fbfe 0%,#edf6fb 58%,#fffaf0 100%)!important;
  border-color:#caddea!important;
}
.tc-home-groups-preview{transform:scale(1.035);transform-origin:center}

/* Brand flow */
.tc-home-framework{position:relative;overflow:hidden}
.tc-home-framework:before{
  content:"";
  position:absolute;
  left:9%;right:9%;top:178px;
  height:2px;
  background:linear-gradient(90deg,rgba(239,201,103,.12),rgba(239,201,103,.7),rgba(239,201,103,.12));
}
.tc-home-framework>*{position:relative;z-index:1}
.tc-home-framework-grid{gap:20px!important}
.tc-home-framework-grid article{
  min-height:200px!important;
  text-align:center;
  padding:22px 18px!important;
}
.tc-home-framework-icon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  margin:0 auto 13px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:24px;
  font-weight:900;
}
.tc-home-framework-grid article:not(:last-child):before{
  content:"→";
  position:absolute;
  right:-16px;
  top:78px;
  z-index:5;
  color:#e5bd5e;
  font-size:24px;
  font-weight:900;
}

/* Requested contrast fix: features link must be unmistakable on dark background */
.tc-home-framework .tc-home-center-actions{margin-top:30px}
.tc-home-framework .tc-home-center-actions .tc-home-text-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:12px 20px;
  border:1px solid rgba(239,201,103,.86);
  border-radius:12px;
  background:linear-gradient(135deg,rgba(239,201,103,.16),rgba(255,255,255,.08));
  color:#fff!important;
  font-weight:900;
  text-shadow:0 1px 1px rgba(0,0,0,.18);
  box-shadow:0 10px 24px rgba(2,15,28,.14);
  white-space:normal;
  text-align:center;
}
.tc-home-framework .tc-home-center-actions .tc-home-text-link:hover{
  background:linear-gradient(135deg,#e5b94f,#f1cf78);
  color:#0b2f50!important;
  transform:translateY(-1px);
}
.tc-home-framework .tc-home-center-actions .tc-home-text-link:focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
}

/* Final CTA visual polish */
.tc-home-final{box-shadow:0 14px 34px rgba(11,47,80,.06)}

@media(max-width:1100px){
  .tc-home-hero{grid-template-columns:1fr!important}
  .tc-home-hero-panel{align-items:center!important;text-align:center!important}
  .tc-home-hero-growth{width:min(100%,620px)}
  .tc-home-growth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tc-home-groups-preview{transform:none}
  .tc-home-framework:before{display:none}
  .tc-home-framework-grid article:not(:last-child):before{display:none}
}
@media(max-width:760px){
  .tc-home-section{margin-top:48px}
  .tc-home-resume-card{grid-template-columns:1fr;align-items:start}
  .tc-home-resume-card>span{justify-self:start}
  .tc-home-resume-card>a{white-space:normal}
  .tc-home-growth-now{padding:24px 18px}
  .tc-home-growth-head{display:block}
  .tc-home-growth-link{margin-top:14px;width:100%}
  .tc-home-growth-grid{grid-template-columns:1fr 1fr}
  .tc-home-framework-grid{grid-template-columns:1fr 1fr!important}
}
@media(max-width:520px){
  .tc-home-growth-grid{grid-template-columns:1fr}
  .tc-home-hero-growth{grid-template-columns:1fr}
  .tc-home-framework-grid{grid-template-columns:1fr!important}
  .tc-home-framework-grid article{min-height:auto!important}
  .tc-home-popular-rank{left:12px;top:12px}
  .tc-home-popular-cards .tc-home-lesson-icon{top:50px;right:12px}
}

/* ---- typing-coach-polish-v18576 | assets/css/polish-v18576.css ---- */
/* v1.85.76 — TOP page worldview harmonization
   Bring the TOP page closer to the premium editorial rhythm used by
   the Features and Typing Coach for Teams pages without changing data,
   permissions, URLs, ads, ranking, or lesson behavior. */

/* ------------------------------------------------------------
   1) Page rhythm: fewer "floating cards", stronger section bands.
   ------------------------------------------------------------ */
.tc-home-template-main.tc-home-template-standalone{
  padding-top:30px!important;
  background:
    radial-gradient(circle at 10% 7%,rgba(199,154,59,.055),transparent 23%),
    radial-gradient(circle at 92% 48%,rgba(76,130,184,.045),transparent 25%),
    linear-gradient(180deg,#f8f6f0 0%,#f8fafc 28%,#fbfaf7 58%,#f7f5ef 100%)!important;
}
.tc-home-template-standalone>.tc-home{max-width:1540px!important}
.tc-home-section{margin-top:58px!important}
.tc-home-eyebrow,
.tc-home .tc-kicker{
  font-size:10px!important;
  letter-spacing:.19em!important;
  font-weight:900!important;
}
.tc-home .tc-top-practice-section>h2,
.tc-home-section-head h2,
.tc-home-growth-head h2,
.tc-home-groups-copy h2,
.tc-home-final h2{
  letter-spacing:-.025em!important;
  text-wrap:balance;
}
.tc-home .tc-top-practice-section>p,
.tc-home-section-head p,
.tc-home-growth-head p,
.tc-home-groups-copy>p,
.tc-home-final p{
  color:#62778a!important;
}

/* Shared premium band geometry. */
.tc-home-growth-now,
.tc-home .tc-top-practice-section,
.tc-home-popular-cards,
.tc-home-for-groups,
.tc-home-framework,
.tc-home-final{
  border-radius:18px!important;
}
.tc-home-growth-now,
.tc-home .tc-top-practice-section,
.tc-home-popular-cards,
.tc-home-for-groups{
  box-shadow:0 12px 30px rgba(11,47,80,.045)!important;
}

/* ------------------------------------------------------------
   2) Hero: editorial split + dashboard feel.
   ------------------------------------------------------------ */
.tc-home-hero{
  min-height:560px!important;
  border-radius:18px!important;
  border-color:#dfc47e!important;
  background:linear-gradient(102deg,#fff 0%,#fffdf9 58%,#f5f0e6 100%)!important;
  box-shadow:0 22px 52px rgba(9,35,63,.095)!important;
}
.tc-home-hero-copy{padding:62px clamp(40px,4.7vw,76px)!important}
.tc-home-hero h1{
  max-width:760px;
  letter-spacing:-.035em!important;
  text-wrap:balance;
}
.tc-home-hero.is-member h1{font-size:clamp(42px,4.1vw,62px)!important}
.tc-home-lead{max-width:780px!important;line-height:1.9!important}
.tc-home-hero-panel{
  position:relative;
  overflow:hidden;
  padding:38px 30px!important;
  border-left-color:rgba(220,188,111,.72)!important;
  background:
    radial-gradient(circle at 76% 15%,rgba(229,190,91,.19),transparent 29%),
    radial-gradient(circle at 20% 84%,rgba(82,143,190,.15),transparent 34%),
    linear-gradient(145deg,#071a34 0%,#123a65 100%)!important;
}
.tc-home-hero-panel:after{
  content:"";
  position:absolute;
  right:-110px;
  bottom:-135px;
  width:300px;
  height:300px;
  border:1px solid rgba(239,201,103,.16);
  border-radius:50%;
  box-shadow:0 0 0 34px rgba(239,201,103,.035),0 0 0 68px rgba(239,201,103,.02);
  pointer-events:none;
}
.tc-home-hero-panel>*{position:relative;z-index:1}
.tc-home-mark{width:110px!important;height:126px!important;font-size:39px!important}
.tc-home-mini-stats{gap:10px!important}
.tc-home-mini-stats div{
  min-height:92px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-radius:11px!important;
}
.tc-home-mini-stats b{font-size:27px!important;letter-spacing:-.025em}
.tc-home-mini-stats span{font-size:10.5px!important;line-height:1.45}
.tc-home-hero-rank,
.tc-home-hero-spark{
  min-height:98px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.075)!important;
}
.tc-home-resume-card{
  margin-top:24px!important;
  border-radius:13px!important;
  box-shadow:none!important;
  background:linear-gradient(100deg,#f5f9fc,#fffaf0)!important;
}

/* Main CTAs mirror the premium public pages. */
.tc-home-primary,
.tc-home-secondary,
.tc-home-faq-outline,
.tc-home-growth-link{
  border-radius:999px!important;
}
.tc-home-primary,
.tc-home-secondary{min-height:50px!important;padding-inline:24px!important}
.tc-home-primary{box-shadow:0 12px 25px rgba(196,67,90,.20)!important}

/* ------------------------------------------------------------
   3) Logged-in growth: one dashboard band, not a separate applet.
   ------------------------------------------------------------ */
.tc-home-growth-now{
  margin-top:38px!important;
  padding:32px 34px!important;
  border-color:#d4e2eb!important;
  background:
    radial-gradient(circle at 92% 5%,rgba(199,154,59,.12),transparent 22%),
    linear-gradient(102deg,#f3f8fc 0%,#fff 56%,#fff9ed 100%)!important;
}
.tc-home-growth-head{margin-bottom:20px!important;align-items:center!important}
.tc-home-growth-head h2{font-size:clamp(27px,2.65vw,38px)!important}
.tc-home-growth-grid{gap:14px!important}
.tc-home-growth-grid article{
  min-height:130px!important;
  padding:19px 16px 17px 60px!important;
  border-radius:13px!important;
  box-shadow:none!important;
}
.tc-home-growth-grid article:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:3px;
  opacity:.9;
}
.tc-home-growth-grid article.is-rank:after{background:#c79a3b}
.tc-home-growth-grid article.is-week:after{background:#4c82b8}
.tc-home-growth-grid article.is-wpm:after{background:#5c8f6f}
.tc-home-growth-grid article.is-next:after{background:#c4435a}
.tc-home-growth-grid strong{font-size:26px!important;letter-spacing:-.02em}
.tc-home-growth-grid small{font-size:11px!important}
.tc-home-growth-grid em{font-size:11.5px!important}

/* ------------------------------------------------------------
   4) Lesson shelves: richer section framing and easier-to-read cards.
   ------------------------------------------------------------ */
.tc-home .tc-top-practice-section{
  padding:42px 40px 40px!important;
  border-color:#d7e3eb!important;
  background:
    radial-gradient(circle at 95% 8%,rgba(199,154,59,.08),transparent 21%),
    linear-gradient(102deg,#fff 0%,#f5f9fc 60%,#fffaf1 100%)!important;
}
.tc-home .tc-member-practice-section{
  background:
    radial-gradient(circle at 94% 8%,rgba(76,130,184,.085),transparent 20%),
    linear-gradient(102deg,#fff 0%,#f4f9fc 62%,#fffaf0 100%)!important;
}
.tc-home .tc-top-practice-section::before,
.tc-home-popular-cards::before{
  width:150px!important;
  height:3px!important;
}
.tc-home .tc-top-practice-section>h2{font-size:clamp(31px,2.75vw,42px)!important;margin-top:8px!important}
.tc-home .tc-top-practice-section>p{margin-bottom:25px!important}
.tc-home .tc-top-practice-grid{gap:18px!important}
.tc-home .tc-top-practice-card{
  border-radius:15px!important;
  box-shadow:0 10px 24px rgba(11,47,80,.055)!important;
  background:#fff!important;
}
.tc-home .tc-top-practice-card:hover{box-shadow:0 18px 34px rgba(11,47,80,.10)!important}
.tc-home .tc-top-practice-visual{
  min-height:184px!important;
  padding:23px 22px!important;
}
.tc-home .tc-top-practice-visual>b{
  font-size:21px!important;
  line-height:1.38!important;
  letter-spacing:-.015em;
}
.tc-home .tc-top-practice-visual>small{font-size:11.5px!important;line-height:1.5}
.tc-home-lesson-icon{
  width:46px!important;
  height:46px!important;
  right:14px!important;
  top:14px!important;
  border-radius:13px!important;
  font-size:21px!important;
}
.tc-home .tc-top-practice-body{
  display:flex;
  flex-direction:column;
  min-height:205px;
  padding:19px!important;
}
.tc-home .tc-top-practice-body p{
  min-height:0!important;
  margin:10px 0 16px!important;
  color:#5d7285!important;
  font-size:13.5px!important;
  line-height:1.68!important;
}
.tc-home .tc-top-practice-body .tc-primary{
  width:100%;
  min-height:44px;
  margin-top:auto;
  border-radius:10px!important;
  text-align:center;
}

/* Popular is a warm editorial shelf; No.1 gets a subtle premium emphasis. */
.tc-home-popular-cards{
  padding:42px 40px 40px!important;
  border-color:#e4d3aa!important;
  background:
    radial-gradient(circle at 94% 10%,rgba(199,154,59,.14),transparent 23%),
    linear-gradient(102deg,#fff9ec 0%,#fffdf8 58%,#f4f8fb 100%)!important;
}
.tc-home-popular-cards .tc-home-section-head{margin-bottom:26px!important}
.tc-home-popular-cards .tc-top-practice-card:first-child{
  border-color:#d5ad51!important;
  box-shadow:0 14px 30px rgba(177,132,36,.11)!important;
}
.tc-home-popular-cards .tc-top-practice-card:first-child .tc-top-practice-visual{
  box-shadow:inset 0 0 0 1px rgba(238,202,112,.16);
}
.tc-home-popular-rank{border-radius:999px!important}
.tc-home-popular-cards .tc-home-lesson-icon{top:54px!important}

/* ------------------------------------------------------------
   5) Teams teaser: closer to the Teams LP's editorial + dashboard composition.
   ------------------------------------------------------------ */
.tc-home-for-groups{
  position:relative;
  overflow:hidden;
  gap:48px!important;
  padding:50px 46px!important;
  border-color:#ccdce7!important;
  background:
    radial-gradient(circle at 7% 92%,rgba(199,154,59,.08),transparent 26%),
    linear-gradient(102deg,#f7fbfd 0%,#edf5fa 58%,#fff9ed 100%)!important;
}
.tc-home-for-groups:before{
  content:"";
  position:absolute;
  left:-150px;
  bottom:-210px;
  width:420px;
  height:420px;
  border:1px solid rgba(178,139,52,.11);
  border-radius:50%;
  box-shadow:0 0 0 44px rgba(178,139,52,.025);
  pointer-events:none;
}
.tc-home-for-groups>*{position:relative;z-index:1}
.tc-home-groups-copy h2{font-size:clamp(34px,3vw,46px)!important;line-height:1.28!important}
.tc-home-groups-copy>p{font-size:14.5px!important;line-height:1.9!important}
.tc-home-groups-points{gap:9px 18px!important;margin:20px 0 22px!important}
.tc-home-groups-points span{font-size:12.5px!important}
.tc-home-groups-preview{
  transform:none!important;
  border-radius:16px!important;
  box-shadow:0 26px 52px rgba(7,34,61,.20)!important;
}

/* ------------------------------------------------------------
   6) Brand framework: make it a true brand band.
   ------------------------------------------------------------ */
.tc-home-framework{
  padding:68px clamp(34px,5vw,74px)!important;
  background:
    radial-gradient(circle at 91% 13%,rgba(199,154,59,.16),transparent 25%),
    radial-gradient(circle at 9% 88%,rgba(76,130,184,.16),transparent 26%),
    linear-gradient(145deg,#06162c 0%,#0b3159 100%)!important;
  box-shadow:0 20px 46px rgba(5,24,43,.12)!important;
}
.tc-home-framework .tc-home-section-head{max-width:980px!important;margin-bottom:30px!important}
.tc-home-framework .tc-home-section-head h2{font-size:clamp(34px,3.2vw,48px)!important;letter-spacing:-.03em!important}
.tc-home-framework-grid{gap:16px!important}
.tc-home-framework-grid article{
  min-height:210px!important;
  padding:24px 18px!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.065)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.tc-home-framework-icon{width:62px!important;height:62px!important}
.tc-home-framework-grid b{font-size:24px!important;letter-spacing:-.015em}
.tc-home-framework-grid p{font-size:13px!important;line-height:1.7!important}
.tc-home-framework .tc-home-center-actions .tc-home-text-link{border-radius:999px!important;padding-inline:24px!important}

/* ------------------------------------------------------------
   7) Final CTA: a restrained editorial finish instead of another generic card.
   ------------------------------------------------------------ */
.tc-home-final{
  position:relative;
  overflow:hidden;
  margin-top:58px!important;
  padding:66px 34px!important;
  border-color:#dfc47f!important;
  background:
    radial-gradient(circle at 12% 25%,rgba(76,130,184,.075),transparent 27%),
    radial-gradient(circle at 88% 76%,rgba(196,67,90,.07),transparent 29%),
    linear-gradient(105deg,#fffdf8 0%,#fff 48%,#fff8ec 100%)!important;
  box-shadow:0 14px 34px rgba(11,47,80,.05)!important;
}
.tc-home-final:after{
  content:"TC";
  position:absolute;
  right:4.5%;
  top:50%;
  transform:translateY(-52%);
  color:rgba(11,47,80,.035);
  font:800 clamp(92px,11vw,170px)/1 Georgia,serif;
  pointer-events:none;
}
.tc-home-final>*{position:relative;z-index:1}
.tc-home-final h2{font-size:clamp(34px,3.1vw,46px)!important}
.tc-home-final p{max-width:820px;margin-left:auto!important;margin-right:auto!important;line-height:1.8!important}
.tc-home-final .tc-home-actions{margin-top:24px!important}

/* ------------------------------------------------------------
   Responsive safety.
   ------------------------------------------------------------ */
@media(max-width:1100px){
  .tc-home-hero{min-height:auto!important}
  .tc-home-hero-copy{padding:48px 36px!important}
  .tc-home-hero-panel{border-left:0!important;border-top:1px solid rgba(220,188,111,.72)!important}
  .tc-home-for-groups{gap:32px!important;padding:40px 34px!important}
  .tc-home .tc-top-practice-body{min-height:190px}
}
@media(max-width:760px){
  .tc-home-template-main.tc-home-template-standalone{padding-top:18px!important}
  .tc-home-section{margin-top:44px!important}
  .tc-home-hero-copy{padding:38px 22px!important}
  .tc-home-hero.is-member h1{font-size:clamp(34px,9vw,46px)!important}
  .tc-home-growth-now,
  .tc-home .tc-top-practice-section,
  .tc-home-popular-cards,
  .tc-home-for-groups,
  .tc-home-framework,
  .tc-home-final{border-radius:15px!important}
  .tc-home-growth-now{padding:25px 18px!important}
  .tc-home .tc-top-practice-section,
  .tc-home-popular-cards{padding:32px 18px!important}
  .tc-home .tc-top-practice-section::before,
  .tc-home-popular-cards::before{left:18px!important;width:105px!important}
  .tc-home .tc-top-practice-visual{min-height:170px!important}
  .tc-home .tc-top-practice-body{min-height:0!important}
  .tc-home-for-groups{padding:32px 20px!important}
  .tc-home-framework{padding:46px 20px!important}
  .tc-home-final{padding:48px 20px!important}
  .tc-home-final:after{right:-20px;font-size:110px}
}
@media(max-width:520px){
  .tc-home-mini-stats div{min-height:82px}
  .tc-home .tc-top-practice-visual>b{font-size:20px!important}
  .tc-home-groups-copy h2{font-size:clamp(29px,8.3vw,38px)!important}
  .tc-home-final:after{opacity:.7}
}

/* ---- typing-coach-polish-v18577 | assets/css/polish-v18577.css ---- */
/* v1.85.77 — TOP page breathing-room refinement
   Screenshot-based polish for v1.85.76. The goal is to keep the premium
   Features / Teams worldview while removing visual pressure between text,
   ornament, cards and CTAs. No feature or data logic is changed. */

/* ------------------------------------------------------------
   1) Global vertical rhythm
   ------------------------------------------------------------ */
.tc-home-section{margin-top:64px!important}
.tc-home .tc-kicker,
.tc-home-eyebrow{display:inline-block;line-height:1.35!important}
.tc-home .tc-top-practice-section>p,
.tc-home-section-head p,
.tc-home-growth-head p,
.tc-home-groups-copy>p,
.tc-home-final p{line-height:1.85!important}

/* ------------------------------------------------------------
   2) Hero: more room around copy, resume strip and actions
   ------------------------------------------------------------ */
.tc-home-hero-copy{padding:68px clamp(44px,5vw,82px)!important}
.tc-home-hero h1{margin-top:15px!important;margin-bottom:22px!important}
.tc-home-lead{
  max-width:800px!important;
  font-size:17px!important;
  line-height:2!important;
}
.tc-home-resume-card{
  margin-top:30px!important;
  padding:17px 19px!important;
  gap:17px!important;
}
.tc-home-resume-card strong{line-height:1.62!important}
.tc-home-hero-copy>.tc-home-actions{margin-top:22px!important;gap:14px!important}
.tc-home-hero-panel{padding:42px 34px!important}
.tc-home-mini-stats{gap:12px!important}
.tc-home-mini-stats div{padding:17px 14px!important}
.tc-home-hero-growth{gap:12px!important;margin-top:12px!important}
.tc-home-hero-rank,
.tc-home-hero-spark{padding:15px 14px!important}

/* ------------------------------------------------------------
   3) Recent growth: quiet space between heading and metrics
   ------------------------------------------------------------ */
.tc-home-growth-now{padding:38px 40px!important}
.tc-home-growth-head{margin-bottom:26px!important;gap:28px!important}
.tc-home-growth-head h2{margin-top:8px!important;margin-bottom:9px!important}
.tc-home-growth-grid{gap:18px!important}
.tc-home-growth-grid article{
  min-height:138px!important;
  padding:22px 18px 20px 64px!important;
}

/* ------------------------------------------------------------
   4) Lesson shelves: cards should scan comfortably, not feel packed
   ------------------------------------------------------------ */
.tc-home .tc-top-practice-section,
.tc-home-popular-cards{padding:48px 44px 44px!important}
.tc-home .tc-top-practice-section::before,
.tc-home-popular-cards::before{
  left:44px!important;
  top:0!important;
  width:126px!important;
}
.tc-home .tc-top-practice-section>.tc-kicker{margin-bottom:8px!important}
.tc-home .tc-top-practice-section>h2{
  margin-top:10px!important;
  margin-bottom:10px!important;
  line-height:1.28!important;
}
.tc-home .tc-top-practice-section>p{margin:0 0 31px!important}
.tc-home .tc-top-practice-grid{gap:22px!important;row-gap:24px!important}
.tc-home .tc-top-practice-visual{padding:27px 24px 25px!important}
.tc-home .tc-top-practice-visual>b{line-height:1.45!important}
.tc-home .tc-top-practice-visual>small{margin-top:9px!important;line-height:1.65!important}
.tc-home .tc-top-practice-body{
  min-height:224px!important;
  padding:22px!important;
}
.tc-home .tc-top-practice-badges{gap:8px!important;margin-bottom:2px!important}
.tc-home .tc-top-practice-badges span{padding:5px 9px!important;line-height:1.25!important}
.tc-home .tc-top-practice-body p{
  margin:13px 0 20px!important;
  font-size:13.5px!important;
  line-height:1.78!important;
}
.tc-home .tc-top-practice-body .tc-primary{min-height:48px!important;padding:11px 14px!important;line-height:1.4!important}
.tc-home-popular-cards .tc-home-section-head{margin-bottom:32px!important}
.tc-home-popular-cards .tc-home-section-head h2{margin-bottom:10px!important}
.tc-home-popular-cards .tc-home-section-head p{margin-top:0!important}
.tc-home-popular-rank{top:14px!important;left:14px!important;padding:6px 10px!important}
.tc-home-popular-cards .tc-home-lesson-icon{top:60px!important}

/* ------------------------------------------------------------
   5) Teams: loosen copy, checklist and preview composition
   ------------------------------------------------------------ */
.tc-home-for-groups{
  gap:58px!important;
  padding:58px 52px!important;
  align-items:center!important;
}
.tc-home-groups-copy h2{
  margin-top:11px!important;
  margin-bottom:20px!important;
  line-height:1.34!important;
}
.tc-home-groups-copy h2 strong{
  background:linear-gradient(transparent 76%,rgba(226,181,73,.34) 76%)!important;
  padding:0 .07em .06em!important;
}
.tc-home-groups-copy>p{
  max-width:760px!important;
  font-size:14.5px!important;
  line-height:2!important;
}
.tc-home-groups-points{
  gap:12px 24px!important;
  margin:25px 0 27px!important;
}
.tc-home-groups-points span{font-size:12.5px!important;line-height:1.55!important}
.tc-home-for-groups .tc-home-actions{gap:13px!important;margin-top:0!important}
.tc-home-groups-preview{padding:25px!important}
.tc-home-groups-preview-metrics{gap:10px!important;margin-top:17px!important}
.tc-home-groups-preview-list{margin-top:12px!important}

/* ------------------------------------------------------------
   6) MORE THAN TYPING: priority fix.
   The old decorative rule sat too close to the descriptive sentence.
   Remove that rule and create explicit breathing room instead.
   ------------------------------------------------------------ */
.tc-home-framework{
  padding:82px clamp(44px,5.5vw,88px) 76px!important;
}
.tc-home-framework:before{display:none!important}
.tc-home-framework .tc-home-section-head{
  max-width:1040px!important;
  margin:0 auto 44px!important;
  padding:0 16px!important;
}
.tc-home-framework .tc-home-section-head .tc-home-eyebrow{margin-bottom:8px!important}
.tc-home-framework .tc-home-section-head h2{
  margin:10px 0 18px!important;
  line-height:1.28!important;
}
.tc-home-framework .tc-home-section-head p{
  max-width:900px!important;
  margin:0 auto!important;
  color:#d3deea!important;
  font-size:15.5px!important;
  line-height:1.95!important;
  letter-spacing:.01em!important;
}
.tc-home-framework-grid{gap:24px!important}
.tc-home-framework-grid article{
  min-height:230px!important;
  padding:30px 22px 28px!important;
}
.tc-home-framework-icon{margin-bottom:17px!important}
.tc-home-framework-grid strong{margin-bottom:7px!important;line-height:1.35!important}
.tc-home-framework-grid b{margin-top:0!important;line-height:1.35!important}
.tc-home-framework-grid p{
  margin-top:13px!important;
  font-size:13.5px!important;
  line-height:1.82!important;
}
.tc-home-framework-grid article:not(:last-child):before{
  right:-20px!important;
  top:92px!important;
  font-size:20px!important;
}
.tc-home-framework .tc-home-center-actions{margin-top:38px!important}
.tc-home-framework .tc-home-center-actions .tc-home-text-link{
  min-height:52px!important;
  padding:13px 26px!important;
}

/* ------------------------------------------------------------
   7) Final CTA: give heading, message and buttons a calmer finish
   ------------------------------------------------------------ */
.tc-home-final{
  margin-top:64px!important;
  padding:78px 40px!important;
}
.tc-home-final .tc-home-eyebrow{margin-bottom:8px!important}
.tc-home-final h2{margin:10px 0 14px!important;line-height:1.3!important}
.tc-home-final p{
  max-width:860px!important;
  margin-top:0!important;
  font-size:15.5px!important;
  line-height:1.95!important;
}
.tc-home-final .tc-home-actions{margin-top:30px!important;gap:14px!important}
.tc-home-final:after{right:5.5%!important;color:rgba(11,47,80,.028)!important}

/* ------------------------------------------------------------
   Responsive safety
   ------------------------------------------------------------ */
@media(max-width:1100px){
  .tc-home-hero-copy{padding:52px 40px!important}
  .tc-home-growth-now{padding:34px 30px!important}
  .tc-home .tc-top-practice-section,
  .tc-home-popular-cards{padding:42px 32px 38px!important}
  .tc-home .tc-top-practice-section::before,
  .tc-home-popular-cards::before{left:32px!important}
  .tc-home-for-groups{gap:38px!important;padding:46px 36px!important}
  .tc-home-framework{padding:66px 34px 62px!important}
  .tc-home-framework-grid{gap:18px!important}
  .tc-home-framework-grid article:not(:last-child):before{display:none!important}
  .tc-home-final{padding:66px 30px!important}
}
@media(max-width:760px){
  .tc-home-section{margin-top:48px!important}
  .tc-home-hero-copy{padding:40px 22px!important}
  .tc-home-lead{font-size:15.5px!important;line-height:1.9!important}
  .tc-home-resume-card{margin-top:24px!important;padding:15px 16px!important}
  .tc-home-hero-panel{padding:34px 22px!important}
  .tc-home-growth-now{padding:28px 20px!important}
  .tc-home-growth-head{margin-bottom:21px!important}
  .tc-home-growth-grid{gap:12px!important}
  .tc-home .tc-top-practice-section,
  .tc-home-popular-cards{padding:36px 20px 32px!important}
  .tc-home .tc-top-practice-section::before,
  .tc-home-popular-cards::before{left:20px!important;width:98px!important}
  .tc-home .tc-top-practice-section>p{margin-bottom:24px!important}
  .tc-home .tc-top-practice-grid{gap:16px!important;row-gap:18px!important}
  .tc-home .tc-top-practice-body{min-height:0!important;padding:19px!important}
  .tc-home .tc-top-practice-body p{margin-bottom:17px!important}
  .tc-home-for-groups{padding:36px 22px!important}
  .tc-home-groups-copy h2{margin-bottom:16px!important}
  .tc-home-groups-copy>p{font-size:14px!important;line-height:1.9!important}
  .tc-home-groups-points{gap:10px!important;margin:20px 0 22px!important}
  .tc-home-framework{padding:54px 22px 50px!important}
  .tc-home-framework .tc-home-section-head{margin-bottom:32px!important;padding:0 4px!important}
  .tc-home-framework .tc-home-section-head h2{margin-bottom:15px!important}
  .tc-home-framework .tc-home-section-head p{font-size:14.5px!important;line-height:1.9!important}
  .tc-home-framework-grid{gap:16px!important}
  .tc-home-framework-grid article{min-height:auto!important;padding:25px 20px!important}
  .tc-home-framework .tc-home-center-actions{margin-top:28px!important}
  .tc-home-final{padding:54px 22px!important}
  .tc-home-final p{font-size:14.5px!important;line-height:1.9!important}
}
@media(max-width:520px){
  .tc-home-growth-grid article{padding:20px 14px 18px 56px!important}
  .tc-home-framework .tc-home-section-head{padding:0!important}
  .tc-home-final:after{right:-28px!important}
}

/* ---- typing-coach-polish-v18578 | assets/css/polish-v18578.css ---- */
/* Typing Coach Core v1.85.78
 * Brand rollout step 1: approved shield-only A logo in the shared header.
 * The wordmark remains text; only the logo mark is replaced.
 */

body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:54px!important;
  height:61px!important;
  min-width:54px!important;
  min-height:61px!important;
  max-width:54px!important;
  max-height:61px!important;
  flex:0 0 54px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
  display:block!important;
  width:54px!important;
  height:61px!important;
  min-width:54px!important;
  min-height:61px!important;
  max-width:54px!important;
  max-height:61px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:none!important;
}

@media(max-width:1100px){
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
    width:44px!important;
    height:50px!important;
    min-width:44px!important;
    min-height:50px!important;
    max-width:44px!important;
    max-height:50px!important;
    flex-basis:44px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:44px!important;
    height:50px!important;
    min-width:44px!important;
    min-height:50px!important;
    max-width:44px!important;
    max-height:50px!important;
  }
}

@media(max-width:600px){
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
    width:42px!important;
    height:48px!important;
    min-width:42px!important;
    min-height:48px!important;
    max-width:42px!important;
    max-height:48px!important;
    flex-basis:42px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:42px!important;
    height:48px!important;
    min-width:42px!important;
    min-height:48px!important;
    max-width:42px!important;
    max-height:48px!important;
  }
}

/* ---- typing-coach-polish-v18579 | assets/css/polish-v18579.css ---- */
/* Typing Coach Core v1.85.79
 * Brand refinement: shared header + TOP hero use the same approved shield-only mark.
 * Keep the overall header geometry function-safe while removing the old TOP-only outline
 * and reducing the mark's visual dominance.
 */

/* -------------------------------------------------------------------------
   1) Shared header: make the logo feel like a brand, not a bordered UI card.
   ------------------------------------------------------------------------- */
body.tc-system-body .tc-system-header .tc-app-logo,
body.tc-system-body.tc-system-page-typing-coach-home .tc-system-header .tc-app-logo{
  outline:0!important;
  outline-offset:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
}
body.tc-system-body .tc-system-header .tc-app-logo{
  gap:15px!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
  width:46px!important;
  height:52px!important;
  min-width:46px!important;
  min-height:52px!important;
  max-width:46px!important;
  max-height:52px!important;
  flex:0 0 46px!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
  width:46px!important;
  height:52px!important;
  min-width:46px!important;
  min-height:52px!important;
  max-width:46px!important;
  max-height:52px!important;
}

/* Keep the wordmark clear and balanced beside the slightly smaller emblem. */
@media(min-width:1400px){
  body.tc-system-body .tc-system-header .tc-app-logo__wordmark strong{
    font-size:27px!important;
    line-height:1!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__wordmark small{
    margin-top:6px!important;
    font-size:9px!important;
    letter-spacing:.18em!important;
  }
}

/* -------------------------------------------------------------------------
   2) TOP HERO: replace the old CSS-drawn TC shield with the approved logo.
   ------------------------------------------------------------------------- */
.tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:center!important;
  width:104px!important;
  height:117px!important;
  min-width:104px!important;
  min-height:117px!important;
  max-width:104px!important;
  max-height:117px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:transparent!important;
  font-size:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand .tc-home-brand-shield-image{
  display:block!important;
  width:104px!important;
  height:117px!important;
  min-width:104px!important;
  min-height:117px!important;
  max-width:104px!important;
  max-height:117px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:none!important;
}
.tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand+small{
  margin-top:13px!important;
}

/* Tablet: preserve the same hierarchy without letting the mark crowd the panel. */
@media(max-width:1100px){
  body.tc-system-body .tc-system-header .tc-app-logo{
    gap:12px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
    width:40px!important;
    height:45px!important;
    min-width:40px!important;
    min-height:45px!important;
    max-width:40px!important;
    max-height:45px!important;
    flex-basis:40px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:40px!important;
    height:45px!important;
    min-width:40px!important;
    min-height:45px!important;
    max-width:40px!important;
    max-height:45px!important;
  }
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand,
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand .tc-home-brand-shield-image{
    width:94px!important;
    height:106px!important;
    min-width:94px!important;
    min-height:106px!important;
    max-width:94px!important;
    max-height:106px!important;
  }
}

/* Smartphone: keep the full shield recognizable while staying compact. */
@media(max-width:600px){
  body.tc-system-body .tc-system-header .tc-app-logo{
    gap:10px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
    width:38px!important;
    height:43px!important;
    min-width:38px!important;
    min-height:43px!important;
    max-width:38px!important;
    max-height:43px!important;
    flex-basis:38px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:38px!important;
    height:43px!important;
    min-width:38px!important;
    min-height:43px!important;
    max-width:38px!important;
    max-height:43px!important;
  }
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand,
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand .tc-home-brand-shield-image{
    width:86px!important;
    height:97px!important;
    min-width:86px!important;
    min-height:97px!important;
    max-width:86px!important;
    max-height:97px!important;
  }
}

/* ---- typing-coach-polish-v18580 | assets/css/polish-v18580.css ---- */
/* Typing Coach v1.85.80 — User Guide / FAQ brand shield rollout */

/*
 * Replace the legacy flat-gold TC badge in the individual User Guide / FAQ
 * hero with the approved A-concept shield-only brand mark. The mark remains
 * a transparent shield, not a button, card or square icon.
 */
.tc-ufaq-hero-card .tc-gfaq-shield.tc-gfaq-shield--brand{
  width:78px;
  height:88px;
  display:block;
  margin:0 0 18px;
  padding:0;
  background:transparent;
  color:inherit;
  clip-path:none;
  filter:drop-shadow(0 8px 14px rgba(2,18,36,.20));
}
.tc-ufaq-hero-card .tc-gfaq-brand-shield-image{
  display:block!important;
  width:78px!important;
  height:88px!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* Keep the approved shield legible without crowding the card on smaller UI. */
@media(max-width:760px){
  .tc-ufaq-hero-card .tc-gfaq-shield.tc-gfaq-shield--brand{
    width:70px;
    height:79px;
    margin-bottom:16px;
  }
  .tc-ufaq-hero-card .tc-gfaq-brand-shield-image{
    width:70px!important;
    height:79px!important;
  }
}
@media(max-width:520px){
  .tc-ufaq-hero-card .tc-gfaq-shield.tc-gfaq-shield--brand{
    width:64px;
    height:72px;
    margin-bottom:15px;
  }
  .tc-ufaq-hero-card .tc-gfaq-brand-shield-image{
    width:64px!important;
    height:72px!important;
  }
}

/* ---- typing-coach-polish-v18581 | assets/css/polish-v18581.css ---- */
/* Typing Coach v1.85.81 — official shield brand system rollout */
.tc-growth-report-hero .tc-growth-report-brand{display:flex;align-items:center;gap:14px;margin:0 0 16px}.tc-growth-report-hero .tc-growth-report-brand img{display:block;width:58px;height:auto;max-width:none;flex:0 0 auto;filter:none}.tc-growth-report-hero .tc-growth-report-brand>div{display:grid;gap:3px}.tc-growth-report-hero .tc-growth-report-brand span{margin:0}.tc-growth-report-hero .tc-growth-report-brand small{font-size:10px;font-weight:800;letter-spacing:.16em;color:#6c7e8d}.tc-growth-report-hero>.tc-growth-report-brand+ h1{margin-top:4px}@media(max-width:700px){.tc-growth-report-hero .tc-growth-report-brand{gap:11px;margin-bottom:14px}.tc-growth-report-hero .tc-growth-report-brand img{width:50px}}

/* ---- typing-coach-polish-v18582 | assets/css/polish-v18582.css ---- */
/* Typing Coach v1.85.82 — approved shield-only logo rollout across core product surfaces.
 * The official A-concept shield is the single primary mark. Do not add a square icon frame.
 */

/* Shared asset behavior: preserve the official artwork and transparency everywhere. */
.tc-official-shield-image{
  display:block!important;
  max-width:none!important;
  max-height:none!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:none;
}

/* -------------------------------------------------------------------------
   Authentication: login / registration / reset brand panel
   ------------------------------------------------------------------------- */
.tc-auth-brand .tc-auth-shield.tc-auth-shield--brand{
  width:86px!important;
  height:auto!important;
  min-height:0!important;
  display:block!important;
  margin:0 0 22px!important;
  padding:0!important;
  clip-path:none!important;
  background:transparent!important;
  filter:drop-shadow(0 9px 18px rgba(0,0,0,.18))!important;
}
.tc-auth-brand .tc-auth-shield.tc-auth-shield--brand::before{display:none!important}
.tc-auth-brand .tc-auth-shield.tc-auth-shield--brand .tc-official-shield-image{width:86px!important}

/* -------------------------------------------------------------------------
   Typing lesson / result / coaching surfaces
   ------------------------------------------------------------------------- */
.tc-brandline .tc-mark.tc-mark--brand{
  width:36px!important;height:36px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;
}
.tc-brandline .tc-mark.tc-mark--brand .tc-official-shield-image{width:35px!important}

.tc-result-coach-rank .tc-coach-rank-emblem.tc-coach-rank-emblem--brand{
  width:64px!important;height:auto!important;min-height:0!important;
  display:block!important;padding:0!important;
  clip-path:none!important;background:transparent!important;
  filter:drop-shadow(0 7px 14px rgba(4,26,49,.18));
}
.tc-result-coach-rank .tc-coach-rank-emblem--brand .tc-official-shield-image{width:64px!important}

.tc-coach-summary .tc-coach-summary-icon.tc-coach-summary-icon--brand{
  width:50px!important;height:auto!important;
  display:block!important;padding:0!important;
  border-radius:0!important;background:transparent!important;
}
.tc-coach-summary .tc-coach-summary-icon--brand .tc-official-shield-image{width:50px!important}

.tc-lesson-card-visual .tc-lesson-card-visual-tc.tc-lesson-card-visual-tc--brand{
  right:22px!important;bottom:22px!important;
  width:56px!important;height:auto!important;
  display:block!important;padding:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  box-shadow:none!important;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.16));
}
.tc-lesson-card-visual .tc-lesson-card-visual-tc--brand .tc-official-shield-image{width:56px!important}

/* -------------------------------------------------------------------------
   My Typing Coach
   ------------------------------------------------------------------------- */
.tc-my-daily-coaching .tc-my-daily-coach-mark.tc-my-daily-coach-mark--brand{
  width:54px!important;height:auto!important;
  display:block!important;padding:0!important;
  border-radius:0!important;background:transparent!important;
  filter:drop-shadow(0 6px 12px rgba(7,34,61,.15));
}
.tc-my-daily-coaching .tc-my-daily-coach-mark--brand .tc-official-shield-image{width:54px!important}

.tc-my-coach-rank .tc-my-rank-emblem.tc-my-rank-emblem--brand{
  width:96px!important;height:auto!important;min-height:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;
  gap:7px!important;padding:0!important;
  clip-path:none!important;background:transparent!important;color:#efc966!important;
  filter:drop-shadow(0 8px 16px rgba(2,20,40,.22));
}
.tc-my-coach-rank .tc-my-rank-emblem--brand .tc-official-shield-image{width:88px!important}
.tc-my-coach-rank .tc-my-rank-emblem--brand small{
  color:#efc966!important;font-size:.55rem!important;font-weight:900!important;letter-spacing:.12em!important;white-space:nowrap
}

/* -------------------------------------------------------------------------
   TOP Teams preview / Teams sales / Teams guide / group account / demo
   ------------------------------------------------------------------------- */
.tc-home-groups-preview-head>.tc-home-groups-preview-brand{
  width:48px!important;height:auto!important;
  display:block!important;flex:0 0 48px!important;
  padding:0!important;clip-path:none!important;background:transparent!important;
  filter:drop-shadow(0 5px 10px rgba(0,0,0,.18));
}
.tc-home-groups-preview-head>.tc-home-groups-preview-brand .tc-official-shield-image{width:48px!important}

.tc-gsales-dash-head>.tc-gsales-dash-brand{
  width:42px!important;height:auto!important;
  display:block!important;padding:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  filter:drop-shadow(0 5px 10px rgba(0,0,0,.18));
}
.tc-gsales-dash-head>.tc-gsales-dash-brand .tc-official-shield-image{width:42px!important}

.tc-gfaq-hero-card .tc-gfaq-shield.tc-gfaq-shield--official{
  width:76px!important;height:auto!important;
  display:block!important;margin:0 0 17px!important;padding:0!important;
  clip-path:none!important;background:transparent!important;
  filter:drop-shadow(0 7px 14px rgba(4,25,49,.18));
}
.tc-gfaq-hero-card .tc-gfaq-shield--official .tc-official-shield-image{width:76px!important}

/* The role diagram remains a diagram; the center now uses the official mark without a square icon frame. */
.tc-gfaq-role-center.tc-gfaq-role-center--brand{gap:4px!important}
.tc-gfaq-role-center.tc-gfaq-role-center--brand .tc-official-shield-image{width:48px!important}

.tc-account-groups .tc-groups-hero-mark.tc-groups-hero-mark--brand{
  width:68px!important;height:auto!important;
  display:block!important;padding:0!important;
  clip-path:none!important;background:transparent!important;
  filter:drop-shadow(0 7px 14px rgba(0,0,0,.18));
}
.tc-account-groups .tc-groups-hero-mark--brand .tc-official-shield-image{width:68px!important}

.tc-demo-group-head .tc-demo-group-mark.tc-demo-group-mark--brand{
  width:58px!important;height:auto!important;
  display:block!important;padding:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  filter:drop-shadow(0 6px 12px rgba(8,38,68,.15));
}
.tc-demo-group-head .tc-demo-group-mark--brand .tc-official-shield-image{width:58px!important}

/* Responsive protection: retain breathing room and legibility without letting the crest dominate. */
@media(max-width:760px){
  .tc-auth-brand .tc-auth-shield.tc-auth-shield--brand,
  .tc-auth-brand .tc-auth-shield.tc-auth-shield--brand .tc-official-shield-image{width:72px!important}
  .tc-gfaq-hero-card .tc-gfaq-shield.tc-gfaq-shield--official,
  .tc-gfaq-hero-card .tc-gfaq-shield--official .tc-official-shield-image{width:68px!important}
  .tc-account-groups .tc-groups-hero-mark.tc-groups-hero-mark--brand,
  .tc-account-groups .tc-groups-hero-mark--brand .tc-official-shield-image{width:62px!important}
  .tc-my-coach-rank .tc-my-rank-emblem.tc-my-rank-emblem--brand{width:88px!important}
  .tc-my-coach-rank .tc-my-rank-emblem--brand .tc-official-shield-image{width:80px!important}
}
@media(max-width:520px){
  .tc-coach-summary .tc-coach-summary-icon.tc-coach-summary-icon--brand,
  .tc-coach-summary .tc-coach-summary-icon--brand .tc-official-shield-image{width:44px!important}
  .tc-home-groups-preview-head>.tc-home-groups-preview-brand,
  .tc-home-groups-preview-head>.tc-home-groups-preview-brand .tc-official-shield-image{width:42px!important}
  .tc-demo-group-head .tc-demo-group-mark.tc-demo-group-mark--brand,
  .tc-demo-group-head .tc-demo-group-mark--brand .tc-official-shield-image{width:50px!important}
}
@media(max-width:700px){
  .tc-gsales-dash-head>.tc-gsales-dash-brand,
  .tc-gsales-dash-head>.tc-gsales-dash-brand .tc-official-shield-image{width:34px!important}
}
/* User Guide growth-flow: the coaching step uses the real shield, not a typed "TC" substitute. */
.tc-gfaq-flow-step>.tc-ufaq-flow-brand{
  width:38px!important;height:38px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  border-radius:0!important;background:transparent!important;
}
.tc-gfaq-flow-step>.tc-ufaq-flow-brand .tc-official-shield-image{width:34px!important}

/* ---- typing-coach-polish-v18583 | assets/css/polish-v18583.css ---- */
/* Typing Coach v1.85.83 — word-practice example lane repair.
 * Word lessons need a dedicated three-level visual lane:
 * Japanese word -> reading -> actual typing string.
 * Without this, .tc-current-example is placed in the old 60px grid track and
 * its children overflow toward the KPI row / progress row.
 */

/* Keep the existing one-screen reference canvas, but give word content an
   explicit direct-child grid so none of the three text layers can overlap. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-sentence-formal{
  grid-row:3!important;
  width:100%!important;
  height:174px!important;
  min-height:174px!important;
  max-height:174px!important;
  margin:0!important;
  padding:2px 50px 0!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:150px 20px!important;
  align-content:start!important;
  justify-items:stretch!important;
  overflow:hidden!important;
  background:#fff!important;
  position:relative!important;
  z-index:2!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example{
  width:100%!important;
  height:150px!important;
  min-height:150px!important;
  max-height:150px!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:82px 29px 39px!important;
  row-gap:0!important;
  align-content:start!important;
  justify-items:stretch!important;
  overflow:hidden!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-jp,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-kana,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman{
  width:100%!important;
  max-width:1260px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}

/* A single word does not need the long dashed divider used by sentence
   practice. The word itself is the visual anchor. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-jp{
  height:82px!important;
  min-height:82px!important;
  max-height:82px!important;
  border-bottom:0!important;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:55px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.075em!important;
  color:#071a36!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-kana{
  height:29px!important;
  min-height:29px!important;
  max-height:29px!important;
  margin-top:0!important;
  font-family:Arial,"Noto Sans JP",sans-serif!important;
  font-size:18.5px!important;
  line-height:1.1!important;
  font-weight:650!important;
  letter-spacing:.085em!important;
  color:#334a64!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman{
  height:39px!important;
  min-height:39px!important;
  max-height:39px!important;
  margin-top:0!important;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;
  font-size:24.5px!important;
  line-height:1.05!important;
  font-weight:800!important;
  letter-spacing:.09em!important;
  color:#071a36!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman mark{
  display:inline-flex!important;
  align-items:center!important;
  min-height:31px!important;
  padding:0 2px!important;
  line-height:1!important;
  border-bottom-width:3px!important;
  border-radius:2px 2px 0 0!important;
}

/* Progress belongs to its own row, never underneath the reading / romaji. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-progress-row{
  grid-row:2!important;
  width:min(100%,1120px)!important;
  max-width:1120px!important;
  height:20px!important;
  min-height:20px!important;
  max-height:20px!important;
  margin:0 auto!important;
  align-self:start!important;
  box-sizing:border-box!important;
}

/* Fluid layouts: retain the same hierarchy with safe widths and slightly
   reduced typography rather than allowing the three text layers to collide. */
@media(max-width:1100px){
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-sentence-formal{
    height:auto!important;
    min-height:168px!important;
    max-height:none!important;
    padding:5px 14px 2px!important;
    grid-template-rows:146px 20px!important;
    overflow:visible!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example{
    height:146px!important;
    min-height:146px!important;
    max-height:none!important;
    grid-template-rows:78px 29px 39px!important;
    overflow:visible!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-jp,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-kana,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman{
    width:100%!important;
    max-width:100%!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-jp{
    height:78px!important;min-height:78px!important;max-height:78px!important;
    font-size:clamp(39px,7vw,52px)!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-kana{
    font-size:clamp(15px,3vw,18px)!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman{
    font-size:clamp(19px,4vw,24px)!important;
  }
}

@media(max-width:520px){
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-sentence-formal{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-jp{
    letter-spacing:.045em!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman{
    letter-spacing:.055em!important;
  }
}

/* ---- typing-coach-polish-v18584 | assets/css/polish-v18584.css ---- */
/* Typing Coach v1.85.84 — compact lesson example lane unification.
 *
 * Scope: word / gojuon / english practice lessons.
 * The formal desktop canvas reserves exactly 142px for sentence + progress.
 * v1.85.83 temporarily made the word child 174px high, which could overflow
 * the fixed parent grid track. This file restores a single bounded geometry
 * and gives each beginner lesson only the semantic rows it actually needs.
 */

/* --------------------------------------------------------------------------
   Shared bounded lane: never exceed the existing 142px sentence track.
   -------------------------------------------------------------------------- */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-sentence-formal,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-sentence-formal,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-sentence-formal{
  width:100%!important;
  height:142px!important;
  min-height:142px!important;
  max-height:142px!important;
  margin:0!important;
  padding:2px 50px 0!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-rows:116px 20px!important;
  row-gap:2px!important;
  align-content:start!important;
  justify-content:stretch!important;
  justify-items:stretch!important;
  overflow:hidden!important;
  background:#fff!important;
  position:relative!important;
  z-index:2!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example{
  grid-row:1!important;
  justify-self:stretch!important;
  align-self:stretch!important;
  width:100%!important;
  max-width:none!important;
  height:116px!important;
  min-height:116px!important;
  max-height:116px!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

/* Every visible example line owns the full center axis. Using block/text-align
   instead of flex avoids inherited alignment rules from older practice skins. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-jp,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-kana,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example .tc-jp,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example .tc-roman,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example .tc-jp,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example .tc-roman{
  width:100%!important;
  max-width:1260px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:0!important;
  box-sizing:border-box!important;
  display:block!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  border-bottom:0!important;
}

/* Progress is always the second row and cannot drift under the example text. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-progress-row,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-progress-row,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-progress-row{
  grid-row:2!important;
  width:1120px!important;
  max-width:1120px!important;
  height:20px!important;
  min-height:20px!important;
  max-height:20px!important;
  margin:0 auto!important;
  align-self:start!important;
  box-sizing:border-box!important;
}

/* --------------------------------------------------------------------------
   WORD: Japanese word -> reading -> actual typing string.
   -------------------------------------------------------------------------- */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example{
  display:grid!important;
  grid-template-rows:58px 24px 34px!important;
  align-content:start!important;
  justify-items:stretch!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-jp{
  height:58px!important;
  line-height:58px!important;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif!important;
  font-size:47px!important;
  font-weight:700!important;
  letter-spacing:.07em!important;
  color:#071a36!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-kana{
  height:24px!important;
  margin-top:0!important;
  line-height:24px!important;
  font-family:Arial,"Noto Sans JP",sans-serif!important;
  font-size:17px!important;
  font-weight:650!important;
  letter-spacing:.08em!important;
  color:#40536b!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman{
  height:34px!important;
  margin-top:0!important;
  line-height:34px!important;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;
  font-size:23px!important;
  font-weight:800!important;
  letter-spacing:.085em!important;
  color:#071a36!important;
}

/* --------------------------------------------------------------------------
   GOJUON: source kana + actual typing row.
   q.jp and q.kana are intentionally identical for the bundled 五十音 lessons,
   so the middle kana row is redundant and visually confusing.
   -------------------------------------------------------------------------- */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example{
  display:grid!important;
  grid-template-rows:68px 48px!important;
  align-content:start!important;
  justify-items:stretch!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example .tc-kana{
  display:none!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example .tc-jp{
  height:68px!important;
  line-height:68px!important;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif!important;
  font-size:48px!important;
  font-weight:700!important;
  letter-spacing:.14em!important;
  color:#071a36!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example .tc-roman{
  height:48px!important;
  margin-top:0!important;
  line-height:48px!important;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;
  font-size:25px!important;
  font-weight:800!important;
  letter-spacing:.12em!important;
  color:#071a36!important;
}

/* --------------------------------------------------------------------------
   ENGLISH/ALPHABET: uppercase visual reference + lowercase keys to type.
   The generated kana field is the same lowercase string as the typing row,
   therefore it is hidden to prevent duplicated example text.
   -------------------------------------------------------------------------- */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example{
  display:grid!important;
  grid-template-rows:68px 48px!important;
  align-content:start!important;
  justify-items:stretch!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example .tc-kana{
  display:none!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example .tc-jp{
  height:68px!important;
  line-height:68px!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:47px!important;
  font-weight:700!important;
  letter-spacing:.15em!important;
  color:#071a36!important;
}
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example .tc-roman{
  height:48px!important;
  margin-top:0!important;
  line-height:48px!important;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;
  font-size:25px!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
  color:#071a36!important;
}

/* Current-key highlight remains compact and sits on the typing baseline. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-current-example .tc-roman mark,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-current-example .tc-roman mark,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-current-example .tc-roman mark{
  display:inline!important;
  padding:1px 2px!important;
  line-height:inherit!important;
  border-bottom:3px solid #a84e65!important;
  border-radius:2px 2px 0 0!important;
  background:#f5d9df!important;
  color:#071a36!important;
}

/* The reference canvas is scaled down on smaller screens, but these guards
   also keep text centered if a theme/plugin temporarily releases fixed widths. */
@media(max-width:1100px){
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-sentence-formal,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-sentence-formal,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-sentence-formal{
    padding-left:18px!important;
    padding-right:18px!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-progress-row,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-progress-row,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-progress-row{
    width:min(100%,1120px)!important;
  }
}

/* ---- typing-coach-polish-v18585 | assets/css/polish-v18585.css ---- */
/* Typing Coach v1.85.85 — compact-practice KPI readability repair.
 *
 * Screenshots of word / gojuon / english practice at the 1740x690 reference
 * canvas showed the metric helper lines (target / remaining) touching or
 * crossing the bottom edge. The legacy .tc-metric-copy min-height:64px plus
 * card padding was taller than the 72px fixed KPI track.
 *
 * We keep the one-screen reference height unchanged. Six pixels are moved from
 * unused sentence-track slack to the KPI track, then the metric copy receives
 * an explicit three-row layout so every line stays inside the card.
 */

/* Keep the total reference-grid height unchanged:
   48 + 78 + 168 + 76 + 32 + 228 + 28 = previous 48 + 72 + 174 + ... */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas{
  grid-template-rows:48px 78px 168px 76px 32px 228px 28px!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metrics-formal,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metrics-formal,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metrics-formal{
  height:78px!important;
  min-height:78px!important;
  max-height:78px!important;
  overflow:visible!important;
  align-items:stretch!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card{
  height:78px!important;
  min-height:78px!important;
  max-height:78px!important;
  box-sizing:border-box!important;
  grid-template-columns:46px minmax(0,1fr)!important;
  gap:9px!important;
  padding:6px 12px!important;
  align-items:center!important;
  overflow:hidden!important;
}

/* The old 64px min-height was the actual source of the clipped helper text. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metric-copy,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metric-copy,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metric-copy{
  min-height:0!important;
  height:54px!important;
  display:grid!important;
  grid-template-rows:13px 30px 11px!important;
  align-content:center!important;
  justify-content:start!important;
  overflow:visible!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metric-label,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metric-label,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metric-label{
  height:13px!important;
  line-height:13px!important;
  font-size:11.5px!important;
  overflow:visible!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metric-label small,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metric-label small,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metric-label small{
  font-size:7.2px!important;
  line-height:1!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metric-copy b,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metric-copy b,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metric-copy b{
  height:30px!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  font-size:29px!important;
  line-height:30px!important;
  overflow:visible!important;
}

html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metric-sub,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metric-sub,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metric-sub{
  height:11px!important;
  margin:0!important;
  display:block!important;
  font-size:9px!important;
  line-height:11px!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:visible!important;
}

/* The icon remains visually balanced with the slightly taller card. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metric-icon,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metric-icon,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metric-icon{
  width:38px!important;
  height:38px!important;
  align-self:center!important;
}

/* v1.85.84's example block is 142px tall. The 168px row leaves a deliberate
   26px breathing zone before NEXT FINGER while preserving center alignment. */
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-sentence-formal,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-sentence-formal,
html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-sentence-formal{
  align-self:start!important;
}

/* When the layout is released below desktop reference width, do not force the
   fixed 78px row; fluid rules should be free to grow naturally. */
@media(max-width:1100px){
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas{
    grid-template-rows:auto auto auto auto auto auto auto!important;
  }
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metrics-formal,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metrics-formal,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metrics-formal,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="word"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="gojuon"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card,
  html body.tc-stage-practice .tc-shell[data-tc-app][data-lesson-type="english"] .tc-practice-canvas .tc-metrics-formal .tc-metric-card{
    height:auto!important;
    min-height:72px!important;
    max-height:none!important;
  }
}

/* ---- typing-coach-polish-v18586 | assets/css/polish-v18586.css ---- */
/* Typing Coach v1.85.86 — ranking precision, BEST LESSON and reusable ranking blocks. */
.tc-coach-rank-you small{grid-column:1/-1;color:#dce8f2;font-size:.68rem;font-weight:800}
.tc-coach-score-value{font-variant-numeric:tabular-nums;color:#0d3b68}
.tc-best-lesson-cell{min-width:190px;max-width:260px}
.tc-best-lesson{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.tc-best-lesson-title{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#113f6b;font-weight:800;text-decoration:none}
.tc-best-lesson-title:hover{text-decoration:underline;text-underline-offset:3px}
.tc-best-lesson small{color:#6a7785;font-size:.72rem;font-weight:700;white-space:nowrap}
.tc-best-lesson em{color:#9a7014;font-size:.7rem;font-style:normal;font-weight:800;white-space:nowrap}
.tc-best-lesson-empty{color:#9aa5af}
.tc-coach-rank-table th,.tc-coach-rank-table td{vertical-align:middle}
.tc-coach-rank-table-wrap.is-compact .tc-coach-rank-table{min-width:680px}
.tc-coach-rank-table.is-compact .tc-best-lesson-cell{min-width:170px;max-width:220px}
.tc-coach-rank-table.is-compact .tc-best-lesson-title{max-width:190px}

.tc-ranking-lesson-picker{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(280px,1.3fr) auto;align-items:end;gap:12px;margin:18px 0 20px;padding:16px 18px;border:1px solid #e5d39e;border-radius:16px;background:linear-gradient(135deg,#fffdf8,#f5f9fc)}
.tc-ranking-lesson-picker label{display:flex;flex-direction:column;gap:3px;color:#133758}
.tc-ranking-lesson-picker label span{font-size:.66rem;letter-spacing:.14em;font-weight:900;color:#aa7c1a}
.tc-ranking-lesson-picker label strong{font-size:.98rem}
.tc-ranking-lesson-picker select{width:100%;min-height:42px;border:1px solid #cdd9e3;border-radius:10px;background:#fff;padding:0 38px 0 12px;color:#173753}
.tc-ranking-lesson-picker button{min-height:42px;border:0;border-radius:999px;padding:0 20px;background:#0d3158;color:#fff;font-weight:800;cursor:pointer}
.tc-ranking-lesson-picker button:hover{background:#17466f}

.tc-embedded-coach-ranking{margin:26px 0;padding:26px;border:1px solid #e4d29a;border-radius:20px;background:linear-gradient(135deg,#fffdf7 0%,#f5f9fc 100%);box-shadow:0 12px 32px rgba(15,47,82,.07)}
.tc-embedded-ranking-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:16px}
.tc-embedded-ranking-head h2{margin:4px 0 6px;color:#0b2d50;font-size:clamp(1.35rem,2vw,1.85rem)}
.tc-embedded-ranking-head p{max-width:760px;margin:0;color:#657687;line-height:1.7}
.tc-embedded-ranking-head>a{flex:0 0 auto;color:#0f4f7d;font-weight:800;text-decoration:none;white-space:nowrap}
.tc-embedded-ranking-head>a:hover{text-decoration:underline;text-underline-offset:3px}
.tc-embedded-coach-ranking.is-compact{padding:22px}
.tc-embedded-coach-ranking.is-compact .tc-embedded-ranking-head p{font-size:.88rem}

@media(max-width:900px){
  .tc-ranking-lesson-picker{grid-template-columns:1fr}
  .tc-ranking-lesson-picker button{justify-self:start}
  .tc-embedded-ranking-head{align-items:flex-start;flex-direction:column;gap:10px}
}
@media(max-width:620px){
  .tc-embedded-coach-ranking{padding:18px 14px;border-radius:16px}
  .tc-ranking-lesson-picker{padding:14px}
  .tc-best-lesson-title{max-width:165px}
}

/* ---- typing-coach-polish-v18587 | assets/css/polish-v18587.css ---- */
/* Typing Coach v1.85.87 — unified public / Teams Coach Rank presentation. */
.tc-coach-rank-table:not(.is-compact){min-width:940px}
.tc-group-coach-ranking-wrap{margin-top:4px;overflow-x:auto;border-radius:12px}
.tc-group-coach-ranking-table{min-width:980px;margin:0}
.tc-group-coach-ranking-table th,.tc-group-coach-ranking-table td{vertical-align:middle;white-space:nowrap}
.tc-group-coach-ranking-table th:last-child,.tc-group-coach-ranking-table td:last-child{white-space:normal}
.tc-group-coach-ranking-table .is-you{background:#fff9e9}
.tc-group-coach-ranking-table .tc-ranking-nickname small{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#0e3458;color:#fff;font-size:.62rem;font-weight:800}
.tc-group-coach-ranking-table .tc-best-lesson-cell{min-width:190px;max-width:250px}
.tc-group-coach-ranking-table .tc-best-lesson-title{max-width:210px}
.tc-group-ranking-separator td{text-align:center!important;color:#9aa8b5;letter-spacing:.35em;background:#f8fafc}
.tc-group-ranking-policy-note{margin:10px 2px 0;color:#697b8c;font-size:.72rem;line-height:1.65}
.tc-group-best-lesson small{white-space:nowrap}
.tc-demo-manager-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#eaf1f7;color:#34526e;font-size:.6rem;font-weight:800}
@media(max-width:760px){
  .tc-group-coach-ranking-wrap{margin-left:-4px;margin-right:-4px}
  .tc-group-ranking-policy-note{font-size:.68rem}
}

/* ---- typing-coach-polish-v18588 | assets/css/polish-v18588.css ---- */
/* Typing Coach v1.85.88 — BEST LESSON readability + ranking copy consistency. */
.tc-best-lesson-title{
  font-size:.88rem;
  line-height:1.35;
  letter-spacing:0;
}
.tc-coach-rank-table.is-compact .tc-best-lesson-title{font-size:.84rem;line-height:1.32}
.tc-group-coach-ranking-table .tc-best-lesson-title{font-size:.84rem;line-height:1.32}
.tc-group-coach-ranking-table .tc-best-lesson small{font-size:.69rem;line-height:1.35}
.tc-group-coach-ranking-table .tc-best-lesson em{font-size:.68rem;line-height:1.35}
.tc-coach-rank-table:not(.is-compact) .tc-best-lesson-cell{min-width:180px;max-width:245px}
.tc-group-coach-ranking-table .tc-best-lesson-cell{min-width:180px;max-width:240px}
.tc-group-coach-ranking-table .tc-best-lesson-title{max-width:200px}
@media(max-width:760px){
  .tc-best-lesson-title{font-size:.84rem}
  .tc-coach-rank-table.is-compact .tc-best-lesson-title,
  .tc-group-coach-ranking-table .tc-best-lesson-title{font-size:.8rem}
}

/* ---- typing-coach-polish-v18589 | assets/css/polish-v18589.css ---- */
/* Typing Coach v1.85.89 — WordPress-safe embedded rankings, responsive cards, admin-controlled limits. */
.tc-embedded-coach-ranking{box-sizing:border-box;max-width:100%;overflow:hidden}
.tc-embedded-coach-ranking *{box-sizing:border-box}
.tc-embedded-ranking-head>div{min-width:0;flex:1 1 auto}
.tc-embedded-ranking-title{
  margin:5px 0 7px!important;padding:0!important;border:0!important;background:none!important;
  color:#0b2d50!important;font-size:clamp(1.28rem,2vw,1.78rem)!important;line-height:1.28!important;
  font-weight:850!important;letter-spacing:0!important;box-shadow:none!important;text-transform:none!important;
}
.tc-embedded-ranking-title::before,.tc-embedded-ranking-title::after{content:none!important;display:none!important}
.tc-embedded-coach-ranking .tc-kicker{display:inline-block;background:none!important;border:0!important;padding:0!important;box-shadow:none!important}
.tc-embedded-coach-ranking .tc-table-wrap{max-width:100%;overflow:visible!important}
.tc-embedded-coach-ranking .tc-coach-rank-table{
  width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed;border-collapse:collapse;font-size:.86rem
}
.tc-embedded-coach-ranking .tc-coach-rank-table th,
.tc-embedded-coach-ranking .tc-coach-rank-table td{
  min-width:0!important;max-width:none!important;padding:11px 8px;overflow-wrap:anywhere;word-break:normal
}
.tc-embedded-coach-ranking .tc-coach-rank-table th{white-space:normal;line-height:1.25}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(1){width:7%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(2){width:17%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(3){width:15%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(4){width:12%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(5){width:9%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(6){width:10%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(7){width:30%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(1){width:8%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(2){width:23%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(3){width:20%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(4){width:15%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(5){width:34%}
.tc-embedded-coach-ranking .tc-best-lesson-cell{min-width:0!important;max-width:none!important}
.tc-embedded-coach-ranking .tc-best-lesson-title{
  max-width:100%!important;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
  font-size:.82rem;line-height:1.32
}
.tc-embedded-coach-ranking .tc-best-lesson small{white-space:normal;font-size:.68rem;line-height:1.35}
.tc-embedded-coach-ranking .tc-best-lesson em{display:none}
.tc-embedded-coach-ranking .tc-ranking-nickname{overflow-wrap:anywhere}
.tc-embedded-coach-ranking .tc-ranking-nickname small{white-space:nowrap}
.tc-embedded-coach-ranking .tc-coach-rank-mini{max-width:100%;white-space:nowrap}

@media(max-width:1050px){
  .tc-embedded-coach-ranking{padding:22px 18px}
  .tc-embedded-coach-ranking .tc-coach-rank-table{font-size:.79rem}
  .tc-embedded-coach-ranking .tc-coach-rank-table th,.tc-embedded-coach-ranking .tc-coach-rank-table td{padding:9px 6px}
  .tc-embedded-coach-ranking .tc-best-lesson-title{font-size:.78rem}
  .tc-embedded-ranking-head{gap:14px}
}

@media(max-width:760px){
  .tc-embedded-coach-ranking{overflow:visible;padding:18px 14px}
  .tc-embedded-ranking-head{margin-bottom:14px}
  .tc-embedded-ranking-head>a{white-space:normal}
  .tc-embedded-coach-ranking .tc-coach-rank-table,
  .tc-embedded-coach-ranking .tc-coach-rank-table tbody{display:block;width:100%}
  .tc-embedded-coach-ranking .tc-coach-rank-table thead{display:none}
  .tc-embedded-coach-ranking .tc-coach-rank-table tr:not(.tc-ranking-empty){
    display:block;width:100%;margin:0 0 12px;padding:10px 12px;border:1px solid #dce5ec;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(18,51,80,.05)
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table tr.is-me{background:#fff9e8;border-color:#e7c878}
  .tc-embedded-coach-ranking .tc-coach-rank-table td{
    display:grid;width:100%;grid-template-columns:104px minmax(0,1fr);gap:10px;align-items:center;
    padding:7px 2px!important;border:0!important;text-align:left!important;font-size:.88rem
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table td::before{
    content:attr(data-label);color:#748493;font-size:.66rem;font-weight:850;letter-spacing:.03em
  }
  .tc-embedded-coach-ranking .tc-best-lesson-cell{align-items:start!important}
  .tc-embedded-coach-ranking .tc-best-lesson-title{font-size:.84rem;-webkit-line-clamp:2}
  .tc-embedded-coach-ranking .tc-ranking-empty{display:block;padding:14px;border-radius:12px;background:#f7f9fb}
  .tc-embedded-coach-ranking .tc-ranking-empty td{display:block!important;padding:0!important}
  .tc-embedded-coach-ranking .tc-ranking-empty td::before{content:none}
}

@media(max-width:430px){
  .tc-embedded-coach-ranking .tc-coach-rank-table td{grid-template-columns:88px minmax(0,1fr);gap:8px}
  .tc-embedded-ranking-title{font-size:1.25rem!important}
}

/* ---- typing-coach-polish-v18590 | assets/css/polish-v18590.css ---- */
/* Typing Coach v1.85.90 — ranking scope labels + total/group percentile polish. */
.tc-ranking-position{
  display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;line-height:1.05;white-space:nowrap
}
.tc-ranking-position>strong{font-weight:900}
.tc-ranking-top-percent{
  display:inline-block;color:#9a6a12;font-size:.62rem;line-height:1.2;font-weight:850;letter-spacing:.01em;white-space:nowrap
}
.tc-embedded-ranking-foot,
.tc-group-ranking-range-note{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 12px;
  margin-top:9px;padding-top:8px;border-top:1px solid rgba(184,145,51,.22);
  color:#778796;font-size:.66rem;line-height:1.5;font-weight:700
}
.tc-embedded-ranking-foot span+span::before,
.tc-group-ranking-range-note span+span::before{content:"•";margin-right:12px;color:#c39531}
.tc-embedded-coach-ranking .tc-ranking-nickname small{
  display:inline-flex!important;align-items:center;margin-left:5px;padding:2px 6px;border-radius:999px;
  background:#eef4f8;color:#4f6578;font-size:.58rem!important;line-height:1.25;font-weight:850;vertical-align:middle;white-space:nowrap
}
.tc-embedded-coach-ranking .tc-coach-rank-mini{
  width:max-content!important;max-width:100%!important;justify-self:start
}
.tc-group-coach-ranking-table .tc-ranking-position{align-items:center}
.tc-group-coach-ranking-table .tc-ranking-top-percent{font-size:.6rem}
.tc-group-ranking-range-note{justify-content:flex-start;margin-top:7px}

@media(max-width:760px){
  .tc-embedded-ranking-foot{justify-content:flex-start;margin-top:8px;padding:9px 2px 0;font-size:.64rem}
  .tc-embedded-coach-ranking .tc-ranking-position{align-items:flex-start}
  .tc-embedded-coach-ranking .tc-ranking-top-percent{font-size:.64rem}
  .tc-embedded-coach-ranking .tc-ranking-nickname small{margin-left:6px}
  .tc-group-ranking-range-note{font-size:.64rem}
}

@media(max-width:430px){
  .tc-embedded-ranking-foot,
  .tc-group-ranking-range-note{gap:4px 8px}
  .tc-embedded-ranking-foot span+span::before,
  .tc-group-ranking-range-note span+span::before{margin-right:8px}
}

/* ---- typing-coach-polish-v18591 | assets/css/polish-v18591.css ---- */
/* Typing Coach v1.85.91 — mobile ranking hierarchy + meaningful percentile threshold. */
.tc-ranking-top-percent.is-pending{
  color:#788795;font-weight:750;letter-spacing:0
}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(4){
  white-space:nowrap;font-size:.82rem
}

@media(max-width:760px){
  /* Turn each embedded ranking row into a deliberate mini profile card rather than a label/value list. */
  .tc-embedded-coach-ranking .tc-coach-rank-table tr:not(.tc-ranking-empty){
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:8px;
    padding:12px!important;
    border:1px solid #e4d29b!important;
    border-radius:16px!important;
    background:linear-gradient(180deg,#fffdf7 0%,#fff9e8 100%)!important;
    box-shadow:0 8px 24px rgba(18,51,80,.07)!important;
    overflow:hidden;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table tr.is-me{
    border-color:#d9a62e!important;
    box-shadow:0 10px 28px rgba(184,145,51,.12)!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table td{
    display:flex!important;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start!important;
    min-width:0;
    gap:4px!important;
    padding:9px 10px!important;
    border:1px solid rgba(17,55,86,.08)!important;
    border-radius:11px;
    background:rgba(255,255,255,.78);
    line-height:1.3;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table td::before{
    display:block;
    margin:0 0 2px;
    color:#788796;
    font-size:.61rem;
    font-weight:850;
    letter-spacing:.045em;
    line-height:1.2;
  }
  /* Rank + member identity form the visual header. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(1){
    grid-column:span 2;
    background:#fff2c9;
    border-color:#edcf72!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(2){
    grid-column:span 4;
    font-size:1.04rem;
    font-weight:850;
    color:#0b2d50;
  }
  .tc-embedded-coach-ranking .tc-ranking-position{gap:5px}
  .tc-embedded-coach-ranking .tc-ranking-position>strong{
    color:#0b2d50;font-size:1.28rem;line-height:1
  }
  .tc-embedded-coach-ranking .tc-ranking-top-percent{
    padding:3px 7px;border-radius:999px;background:#fff8e7;
    color:#98660b;font-size:.63rem;line-height:1.15
  }
  .tc-embedded-coach-ranking .tc-ranking-top-percent.is-pending{
    background:#f1f4f6;color:#71808c
  }
  .tc-embedded-coach-ranking .tc-ranking-nickname small{
    display:inline-flex!important;
    margin:1px 0 0!important;
    width:max-content;
    background:#eaf2f7!important;
    color:#456276!important;
  }
  /* Coach Rank gets its own calm brand strip. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(3){
    grid-column:1/-1;
    padding:9px 11px!important;
    background:linear-gradient(90deg,#f5f8fb,#fff)!important;
    border-color:#dce6ed!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-mini{
    width:max-content!important;
    max-width:100%!important;
    padding:6px 12px!important;
  }
  /* The three performance numbers read as equal-weight stat tiles. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(4),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(5),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(6){
    grid-column:span 2;
    min-height:68px;
    background:#fff!important;
    font-size:1rem;
    font-weight:800;
    color:#173c5d;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(4){
    color:#0a4e84;
  }
  .tc-embedded-coach-ranking .tc-coach-score-value{font-size:1.08rem}
  /* BEST LESSON becomes the concluding highlight, not another ordinary row. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(7){
    grid-column:1/-1;
    padding:10px 12px!important;
    background:#f3f8fc!important;
    border-color:#d6e4ee!important;
    border-left:3px solid #c99527!important;
  }
  .tc-embedded-coach-ranking .tc-best-lesson-title{
    color:#064f82!important;
    font-size:.9rem!important;
    font-weight:850!important;
    line-height:1.35!important;
  }
  .tc-embedded-coach-ranking .tc-best-lesson small{
    color:#788796;font-size:.67rem;line-height:1.35
  }

  /* Compact shortcode keeps the same hierarchy with fewer fields. */
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(1){grid-column:span 2;background:#fff2c9;border-color:#edcf72!important}
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(2){grid-column:span 4;font-size:1.04rem;font-weight:850;color:#0b2d50}
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(3){grid-column:1/-1;background:linear-gradient(90deg,#f5f8fb,#fff)!important}
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(4){grid-column:span 2;min-height:68px;background:#fff!important;color:#0a4e84;font-weight:850}
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(5){grid-column:span 4;background:#f3f8fc!important;border-left:3px solid #c99527!important}

  .tc-embedded-ranking-foot{
    margin-top:10px!important;
    padding:9px 4px 0!important;
    border-top:1px solid rgba(184,145,51,.22)!important;
  }
}

@media(max-width:430px){
  .tc-embedded-coach-ranking .tc-coach-rank-table tr:not(.tc-ranking-empty){gap:7px;padding:10px!important}
  .tc-embedded-coach-ranking .tc-coach-rank-table td{padding:8px!important}
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(4),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(5),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(6){font-size:.92rem;min-height:64px}
  .tc-embedded-coach-ranking .tc-best-lesson-title{font-size:.86rem!important}
}

/* ---- typing-coach-polish-v18592 | assets/css/polish-v18592.css ---- */
/* Typing Coach v1.85.92 — percentile as a first-class field + wider standard embeds. */
.tc-ranking-percentile-cell{white-space:nowrap}
.tc-ranking-percentile-value{
  display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:4px 8px;
  border-radius:999px;background:#fff5d9;color:#94620b;font-size:.7rem;line-height:1.1;font-weight:850;white-space:nowrap
}
.tc-ranking-percentile-value.is-pending{background:#f1f4f6;color:#748492}

/* Standard WordPress embed can breathe beyond a narrow article column without exceeding the viewport. */
@media(min-width:1060px){
  .tc-embedded-coach-ranking:not(.is-compact){
    position:relative;left:50%;transform:translateX(-50%);
    width:min(1460px,calc(100vw - 56px));max-width:none!important;
    padding:28px 32px;
  }
}

/* Eight deliberate desktop columns: rank / percentile / identity / rank / score / speed / accuracy / lesson. */
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(1){width:6%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(2){width:8%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(3){width:15%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(4){width:14%;white-space:nowrap;font-size:.82rem}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(5){width:11%;white-space:nowrap;font-size:.8rem}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(6){width:8%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(7){width:9%}
.tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) th:nth-child(8){width:29%}

.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(1){width:7%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(2){width:10%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(3){width:22%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(4){width:18%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(5){width:14%}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(6){width:29%}

/* Full ranking and Teams tables keep the same information architecture. */
.tc-coach-rank-table:not(.is-compact){min-width:1020px}
.tc-group-coach-ranking-table{min-width:1080px}
.tc-group-coach-ranking-table th:nth-child(1){width:6%}
.tc-group-coach-ranking-table th:nth-child(2){width:8%}
.tc-group-coach-ranking-table .tc-ranking-percentile-value{font-size:.66rem}

@media(max-width:1050px) and (min-width:761px){
  .tc-embedded-coach-ranking .tc-coach-rank-table{font-size:.76rem}
  .tc-embedded-coach-ranking .tc-ranking-percentile-value{padding:4px 6px;font-size:.64rem}
}

@media(max-width:760px){
  /* Separate rank and percentile into two equal status tiles. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(1),
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(1){
    grid-column:span 3!important;background:#fff2c9!important;border-color:#edcf72!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(2),
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(2){
    grid-column:span 3!important;background:#fffaf0!important;border-color:#ead9a9!important;
  }
  .tc-embedded-coach-ranking .tc-ranking-position>strong{font-size:1.3rem!important}
  .tc-embedded-coach-ranking .tc-ranking-percentile-value{
    min-height:28px;padding:5px 9px;font-size:.72rem;background:#fff1c7
  }
  .tc-embedded-coach-ranking .tc-ranking-percentile-value.is-pending{background:#eef2f5;color:#6f7f8c}

  /* Member identity receives a full-width row instead of competing with the status tiles. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(3),
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(3){
    grid-column:1/-1!important;background:#fff!important;font-size:1.05rem!important;font-weight:850!important;color:#0b2d50!important;
  }
  /* Coach Rank brand strip. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(4){
    grid-column:1/-1!important;padding:9px 11px!important;background:linear-gradient(90deg,#f5f8fb,#fff)!important;border-color:#dce6ed!important;
  }
  /* Score / WPM / accuracy become equal visual metrics. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(5),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(6),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(7){
    grid-column:span 2!important;min-height:68px;background:#fff!important;font-size:1rem!important;font-weight:800!important;color:#173c5d!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(5){color:#0a4e84!important}
  /* BEST LESSON remains the concluding highlight. */
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(8){
    grid-column:1/-1!important;padding:10px 12px!important;background:#f3f8fc!important;border-color:#d6e4ee!important;border-left:3px solid #c99527!important;
  }

  /* Compact mode: rank + percentile / identity / rank + score / representative lesson. */
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(4){
    grid-column:span 3!important;background:linear-gradient(90deg,#f5f8fb,#fff)!important;border-color:#dce6ed!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(5){
    grid-column:span 3!important;min-height:68px;background:#fff!important;color:#0a4e84!important;font-weight:850!important;border-left:1px solid rgba(17,55,86,.08)!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(6){
    grid-column:1/-1!important;background:#f3f8fc!important;border-left:3px solid #c99527!important;
  }
}

@media(max-width:430px){
  .tc-embedded-coach-ranking .tc-ranking-percentile-value{font-size:.68rem;padding:4px 7px}
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(5),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(6),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(7){font-size:.92rem!important;min-height:64px}
}

@media(max-width:760px){
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(2),
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(2){font-size:.88rem!important;font-weight:700!important;color:#173c5d!important}
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(4),
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(4){font-size:.88rem!important;font-weight:400!important;color:inherit!important;min-height:0!important}
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(5),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(6),
  .tc-embedded-coach-ranking .tc-coach-rank-table:not(.is-compact) td:nth-child(7){border-left:1px solid rgba(17,55,86,.08)!important;border-color:rgba(17,55,86,.08)!important}
}

/* ---- typing-coach-polish-v18593 | assets/css/polish-v18593.css ---- */
/* Typing Coach v1.85.93 — semantic line breaks for embedded ranking copy */

.tc-embedded-coach-ranking .tc-ranking-description{
  text-wrap:pretty;
}

@media (min-width: 900px){
  .tc-embedded-coach-ranking .tc-ranking-description>span{
    display:block;
  }
  .tc-embedded-coach-ranking .tc-ranking-description>span+span{
    margin-top:.12em;
  }
}

/* ---- typing-coach-polish-v18594 | assets/css/polish-v18594.css ---- */
/* Typing Coach v1.85.94 — protected lesson return flow + member-only BEST LESSON clarity. */

/* The gate explains that registration preserves the learner's original intent. */
.tc-member-only-return-note{
  margin:16px 0 0;
  padding:10px 13px;
  border-left:3px solid #c99527;
  border-radius:0 10px 10px 0;
  background:#fff8e7;
  color:#51677a;
  font-size:.88rem;
  line-height:1.65;
}

/* BEST LESSON stays compact even when a protected lesson needs an access badge. */
.tc-best-lesson-heading{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  flex-wrap:wrap;
}
.tc-best-lesson-heading .tc-best-lesson-title{min-width:0}
.tc-best-lesson-access-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-height:20px;
  padding:3px 7px;
  border:1px solid #e3c46c;
  border-radius:999px;
  background:#fff4cf;
  color:#83580a;
  font-size:.62rem;
  font-weight:850;
  line-height:1;
  letter-spacing:.02em;
  white-space:nowrap;
}

@media(max-width:760px){
  .tc-member-only-return-note{font-size:.82rem}
  .tc-best-lesson-heading{gap:6px}
  .tc-best-lesson-access-badge{font-size:.6rem;padding:3px 6px}
}

/* ---- typing-coach-polish-v18595 | assets/css/polish-v18595.css ---- */
/* Typing Coach v1.85.95 — complete semantic line breaks for ranking explanation. */

/*
 * The public TOP-page ranking explanation has three distinct ideas.
 * Keep those ideas on separate lines on desktop instead of relying on
 * incidental wrapping caused by the WordPress/SWELL content width.
 */
.tc-embedded-coach-ranking .tc-ranking-description{
  text-wrap:pretty;
}

@media (min-width:900px){
  .tc-embedded-coach-ranking .tc-ranking-description>span{
    display:block;
  }
  .tc-embedded-coach-ranking .tc-ranking-description>span+span{
    margin-top:.08em;
  }
}

/* On smaller screens the browser can wrap naturally around card width. */
@media (max-width:899px){
  .tc-embedded-coach-ranking .tc-ranking-description>span{
    display:inline;
  }
  .tc-embedded-coach-ranking .tc-ranking-description>span+span::before{
    content:' ';
  }
}

/* ---- typing-coach-polish-v18596 | assets/css/polish-v18596.css ---- */
/* Typing Coach v1.85.96 — two-line semantic ranking explanation. */

/*
 * Desktop: keep the ranking explanation to two meaningful sentences/lines.
 * Mobile/tablet: allow natural wrapping within the available width.
 */
@media (min-width:900px){
  .tc-embedded-coach-ranking .tc-ranking-description>span{
    display:block;
  }
  .tc-embedded-coach-ranking .tc-ranking-description>span+span{
    margin-top:.08em;
  }
}

@media (max-width:899px){
  .tc-embedded-coach-ranking .tc-ranking-description>span{
    display:inline;
  }
  .tc-embedded-coach-ranking .tc-ranking-description>span+span::before{
    content:' ';
  }
}

/* ---- typing-coach-polish-v18597 | assets/css/polish-v18597.css ---- */
/* Typing Coach v1.85.97 — consistent “あなた” badge on the full ranking page. */
/* Match the WordPress shortcode ranking: the signed-in user marker should read as a small badge, not appended body text. */
.tc-ranking-panel .tc-ranking-nickname small{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  background:#eef4f8;
  color:#4f6578;
  font-size:.58rem!important;
  line-height:1.25;
  font-weight:850;
  letter-spacing:.01em;
  vertical-align:middle;
  white-space:nowrap;
}
.tc-ranking-panel .tc-ranking-nickname{
  vertical-align:middle;
}
@media(max-width:760px){
  .tc-ranking-panel .tc-ranking-nickname small{
    margin-left:5px;
    padding:2px 6px;
  }
}

/* ---- typing-coach-polish-v18598 | assets/css/polish-v18598.css ---- */
/* v1.85.98 — TEAM LEAGUE TOP 10 */
.tc-team-league{--tl-navy:#082c45;--tl-navy-2:#123d66;--tl-gold:#d29a17;--tl-ivory:#fffaf0;--tl-line:#e5cf98;max-width:1460px;margin:34px auto;padding:32px 34px;border:1px solid var(--tl-line);border-radius:26px;background:linear-gradient(135deg,#fffdf8 0%,#f7fbff 100%);box-shadow:0 18px 42px rgba(8,44,69,.08);color:#0a2d4d}
.tc-team-league.is-compact{max-width:1240px;padding:26px 28px}
.tc-team-league-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.tc-team-league-kicker{display:block;color:#a66c00;font-size:12px;font-weight:800;letter-spacing:.16em;margin-bottom:8px}
.tc-team-league h3{margin:0;color:#082c45;font-size:clamp(26px,2.2vw,38px);line-height:1.2;letter-spacing:.01em}
.tc-team-league-head p,.tc-team-league-teaser>p{margin:10px 0 0;color:#61748a;font-size:16px;line-height:1.75}
.tc-team-league-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:92px;height:42px;padding:0 16px;border-radius:999px;background:#082c45;color:#f4c85a;font-weight:800;letter-spacing:.08em;border:1px solid #d29a17}
.tc-team-league-table-wrap{overflow:visible}
.tc-team-league-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin:0;background:#fff}
.tc-team-league-table th{background:#07384c;color:#fff;padding:14px 12px;border-right:1px solid rgba(255,255,255,.22);text-align:left;font-size:14px;white-space:nowrap}
.tc-team-league-table th:first-child{width:76px}.tc-team-league-table th:nth-child(2){width:108px}.tc-team-league-table th:nth-child(3){width:23%}.tc-team-league-table th:nth-child(4){width:160px}.tc-team-league-table th:nth-child(5),.tc-team-league-table th:nth-child(6){width:112px}
.tc-team-league-table td{padding:16px 12px;border-right:1px solid #eadfca;border-bottom:1px solid #e6c66f;background:#fff8e4;vertical-align:middle;color:#172f49}
.tc-team-league-table td:first-child{border-left:1px solid #e6c66f}
.tc-team-league-position{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:50%;font-size:20px;color:#082c45}
.tc-team-league-position.is-top{background:#fff1ba;border:1px solid #d49b19;color:#925c00}
.tc-team-league-rate{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf3f7;color:#667c90;font-size:12px;font-weight:700;white-space:nowrap}
.tc-team-league-name{display:block;color:#082c45;font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.tc-team-league-score{font-size:20px;color:#075183}
.tc-team-league-lesson{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#075183;font-size:14px;line-height:1.4}
.tc-team-league-foot{padding-top:14px;text-align:right;color:#77899b;font-size:12px;font-weight:700;letter-spacing:.02em}
.tc-team-league-teaser{position:relative;overflow:hidden;text-align:center;padding:42px 38px}
.tc-team-league-teaser:after{content:'TOP 10';position:absolute;right:-18px;bottom:-24px;font-size:96px;font-weight:900;letter-spacing:-.05em;color:rgba(8,44,69,.035);pointer-events:none}
.tc-team-league-teaser h3{max-width:760px;margin:0 auto}.tc-team-league-teaser>p{max-width:760px;margin:12px auto 0}
.tc-team-league-coming{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:10px 16px;border:1px solid #e1c373;border-radius:999px;background:#fff7dc;color:#7f5b08;font-size:13px}

/* Group manager private TEAM LEAGUE dashboard */
.tc-team-league-manager{margin:24px 0;padding:24px;border:1px solid #d8c58f;border-radius:20px;background:linear-gradient(145deg,#f9fcff 0%,#fffaf0 100%)}
.tc-team-league-manager-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.tc-team-league-manager-head h5{margin:3px 0 7px;font-size:24px;color:#082c45}.tc-team-league-manager-head p{margin:0;color:#65798c;line-height:1.65}.tc-team-league-manager-state{padding:7px 11px;border-radius:999px;background:#eef3f7;color:#5e7488;font-size:12px;font-weight:800;white-space:nowrap}
.tc-team-league-manager-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tc-team-league-manager-kpis article{padding:16px;border:1px solid #dfe7ed;border-radius:14px;background:#fff}.tc-team-league-manager-kpis small{display:block;color:#77899b;font-size:11px;font-weight:800}.tc-team-league-manager-kpis strong{display:block;margin:5px 0 3px;color:#082c45;font-size:22px;line-height:1.1}.tc-team-league-manager-kpis span{display:block;color:#7b8996;font-size:11px;line-height:1.45}
.tc-team-league-manager-notice{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;border-radius:12px;background:#fff5d7;border:1px solid #ecd18a;color:#725715}.tc-team-league-manager-notice strong{white-space:nowrap}.tc-team-league-manager-notice span{color:#796a45;font-size:12px;line-height:1.55}.tc-team-league-gap{margin:12px 0 0;text-align:right;color:#647789}.tc-team-league-gap b{color:#9b6800}
.tc-team-league-manager-list{margin-top:16px;padding:16px;border-radius:14px;background:#082f4c;color:#fff}.tc-team-league-manager-list>strong{display:block;margin-bottom:9px;color:#f0c255;font-size:12px;letter-spacing:.08em}.tc-team-league-manager-list ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.tc-team-league-manager-list li,.tc-team-league-manager-current{display:grid;grid-template-columns:54px 1fr 72px;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.06)}.tc-team-league-manager-list li.is-current,.tc-team-league-manager-current{outline:1px solid #e0ae3b;background:rgba(224,174,59,.13)}.tc-team-league-manager-list li span,.tc-team-league-manager-current span{font-size:12px;color:#d7e2eb}.tc-team-league-manager-list li b,.tc-team-league-manager-current b{font-size:13px}.tc-team-league-manager-list li em,.tc-team-league-manager-current em{text-align:right;color:#f4c65a;font-style:normal;font-weight:800}
.tc-team-league-manager-current{margin-top:8px}.tc-team-league-manager-settings{margin-top:16px;border-top:1px solid #dfe5e9;padding-top:14px}.tc-team-league-manager-settings summary{cursor:pointer;color:#075183;font-weight:800}.tc-team-league-manager-settings .tc-ops-form{margin-top:12px}.tc-team-league-toggle{display:flex!important;align-items:center;gap:9px}.tc-team-league-toggle input{width:auto!important}.tc-team-league-manager-settings label small{display:block;margin-top:5px;color:#7a8c9b;font-size:11px;line-height:1.5}

@media(max-width:900px){
 .tc-team-league{margin:24px 0;padding:24px 20px;border-radius:20px}.tc-team-league-head{align-items:flex-start}.tc-team-league-badge{min-width:74px;height:36px;font-size:11px}
 .tc-team-league-table,.tc-team-league-table tbody,.tc-team-league-table tr,.tc-team-league-table td{display:block;width:100%}.tc-team-league-table thead{display:none}.tc-team-league-table tr{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;margin-bottom:12px;border:1px solid #d6b354;border-radius:16px;background:#fff8e4}.tc-team-league-table td,.tc-team-league-table td:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid #e1e7eb!important;border-radius:12px;background:#fff}.tc-team-league-table td:before{content:attr(data-label);display:block;color:#718397;font-size:11px;font-weight:800}.tc-team-league-table td[data-label="グループ"],.tc-team-league-table td[data-label="Team Coach Score"],.tc-team-league-table td[data-label="BEST LESSON"]{grid-column:1/-1}.tc-team-league-table td[data-label="順位"]{background:#fff2bf;border-color:#e0b13c!important}.tc-team-league-name{font-size:18px}.tc-team-league-score{font-size:26px}.tc-team-league-foot{text-align:left;padding:8px 2px 0}
 .tc-team-league-manager-kpis{grid-template-columns:1fr 1fr}.tc-team-league-manager-head{flex-direction:column}.tc-team-league-manager-state{align-self:flex-start}.tc-team-league-manager-notice{flex-direction:column}.tc-team-league-manager-notice strong{white-space:normal}
}
@media(max-width:520px){.tc-team-league-head{display:block}.tc-team-league-badge{margin-top:14px}.tc-team-league-teaser{padding:32px 18px}.tc-team-league-manager{padding:18px 14px}.tc-team-league-manager-kpis{grid-template-columns:1fr}.tc-team-league-manager-list li,.tc-team-league-manager-current{grid-template-columns:44px 1fr 64px}}

/* ---- typing-coach-polish-v18599 | assets/css/polish-v18599.css ---- */
/* v1.85.99 — Teams ranking ecosystem, internal teams, public-ranking privacy */

/* Group sales: ranking story / visual diagram */
.tc-gsales-ranking-experience{position:relative;overflow:hidden;background:linear-gradient(145deg,#fffdf8 0%,#f4f9fd 58%,#fff8e9 100%)}
.tc-gsales-ranking-experience:before{content:'TOP 10';position:absolute;right:-28px;top:36px;font-size:118px;font-weight:900;letter-spacing:-.07em;color:rgba(8,44,69,.025);pointer-events:none}
.tc-gsales-ranking-story{display:grid;grid-template-columns:minmax(0,1fr) 210px minmax(0,1fr);align-items:stretch;gap:22px;max-width:1180px;margin:34px auto 0}
.tc-gsales-rank-panel{padding:24px;border:1px solid #dfe7ed;border-radius:22px;background:#fff;box-shadow:0 14px 32px rgba(9,45,72,.08)}
.tc-gsales-rank-panel.is-league{background:linear-gradient(145deg,#082f4c,#123f68);border-color:#c99a2f;color:#fff}
.tc-gsales-rank-panel-head{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding-bottom:15px;border-bottom:1px solid #e5e9ed}
.tc-gsales-rank-panel.is-league .tc-gsales-rank-panel-head{border-color:rgba(255,255,255,.15)}
.tc-gsales-rank-panel-head small{grid-column:1/-1;color:#ad7609;font-size:10px;font-weight:900;letter-spacing:.15em}.tc-gsales-rank-panel.is-league .tc-gsales-rank-panel-head small{color:#f0c154}
.tc-gsales-rank-panel-head strong{color:#082f4c;font-size:20px;line-height:1.25}.tc-gsales-rank-panel.is-league .tc-gsales-rank-panel-head strong{color:#fff}
.tc-gsales-rank-panel-head span{align-self:center;color:#7a8b9a;font-size:11px}.tc-gsales-rank-panel.is-league .tc-gsales-rank-panel-head span{color:#bed0de}
.tc-gsales-rank-panel ol{display:grid;gap:8px;list-style:none;margin:16px 0 0;padding:0}.tc-gsales-rank-panel li{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid #e7ebee;border-radius:12px;background:#fbfcfd}.tc-gsales-rank-panel.is-league li{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.06)}
.tc-gsales-rank-panel li>b{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#fff1c3;color:#9a6500;font-size:12px}.tc-gsales-rank-panel li span{font-weight:800;color:#163b5a;font-size:13px}.tc-gsales-rank-panel.is-league li span{color:#fff}.tc-gsales-rank-panel li span small{display:block;margin-top:2px;color:#8a99a5;font-size:9px;letter-spacing:.05em}.tc-gsales-rank-panel.is-league li span small{color:#a9c0d2}.tc-gsales-rank-panel li em{color:#ad7609;font-style:normal;font-weight:900}.tc-gsales-rank-panel.is-league li em{color:#f4c65a}.tc-gsales-rank-panel>p{margin:16px 2px 0;color:#667a8c;font-size:12px;line-height:1.65}.tc-gsales-rank-panel.is-league>p{color:#c0d0dd}
.tc-gsales-team-bridge{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 13px;border:1px dashed #d2a442;border-radius:20px;background:rgba(255,249,232,.78)}.tc-gsales-team-bridge>span{color:#a66b00;font-size:10px;font-weight:900;letter-spacing:.13em}.tc-gsales-team-bridge>strong{margin:5px 0 13px;color:#083457;font-size:21px}.tc-gsales-team-bridge>div{display:grid;gap:7px;width:100%}.tc-gsales-team-bridge i{display:block;padding:8px 6px;border-radius:9px;background:#fff;border:1px solid #dfe7eb;color:#235274;font-size:10px;font-style:normal;font-weight:900;letter-spacing:.05em}.tc-gsales-team-bridge i:nth-child(2){background:#fff6d9;border-color:#ead08f;color:#8c6309}.tc-gsales-team-bridge i:last-child{width:32px;margin:0 auto;border-radius:50%;background:#082f4c;color:#f3c65a;border-color:#082f4c}.tc-gsales-team-bridge>small{margin-top:12px;color:#788a99;font-size:10px;line-height:1.5}.tc-gsales-team-bridge>b{position:absolute;right:-20px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#d19b25;color:#fff;border:4px solid #f8fbfc;font-size:19px}
.tc-gsales-ranking-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1180px;margin:18px auto 0}.tc-gsales-ranking-benefits article{padding:18px 19px;border:1px solid #dfe6eb;border-radius:16px;background:rgba(255,255,255,.82)}.tc-gsales-ranking-benefits article>span{display:block;color:#bd8720;font-size:10px;font-weight:900;letter-spacing:.12em}.tc-gsales-ranking-benefits strong{display:block;margin-top:5px;color:#0b3556;font-size:15px}.tc-gsales-ranking-benefits p{margin:6px 0 0;color:#6b7d8d;font-size:12px;line-height:1.65}
.tc-gsales-ranking-privacy{display:flex;align-items:flex-start;gap:12px;max-width:1180px;margin:18px auto 0;padding:15px 18px;border:1px solid #d3e4dc;border-radius:15px;background:#f4fbf7}.tc-gsales-ranking-privacy>span{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#e3f3e9;color:#2a7451;font-weight:900}.tc-gsales-ranking-privacy p{margin:0;color:#567268;font-size:12px;line-height:1.65}.tc-gsales-ranking-privacy strong{color:#275d47}

/* Account: public ranking scope */
.tc-account-ranking-choice{display:flex!important;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid #dfe7ed;border-radius:13px;background:#fff}.tc-account-ranking-choice+.tc-account-ranking-choice{margin-top:10px}.tc-account-ranking-choice.is-sub{background:#f7fafc}.tc-account-ranking-choice input{width:auto!important;margin-top:3px}.tc-account-ranking-choice span{display:block}.tc-account-ranking-choice strong{display:block;color:#0b3556;font-size:14px}.tc-account-ranking-choice small{display:block;margin-top:3px;color:#718397;font-size:11px;line-height:1.55}.tc-account-ranking-note{margin:10px 0;color:#6b7d8d;font-size:11px;line-height:1.6}

/* Manager: public global rank visibility */
.tc-public-global-rank-cell{min-width:142px}.tc-public-global-rank-cell>strong{display:block;color:#075183;font-size:16px}.tc-public-global-rank-cell>span:not(.tc-public-rank-state){display:block;margin-top:2px;color:#a46d00;font-size:10px;font-weight:800}.tc-public-global-rank-cell>small{display:block;margin-top:4px;color:#788997;font-size:9px;line-height:1.35}.tc-public-rank-state{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.tc-public-rank-state.is-off{background:#f1f3f5;color:#6c7781}.tc-public-rank-state.is-waiting{background:#fff4d7;color:#8a650c}

/* Internal teams manager */
.tc-team-manager-section{margin-top:18px;padding-top:18px;border-top:1px solid #dfe7eb}.tc-team-manager-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px}.tc-team-manager-title h6{margin:3px 0 5px;color:#0a3556;font-size:19px}.tc-team-manager-title p{max-width:700px;margin:0;color:#6d7e8d;font-size:12px;line-height:1.6}.tc-team-manager-title>strong{padding:7px 10px;border-radius:999px;background:#eef4f8;color:#537089;font-size:11px;white-space:nowrap}
.tc-internal-team-card{margin:10px 0;border:1px solid #dbe4ea;border-radius:14px;background:#fff;overflow:hidden}.tc-internal-team-card>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;cursor:pointer;list-style:none}.tc-internal-team-card>summary::-webkit-details-marker{display:none}.tc-internal-team-card>summary span:first-child b{display:block;color:#0a3658}.tc-internal-team-card>summary span:first-child small{display:block;margin-top:3px;color:#7b8d9c;font-size:10px}.tc-team-summary-score{color:#9b6907;font-size:12px;font-weight:900;white-space:nowrap}.tc-internal-team-body{padding:0 16px 16px;border-top:1px solid #edf1f4}.tc-internal-team-preview{padding:14px 0 2px}.tc-internal-team-preview>strong{display:block;margin-bottom:8px;color:#677d90;font-size:10px;letter-spacing:.06em}.tc-team-member-rank-preview{display:grid;gap:5px;margin:0;padding:0;list-style:none}.tc-team-member-rank-preview li{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:7px 9px;border-radius:8px;background:#f7fafc;font-size:11px}.tc-team-member-rank-preview li b{color:#0b3557}.tc-team-member-rank-preview li em{font-style:normal;color:#a36f08;font-weight:900}.tc-internal-team-form{margin-top:12px}.tc-team-member-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:210px;overflow:auto;padding:8px;border:1px solid #e2e8ec;border-radius:10px;background:#fafcfd}.tc-team-member-checks label{display:flex!important;align-items:center;gap:7px;padding:7px 8px;border-radius:8px;background:#fff}.tc-team-member-checks input{width:auto!important}.tc-team-member-checks span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.tc-team-create-form{display:flex;align-items:end;gap:10px;margin-top:12px;padding:12px;border:1px dashed #d1b46d;border-radius:12px;background:#fffaf0}.tc-team-create-form label{flex:1}.tc-team-create-form label span{display:block;margin-bottom:4px;color:#6d7d89;font-size:10px;font-weight:800}.tc-team-create-form input{width:100%}.tc-team-delete-form{margin-top:10px;text-align:right}

@media(max-width:900px){
 .tc-gsales-ranking-story{grid-template-columns:1fr;gap:13px}.tc-gsales-team-bridge{min-height:185px}.tc-gsales-team-bridge>b{right:50%;top:auto;bottom:-25px;transform:translateX(50%) rotate(90deg)}.tc-gsales-ranking-benefits{grid-template-columns:1fr}.tc-gsales-ranking-privacy{margin-top:14px}
 .tc-team-manager-title{flex-direction:column}.tc-team-member-checks{grid-template-columns:1fr 1fr}.tc-team-create-form{align-items:stretch;flex-direction:column}.tc-public-global-rank-cell{min-width:128px}
}
@media(max-width:560px){.tc-team-member-checks{grid-template-columns:1fr}.tc-gsales-ranking-experience:before{font-size:72px}.tc-gsales-ranking-story{margin-top:24px}.tc-gsales-rank-panel{padding:18px}.tc-gsales-ranking-privacy{padding:13px 14px}.tc-account-ranking-choice{padding:12px}}

/* Member-facing internal team ranking */
.tc-team-mini-ranking{display:grid;gap:5px;margin:0;padding:0;list-style:none}.tc-team-mini-ranking li{display:grid;grid-template-columns:42px 1fr 62px;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;background:#f7fafc}.tc-team-mini-ranking li span{color:#708295;font-size:10px}.tc-team-mini-ranking li b{color:#123a59;font-size:11px}.tc-team-mini-ranking li em{text-align:right;color:#a36e05;font-size:11px;font-style:normal;font-weight:900}.tc-team-mini-empty{margin:6px 0;color:#84929d;font-size:11px}
.tc-member-team-ranking{margin-top:18px;padding:18px;border:1px solid #d9e4eb;border-radius:16px;background:linear-gradient(145deg,#f8fbfd,#fffaf0)}.tc-member-team-ranking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.tc-member-team-ranking-head h6{margin:3px 0 4px;color:#0a3556;font-size:17px}.tc-member-team-ranking-head p{margin:0;color:#718293;font-size:11px;line-height:1.55}.tc-member-team-ranking-head>span{padding:6px 9px;border-radius:999px;background:#eef4f7;color:#647c90;font-size:10px;font-weight:800;white-space:nowrap}.tc-member-team-ranking ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.tc-member-team-ranking li{display:grid;grid-template-columns:54px 1fr 104px;gap:10px;align-items:center;padding:9px 11px;border:1px solid #e3e9ed;border-radius:10px;background:#fff}.tc-member-team-ranking li.is-you{border-color:#d2a13a;background:#fff9e9}.tc-member-team-ranking li>b{color:#9f6a05;font-size:12px}.tc-member-team-ranking li>span{color:#143b5a;font-size:12px;font-weight:800}.tc-member-team-ranking li>span small{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#eef3f7;color:#72889a;font-size:8px}.tc-member-team-ranking li>em{text-align:right;color:#075183;font-style:normal;font-weight:900;font-size:13px}.tc-member-team-ranking li>em small{display:block;color:#8a98a4;font-size:8px;font-weight:700}.tc-member-team-ranking-empty{margin:0;padding:12px;border-radius:10px;background:#fff;color:#7b8b99;font-size:11px}.tc-member-team-ranking-me{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:8px;color:#718496;font-size:10px}.tc-member-team-ranking-me strong{color:#9b6908}.tc-member-team-ranking-me em{font-style:normal;color:#075183;font-weight:900}
@media(max-width:560px){.tc-member-team-ranking-head{flex-direction:column}.tc-member-team-ranking li{grid-template-columns:42px 1fr 84px}}

/* ---- typing-coach-polish-v1860 | assets/css/polish-v1860.css ---- */
/* v1.86.0 — Teams testimonial publishing + always-on league wording */
.tc-gsales-live-ranking-note{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:14px auto 0;padding:8px 13px;border:1px solid #d7e4ec;border-radius:999px;background:rgba(255,255,255,.84);color:#56758d;font-size:11px;line-height:1.4}.tc-gsales-live-ranking-note>span{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#eef5f9;color:#0a4d79;font-size:14px}.tc-gsales-live-ranking-note strong{color:#0b436b}.tc-gsales-live-ranking-note small{color:#718798}.tc-gsales-voices.is-testimonials .tc-gsales-heading{max-width:760px}.tc-gsales-voices.is-use-cases .tc-gsales-voice-placeholder{background:linear-gradient(135deg,#fffdf7,#f6fbff)}
@media(max-width:680px){.tc-gsales-live-ranking-note{display:flex;max-width:92%;flex-wrap:wrap;border-radius:16px}.tc-gsales-live-ranking-note small{flex-basis:100%}}

/* ---- typing-coach-polish-v1861 | assets/css/polish-v1861.css ---- */
/* v1.86.1 — testimonial organization URL */
.tc-gsales-voices.is-testimonials .tc-gsales-voice-grid article{display:flex;flex-direction:column}
.tc-gsales-voice-link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:auto;padding-top:10px;color:#0b5c89!important;font-size:11px;font-weight:800;text-decoration:none}.tc-gsales-voice-link:hover{text-decoration:underline}.tc-gsales-voice-link span{font-size:inherit!important;line-height:inherit!important;color:inherit!important}


/* Share-card publishing permission — clear reuse path for blogs/websites without turning attribution into a condition. */
.tc-share-publish-note{margin:16px 0 4px;padding:14px 16px;border:1px solid #d9e4ec;border-radius:12px;background:linear-gradient(135deg,#f8fbfd,#fffaf1);color:#526d81}.tc-share-publish-note strong{display:block;margin-bottom:5px;color:#123f60;font-size:13px}.tc-share-publish-note p{margin:0;font-size:11px;line-height:1.7}.tc-share-dialog-actions .tc-share-blog-link{border-color:#d8b45e;background:#fffaf0;color:#735418}.tc-share-dialog-actions .tc-share-blog-link:hover,.tc-share-dialog-actions .tc-share-blog-link:focus-visible{background:#fff4d9;color:#5e430f}.tc-result-share-copy li:nth-child(3){color:#315f4a;font-weight:800}
@media(max-width:640px){.tc-share-publish-note{padding:12px 13px}.tc-share-publish-note strong{font-size:12px}.tc-share-publish-note p{font-size:10.5px}}

/* ---- typing-coach-polish-v1862 | assets/css/polish-v1862.css ---- */
/* v1.86.2 — destination-first share center */
.tc-share-destination-section{
  margin-top:18px;
  padding:18px;
  border:1px solid #d9e4ec;
  border-radius:17px;
  background:linear-gradient(145deg,#f7fbfe 0%,#fff 52%,#fffaf0 100%);
}
.tc-share-destination-heading{margin-bottom:13px;text-align:left}
.tc-share-destination-heading>span{
  display:block;margin-bottom:4px;color:#b07d1d;font-size:10px;font-weight:900;letter-spacing:.16em
}
.tc-share-destination-heading>strong{display:block;color:#0b2f50;font-size:19px;line-height:1.35}
.tc-share-destination-heading>p{margin:5px 0 0;color:#60778a;font-size:12px;line-height:1.65}
.tc-share-destination-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.tc-share-destination{
  appearance:none;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 22px;
  align-items:center;
  gap:11px;
  width:100%;
  min-height:76px;
  padding:11px 12px;
  border:1px solid #dbe4eb;
  border-radius:14px;
  background:#fff;
  color:#173a55;
  text-align:left;
  cursor:pointer;
  box-shadow:0 5px 14px rgba(11,47,80,.035);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.tc-share-destination:hover,.tc-share-destination:focus-visible{
  transform:translateY(-1px);
  border-color:#caa44d;
  box-shadow:0 9px 22px rgba(11,47,80,.09);
  outline:none;
}
.tc-share-destination-icon{
  display:grid;place-items:center;
  width:46px;height:46px;
  border-radius:13px;
  background:#0b2f50;
  color:#fff;
  font-size:15px;
  font-weight:950;
  letter-spacing:-.02em;
}
.tc-share-destination.is-x .tc-share-destination-icon{background:#111;color:#fff}
.tc-share-destination.is-instagram .tc-share-destination-icon{background:linear-gradient(135deg,#6a4bd5,#c5488c 52%,#e9913d);color:#fff}
.tc-share-destination.is-line .tc-share-destination-icon{background:#13a846;color:#fff;font-size:10px}
.tc-share-destination.is-facebook .tc-share-destination-icon{background:#2767b2;color:#fff;font-family:Arial,sans-serif;font-size:23px}
.tc-share-destination.is-native .tc-share-destination-icon{background:#eef3f7;color:#21445f;font-size:23px}
.tc-share-destination-copy{min-width:0}
.tc-share-destination-copy strong{display:block;color:#153b58;font-size:13px;font-weight:900;line-height:1.35}
.tc-share-destination-copy small{display:block;margin-top:3px;color:#718495;font-size:10.5px;line-height:1.45;font-weight:650}
.tc-share-destination-arrow{color:#bd8e2e;font-size:17px;font-weight:900;text-align:right}
.tc-share-destination-note{
  margin:11px 1px 0!important;
  color:#718495!important;
  font-size:10.5px!important;
  line-height:1.65!important;
}
.tc-share-tool-actions{padding-top:2px}
.tc-share-tool-actions .tc-secondary{min-width:170px}
.tc-share-dialog-note{
  min-height:0;
  padding:0 3px;
  color:#2e5b48;
  font-size:12px;
  font-weight:750;
  line-height:1.65;
  text-align:center;
}

@media(max-width:700px){
  .tc-share-destination-section{padding:14px 13px}
  .tc-share-destination-grid{grid-template-columns:1fr}
  .tc-share-destination{min-height:70px;grid-template-columns:44px minmax(0,1fr) 18px;padding:10px}
  .tc-share-destination-icon{width:42px;height:42px;border-radius:12px}
  .tc-share-destination-heading>strong{font-size:17px}
  .tc-share-destination-copy strong{font-size:12.5px}
  .tc-share-destination-copy small{font-size:10px}
  .tc-share-tool-actions{display:grid;grid-template-columns:1fr!important}
}

/* ---- typing-coach-polish-v1863 | assets/css/polish-v1863.css ---- */
/* v1.86.3 — Instagram-specific share guide; no generic OS share sheet from the Instagram button. */
.tc-share-destination-section.is-instagram-guide-open .tc-share-destination-heading,
.tc-share-destination-section.is-instagram-guide-open .tc-share-destination-grid,
.tc-share-destination-section.is-instagram-guide-open > .tc-share-destination-note{display:none}
.tc-instagram-guide{padding:2px 0}
.tc-instagram-guide[hidden]{display:none!important}
.tc-instagram-guide-head{text-align:left}
.tc-instagram-back{appearance:none;border:0;background:transparent;padding:0 0 10px;color:#42647c;font-size:11px;font-weight:850;cursor:pointer}
.tc-instagram-back:hover,.tc-instagram-back:focus-visible{color:#9c6c17;outline:none;text-decoration:underline}
.tc-instagram-guide-head>span{display:block;color:#b07d1d;font-size:10px;font-weight:900;letter-spacing:.16em}
.tc-instagram-guide-head>strong{display:block;margin-top:5px;color:#0b2f50;font-size:19px;line-height:1.35}
.tc-instagram-guide-head>p{margin:6px 0 0;color:#60778a;font-size:12px;line-height:1.7}
.tc-instagram-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0;padding:0;list-style:none}
.tc-instagram-steps li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:start;padding:13px;border:1px solid #e2e6ec;border-radius:13px;background:#fff}
.tc-instagram-steps li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#6a4bd5,#c5488c 52%,#e9913d);color:#fff;font-size:12px;font-weight:950}
.tc-instagram-steps strong{display:block;color:#163c59;font-size:12px;line-height:1.45}
.tc-instagram-steps small{display:block;margin-top:4px;color:#718495;font-size:10.5px;line-height:1.55}
.tc-instagram-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.tc-instagram-actions .tc-primary,.tc-instagram-actions .tc-secondary{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;margin:0;text-align:center;text-decoration:none}
.tc-instagram-open{background:#fff!important}
.tc-instagram-note{margin:11px 0 0!important;padding:10px 12px;border-radius:10px;background:#f4f7f9;color:#63798b!important;font-size:10.5px!important;line-height:1.6!important;text-align:left}
@media(max-width:700px){
  .tc-instagram-guide-head>strong{font-size:17px}
  .tc-instagram-steps{grid-template-columns:1fr;gap:8px;margin:13px 0}
  .tc-instagram-actions{grid-template-columns:1fr}
  .tc-instagram-actions .tc-primary,.tc-instagram-actions .tc-secondary{width:100%}
}

/* ---- typing-coach-polish-v1864 | assets/css/polish-v1864.css ---- */
/* v1.86.4 — Logged-in HOME hero CTA roles: continue current lesson vs choose another lesson. */
.tc-home-hero.is-member .tc-home-resume-card > a{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.tc-home-hero.is-member .tc-home-actions .tc-home-primary{
  white-space:nowrap;
}
@media(max-width:700px){
  .tc-home-hero.is-member .tc-home-actions .tc-home-primary{white-space:normal;}
}

/* ---- typing-coach-polish-v1865 | assets/css/polish-v1865.css ---- */
/* Typing Coach v1.86.5 — harmonize public ranking shortcode widths. */

/*
 * Public ranking blocks should read as one family on WordPress pages.
 * The individual Coach Rank block had enough breathing room to come in a touch,
 * while TEAM LEAGUE previously stayed trapped inside SWELL's narrow article column.
 * Give both the same desktop canvas without changing their internal information design.
 */
@media (min-width:1060px){
  .tc-embedded-coach-ranking:not(.is-compact),
  .tc-team-league{
    position:relative;
    left:50%;
    transform:translateX(-50%);
    width:min(1360px,calc(100vw - 64px));
    max-width:none!important;
    margin-left:0;
    margin-right:0;
  }

  /* The TEAM LEAGUE compact/preview state keeps compact content, not a compact outer frame. */
  .tc-team-league.is-compact{
    max-width:none!important;
  }
}

/* On tablet/mobile both components remain naturally bounded by the content viewport. */
@media (max-width:1059px){
  .tc-embedded-coach-ranking,
  .tc-team-league{
    left:auto;
    transform:none;
    width:auto;
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v18616 | assets/css/polish-v18616.css ---- */
/* Typing Coach v1.86.16 — trust-first guest conversion + result handoff. */
body.tc-stage-result .tc-guest-result-conversion{
  max-width:1120px;
  margin:28px auto 22px;
  padding:24px 26px 20px;
  border:1px solid rgba(199,154,59,.52);
  border-radius:22px;
  background:linear-gradient(135deg,#fffdf8 0%,#fff 55%,#f5f9fc 100%);
  box-shadow:0 14px 34px rgba(11,47,80,.08);
  text-align:left;
}
body.tc-stage-result .tc-guest-result-conversion-copy{
  max-width:900px;
  margin:0 auto;
  text-align:center;
}
body.tc-stage-result .tc-guest-result-conversion-copy .tc-kicker{
  display:block;
  margin-bottom:5px;
  color:#9b6c16;
  letter-spacing:.12em;
  font-weight:900;
}
body.tc-stage-result .tc-guest-result-conversion h3{
  margin:0;
  color:#0b2f50;
  font-size:clamp(22px,2.1vw,30px);
  line-height:1.35;
}
body.tc-stage-result .tc-guest-result-conversion p{
  margin:9px auto 0;
  max-width:860px;
  color:#5b7082;
  font-size:15px;
  line-height:1.85;
}
body.tc-stage-result .tc-guest-result-benefits{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin-top:14px;
}
body.tc-stage-result .tc-guest-result-benefits span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 11px;
  border:1px solid #d7e3ec;
  border-radius:999px;
  background:#fff;
  color:#173b5b;
  font-size:12.5px;
  font-weight:800;
}
body.tc-stage-result .tc-guest-result-benefits span::before{
  content:'✓';
  margin-right:5px;
  color:#2d7b5a;
  font-weight:900;
}
body.tc-stage-result .tc-guest-result-conversion-actions{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:12px;
  margin-top:18px;
}
body.tc-stage-result .tc-guest-result-conversion-actions .tc-guest-result-register,
body.tc-stage-result .tc-guest-result-conversion-actions .tc-result-top-retry{
  min-width:300px;
  min-height:54px;
  padding:12px 20px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:15px;
  font-weight:900;
  line-height:1.45;
}
body.tc-stage-result .tc-guest-result-conversion-actions .tc-guest-result-register{
  border:1px solid #c8465d!important;
  background:linear-gradient(135deg,#c94760,#d85c72)!important;
  color:#fff!important;
  box-shadow:0 9px 22px rgba(190,61,86,.18);
}
body.tc-stage-result .tc-guest-result-conversion-actions .tc-result-top-retry{
  border:1px solid #b8cad8!important;
  background:#fff!important;
  color:#173b5b!important;
  box-shadow:none;
}
body.tc-stage-result .tc-guest-result-conversion-note{
  display:block;
  margin-top:12px;
  text-align:center;
  color:#718596;
  font-size:12px;
  line-height:1.6;
}

/* Registration arrived from a completed guest result. */
.tc-register-panel .tc-member-lead--guest-result{
  border-left:4px solid #c79a3b;
  border-radius:10px;
  padding:13px 15px;
  background:linear-gradient(90deg,#fff8e8,#fff 72%);
}
.tc-register-panel .tc-member-lead--guest-result strong{color:#0b2f50}
.tc-thanks-result-claimed{
  max-width:760px;
  margin:14px auto 0!important;
  padding:11px 14px;
  border:1px solid #cfe4d6;
  border-radius:12px;
  background:#f3fbf6;
  color:#245c3f!important;
  font-weight:800;
  line-height:1.65;
}
.tc-thanks-result-claimed span{margin-right:5px}

@media(max-width:760px){
  body.tc-stage-result .tc-guest-result-conversion{
    margin:20px auto 18px;
    padding:20px 16px 17px;
    border-radius:18px;
  }
  body.tc-stage-result .tc-guest-result-conversion-copy{text-align:left}
  body.tc-stage-result .tc-guest-result-conversion p{font-size:14px;line-height:1.75}
  body.tc-stage-result .tc-guest-result-benefits{justify-content:flex-start}
  body.tc-stage-result .tc-guest-result-conversion-actions{
    flex-direction:column;
  }
  body.tc-stage-result .tc-guest-result-conversion-actions .tc-guest-result-register,
  body.tc-stage-result .tc-guest-result-conversion-actions .tc-result-top-retry{
    width:100%;
    min-width:0;
  }
}

/* ---- typing-coach-polish-v18617 | assets/css/polish-v18617.css ---- */
/* Typing Coach v1.86.17 — semantic line breaks for guest conversion copy. */
body.tc-stage-result .tc-guest-result-conversion-lead .tc-copy-phrase{
  display:inline-block;
  white-space:nowrap;
}
body.tc-stage-result .tc-guest-result-conversion-lead .tc-copy-break--desktop{
  display:block;
}

/* On narrow screens, let the prepared phrase units choose the wrap points.
   Each phrase stays intact, while desktop-only forced breaks are removed. */
@media(max-width:760px){
  body.tc-stage-result .tc-guest-result-conversion-lead .tc-copy-break--desktop{
    display:none;
  }
}

/* Extremely narrow displays must never overflow. The emergency fallback only
   relaxes phrase locking where there is physically not enough inline space. */
@media(max-width:360px){
  body.tc-stage-result .tc-guest-result-conversion-lead .tc-copy-phrase{
    white-space:normal;
  }
}

/* ---- typing-coach-polish-v18618 | assets/css/polish-v18618.css ---- */
/* Typing Coach v1.86.18
 * - Guest result conversion copy: exactly two semantic lines on desktop.
 * - Smartphone header: compact brand + registration CTA + drawer menu.
 */

/* -------------------------------------------------------------------------
   Guest result CTA — one sentence per line on desktop.
   ------------------------------------------------------------------------- */
body.tc-stage-result .tc-guest-result-conversion-copy,
body.tc-stage-result .tc-guest-result-conversion-lead{
  max-width:1080px!important;
}
body.tc-stage-result .tc-guest-result-conversion-lead .tc-copy-line{
  display:block;
}
@media(min-width:1101px){
  body.tc-stage-result .tc-guest-result-conversion-lead .tc-copy-line{
    white-space:nowrap;
  }
}
@media(max-width:1100px){
  body.tc-stage-result .tc-guest-result-conversion-lead .tc-copy-line{
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:anywhere;
  }
}

/* -------------------------------------------------------------------------
   Compact mobile header.
   Desktop keeps the existing full navigation. Mobile shows only the brand,
   the primary registration CTA for guests, and a menu button. Navigation is
   available on demand in a drawer so the first view belongs to page content.
   ------------------------------------------------------------------------- */
.tc-mobile-header-actions,
.tc-mobile-nav-drawer{
  display:none!important;
}

@media(max-width:760px){
  body.tc-system-body .tc-system-header{
    position:relative!important;
    top:auto!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
  }
  body.tc-system-body .tc-system-header .tc-app-header__inner{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto!important;
    align-items:center!important;
    gap:10px!important;
    min-height:68px!important;
    height:auto!important;
    padding:8px 12px!important;
    box-sizing:border-box!important;
  }
  body.tc-system-body .tc-system-header .tc-header-nav-zone{
    display:none!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo{
    grid-column:1!important;
    grid-row:1!important;
    justify-self:start!important;
    align-self:center!important;
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    gap:9px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield,
  body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:36px!important;
    height:41px!important;
    min-width:36px!important;
    min-height:41px!important;
    max-width:36px!important;
    max-height:41px!important;
    flex-basis:36px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__wordmark{
    min-width:0!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__wordmark strong{
    display:block!important;
    font-size:20px!important;
    line-height:1.02!important;
    white-space:nowrap!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__wordmark small{
    display:block!important;
    margin-top:4px!important;
    font-size:6.8px!important;
    line-height:1!important;
    letter-spacing:.16em!important;
    white-space:nowrap!important;
  }

  body.tc-system-body .tc-system-header .tc-mobile-header-actions{
    grid-column:2!important;
    grid-row:1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:7px!important;
    min-width:0!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-register-cta{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    min-height:42px!important;
    padding:8px 11px!important;
    border:1px solid #e0b54c!important;
    border-radius:12px!important;
    background:linear-gradient(135deg,#e8b948,#f0c65c)!important;
    color:#08284a!important;
    box-shadow:0 5px 14px rgba(0,0,0,.13)!important;
    text-decoration:none!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:900!important;
    white-space:nowrap!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-register-cta.is-current{
    box-shadow:0 0 0 2px rgba(255,255,255,.22),0 5px 14px rgba(0,0,0,.13)!important;
  }
  .tc-mobile-register-short{display:none!important}

  body.tc-system-body .tc-system-header .tc-mobile-menu-toggle{
    appearance:none!important;
    -webkit-appearance:none!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    display:inline-grid!important;
    place-items:center!important;
    padding:0!important;
    margin:0!important;
    border:1px solid rgba(226,181,73,.72)!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.055)!important;
    color:#f1c85f!important;
    box-shadow:none!important;
    cursor:pointer!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-menu-toggle:hover,
  body.tc-system-body .tc-system-header .tc-mobile-menu-toggle:focus-visible,
  body.tc-system-body .tc-system-header .tc-mobile-menu-toggle[aria-expanded="true"]{
    background:rgba(226,181,73,.13)!important;
    border-color:#e5b94e!important;
    outline:none!important;
  }
  .tc-mobile-menu-bars{
    width:19px;
    height:15px;
    position:relative;
    display:block;
  }
  .tc-mobile-menu-bars i{
    position:absolute;
    left:0;
    width:19px;
    height:2px;
    border-radius:2px;
    background:currentColor;
    transition:transform .18s ease,opacity .18s ease,top .18s ease;
  }
  .tc-mobile-menu-bars i:nth-child(1){top:0}
  .tc-mobile-menu-bars i:nth-child(2){top:6.5px}
  .tc-mobile-menu-bars i:nth-child(3){top:13px}
  .tc-mobile-menu-toggle[aria-expanded="true"] .tc-mobile-menu-bars i:nth-child(1){top:6.5px;transform:rotate(45deg)}
  .tc-mobile-menu-toggle[aria-expanded="true"] .tc-mobile-menu-bars i:nth-child(2){opacity:0}
  .tc-mobile-menu-toggle[aria-expanded="true"] .tc-mobile-menu-bars i:nth-child(3){top:6.5px;transform:rotate(-45deg)}

  body.tc-system-body .tc-system-header .tc-mobile-nav-drawer{
    position:absolute!important;
    top:calc(100% - 1px)!important;
    left:10px!important;
    right:10px!important;
    z-index:100000!important;
    display:block!important;
    padding:8px!important;
    border:1px solid rgba(226,181,73,.48)!important;
    border-radius:0 0 18px 18px!important;
    background:linear-gradient(180deg,#071c3a,#06162f)!important;
    box-shadow:0 18px 34px rgba(2,17,37,.32)!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav-drawer[hidden]{
    display:none!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:3px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav>a{
    min-height:43px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
    padding:9px 12px!important;
    border:1px solid transparent!important;
    border-radius:11px!important;
    background:transparent!important;
    color:#f5f8fb!important;
    text-decoration:none!important;
    font-size:13px!important;
    line-height:1.25!important;
    font-weight:800!important;
    box-sizing:border-box!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav>a:hover,
  body.tc-system-body .tc-system-header .tc-mobile-nav>a:focus-visible{
    background:rgba(255,255,255,.07)!important;
    border-color:rgba(255,255,255,.12)!important;
    outline:none!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav>a.is-current,
  body.tc-system-body .tc-system-header .tc-mobile-nav>a[aria-current="page"]{
    background:rgba(226,181,73,.12)!important;
    border-color:rgba(226,181,73,.62)!important;
    color:#f1cb68!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav .tc-nav-icon{
    width:22px!important;
    min-width:22px!important;
    display:inline-grid!important;
    place-items:center!important;
    color:#e5b94e!important;
    font-size:14px!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav .tc-login-user-icon{
    width:22px!important;
    min-width:22px!important;
    color:#e5b94e!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-nav .tc-login-user-icon svg{
    width:17px!important;
    height:17px!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-auth-link{
    margin-top:3px!important;
    border-top:1px solid rgba(255,255,255,.11)!important;
    border-radius:0 0 10px 10px!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-auth-link.is-login{
    color:#f1cb68!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-user-summary{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    padding:9px 12px 7px!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
    color:#dce8f1!important;
    font-size:11px!important;
    font-weight:800!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-user-badges{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
    gap:4px!important;
  }
  body.tc-system-body .tc-system-header .tc-mobile-user-badges b{
    display:inline-flex!important;
    min-height:22px!important;
    align-items:center!important;
    padding:3px 7px!important;
    border:1px solid rgba(226,181,73,.42)!important;
    border-radius:999px!important;
    color:#f1cb68!important;
    font-size:9px!important;
    line-height:1!important;
  }
}

@media(max-width:390px){
  body.tc-system-body .tc-system-header .tc-app-header__inner{
    gap:7px!important;
    padding-inline:9px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo{
    gap:7px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__wordmark strong{
    font-size:18px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__wordmark small{
    font-size:6.2px!important;
    letter-spacing:.12em!important;
  }
  .tc-mobile-register-full{display:none!important}
  .tc-mobile-register-short{display:inline!important}
  body.tc-system-body .tc-system-header .tc-mobile-register-cta{
    padding-inline:9px!important;
  }
}

/* ---- typing-coach-polish-v18619 | assets/css/polish-v18619.css ---- */
/* Typing Coach v1.86.19
 * Guest result CTA geometry:
 * - outer card aligns with the full-width result sections before/after it
 * - copy/content stays on a restrained centered reading lane
 */

body.tc-stage-result .tc-guest-result-conversion{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}

/* Do not let the copy become visually too wide just because the card is full-width. */
body.tc-stage-result .tc-guest-result-conversion-copy{
  width:min(100%,1080px)!important;
  max-width:1080px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.tc-stage-result .tc-guest-result-conversion-lead{
  width:min(100%,1080px)!important;
  max-width:1080px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.tc-stage-result .tc-guest-result-benefits,
body.tc-stage-result .tc-guest-result-conversion-actions,
body.tc-stage-result .tc-guest-result-conversion-note{
  max-width:940px;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:760px){
  body.tc-stage-result .tc-guest-result-conversion{
    width:100%!important;
  }
  body.tc-stage-result .tc-guest-result-conversion-copy,
  body.tc-stage-result .tc-guest-result-conversion-lead,
  body.tc-stage-result .tc-guest-result-benefits,
  body.tc-stage-result .tc-guest-result-conversion-actions,
  body.tc-stage-result .tc-guest-result-conversion-note{
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v18623 | assets/css/polish-v18623.css ---- */
/* Typing Coach v1.86.23 — readability contrast layer.
 * Goal: not merely minimum contrast. Primary explanatory copy should remain
 * comfortably readable on white / ivory / pale-blue surfaces while preserving
 * the navy-and-gold hierarchy. Dark/navy surfaces keep their existing light text.
 */
:root{
  --tc-copy-strong:#354e67;
  --tc-copy-muted:#40566c;
}

/* Core light-surface lead / explanatory copy. */
body.tc-system-body .tc-auth-card .tc-auth-lead,
body.tc-system-body .tc-register-panel .tc-member-lead,
body.tc-system-body .tc-thanks-lead,
body.tc-system-body .tc-gfaq-hero-copy>p,
body.tc-system-body .tc-gfaq-section-head p,
body.tc-system-body .tc-gsales-hero .tc-gsales-lead,
body.tc-system-body .tc-lesson-card .tc-lesson-card-description,
body.tc-system-body .tc-stage-intro .tc-intro-copy,
body.tc-system-body .tc-stage-ready .tc-ready-lead,
body.tc-system-body .tc-embedded-coach-ranking .tc-ranking-description,
body.tc-stage-result .tc-guest-result-conversion p,
body.tc-system-body .tc-home-faq-callout__copy p{
  color:var(--tc-copy-strong)!important;
}

/* Secondary information should still be clearly readable, not washed out. */
body.tc-system-body .tc-auth-register-box span,
body.tc-system-body .tc-auth-remember,
body.tc-system-body .tc-gfaq-quick span,
body.tc-system-body .tc-gfaq-flow-step>p,
body.tc-system-body .tc-gfaq-tip p,
body.tc-system-body .tc-gfaq-role li,
body.tc-system-body .tc-gfaq-data-node>small,
body.tc-system-body .tc-group-help-strip small,
body.tc-stage-result .tc-guest-result-conversion-note,
body.tc-system-body .tc-ready-note,
body.tc-system-body .tc-home-free-note,
body.tc-system-body .tc-micro-note,
body.tc-system-body .tc-history-note,
body.tc-system-body .tc-history-retention-note,
body.tc-system-body .tc-report-latest-note,
body.tc-system-body .tc-report-privacy-note,
body.tc-system-body .tc-demo-footnote,
body.tc-system-body .tc-thanks-note{
  color:var(--tc-copy-muted)!important;
}

/* Groups FAQ has its own muted token; keep it aligned with the global policy. */
body.tc-system-body .tc-gfaq{
  --gfaq-muted:var(--tc-copy-muted)!important;
}

/* Result-analysis microcopy is especially scan-heavy; strengthen common labels. */
body.tc-stage-result .tc-micro-grid small,
body.tc-stage-result .tc-comparison-window span,
body.tc-stage-result .tc-comparison-window small,
body.tc-stage-result .tc-analysis-guide-copy,
body.tc-stage-result .tc-analysis-guide-note,
body.tc-stage-result .tc-coach-value-copy,
body.tc-stage-result .tc-content-coach-context-note,
body.tc-stage-result .tc-reflection-note{
  color:var(--tc-copy-muted)!important;
}

/* Preserve intentional reverse text on dark/navy branded surfaces. */
body.tc-system-body .tc-auth-brand p,
body.tc-system-body .tc-my-page-hero-copy p,
body.tc-system-body .tc-growth-report-hero .tc-report-hero-description,
body.tc-system-body .tc-features-hero .tc-features-hero-copy p,
body.tc-system-body .tc-mobile-nav-drawer,
body.tc-system-body .tc-mobile-nav-drawer *{
  /* Existing component rules remain authoritative. */
}

/* ---- typing-coach-polish-v18624 | assets/css/polish-v18624.css ---- */
/* Typing Coach v1.86.24 — semantic line wrapping for Coach Score lead copy. */
.tc-features-page .tc-coach-score-explainer .tc-score-explainer-lead{
  max-width:1480px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.tc-features-page .tc-coach-score-explainer .tc-score-copy-line{
  display:block;
}
.tc-features-page .tc-coach-score-explainer .tc-score-copy-phrase{
  display:inline-block;
}
@media(min-width:1280px){
  .tc-features-page .tc-coach-score-explainer .tc-score-copy-line{
    white-space:nowrap;
  }
}
@media(max-width:1279px){
  .tc-features-page .tc-coach-score-explainer .tc-score-explainer-lead{
    max-width:900px!important;
  }
  .tc-features-page .tc-coach-score-explainer .tc-score-copy-line{
    white-space:normal;
  }
  .tc-features-page .tc-coach-score-explainer .tc-score-copy-phrase{
    white-space:normal;
  }
}

/* ---- typing-coach-polish-v18625 | assets/css/polish-v18625.css ---- */
/* Typing Coach v1.86.25 — readable measure + semantic wrapping for feature-page lead copy. */

/*
 * Public feature-page explanatory copy should not stretch across a very wide
 * desktop canvas. Keep an editorial reading lane while allowing cards/sections
 * themselves to remain full width.
 */
.tc-features-page .tc-features-heading>p{
  max-width:1080px!important;
  text-wrap:pretty;
}
.tc-features-page .tc-features-heading:not(.is-center)>p{
  margin-left:0!important;
  margin-right:auto!important;
}
.tc-features-page .tc-features-heading.is-center>p{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Reusable semantic lines: one sentence/meaning unit per line on roomy screens. */
.tc-features-page .tc-semantic-lead .tc-semantic-copy-line{
  display:block;
}
.tc-features-page .tc-semantic-lead .tc-semantic-copy-line strong{
  font-weight:inherit;
}

/* Purpose & goals story: preserve the requested two-sentence / two-line rhythm. */
.tc-features-page .tc-goal-story .tc-goal-story-lead{
  max-width:1080px!important;
}
@media(min-width:1180px){
  .tc-features-page .tc-goal-story .tc-goal-story-lead .tc-semantic-copy-line{
    white-space:nowrap;
  }
}

/* At narrower widths, readability wins over forcing a desktop line count. */
@media(max-width:1179px){
  .tc-features-page .tc-features-heading>p,
  .tc-features-page .tc-goal-story .tc-goal-story-lead{
    max-width:860px!important;
  }
  .tc-features-page .tc-semantic-lead .tc-semantic-copy-line{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
  }
}
@media(max-width:760px){
  .tc-features-page .tc-features-heading>p,
  .tc-features-page .tc-goal-story .tc-goal-story-lead{
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v18626 | assets/css/polish-v18626.css ---- */
/* Typing Coach v1.86.26 — balanced semantic wrapping for feature-page copy. */

/*
 * Keep these two public-facing messages readable on wide screens without
 * turning them into either a single over-wide line or a narrow text column.
 * The section/card can stay wide; only the reading lane is constrained.
 */
.tc-features-page .tc-audience-compare .tc-audience-lead{
  max-width:1040px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-wrap:pretty;
}
.tc-features-page .tc-features-final .tc-final-lead{
  max-width:760px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  text-wrap:pretty;
}

.tc-features-page .tc-audience-lead .tc-semantic-copy-line,
.tc-features-page .tc-final-lead .tc-semantic-copy-line{
  display:block;
}

/* Preserve the requested meaning-unit / two-line rhythm on roomy desktops. */
@media(min-width:1180px){
  .tc-features-page .tc-audience-lead .tc-semantic-copy-line,
  .tc-features-page .tc-final-lead .tc-semantic-copy-line{
    white-space:nowrap;
  }
}

/* On smaller screens, never force line count at the expense of legibility. */
@media(max-width:1179px){
  .tc-features-page .tc-audience-compare .tc-audience-lead{
    max-width:860px!important;
  }
  .tc-features-page .tc-features-final .tc-final-lead{
    max-width:720px!important;
  }
  .tc-features-page .tc-audience-lead .tc-semantic-copy-line,
  .tc-features-page .tc-final-lead .tc-semantic-copy-line{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
  }
}
@media(max-width:760px){
  .tc-features-page .tc-audience-compare .tc-audience-lead,
  .tc-features-page .tc-features-final .tc-final-lead{
    max-width:100%!important;
  }
}

/* ---- typing-coach-polish-v18627 | assets/css/polish-v18627.css ---- */
/* Typing Coach v1.86.27 — report header information architecture */
.tc-growth-report .tc-growth-report-hero{
  padding:24px 28px 22px;
  background:linear-gradient(145deg,#0b2f50 0%,#123f66 100%);
}
.tc-growth-report-hero .tc-report-hero-brandline{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.14);
}
.tc-growth-report-hero .tc-growth-report-brand{display:flex;align-items:center;gap:11px;margin:0!important;min-width:0}
.tc-growth-report-hero .tc-growth-report-brand img{
  display:block;width:44px!important;max-width:44px!important;height:auto!important;
  flex:0 0 44px!important;object-fit:contain;
}
.tc-growth-report-hero .tc-growth-report-brand>div{display:grid;gap:1px;min-width:0}
.tc-growth-report-hero .tc-growth-report-brand span{margin:0!important;color:#fff!important;font-size:13px!important;font-weight:900!important;letter-spacing:.035em!important;line-height:1.2}
.tc-growth-report-hero .tc-growth-report-brand small{color:#d8e4ed!important;font-size:9px!important;font-weight:800;letter-spacing:.16em;line-height:1.25}
.tc-report-hero-badge{color:#f0cc6d!important;font-size:10px!important;font-weight:900!important;letter-spacing:.15em!important;line-height:1.3;text-align:right}
.tc-report-hero-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.75fr);gap:30px;align-items:start;padding-top:20px}
.tc-report-hero-copy{min-width:0}
.tc-report-hero-kicker{display:block;color:#f0cc6d!important;font-size:10px!important;font-weight:900!important;letter-spacing:.15em!important;line-height:1.3}
.tc-growth-report-hero .tc-report-hero-main h1{margin:7px 0 9px!important;font-size:clamp(28px,3vw,36px)!important;line-height:1.22!important;color:#fff!important}
.tc-growth-report-hero .tc-report-hero-description{margin:0!important;max-width:620px!important;color:#e3edf4!important;font-size:14px!important;line-height:1.8!important}
.tc-report-hero-facts{display:grid;gap:8px;margin:0;min-width:0}
.tc-report-hero-facts>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:baseline;padding:9px 11px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.075)}
.tc-report-hero-facts dt{margin:0;color:#cbdbe7;font-size:11px;font-weight:800;line-height:1.45}
.tc-report-hero-facts dd{margin:0;color:#fff;font-size:12px;font-weight:850;line-height:1.5;overflow-wrap:anywhere}
.tc-growth-report-hero .tc-report-hero-note{margin:15px 0 0!important;padding-top:13px;border-top:1px solid rgba(255,255,255,.12);max-width:72ch;color:#d5e3ec!important;font-size:12px!important;line-height:1.7!important}
.tc-growth-report>.tc-report-summary-grid{margin-top:18px}
.tc-growth-report>.tc-report-summary-grid>div{position:relative;padding:15px 16px 14px;border-color:#d8e3ea;background:#fff;box-shadow:0 5px 14px rgba(11,47,80,.035)}
.tc-growth-report>.tc-report-summary-grid>div:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:12px 12px 0 0;background:#d1a33e}
.tc-growth-report>.tc-report-summary-grid span{color:#52677d!important;font-size:12px!important;font-weight:800}
.tc-growth-report>.tc-report-summary-grid b{margin-top:5px;color:#123c5d!important;font-size:22px!important;line-height:1.2}
@media(max-width:900px){
  .tc-report-hero-main{grid-template-columns:1fr;gap:16px}
  .tc-report-hero-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tc-report-hero-facts>div{grid-template-columns:1fr;gap:3px}
}
@media(max-width:700px){
  .tc-growth-report .tc-growth-report-hero{padding:21px 18px 19px}
  .tc-growth-report-hero .tc-report-hero-brandline{align-items:flex-start}
  .tc-growth-report-hero .tc-growth-report-brand{gap:9px}
  .tc-growth-report-hero .tc-growth-report-brand img{width:38px!important;max-width:38px!important;flex-basis:38px!important}
  .tc-report-hero-badge{display:none}
  .tc-report-hero-main{padding-top:16px}
  .tc-report-hero-facts{grid-template-columns:1fr}
  .tc-report-hero-facts>div{grid-template-columns:72px minmax(0,1fr);gap:8px}
  .tc-growth-report-hero .tc-report-hero-description{font-size:13px!important}
}

/* ---- typing-coach-polish-v18633 | assets/css/polish-v18633.css ---- */
/* Typing Coach v1.86.33 — guest HOME lesson curation. */
.tc-home .tc-guest-practice-more{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin:26px auto 0;text-align:center}
.tc-home .tc-guest-practice-more .tc-home-secondary{min-width:220px}
.tc-home .tc-guest-practice-more small{color:#40566c;font-size:13px;font-weight:700;line-height:1.65}
@media(max-width:700px){.tc-home .tc-guest-practice-more{align-items:stretch;flex-direction:column}.tc-home .tc-guest-practice-more .tc-home-secondary{width:100%}}

/* ---- typing-coach-polish-v18641 | assets/css/polish-v18641.css ---- */
/* v1.86.41 — safe dummy-ad preview */
.tc-ad-preview-slot{max-width:970px;margin-inline:auto}
.tc-ad-preview{position:relative;display:grid;grid-template-columns:minmax(150px,30%) minmax(0,1fr);align-items:stretch;overflow:hidden;width:100%;max-width:970px;min-height:176px;margin:0 auto;border:1px solid #d7e0e8;border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(18,43,66,.08);text-align:left;pointer-events:none}
.tc-ad-preview.is-large{min-height:262px}
.tc-ad-preview-art{position:relative;min-height:100%;overflow:hidden;background:linear-gradient(135deg,#eaf2f8 0%,#d8e9ef 52%,#f7edd0 100%)}
.tc-ad-preview-art:before,.tc-ad-preview-art:after,.tc-ad-preview-art span,.tc-ad-preview-art i,.tc-ad-preview-art b{content:"";position:absolute;display:block;border-radius:999px}
.tc-ad-preview-art:before{width:180px;height:180px;right:-58px;top:-46px;background:rgba(19,70,104,.13)}
.tc-ad-preview-art:after{width:105px;height:105px;left:22px;bottom:18px;background:rgba(217,164,44,.18)}
.tc-ad-preview-art span{width:72px;height:72px;left:50%;top:50%;transform:translate(-50%,-50%);border:13px solid rgba(12,52,82,.72)}
.tc-ad-preview-art i{width:18px;height:18px;left:62%;top:28%;background:#d6a226;box-shadow:-58px 76px 0 rgba(12,52,82,.5)}
.tc-ad-preview-art b{width:44px;height:8px;left:50%;top:72%;transform:translateX(-50%);background:rgba(255,255,255,.78)}
.tc-ad-preview-copy{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:26px 30px 28px;color:#18334c}
.tc-ad-preview-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:11px;font-weight:800;letter-spacing:.06em}
.tc-ad-preview-meta span{display:inline-flex;align-items:center;min-height:25px;padding:3px 9px;border-radius:999px;background:#eef3f7;color:#465f75}
.tc-ad-preview-meta small{font-size:11px;color:#687c8d;font-weight:700;letter-spacing:0}
.tc-ad-preview-copy>strong{font-size:clamp(20px,2vw,28px);line-height:1.35;color:#0b2f50}
.tc-ad-preview-copy>p{margin:0;max-width:650px;font-size:14px;line-height:1.75;color:#4f6578}
.tc-ad-preview-cta{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-height:38px;margin-top:3px;padding:7px 18px;border-radius:999px;background:#123d60;color:#fff;font-size:13px;font-weight:800}
.tc-ad-preview-note{position:absolute;right:12px;bottom:10px;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.9);color:#748492;font-size:10px;font-weight:700}
.tc-ad-preview.is-large .tc-ad-preview-copy{padding-block:36px}
.tc-ad-preview-status{position:fixed;z-index:99998;left:16px;bottom:16px;display:flex;flex-direction:column;gap:1px;max-width:min(360px,calc(100vw - 32px));padding:9px 13px;border:1px solid #d8b04a;border-radius:12px;background:rgba(7,35,61,.96);box-shadow:0 10px 28px rgba(0,0,0,.2);color:#fff;font-size:11px;line-height:1.45}
.tc-ad-preview-status b{color:#ffd66b;font-size:12px}.tc-ad-preview-status span{opacity:.86}
@media(max-width:767px){
  .tc-ad-preview{grid-template-columns:1fr;min-height:0}
  .tc-ad-preview-art{min-height:150px}
  .tc-ad-preview.is-large .tc-ad-preview-art{min-height:220px}
  .tc-ad-preview-copy{padding:20px 20px 26px}
  .tc-ad-preview-copy>strong{font-size:21px}
  .tc-ad-preview-note{right:10px;bottom:8px}
  .tc-ad-preview-status{left:10px;bottom:10px;max-width:calc(100vw - 20px)}
}

/* ---- typing-coach-polish-v18642 | assets/css/polish-v18642.css ---- */
/* v1.86.42 — full-placement ad preview + result preview visibility */
.tc-ad-preview-slot-status{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:970px;margin:0 auto 8px;padding:8px 12px;border:1px solid #d9e3ea;border-radius:10px;background:#f7fafc;color:#435b70;font-size:11px;line-height:1.45;text-align:left;box-sizing:border-box}
.tc-ad-preview-slot-status b{color:#153b5a;font-size:12px}.tc-ad-preview-slot-status span{font-weight:800;color:#61788a}
.tc-result-managed-ad:not([hidden]){display:block;width:100%;margin-top:28px;margin-bottom:28px}
.tc-result-managed-ad .tc-ad-preview-slot-status{margin-bottom:10px}
@media(max-width:767px){.tc-ad-preview-slot-status{align-items:flex-start;flex-direction:column;gap:3px;padding:8px 10px}.tc-result-managed-ad:not([hidden]){margin-top:22px;margin-bottom:22px}}

/* ---- typing-coach-polish-v18645 | assets/css/polish-v18645.css ---- */
/* v1.86.45 — rectangle/in-feed ad stages + graceful no-ad fallback */
.tc-page-ad-wrap{width:100%;box-sizing:border-box}.tc-ad-slot{box-sizing:border-box}.tc-ad-live-content{width:100%;box-sizing:border-box}.tc-ad-slot.is-fallback-active .tc-ad-live-content{display:none!important}.tc-ad-slot.is-fallback-active [data-tc-ad-fallback-card]{display:flex!important}
.tc-ad-layout-rectangle{max-width:100%;margin-inline:auto;padding:18px 16px;border:1px solid #e0e7ec;border-radius:18px;background:linear-gradient(180deg,#fafcfd,#f5f8fa);text-align:center}.tc-ad-layout-rectangle .tc-ad-live-content{width:min(336px,100%);min-height:250px;margin-inline:auto;display:flex;flex-direction:column;justify-content:center}.tc-ad-layout-rectangle .adsbygoogle{width:100%;min-height:250px}.tc-ad-layout-rectangle .tc-ad-disclosure{display:block;margin:0 auto 8px;color:#697b89;font-size:10px;font-weight:700;letter-spacing:.06em}.tc-ad-layout-rectangle .tc-affiliate-slot img,.tc-ad-layout-rectangle.tc-affiliate-slot img{max-width:336px;width:100%;height:auto;margin-inline:auto}
.tc-ad-layout-infeed{width:100%;height:100%;padding:0;border:1px solid #dce5eb;border-radius:16px;background:#fff;overflow:hidden}.tc-ad-layout-infeed .tc-ad-live-content{min-height:100%;padding:12px}.tc-ad-layout-infeed .tc-ad-disclosure{display:block;margin:0 0 7px;color:#70818d;font-size:10px;font-weight:700}.tc-ad-layout-infeed .adsbygoogle{min-height:220px}.tc-lesson-card--infeed-ad{display:flex!important;min-height:100%;border-style:dashed!important;border-color:#c7d7e1!important;background:#f9fbfc!important}.tc-infeed-ad-inner{width:100%;height:100%;display:flex}.tc-infeed-ad-inner>.tc-ad-slot{flex:1}
.tc-ad-fallback-card{box-sizing:border-box;width:100%;align-items:center;justify-content:center;gap:16px;margin:0 auto;padding:22px;border:1px solid #d7e2e8;border-radius:16px;background:linear-gradient(135deg,#f6fafc 0%,#fffaf0 100%);color:#173b59;text-align:left}.tc-ad-fallback-mark{flex:0 0 auto;display:grid;place-items:center;width:72px;height:72px;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(20,54,80,.08)}.tc-ad-fallback-mark img{display:block;max-width:54px;max-height:58px;object-fit:contain}.tc-ad-fallback-card>div:nth-child(2){min-width:0}.tc-ad-fallback-card span{display:block;color:#9a7319;font-size:10px;font-weight:900;letter-spacing:.12em}.tc-ad-fallback-card strong{display:block;margin-top:4px;color:#123a5a;font-size:18px;line-height:1.4}.tc-ad-fallback-card p{margin:6px 0 0;color:#536b7e;font-size:12px;line-height:1.65}.tc-ad-fallback-card>a{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;border-radius:999px;background:#123e60;color:#fff!important;text-decoration:none;font-size:12px;font-weight:900}.tc-ad-fallback-lesson{height:100%;align-content:center}.tc-ad-fallback-lesson .tc-ad-fallback-mark{width:60px;height:60px}.tc-ad-fallback-lesson strong{font-size:16px}
.tc-ad-preview.is-layout-rectangle{display:flex;flex-direction:column;width:min(336px,100%);min-height:280px}.tc-ad-preview.is-layout-rectangle .tc-ad-preview-art{min-height:120px}.tc-ad-preview.is-layout-rectangle .tc-ad-preview-copy{padding:18px}.tc-ad-preview.is-layout-rectangle .tc-ad-preview-copy>strong{font-size:19px}.tc-ad-preview.is-layout-rectangle .tc-ad-preview-copy>p{font-size:12px;line-height:1.55}.tc-ad-preview.is-layout-infeed{grid-template-columns:110px 1fr;min-height:220px;height:100%;border-radius:14px}.tc-ad-preview.is-layout-infeed .tc-ad-preview-copy{padding:16px}.tc-ad-preview.is-layout-infeed .tc-ad-preview-copy>strong{font-size:17px}.tc-ad-preview.is-layout-infeed .tc-ad-preview-copy>p{font-size:12px;line-height:1.55}.tc-ad-preview.is-layout-infeed .tc-ad-preview-cta{min-height:32px;padding:5px 12px;font-size:11px}
@media(max-width:767px){.tc-ad-layout-rectangle{padding:14px 10px}.tc-ad-layout-rectangle .tc-ad-live-content{width:min(300px,100%);min-height:250px}.tc-ad-layout-rectangle .adsbygoogle{min-height:250px}.tc-ad-fallback-card{gap:12px;padding:18px}.tc-ad-fallback-mark{width:58px;height:58px}.tc-ad-fallback-card strong{font-size:16px}.tc-ad-fallback-card p{font-size:11px}.tc-ad-fallback-card>a{width:100%;margin-top:4px}.tc-ad-fallback-lesson{flex-direction:column;align-items:flex-start}.tc-ad-preview.is-layout-infeed{grid-template-columns:1fr}.tc-ad-preview.is-layout-infeed .tc-ad-preview-art{min-height:105px}}

/* ---- typing-coach-polish-v18646 | assets/css/polish-v18646.css ---- */
/* v1.86.46 — safe maximum ad layout + dedicated rectangle stages */
.tc-page-ad-wrap[data-tc-ad-role="first"],.tc-page-ad-wrap[data-tc-ad-role="lower"]{margin-top:34px;margin-bottom:34px}
.tc-page-ad-wrap[data-tc-ad-role="middle"]{max-width:1120px;margin:44px auto;padding:0;border:0;background:transparent}
.tc-page-ad-wrap[data-tc-ad-role="middle"]>.tc-ad-slot.tc-ad-layout-rectangle{max-width:920px;margin-inline:auto;padding:24px 20px;border:1px solid #dce6ec;border-radius:22px;background:linear-gradient(135deg,#f7fafc 0%,#fffaf1 100%);box-shadow:0 14px 34px rgba(18,56,86,.055)}
.tc-page-ad-wrap[data-tc-ad-role="middle"] .tc-ad-preview-slot-status{max-width:760px}
.tc-page-ad-wrap[data-tc-ad-role="middle"] .tc-ad-preview.is-layout-rectangle{margin-inline:auto}
.tc-page-ad-wrap[data-tc-ad-role="middle"] .tc-ad-fallback-brand{max-width:640px;min-height:250px}
.tc-page-ad-wrap + .tc-page-ad-wrap{margin-top:52px}
@media(max-width:767px){
  .tc-page-ad-wrap[data-tc-ad-role="first"],.tc-page-ad-wrap[data-tc-ad-role="lower"]{margin-top:28px;margin-bottom:28px}
  .tc-page-ad-wrap[data-tc-ad-role="middle"]{margin:34px auto}
  .tc-page-ad-wrap[data-tc-ad-role="middle"]>.tc-ad-slot.tc-ad-layout-rectangle{padding:18px 10px;border-radius:18px}
  .tc-page-ad-wrap[data-tc-ad-role="middle"] .tc-ad-fallback-brand{min-height:250px}
}

/* ---- typing-coach-polish-v18647 | assets/css/polish-v18647.css ---- */
/* v1.86.47 — responsive middle ads + logged-in TOP in-feed placement */
.tc-page-ad-wrap[data-tc-ad-role="middle"]{max-width:1120px;margin:42px auto;padding:0;border:0;background:transparent}
.tc-page-ad-wrap[data-tc-ad-role="middle"]>.tc-ad-slot.tc-ad-layout-responsive{width:100%;max-width:970px;margin-inline:auto}
.tc-page-ad-wrap[data-tc-ad-role="middle"] .tc-ad-preview-slot-status{max-width:970px}
.tc-page-ad-wrap[data-tc-ad-role="middle"] .tc-ad-preview.is-layout-responsive{max-width:970px;margin-inline:auto}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"]{grid-column:1/-1;min-height:0;border-radius:18px!important;overflow:hidden}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-infeed-ad-inner{width:100%}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed{grid-template-columns:minmax(150px,28%) minmax(0,1fr);min-height:176px}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-layout-infeed .tc-ad-live-content{min-height:176px}
@media(max-width:767px){
  .tc-page-ad-wrap[data-tc-ad-role="middle"]{margin:32px auto}
  .tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"]{grid-column:auto}
  .tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed{grid-template-columns:1fr;min-height:0}
}

/* ---- typing-coach-polish-v18648 | assets/css/polish-v18648.css ---- */
/* v1.86.48 — page-specific maximum ad candidates + restrained compliant ad disclosure */
.tc-page-ad-wrap[data-tc-ad-role="middle"]{margin-block:44px}
.tc-ad-preview-surface{width:100%;max-width:970px;margin-inline:auto}
.tc-ad-preview-surface>.tc-ad-disclosure,.tc-ad-slot .tc-ad-disclosure,.tc-app-ad .tc-ad-disclosure,.tc-affiliate-slot .tc-ad-disclosure{display:block;margin:0 auto 6px;color:#5f6f7c;font-size:11px;line-height:1.35;font-weight:600;letter-spacing:.04em;text-align:center}
.tc-ad-preview-surface>.tc-ad-preview-disclosure{margin-bottom:6px}
.tc-ad-layout-infeed .tc-ad-preview-surface{max-width:none}
.tc-ad-layout-infeed .tc-ad-preview-surface>.tc-ad-disclosure{margin-left:0;text-align:left;padding-left:12px}
.tc-result-managed-ad:not([hidden]){margin-block:34px}
.tc-result-managed-ad .tc-ad-preview-surface{max-width:970px}
@media(max-width:767px){
  .tc-page-ad-wrap[data-tc-ad-role="middle"]{margin-block:34px}
  .tc-result-managed-ad:not([hidden]){margin-block:28px}
  .tc-ad-preview-surface>.tc-ad-disclosure,.tc-ad-slot .tc-ad-disclosure,.tc-app-ad .tc-ad-disclosure,.tc-affiliate-slot .tc-ad-disclosure{font-size:10px;margin-bottom:5px}
}

/* ---- typing-coach-polish-v18649 | assets/css/polish-v18649.css ---- */
/* v1.86.49 — content-width ad stages + card-like TOP in-feed ads */

/* Keep every page ad stage aligned with the page's normal content width. */
.tc-page-ad-wrap{
  position:relative;
  width:100%;
  max-width:1540px;
  box-sizing:border-box;
  margin-left:auto;
  margin-right:auto;
  padding:18px clamp(16px,2vw,28px) 24px;
  border:1px solid #d9e4eb;
  border-radius:22px;
  background:
    radial-gradient(circle at 96% 8%,rgba(207,164,58,.08),transparent 22%),
    linear-gradient(135deg,rgba(249,252,253,.98),rgba(255,252,244,.96));
  box-shadow:0 14px 34px rgba(16,52,80,.055);
  overflow:hidden;
}
.tc-page-ad-wrap::before{
  content:"";
  position:absolute;
  top:0;
  left:clamp(20px,2.2vw,34px);
  width:112px;
  height:3px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,#c89624,#edc85b);
}
.tc-page-ad-wrap[data-tc-ad-role="first"],
.tc-page-ad-wrap[data-tc-ad-role="middle"],
.tc-page-ad-wrap[data-tc-ad-role="lower"]{
  max-width:1540px;
}
.tc-page-ad-wrap[data-tc-ad-role="middle"]{margin-block:44px}
.tc-page-ad-wrap>.tc-ad-slot.tc-ad-layout-responsive{width:100%;max-width:none;margin-inline:auto}
.tc-page-ad-wrap .tc-ad-preview-slot-status{
  width:100%;
  max-width:1180px;
  margin-inline:auto;
  border-color:#d7e2e9;
  background:rgba(255,255,255,.72);
}
.tc-page-ad-wrap .tc-ad-preview-surface{max-width:1180px}
.tc-page-ad-wrap .tc-ad-preview.is-layout-responsive{
  max-width:1180px;
  border-color:#ccdce6;
  box-shadow:0 12px 30px rgba(17,54,82,.065);
}
.tc-page-ad-wrap .tc-ad-preview.is-layout-responsive .tc-ad-preview-art{
  background:
    radial-gradient(circle at 72% 22%,rgba(211,161,39,.28) 0 7px,transparent 8px),
    linear-gradient(135deg,#e7f1f6 0%,#d7e7ed 52%,#faf0d5 100%);
}
.tc-page-ad-wrap .tc-ad-preview.is-layout-responsive .tc-ad-preview-cta{
  background:linear-gradient(135deg,#0f3b5d,#174d73);
  box-shadow:0 7px 16px rgba(16,57,87,.12);
}

/* TOP member in-feed: one grid card, not a full-width banner row. */
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"]{
  grid-column:auto!important;
  align-self:stretch;
  min-width:0;
  min-height:100%;
  border:1px solid #d8e4ea!important;
  border-top:3px solid #d1a23c!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 10px 24px rgba(11,47,80,.055)!important;
  overflow:hidden;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-infeed-ad-inner,
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"]>.tc-infeed-ad-inner>.tc-ad-slot{
  width:100%;
  min-height:100%;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview-slot-status{
  margin:0;
  padding:7px 11px;
  border:0;
  border-bottom:1px solid #e3ebf0;
  border-radius:0;
  background:#f8fbfc;
  font-size:9px;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview-slot-status b{font-size:10px}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview-surface{
  max-width:none;
  height:100%;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview-surface>.tc-ad-disclosure{
  margin:0;
  padding:8px 12px 0;
  text-align:left;
  font-size:9px;
  color:#687b89;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed{
  display:flex;
  flex-direction:column;
  width:100%;
  min-height:100%;
  height:100%;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:#fff;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed .tc-ad-preview-art{
  flex:0 0 168px;
  min-height:168px;
  background:
    radial-gradient(circle at 75% 24%,rgba(211,161,39,.30) 0 6px,transparent 7px),
    linear-gradient(145deg,#e7f2f5 0%,#d9e9ed 55%,#faf1d9 100%);
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed .tc-ad-preview-copy{
  flex:1;
  justify-content:flex-start;
  padding:18px 18px 48px;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed .tc-ad-preview-copy>strong{
  font-size:18px;
  line-height:1.45;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed .tc-ad-preview-copy>p{
  font-size:12px;
  line-height:1.7;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed .tc-ad-preview-note{
  right:10px;
  bottom:9px;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-layout-infeed,
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-layout-infeed .tc-ad-live-content{
  height:100%;
  min-height:100%;
}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-layout-infeed .adsbygoogle{min-height:360px}
.tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-fallback-lesson{
  min-height:100%;
  border:0;
  border-radius:0;
  box-shadow:none;
}

@media(max-width:900px){
  .tc-page-ad-wrap{padding:16px 16px 20px;border-radius:18px}
  .tc-page-ad-wrap::before{left:20px;width:92px}
  .tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed .tc-ad-preview-art{flex-basis:145px;min-height:145px}
}
@media(max-width:767px){
  .tc-page-ad-wrap{margin-block:28px!important;padding:13px 10px 17px;border-radius:16px}
  .tc-page-ad-wrap .tc-ad-preview-slot-status{align-items:flex-start}
  .tc-home .tc-top-practice-grid-member .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview.is-layout-infeed .tc-ad-preview-art{flex-basis:128px;min-height:128px}
}

/* ---- typing-coach-polish-v18650 | assets/css/polish-v18650.css ---- */
/* v1.86.50 — smartphone flick-input basic trainer. */
.tc-home-flick-entry{display:none}
@media (max-width:820px){
  .tc-home-flick-entry{display:flex;align-items:center;gap:12px;margin:16px auto 22px;padding:14px 14px;border:1px solid #d5e1ec;border-radius:18px;background:linear-gradient(135deg,#f5faff 0%,#fffaf0 100%);box-shadow:0 10px 28px rgba(11,43,73,.08);max-width:calc(100% - 28px)}
  .tc-home-flick-entry__icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#0b3157;color:#f0bd43;font-size:22px;flex:0 0 46px}
  .tc-home-flick-entry__copy{min-width:0;display:grid;gap:2px;flex:1}
  .tc-home-flick-entry__copy small{font-size:10px;letter-spacing:.12em;color:#9a6a12;font-weight:800}
  .tc-home-flick-entry__copy strong{font-size:15px;color:#0a2948;line-height:1.5}
  .tc-home-flick-entry__copy span{font-size:12px;color:#52677d;line-height:1.55}
  .tc-home-flick-entry>a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 12px;border-radius:999px;background:#d8a52e;color:#082744;text-decoration:none;font-size:12px;font-weight:800;white-space:nowrap}
}
@media (max-width:560px){.tc-home-flick-entry{align-items:flex-start;flex-wrap:wrap}.tc-home-flick-entry>a{margin-left:58px}}

.tc-system-page-typing-coach-flick .tc-system-main__inner{max-width:1180px}
.tc-flick{--flick-navy:#08294a;--flick-blue:#174b76;--flick-gold:#d7a62e;--flick-text:#243b53;--flick-muted:#52677d;display:grid;gap:24px;color:var(--flick-text)}
.tc-flick-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);overflow:hidden;border:1px solid #d5e1ec;border-radius:28px;background:#fff;box-shadow:0 16px 45px rgba(11,43,73,.09)}
.tc-flick-hero__copy{padding:clamp(28px,5vw,58px)}
.tc-flick-hero h1{margin:8px 0 16px;color:var(--flick-navy);font-size:clamp(32px,4.2vw,54px);line-height:1.18;letter-spacing:.01em}
.tc-flick-hero h1 strong{color:#b97d0a}
.tc-flick-hero p{max-width:760px;margin:0;color:#3d566d;font-size:17px;line-height:1.9}
.tc-flick-hero__badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.tc-flick-hero__badges span{padding:7px 12px;border-radius:999px;background:#f1f6fa;color:#38536b;font-size:12px;font-weight:800}
.tc-flick-hero__visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;background:linear-gradient(155deg,#082746,#164b75);color:#fff}
.tc-flick-hero__visual>small{font-size:11px;letter-spacing:.18em;color:#f2c75c;font-weight:800}
.tc-flick-phone{width:230px;padding:18px 16px 20px;border:7px solid rgba(255,255,255,.92);border-radius:34px;background:#edf4f8;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;box-shadow:0 18px 38px rgba(0,0,0,.22)}
.tc-flick-phone i{height:52px;border-radius:12px;background:#fff;display:grid;place-items:center;color:#173b5d;font-style:normal;font-weight:800;box-shadow:0 2px 8px rgba(8,39,70,.1)}
.tc-flick-desktop-note{display:flex;gap:10px;justify-content:center;align-items:center;padding:10px 16px;border-radius:12px;background:#fff8e7;color:#665026;font-size:13px;border:1px solid #f1d998}
@media (max-width:820px){.tc-flick-desktop-note{display:none}}
.tc-flick-start,.tc-flick-practice,.tc-flick-result{padding:clamp(20px,4vw,42px);border:1px solid #d6e2ec;border-radius:24px;background:#fff;box-shadow:0 12px 36px rgba(11,43,73,.07)}
.tc-flick-section-head{max-width:840px}.tc-flick-section-head h2,.tc-flick-result__head h2{margin:6px 0 10px;color:var(--flick-navy);font-size:clamp(25px,3vw,36px)}.tc-flick-section-head p,.tc-flick-result__head p{margin:0;color:var(--flick-muted);line-height:1.8}
.tc-flick-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.tc-flick-mode{text-align:left;border:1px solid #d7e3ed;border-radius:18px;background:#f8fbfd;padding:20px;cursor:pointer;color:var(--flick-text);transition:.18s ease}.tc-flick-mode:hover,.tc-flick-mode:focus-visible{transform:translateY(-2px);border-color:#8fb6d7}.tc-flick-mode.is-selected{border:2px solid #d5a02b;background:#fffaf0;box-shadow:0 10px 24px rgba(179,126,19,.12)}.tc-flick-mode small{display:block;color:#a66d06;letter-spacing:.12em;font-weight:800;font-size:10px}.tc-flick-mode strong{display:block;margin:4px 0 6px;color:var(--flick-navy);font-size:20px}.tc-flick-mode span{display:block;color:#52677d;line-height:1.7;font-size:14px}
.tc-flick-howto{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:20px}.tc-flick-howto div{padding:12px 8px;text-align:center;border:1px solid #dce6ee;border-radius:14px;background:#fff}.tc-flick-howto b,.tc-flick-howto span,.tc-flick-howto strong{display:block}.tc-flick-howto b{color:#0d426e}.tc-flick-howto span{font-size:11px;color:#6a7d90;margin:2px 0}.tc-flick-howto strong{font-size:13px;color:#324b62}.tc-flick-basic-note{margin:16px 0 0;color:#5d7082;font-size:13px;line-height:1.7}
.tc-flick-start-button{display:inline-flex;justify-content:center;align-items:center;min-height:54px;margin-top:22px;padding:0 28px;border:0;border-radius:15px;background:#d5a02b;color:#082744;font-weight:900;font-size:16px;cursor:pointer;box-shadow:0 8px 20px rgba(189,132,16,.18)}
.tc-flick-status-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center}.tc-flick-status-row>div{display:grid;padding:11px 14px;border-radius:13px;background:#f2f7fa}.tc-flick-status-row small{font-size:10px;color:#6a7e90;letter-spacing:.1em}.tc-flick-status-row strong{color:var(--flick-navy)}.tc-flick-status-row button{border:1px solid #ccdbe6;background:#fff;border-radius:12px;min-height:46px;padding:0 14px;color:#52677d;font-weight:800;cursor:pointer}
.tc-flick-target-card{margin:18px 0;padding:22px;border:1px solid #d6e2ed;border-radius:20px;background:linear-gradient(135deg,#f7fbff,#fffaf1);text-align:center}.tc-flick-target{margin:6px auto;font-size:clamp(36px,9vw,58px);font-weight:900;letter-spacing:.08em;color:#0a2d50;min-height:1.45em}.tc-flick-target .is-done{color:#61a47b}.tc-flick-target .is-current{color:#b67906;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:7px}.tc-flick-typed{min-height:24px;color:#667b8e;font-weight:700}.tc-flick-next-hint{margin:9px 0 0;color:#3c5870;font-size:14px;font-weight:700}
.tc-flick-guide{min-height:45px;margin:0 auto 10px;padding:10px 14px;border-radius:13px;background:#0b3157;color:#fff;text-align:center;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}.tc-flick-guide.is-error{background:#a93445}.tc-flick-guide.is-success{background:#31714e}
.tc-flick-keypad{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-width:520px;margin:0 auto;padding:15px;border-radius:25px;background:#e8f0f5;box-shadow:inset 0 0 0 1px #cfdee8}.tc-flick-key{position:relative;min-height:76px;border:1px solid #cbd9e4;border-radius:17px;background:#fff;color:#0b3157;box-shadow:0 3px 8px rgba(8,39,70,.09);touch-action:none;user-select:none;-webkit-user-select:none;cursor:pointer}.tc-flick-key strong{display:block;font-size:25px;line-height:1}.tc-flick-key span{display:block;min-height:14px;margin-top:5px;font-size:10px;color:#8292a1}.tc-flick-key.is-target{outline:3px solid #e2ad35;outline-offset:1px;background:#fff9e9}.tc-flick-key.is-active{transform:scale(.97);background:#edf6fc}.tc-flick-key.is-helper{background:#f7f9fb}.tc-flick-key.is-delete{background:#fff4f5;color:#a43c4a}.tc-flick-keypad-note{text-align:center;color:#6a7c8d;font-size:12px;line-height:1.7;margin:12px 0 0}
.tc-flick-result__head{text-align:center;max-width:760px;margin:0 auto}.tc-flick-result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.tc-flick-result-grid article{padding:18px;border:1px solid #d7e3ec;border-radius:16px;background:#f9fbfd}.tc-flick-result-grid small,.tc-flick-result-grid strong,.tc-flick-result-grid b{display:block}.tc-flick-result-grid small{color:#5f7487;font-size:12px}.tc-flick-result-grid strong{margin:4px 0;color:#0a2d50;font-size:30px}.tc-flick-result-grid b{font-size:11px;color:#8a9aa7}.tc-flick-result-coach{display:flex;gap:15px;align-items:flex-start;padding:19px;border-radius:18px;background:#edf6fc;border:1px solid #cae0ef}.tc-flick-result-coach>span{width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#0b3157;color:#efbd45;display:grid;place-items:center;font-size:20px}.tc-flick-result-coach small,.tc-flick-result-coach strong{display:block}.tc-flick-result-coach small{color:#9a6c10;font-weight:800;letter-spacing:.08em}.tc-flick-result-coach strong{margin:4px 0;color:#0a2d50;font-size:18px}.tc-flick-result-coach p{margin:0;color:#405a71;line-height:1.75}.tc-flick-data-note{margin:14px 0 0;color:#5a6f82;font-size:12px;line-height:1.75}.tc-flick-result-actions{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.tc-flick-result-actions .tc-home-secondary{margin-top:22px;min-height:54px;display:inline-flex;align-items:center}
@media (max-width:820px){
  .tc-system-page-typing-coach-flick .tc-system-main{padding-top:18px}.tc-system-page-typing-coach-flick .tc-system-main__inner{padding-inline:12px}
  .tc-flick{gap:16px}.tc-flick-hero{grid-template-columns:1fr;border-radius:22px}.tc-flick-hero__copy{padding:24px 20px 22px}.tc-flick-hero h1{font-size:34px}.tc-flick-hero p{font-size:14px;line-height:1.8}.tc-flick-hero__visual{display:none}
  .tc-flick-start,.tc-flick-practice,.tc-flick-result{padding:20px 14px;border-radius:20px}
  .tc-flick-modes{grid-template-columns:1fr}.tc-flick-howto{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.tc-flick-howto div{padding:9px 3px}.tc-flick-howto strong{font-size:11px}.tc-flick-howto span{font-size:9px}
  .tc-flick-start-button{width:100%}.tc-flick-status-row{grid-template-columns:1fr 1fr}.tc-flick-status-row button{grid-column:1/-1;min-height:40px}.tc-flick-target-card{padding:17px 10px}.tc-flick-target{font-size:44px}.tc-flick-keypad{max-width:430px;padding:11px;gap:7px;border-radius:22px}.tc-flick-key{min-height:70px;border-radius:15px}.tc-flick-key strong{font-size:24px}
  .tc-flick-result-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:390px){.tc-flick-key{min-height:64px}.tc-flick-target{font-size:40px}.tc-flick-result-grid article{padding:14px}.tc-flick-result-grid strong{font-size:25px}}

/* ---- typing-coach-polish-v18651 | assets/css/polish-v18651.css ---- */
/* v1.86.51 — Flick practice semantic wrapping, growth feedback, and ad support. */
.tc-system-page-typing-coach-flick .tc-flick h1,
.tc-system-page-typing-coach-flick .tc-flick h2,
.tc-system-page-typing-coach-flick .tc-flick strong{line-break:strict;word-break:normal}
.tc-flick-title-line{display:block}
.tc-flick-hero h1 .tc-flick-title-line:first-child{white-space:nowrap}
.tc-flick-semantic-copy{max-width:780px;text-wrap:pretty}
.tc-flick-semantic-copy>span{display:inline-block}
.tc-flick-semantic-copy>span+span::before{content:" ";}
.tc-flick-semantic-copy>.tc-managed-text-line{display:block}
.tc-flick-growth-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}
.tc-flick-growth-principles>div{position:relative;overflow:hidden;padding:16px 16px 15px;border:1px solid #d9e5ee;border-radius:16px;background:linear-gradient(145deg,#fbfdff,#f5f9fc)}
.tc-flick-growth-principles>div::after{content:"";position:absolute;right:-18px;top:-22px;width:70px;height:70px;border-radius:50%;background:rgba(215,166,46,.09)}
.tc-flick-growth-principles small,.tc-flick-growth-principles strong,.tc-flick-growth-principles span{display:block;position:relative;z-index:1}
.tc-flick-growth-principles small{color:#a56f0b;font-size:10px;font-weight:900;letter-spacing:.13em}
.tc-flick-growth-principles strong{margin:4px 0;color:#0a2d50;font-size:15px}
.tc-flick-growth-principles span{color:#52677d;font-size:12px;line-height:1.65}
.tc-flick-ad-wrap{margin:4px 0}
.tc-flick-ad-wrap .tc-page-ad-wrap{margin-inline:0}
.tc-flick.is-practicing .tc-flick-ad-wrap{display:none!important}
.tc-flick-change{margin:18px 0;padding:18px;border:1px solid #d6e4ee;border-radius:18px;background:linear-gradient(135deg,#f7fbff,#fffdf8)}
.tc-flick-change__head{display:flex;gap:12px;align-items:end;justify-content:space-between;margin-bottom:12px}
.tc-flick-change__head small,.tc-flick-change__head strong{display:block}.tc-flick-change__head small{color:#9a6a12;font-size:10px;font-weight:900;letter-spacing:.12em}.tc-flick-change__head strong{margin-top:2px;color:#0a2d50;font-size:19px}.tc-flick-change__head>span{color:#5b7083;font-size:12px;text-align:right}
.tc-flick-change-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.tc-flick-change-grid>div{padding:13px 14px;border:1px solid #dce6ee;border-radius:14px;background:#fff}.tc-flick-change-grid small,.tc-flick-change-grid strong,.tc-flick-change-grid span{display:block}.tc-flick-change-grid small{color:#5d7285;font-size:11px}.tc-flick-change-grid strong{margin:3px 0;color:#0b3157;font-size:22px}.tc-flick-change-grid span{color:#8795a0;font-size:10px}
.tc-flick-next-step{display:flex;gap:14px;align-items:flex-start;margin-top:14px;padding:17px 18px;border:1px solid #eed49b;border-radius:17px;background:#fffaf0}.tc-flick-next-step>span{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background:#d7a62e;color:#082744;font-weight:900}.tc-flick-next-step small,.tc-flick-next-step strong{display:block}.tc-flick-next-step small{color:#9a6a12;font-size:10px;font-weight:900;letter-spacing:.12em}.tc-flick-next-step strong{margin:3px 0;color:#0a2d50;font-size:17px}.tc-flick-next-step p{margin:0;color:#405a71;line-height:1.75;font-size:13px}
/* Text Manager multiline replacements inherit Flick heading semantics. */
.tc-flick-hero h1>.tc-managed-text-line{display:block}.tc-flick-hero h1>.tc-managed-text-line:first-child{white-space:nowrap;color:var(--flick-navy)}.tc-flick-hero h1>.tc-managed-text-line:nth-child(n+2){color:#b97d0a;font-weight:900}
@media (max-width:820px){
  .tc-flick-hero h1{font-size:clamp(28px,7.35vw,34px);line-height:1.2;letter-spacing:0}
  .tc-flick-hero h1 .tc-flick-title-line:first-child,.tc-flick-hero h1>.tc-managed-text-line:first-child{white-space:nowrap}
  .tc-flick-semantic-copy>span{display:inline-block}.tc-flick-semantic-copy>.tc-managed-text-line{display:block}.tc-flick-growth-principles{grid-template-columns:1fr;gap:8px}.tc-flick-growth-principles>div{padding:13px 14px}
  .tc-flick-change__head{align-items:flex-start;flex-direction:column;gap:4px}.tc-flick-change__head>span{text-align:left}.tc-flick-change-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tc-flick-change-grid>div{padding:11px 8px}.tc-flick-change-grid strong{font-size:18px}
  .tc-flick-ad-wrap{margin:0}
}
@media (max-width:390px){
  .tc-flick-hero h1{font-size:clamp(26px,7vw,29px)}
  .tc-flick-change-grid{grid-template-columns:1fr}.tc-flick-change-grid>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px}.tc-flick-change-grid strong{margin:0}.tc-flick-change-grid span{text-align:right}
}

/* ---- typing-coach-polish-v18652 | assets/css/polish-v18652.css ---- */
/* v1.86.52 — Typing Coach Home mobile flick-entry redesign.
 * Keep the invitation readable on narrow phones: the CTA no longer steals
 * horizontal space from the copy, and a compact flick map makes the feature
 * understandable at a glance.
 */
@media (max-width:820px){
  .tc-home-flick-entry{
    position:relative;display:grid;gap:15px;overflow:hidden;
    margin:16px auto 22px;padding:19px 18px 17px;max-width:calc(100% - 24px);
    border:1px solid #d2dfeb;border-radius:24px;
    background:linear-gradient(145deg,#ffffff 0%,#f7fbff 58%,#fff8ea 100%);
    box-shadow:0 14px 34px rgba(8,41,74,.10);
  }
  .tc-home-flick-entry::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#0c416e 0 42%,#d6a42d 42% 100%)}
  .tc-home-flick-entry::after{content:"";position:absolute;right:-58px;bottom:-78px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(216,165,46,.10),rgba(216,165,46,0) 68%);pointer-events:none}
  .tc-home-flick-entry__main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:14px;align-items:center}
  .tc-home-flick-entry__copy{min-width:0;display:block}
  .tc-home-flick-entry__copy>small{display:block;margin-bottom:5px;color:#9a6910;font-size:10px;font-weight:900;letter-spacing:.15em;line-height:1.4}
  .tc-home-flick-entry__headline{display:block;margin:0;color:#082b4d;font-size:clamp(19px,5.25vw,22px);font-weight:900;line-height:1.38;letter-spacing:.01em;text-wrap:pretty}
  .tc-home-flick-entry__headline-line,.tc-home-flick-entry__headline>.tc-managed-text-line{display:block}
  .tc-home-flick-entry__desc{margin:8px 0 0;color:#405a71;font-size:13px;font-weight:600;line-height:1.72;text-wrap:pretty}
  .tc-home-flick-entry__desc-line,.tc-home-flick-entry__desc>.tc-managed-text-line{display:block}
  .tc-home-flick-entry__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
  .tc-home-flick-entry__meta span{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border:1px solid #dae5ee;border-radius:999px;background:rgba(255,255,255,.84);color:#52677d;font-size:10px;font-weight:800;line-height:1.2}
  .tc-home-flick-entry__visual{position:relative;width:108px;height:116px;border-radius:22px;background:linear-gradient(160deg,#0a3157,#154e79);box-shadow:0 10px 22px rgba(8,41,74,.18);color:#fff}
  .tc-home-flick-entry__visual>b{position:absolute;left:0;right:0;top:8px;text-align:center;color:#efbd45;font-size:8px;letter-spacing:.2em}
  .tc-home-flick-entry__flick-map{position:absolute;left:50%;top:56%;width:82px;height:76px;transform:translate(-50%,-50%)}
  .tc-home-flick-entry__flick-map strong,.tc-home-flick-entry__flick-map i{position:absolute;display:grid;place-items:center;font-style:normal;font-weight:900}
  .tc-home-flick-entry__flick-map strong{left:50%;top:50%;width:38px;height:38px;transform:translate(-50%,-50%);border:2px solid #efbd45;border-radius:13px;background:#fff;color:#0a3157;font-size:20px;box-shadow:0 5px 12px rgba(0,0,0,.15)}
  .tc-home-flick-entry__flick-map i{width:22px;height:22px;border-radius:8px;background:rgba(255,255,255,.11);color:#eaf4fb;font-size:10px}
  .tc-home-flick-entry__flick-map .is-up{left:50%;top:0;transform:translateX(-50%)}
  .tc-home-flick-entry__flick-map .is-left{left:0;top:50%;transform:translateY(-50%)}
  .tc-home-flick-entry__flick-map .is-right{right:0;top:50%;transform:translateY(-50%)}
  .tc-home-flick-entry__flick-map .is-down{left:50%;bottom:0;transform:translateX(-50%)}
  .tc-home-flick-entry>a{position:relative;z-index:1;width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:0 14px 0 18px;border:1px solid #c99216;border-radius:15px;background:linear-gradient(135deg,#e1ad33,#d69b16);color:#082744;text-decoration:none;font-size:15px;font-weight:900;box-shadow:0 8px 20px rgba(179,126,19,.19);white-space:normal}
  .tc-home-flick-entry__cta-text{min-width:0;text-align:left;line-height:1.35}
  .tc-home-flick-entry__cta-arrow{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:50%;background:rgba(8,39,68,.09);font-size:17px}
}
@media (max-width:430px){
  .tc-home-flick-entry{padding:18px 15px 15px;border-radius:22px;max-width:calc(100% - 20px)}
  .tc-home-flick-entry__main{grid-template-columns:minmax(0,1fr) 96px;gap:10px}
  .tc-home-flick-entry__visual{width:96px;height:108px;border-radius:19px}
  .tc-home-flick-entry__flick-map{width:74px;height:70px}
  .tc-home-flick-entry__flick-map strong{width:36px;height:36px;font-size:19px}
  .tc-home-flick-entry__headline{font-size:clamp(18px,5.1vw,20px)}
  .tc-home-flick-entry__desc{font-size:12.5px;line-height:1.68}
}
@media (max-width:360px){
  .tc-home-flick-entry__main{grid-template-columns:minmax(0,1fr) 84px;gap:8px}
  .tc-home-flick-entry__visual{width:84px;height:100px}
  .tc-home-flick-entry__flick-map{width:66px;height:64px}
  .tc-home-flick-entry__flick-map strong{width:34px;height:34px;font-size:18px}
  .tc-home-flick-entry__flick-map i{width:19px;height:19px;font-size:9px}
  .tc-home-flick-entry__headline{font-size:17px}
  .tc-home-flick-entry__meta span{font-size:9px;padding-inline:6px}
}

/* ---- typing-coach-polish-v18653 | assets/css/polish-v18653.css ---- */
/* v1.86.53 — Smartphone flick growth, member history and dedicated ranking. */
.tc-flick-start-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
.tc-flick-start-actions .tc-flick-start-button{margin:0;flex:1 1 260px}
.tc-flick-start-actions .tc-home-secondary{flex:0 1 auto}
.tc-flick-micro-growth{margin:18px 0;padding:18px;border:1px solid #d7e5ef;border-radius:20px;background:linear-gradient(145deg,#f6fbff,#fffdf8)}
.tc-flick-micro-growth .tc-flick-section-head{margin-bottom:12px}
.tc-flick-micro-growth .tc-flick-section-head h3{margin:3px 0 4px;color:#092d50;font-size:20px}
.tc-flick-micro-growth .tc-flick-section-head p{margin:0;color:#52677d;font-size:13px;line-height:1.7}
.tc-flick-micro-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.tc-flick-micro-grid article{padding:14px;border:1px solid #dce7ef;border-radius:15px;background:#fff}
.tc-flick-micro-grid small,.tc-flick-micro-grid strong,.tc-flick-micro-grid span{display:block}
.tc-flick-micro-grid small{color:#61768a;font-size:11px;font-weight:800}
.tc-flick-micro-grid strong{margin:5px 0;color:#0b3157;font-size:18px}
.tc-flick-micro-grid span{color:#586d80;font-size:11px;line-height:1.55}
.tc-flick-action-coaching{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:12px;align-items:stretch}
.tc-flick-action-coaching .tc-flick-next-step{margin-top:0}
.tc-flick-reflection{padding:17px 18px;border:1px solid #d7e4ed;border-radius:17px;background:linear-gradient(145deg,#f4f9fd,#fff)}
.tc-flick-reflection small,.tc-flick-reflection strong{display:block}
.tc-flick-reflection small{color:#9a6a12;font-size:10px;font-weight:900;letter-spacing:.12em}
.tc-flick-reflection strong{margin-top:7px;color:#0a2d50;font-size:16px;line-height:1.65}
.tc-flick-save-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0;padding:12px 14px;border-radius:14px;background:#eef6fb;color:#405a71}
.tc-flick-save-status strong{color:#0a3157}.tc-flick-save-status span{font-size:12px}
.tc-flick-result-actions{flex-wrap:wrap}
.tc-flick-ranking{max-width:1540px;margin-inline:auto}
.tc-flick-ranking-hero{position:relative;overflow:hidden;padding:34px;border:1px solid #d6a52d;border-radius:24px;background:linear-gradient(135deg,#092b4d 0%,#174e76 100%);color:#fff}
.tc-flick-ranking-hero::after{content:"TC";position:absolute;right:32px;bottom:-34px;color:rgba(255,255,255,.05);font:900 150px/1 Georgia,serif}
.tc-flick-ranking-hero .tc-kicker{color:#efbd45}.tc-flick-ranking-hero h1{margin:8px 0;color:#fff;font-size:clamp(30px,4vw,48px)}
.tc-flick-ranking-hero p{max-width:850px;margin:0 0 18px;color:#e4eef6;line-height:1.8;font-size:15px}
.tc-flick-ranking-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.tc-flick-ranking-tabs a{padding:10px 16px;border:1px solid #d6e3ed;border-radius:999px;background:#fff;color:#0a3157;text-decoration:none;font-weight:800}
.tc-flick-ranking-tabs a.is-active{border-color:#d5a329;background:#0a3157;color:#fff}
.tc-flick-ranking-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 20px}
.tc-flick-ranking-summary article{padding:16px;border:1px solid #dce6ee;border-radius:17px;background:linear-gradient(145deg,#fff,#f6fafc)}
.tc-flick-ranking-summary small,.tc-flick-ranking-summary strong,.tc-flick-ranking-summary span{display:block}
.tc-flick-ranking-summary small{color:#607487;font-weight:800}.tc-flick-ranking-summary strong{margin:4px 0;color:#0a3157;font-size:22px}.tc-flick-ranking-summary span{color:#586d80;font-size:12px}
.tc-flick-ranking-table th,.tc-flick-ranking-table td{white-space:nowrap}
.tc-flick-ranking-empty{padding:26px;border:1px solid #dce6ee;border-radius:18px;background:#f7fafc;text-align:center}
.tc-my-flick-summary{margin-top:22px;padding:22px;border:1px solid #d7e4ed;border-radius:22px;background:linear-gradient(145deg,#f5faff,#fffdf8)}
.tc-my-flick-summary .tc-my-section-head{display:flex;gap:18px;align-items:flex-end;justify-content:space-between}
.tc-my-flick-actions{display:flex;gap:8px;flex-wrap:wrap}
.tc-my-flick-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}
.tc-my-flick-stats article{padding:15px;border:1px solid #dce6ee;border-radius:15px;background:#fff}.tc-my-flick-stats span,.tc-my-flick-stats strong{display:block}.tc-my-flick-stats span{color:#607487;font-size:12px}.tc-my-flick-stats strong{margin-top:4px;color:#0a3157;font-size:20px}
.tc-my-flick-recent{margin-top:18px}.tc-my-flick-recent h4{margin:0 0 10px;color:#0a3157}.tc-my-flick-empty{margin-top:15px;padding:16px;border-radius:14px;background:#fff;color:#52677d}.tc-my-flick-empty strong{color:#0a3157}
@media(max-width:820px){
 .tc-flick-micro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tc-flick-action-coaching{grid-template-columns:1fr}.tc-flick-ranking-hero{padding:24px 20px}.tc-flick-ranking-summary{grid-template-columns:1fr}.tc-flick-ranking-table{min-width:720px}.tc-my-flick-summary .tc-my-section-head{align-items:flex-start;flex-direction:column}.tc-my-flick-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){.tc-flick-micro-grid{grid-template-columns:1fr}.tc-my-flick-stats{grid-template-columns:1fr 1fr}.tc-flick-result-actions>a,.tc-flick-result-actions>button{width:100%}}

/* ---- typing-coach-polish-v18654 | assets/css/polish-v18654.css ---- */
/* v1.86.54 — Clarify smartphone flick entry and add feature-page flick story. */
@media (max-width: 820px){
  .tc-home-flick-entry__section-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 8px;margin:0 0 7px}
  .tc-home-flick-entry__section-head>small{margin:0!important;color:#9a6910;font-size:9px!important;font-weight:900;letter-spacing:.14em;line-height:1.3}
  .tc-home-flick-entry__section-head>h2{margin:0;color:#0a3157;font-size:13px;line-height:1.35;font-weight:900;letter-spacing:.02em}
  .tc-home-flick-entry__headline{margin-top:0}
}

.tc-features-flick{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:44px;align-items:center;background:linear-gradient(135deg,#f7fbff 0%,#fffaf0 100%)!important;overflow:hidden}
.tc-features-flick::after{content:"";position:absolute;right:-90px;bottom:-110px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(214,164,45,.12),rgba(214,164,45,0) 70%);pointer-events:none}
.tc-features-flick-copy,.tc-features-flick-visual{position:relative;z-index:1}
.tc-features-flick-copy h2{margin:10px 0 18px;color:#082b4d}
.tc-features-flick-lead{max-width:780px!important;margin:0 0 20px!important;color:#40566c!important}
.tc-features-flick-points{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 24px}
.tc-features-flick-points span{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid #d8e4ee;border-radius:999px;background:#fff;color:#36516a;font-size:13px;font-weight:800}
.tc-features-flick-visual{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;align-items:stretch;padding:18px;border:1px solid #d8e4ee;border-radius:25px;background:rgba(255,255,255,.84);box-shadow:0 18px 40px rgba(12,49,84,.10)}
.tc-features-flick-phone{position:relative;min-height:250px;border-radius:28px;background:linear-gradient(155deg,#092f55,#174f79);box-shadow:0 14px 28px rgba(8,43,75,.18);color:#fff;overflow:hidden}
.tc-features-flick-phone>small{position:absolute;left:0;right:0;top:20px;text-align:center;color:#f0bd43;font-size:11px;font-weight:900;letter-spacing:.22em}
.tc-features-flick-map{position:absolute;left:50%;top:56%;width:150px;height:142px;transform:translate(-50%,-50%)}
.tc-features-flick-map strong,.tc-features-flick-map i{position:absolute;display:grid;place-items:center;font-style:normal;font-weight:900}
.tc-features-flick-map strong{left:50%;top:50%;width:66px;height:66px;transform:translate(-50%,-50%);border:3px solid #efbd45;border-radius:21px;background:#fff;color:#0a3157;font-size:36px;box-shadow:0 8px 18px rgba(0,0,0,.16)}
.tc-features-flick-map i{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.11);color:#edf6fc;font-size:16px}
.tc-features-flick-map .is-up{left:50%;top:0;transform:translateX(-50%)}
.tc-features-flick-map .is-left{left:0;top:50%;transform:translateY(-50%)}
.tc-features-flick-map .is-right{right:0;top:50%;transform:translateY(-50%)}
.tc-features-flick-map .is-down{left:50%;bottom:0;transform:translateX(-50%)}
.tc-features-flick-result{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:10px 8px}
.tc-features-flick-result>small{color:#a47314;font-size:10px;font-weight:900;letter-spacing:.16em}
.tc-features-flick-result>strong{margin:6px 0 14px;color:#0a3157;font-size:21px;line-height:1.45}
.tc-features-flick-result>div{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:13px}
.tc-features-flick-result>div span{padding:10px 6px;border:1px solid #dce7ef;border-radius:13px;background:#f7fafc;text-align:center}
.tc-features-flick-result>div b{display:block;color:#0d406c;font-size:20px}
.tc-features-flick-result>div small{display:block;margin-top:2px;color:#5b7084;font-size:9px;font-weight:800}
.tc-features-flick-result p{margin:0!important;color:#52677d!important;font-size:13px;line-height:1.7}
@media (max-width: 980px){
  .tc-features-flick{grid-template-columns:1fr;gap:26px}
  .tc-features-flick-visual{max-width:720px;width:100%;margin-inline:auto}
}
@media (max-width: 620px){
  .tc-features-flick{gap:20px}
  .tc-features-flick-copy h2 .tc-title-segment{display:block}
  .tc-features-flick-points{gap:6px}
  .tc-features-flick-points span{font-size:11px;min-height:30px;padding:5px 9px}
  .tc-features-flick-visual{grid-template-columns:118px minmax(0,1fr);gap:10px;padding:12px;border-radius:20px}
  .tc-features-flick-phone{min-height:178px;border-radius:21px}
  .tc-features-flick-phone>small{top:13px;font-size:8px}
  .tc-features-flick-map{width:92px;height:91px}
  .tc-features-flick-map strong{width:46px;height:46px;border-width:2px;border-radius:15px;font-size:26px}
  .tc-features-flick-map i{width:25px;height:25px;border-radius:8px;font-size:11px}
  .tc-features-flick-result{padding:4px 0}
  .tc-features-flick-result>strong{font-size:16px;margin-bottom:9px}
  .tc-features-flick-result>div{grid-template-columns:1fr;gap:5px;margin-bottom:8px}
  .tc-features-flick-result>div span{display:flex;align-items:center;justify-content:space-between;padding:6px 8px}
  .tc-features-flick-result>div b{font-size:16px}
  .tc-features-flick-result>div small{margin:0;font-size:9px}
  .tc-features-flick-result p{font-size:11px;line-height:1.55}
}
@media (max-width: 400px){
  .tc-home-flick-entry__section-head{display:block}
  .tc-home-flick-entry__section-head>h2{margin-top:2px;font-size:12px}
  .tc-features-flick-visual{grid-template-columns:104px minmax(0,1fr)}
  .tc-features-flick-phone{min-height:164px}
  .tc-features-flick-map{width:82px;height:82px}
}

/* ---- typing-coach-polish-v18655 | assets/css/polish-v18655.css ---- */
/* v1.86.55 — Larger smartphone-practice identity + expanded flick lesson catalog. */
@media (max-width: 782px){
  .tc-home-flick-entry__section-head{display:block!important;margin:0 0 10px!important}
  .tc-home-flick-entry__section-head>small{display:block;margin:0 0 3px!important;font-size:11px!important;line-height:1.35!important;letter-spacing:.16em!important;color:#9a6910!important;font-weight:900!important}
  .tc-home-flick-entry__section-head>h2{margin:0!important;font-size:clamp(19px,5.4vw,22px)!important;line-height:1.28!important;letter-spacing:.01em!important;color:#082f55!important;font-weight:900!important}
  .tc-home-flick-entry__headline{font-size:clamp(16px,4.7vw,19px)!important;line-height:1.48!important}
}
@media (max-width: 380px){
  .tc-home-flick-entry__section-head>small{font-size:10.5px!important}
  .tc-home-flick-entry__section-head>h2{font-size:18px!important}
}
@media (min-width: 783px){
  .tc-flick-modes{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.tc-flick-mode.is-builtin{position:relative;overflow:hidden}
.tc-flick-mode.is-builtin::after{content:"";position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,#164e7a,#d6a42d);opacity:.8}
.tc-flick-mode.is-builtin.is-selected::after{height:4px;opacity:1}

/* ---- typing-coach-polish-v18656 | assets/css/polish-v18656.css ---- */
/* v1.86.56 — Four-level flick difficulty, kanji display and one-tap lesson start. */
.tc-flick-mode__meta{display:flex!important;align-items:center;gap:6px;flex-wrap:wrap;margin:7px 0 8px!important;color:inherit!important;line-height:1!important;font-size:inherit!important}
.tc-flick-mode__meta b,.tc-flick-mode__meta em{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:999px;font-size:11px;line-height:1.2;font-style:normal;font-weight:900}
.tc-flick-mode__meta b{background:#e9f2f8;color:#174866}.tc-flick-mode__meta em{border:1px solid #ead8a7;background:#fff9e9;color:#8b620d}
.tc-flick-mode__desc{display:block!important;color:#52677d!important;line-height:1.7!important;font-size:14px!important}
.tc-flick-mode__action{display:flex!important;align-items:center;justify-content:space-between;gap:10px;margin-top:13px!important;padding-top:10px;border-top:1px solid #e3ebf1;color:#0b416d!important;font-size:12px!important;font-weight:900!important;line-height:1.35!important}
.tc-flick-mode__action i{font-style:normal;font-size:17px;color:#b57b0b}
.tc-flick-mode:focus-visible,.tc-flick-mode:hover{box-shadow:0 14px 28px rgba(10,49,87,.10)}
.tc-flick-tap-start-note{flex:1 1 360px;margin:0;padding:13px 15px;border:1px solid #dbe7ef;border-radius:14px;background:#f5f9fc;color:#425b70;line-height:1.55}
.tc-flick-tap-start-note strong,.tc-flick-tap-start-note span{display:block}.tc-flick-tap-start-note strong{color:#0b365c;font-size:13px}.tc-flick-tap-start-note span{margin-top:3px;font-size:11px;color:#66798b}
.tc-flick-display-prompt{margin:8px auto 12px;padding:12px 15px;max-width:760px;border:1px solid #e5d39d;border-radius:15px;background:#fffaf0}
.tc-flick-display-prompt small,.tc-flick-display-prompt strong,.tc-flick-display-prompt span{display:block}
.tc-flick-display-prompt small{font-size:10px;font-weight:900;letter-spacing:.12em;color:#9a6810}.tc-flick-display-prompt strong{margin:4px 0;color:#0a2d50;font-size:clamp(25px,7vw,40px);line-height:1.4}.tc-flick-display-prompt span{font-size:11px;color:#62788b}
.tc-flick-reading-label{margin:4px auto -2px;color:#66798b;font-size:10px;font-weight:900;letter-spacing:.12em}
@media (max-width:782px){
  .tc-flick-mode{padding:17px}.tc-flick-mode strong{font-size:18px}.tc-flick-mode__desc{font-size:13px!important}
  .tc-flick-display-prompt{padding:10px 12px;margin-bottom:9px}.tc-flick-target{font-size:40px}
  .tc-flick-start-actions{align-items:stretch}.tc-flick-start-actions .tc-home-secondary{width:100%;text-align:center}
}

/* ---- typing-coach-polish-v18657 | assets/css/polish-v18657.css ---- */
/* v1.86.57 — Flick FAQ discoverability, 10 standard lessons, stronger buttons, fixed practice geometry. */

/* Keep flick practice geometry stable whether the prompt uses kanji display or hiragana only. */
.tc-system-page-typing-coach-flick .tc-flick-display-prompt{
  height:104px;min-height:104px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-placeholder-hidden{visibility:hidden;pointer-events:none}
.tc-system-page-typing-coach-flick .tc-flick-reading-label{display:block;min-height:18px;height:18px;line-height:18px}
.tc-system-page-typing-coach-flick .tc-flick-reading-label.is-placeholder-hidden{visibility:hidden}
.tc-system-page-typing-coach-flick .tc-flick-target{height:100px;min-height:100px;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;overflow:hidden;box-sizing:border-box}
.tc-system-page-typing-coach-flick .tc-flick-typed{height:26px;min-height:26px;overflow:hidden}
.tc-system-page-typing-coach-flick .tc-flick-next-hint{min-height:48px;display:flex;align-items:center;justify-content:center;margin-bottom:0}

/* Smartphone FAQ routes should be obvious without competing with the main practice CTA. */
.tc-flick-help-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
.tc-flick-faq-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 15px;border:1px solid #b8cad8;border-radius:12px;background:#f6fafc;color:#0b3b63;text-decoration:none;font-weight:900;box-shadow:0 6px 16px rgba(9,46,78,.08)}
.tc-flick-faq-link>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#0b3157;color:#efbd45;font-size:12px}
.tc-flick-start-links{display:flex;gap:9px;flex-wrap:wrap;align-items:stretch}
.tc-flick-start-links>a{margin:0!important}
.tc-flick-ranking-hero-actions,.tc-features-flick-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.tc-ufaq-flick-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px}
.tc-ufaq-flick-guide>div{padding:15px;border:1px solid #d8e5ee;border-radius:15px;background:linear-gradient(145deg,#f8fbfd,#fff)}
.tc-ufaq-flick-guide b{width:28px;height:28px;display:grid;place-items:center;margin-bottom:8px;border-radius:50%;background:#0b3157;color:#efbd45}
.tc-ufaq-flick-guide strong,.tc-ufaq-flick-guide span{display:block}.tc-ufaq-flick-guide strong{color:#0a3157}.tc-ufaq-flick-guide span{margin-top:4px;color:#52677d;font-size:12px;line-height:1.65}
.tc-ufaq-flick-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

/* Buttons across Typing Coach: preserve each role/color, but increase edge contrast and presence slightly. */
.tc-system-body :is(a.tc-primary,a.tc-home-primary,button.tc-primary,.tc-flick-start-button),
.tc-standalone-body :is(a.tc-primary,button.tc-primary){font-weight:900;box-shadow:0 10px 22px rgba(10,48,82,.16);filter:saturate(1.05)}
.tc-system-body :is(a.tc-secondary,a.tc-home-secondary,a.tc-linkbtn:not(.tc-primary),button.tc-secondary),
.tc-standalone-body :is(a.tc-secondary,a.tc-linkbtn:not(.tc-primary),button.tc-secondary){font-weight:900;border-color:#a7bdcc;box-shadow:0 6px 15px rgba(10,48,82,.08)}
@media (hover:hover){
  .tc-system-body :is(a.tc-primary,a.tc-home-primary,a.tc-secondary,a.tc-home-secondary,a.tc-linkbtn,.tc-flick-start-button):hover{transform:translateY(-1px)}
}

/* Home flick card now has a dedicated FAQ route under the primary action. */
.tc-home-flick-entry__actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.tc-home-flick-entry__actions>a{text-decoration:none}
.tc-home-flick-entry__practice{position:relative;z-index:1;width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:0 14px 0 18px;border:1px solid #c99216;border-radius:15px;background:linear-gradient(135deg,#e1ad33,#d69b16);color:#082744;text-decoration:none;font-size:15px;font-weight:900;box-shadow:0 8px 20px rgba(179,126,19,.19);white-space:normal;box-sizing:border-box}
.tc-home-flick-entry__faq{display:flex;align-items:center;justify-content:center;gap:6px;min-width:132px;padding:10px 14px;border:1px solid #bfd0dc;border-radius:14px;background:#f6fafc;color:#0b3a61;font-weight:900}
.tc-home-flick-entry__faq>span{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#0b3157;color:#efbd45}

@media(max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{height:94px;min-height:94px;padding:9px 11px}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{font-size:clamp(22px,6.4vw,30px);line-height:1.28}
  .tc-system-page-typing-coach-flick .tc-flick-target{height:96px;min-height:96px;font-size:38px}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{min-height:52px;font-size:13px;line-height:1.55}
  .tc-flick-start-links{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .tc-flick-start-links>a{width:100%;box-sizing:border-box;text-align:center}
  .tc-ufaq-flick-guide{grid-template-columns:1fr 1fr}
  .tc-home-flick-entry__actions{grid-template-columns:1fr}
  .tc-home-flick-entry__faq{min-height:44px}
}
@media(max-width:420px){
  .tc-flick-start-links,.tc-ufaq-flick-guide{grid-template-columns:1fr}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{height:90px;min-height:90px}
  .tc-system-page-typing-coach-flick .tc-flick-target{height:94px;min-height:94px;font-size:36px}
}

/* ---- typing-coach-polish-v18658 | assets/css/polish-v18658.css ---- */
/* v1.86.58 — compact flick practice viewport, stable two-line prompt and unobstructed keypad. */

/* Always show a display line and a reading line. Kanji lessons use kanji above / kana below;
   hiragana lessons intentionally repeat hiragana above / kana below so the practice geometry never jumps. */
.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
.tc-system-page-typing-coach-flick .tc-flick-reading-label{visibility:visible!important;pointer-events:auto!important}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt{box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{font-weight:900;letter-spacing:.02em}
.tc-system-page-typing-coach-flick .tc-flick-reading-label{text-align:center}
.tc-system-page-typing-coach-flick .tc-flick-target{font-weight:850;letter-spacing:.06em}

/* The preview badge is useful outside practice, but must never cover the flick keyboard while typing. */
body.tc-flick-practice-active .tc-ad-preview-status{display:none!important}

@media (max-width:700px){
  /* Put the whole active practice experience comfortably inside a typical phone viewport. */
  .tc-system-page-typing-coach-flick .tc-system-main{padding-top:8px}
  .tc-system-page-typing-coach-flick .tc-system-main__inner{padding-inline:7px}
  .tc-system-page-typing-coach-flick .tc-flick{gap:8px}
  .tc-system-page-typing-coach-flick .tc-flick-practice{padding:9px 7px 10px;border-radius:16px;scroll-margin-top:64px}

  .tc-system-page-typing-coach-flick .tc-flick-status-row{grid-template-columns:1fr 1fr auto;gap:6px}
  .tc-system-page-typing-coach-flick .tc-flick-status-row>div{padding:7px 8px;border-radius:10px;min-height:42px;box-sizing:border-box}
  .tc-system-page-typing-coach-flick .tc-flick-status-row small{font-size:8px;line-height:1.15}
  .tc-system-page-typing-coach-flick .tc-flick-status-row strong{font-size:13px;line-height:1.25}
  .tc-system-page-typing-coach-flick .tc-flick-status-row button{grid-column:auto;min-width:54px;min-height:42px;padding:0 8px;font-size:11px;border-radius:10px}

  .tc-system-page-typing-coach-flick .tc-flick-target-card{margin:7px 0;padding:7px 7px 6px;border-radius:16px}
  .tc-system-page-typing-coach-flick .tc-flick-target-card>.tc-home-eyebrow{display:none}

  /* Top display: visually dominant but compact. */
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{height:68px;min-height:68px;margin:0 auto 4px;padding:5px 8px;border-radius:12px}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt small{font-size:8px;line-height:1;letter-spacing:.1em}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{margin:2px 0 1px;font-size:clamp(27px,8.2vw,34px);line-height:1.08}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{font-size:9px;line-height:1.15}

  /* Reading/input line: deliberately smaller than the display line. */
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{height:14px;min-height:14px;line-height:14px;margin:1px auto 0;font-size:8px}
  .tc-system-page-typing-coach-flick .tc-flick-target{height:56px;min-height:56px;margin:0 auto;font-size:clamp(27px,7.7vw,32px);line-height:1.14;align-content:center}
  .tc-system-page-typing-coach-flick .tc-flick-typed{height:19px;min-height:19px;line-height:19px;font-size:11px}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{min-height:36px;height:36px;margin:2px 0 0;padding:0 4px;font-size:11px;line-height:1.35}

  .tc-system-page-typing-coach-flick .tc-flick-guide{min-height:40px;margin:0 auto 5px;padding:7px 8px;border-radius:11px;font-size:11px;line-height:1.3}

  .tc-system-page-typing-coach-flick .tc-flick-keypad{max-width:430px;padding:7px;gap:5px;border-radius:17px}
  .tc-system-page-typing-coach-flick .tc-flick-key{min-height:54px;border-radius:12px}
  .tc-system-page-typing-coach-flick .tc-flick-key strong{font-size:22px}
  .tc-system-page-typing-coach-flick .tc-flick-key span{min-height:10px;margin-top:2px;font-size:8px}
  .tc-system-page-typing-coach-flick .tc-flick-keypad-note{display:none}
}

/* Shorter phones get one more compact step without reducing touch targets below a usable size. */
@media (max-width:700px) and (max-height:740px){
  .tc-system-page-typing-coach-flick .tc-flick-practice{padding-top:7px;padding-bottom:7px}
  .tc-system-page-typing-coach-flick .tc-flick-target-card{margin:5px 0;padding:5px 6px}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{height:62px;min-height:62px}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{font-size:clamp(25px,7.7vw,31px)}
  .tc-system-page-typing-coach-flick .tc-flick-target{height:48px;min-height:48px;font-size:clamp(25px,7.2vw,29px)}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{min-height:32px;height:32px;font-size:10px}
  .tc-system-page-typing-coach-flick .tc-flick-guide{min-height:36px;padding-block:5px}
  .tc-system-page-typing-coach-flick .tc-flick-key{min-height:50px}
  .tc-system-page-typing-coach-flick .tc-flick-key strong{font-size:21px}
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-practice{padding-inline:5px}
  .tc-system-page-typing-coach-flick .tc-flick-status-row{gap:4px}
  .tc-system-page-typing-coach-flick .tc-flick-keypad{padding:6px;gap:4px}
  .tc-system-page-typing-coach-flick .tc-flick-key{min-height:50px}
}

/* ---- typing-coach-polish-v18659 | assets/css/polish-v18659.css ---- */
/* v1.86.59 — strengthen visual hierarchy between 表示文 and よみ on smartphone flick practice.
   Goal: the display text should read as the main question, while the reading remains clearly supportive. */

.tc-system-page-typing-coach-flick .tc-flick-display-prompt{
  border-color:#e5d39d;
  background:linear-gradient(180deg,#fffdf7 0%,#fffaf0 100%);
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt small,
.tc-system-page-typing-coach-flick .tc-flick-reading-label{
  font-weight:800;
  letter-spacing:.12em;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
  color:#0a2d50;
  text-wrap:balance;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt span{
  color:#62788b;
}
.tc-system-page-typing-coach-flick .tc-flick-reading-label{
  color:#5d6f81;
}
.tc-system-page-typing-coach-flick .tc-flick-target{
  color:#0a2d50;
}
.tc-system-page-typing-coach-flick .tc-flick-target .is-current{
  text-decoration-thickness:3px;
  text-underline-offset:8px;
}

@media (min-width:701px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    min-height:132px;
    margin:0 auto 10px;
    padding:14px 18px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt small{
    font-size:14px;
    line-height:1.2;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    margin:8px 0 6px;
    font-size:clamp(54px,8vw,76px);
    line-height:1.05;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{
    font-size:18px;
    line-height:1.35;
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    margin:2px auto 4px;
    font-size:13px;
    line-height:1.2;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    min-height:72px;
    font-size:clamp(36px,4.6vw,46px);
    line-height:1.18;
  }
}

@media (max-width:700px){
  /* Keep the content compact, but give the display text stronger presence than the reading. */
  .tc-system-page-typing-coach-flick .tc-flick-target-card{
    padding:9px 8px 7px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:98px;
    min-height:98px;
    margin:0 auto 6px;
    padding:8px 10px 7px;
    border-radius:14px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt small{
    font-size:10px;
    line-height:1.1;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    margin:4px 0 3px;
    font-size:clamp(42px,12.6vw,56px);
    line-height:1.04;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{
    font-size:12px;
    line-height:1.25;
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    height:auto;
    min-height:0;
    margin:2px auto 2px;
    font-size:10px;
    line-height:1.2;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    height:64px;
    min-height:64px;
    font-size:clamp(29px,8.8vw,38px);
    line-height:1.12;
  }
  .tc-system-page-typing-coach-flick .tc-flick-typed{
    height:20px;
    min-height:20px;
    line-height:20px;
    font-size:11px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    min-height:38px;
    height:38px;
    font-size:11px;
    line-height:1.35;
  }
}

@media (max-width:700px) and (max-height:740px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:90px;
    min-height:90px;
    padding:7px 9px 6px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    font-size:clamp(38px,11.5vw,50px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{
    font-size:11px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    font-size:9px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    height:56px;
    min-height:56px;
    font-size:clamp(27px,8.1vw,34px);
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:86px;
    min-height:86px;
    padding-inline:8px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    font-size:clamp(36px,11.2vw,46px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{
    font-size:10px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    font-size:clamp(26px,7.9vw,32px);
  }
}

/* ---- typing-coach-polish-v18660 | assets/css/polish-v18660.css ---- */
/* v1.86.60 — make 表示文 clearly dominant and よみ clearly supportive on smartphone flick practice.
   The gap in visual hierarchy is intentionally stronger than v1.86.59. */

.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
  font-weight:900;
  color:#0a2d50;
}
.tc-system-page-typing-coach-flick .tc-flick-reading-label{
  color:#607487;
}
.tc-system-page-typing-coach-flick .tc-flick-target{
  font-weight:760;
  color:#13395e;
  letter-spacing:.01em;
}
.tc-system-page-typing-coach-flick .tc-flick-target .is-done{
  color:#8d9aab;
}
.tc-system-page-typing-coach-flick .tc-flick-target .is-current{
  color:#b67906;
}

@media (min-width:701px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    min-height:144px;
    padding:16px 18px 14px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    margin:8px 0 6px;
    font-size:clamp(60px,8.8vw,84px);
    line-height:1.02;
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    margin:4px auto 3px;
    font-size:12px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    min-height:60px;
    font-size:clamp(30px,4vw,38px);
    line-height:1.12;
  }
}

@media (max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-target-card{
    padding:10px 8px 7px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:110px;
    min-height:110px;
    margin:0 auto 7px;
    padding:9px 10px 8px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt small{
    font-size:10px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    margin:4px 0 3px;
    font-size:clamp(50px,14.6vw,66px);
    line-height:1.0;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{
    font-size:12px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    margin:2px auto 1px;
    font-size:9px;
    line-height:1.15;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    height:52px;
    min-height:52px;
    font-size:clamp(24px,7.4vw,31px);
    line-height:1.08;
  }
}

@media (max-width:700px) and (max-height:740px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:102px;
    min-height:102px;
    padding:8px 9px 7px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    font-size:clamp(46px,13.3vw,58px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    font-size:8px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    height:48px;
    min-height:48px;
    font-size:clamp(22px,6.9vw,28px);
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:96px;
    min-height:96px;
    padding-inline:8px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    font-size:clamp(42px,13.1vw,54px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    font-size:clamp(21px,6.7vw,27px);
  }
}

/* ---- typing-coach-polish-v18661 | assets/css/polish-v18661.css ---- */
/* v1.86.61 — clearer lesson boundary, stronger flick-direction cue, adaptive long-prompt typography. */

/* --------------------------------------------------------------------------
 * 1) Make it unmistakable where the smartphone lesson list begins.
 * -------------------------------------------------------------------------- */
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro{
  position:relative;
  overflow:hidden;
  margin:34px 0 14px;
  padding:22px 24px;
  border:1px solid #173f64;
  border-radius:20px;
  background:linear-gradient(135deg,#0b3157 0%,#103f6b 100%);
  box-shadow:0 12px 28px rgba(7,42,75,.10);
  color:#fff;
}
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro::after{
  content:"";
  position:absolute;
  right:-30px;
  top:-44px;
  width:130px;
  height:130px;
  border-radius:50%;
  background:rgba(214,164,45,.12);
}
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro .tc-home-eyebrow,
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro h3,
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro p{
  position:relative;
  z-index:1;
}
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro .tc-home-eyebrow{
  color:#e5bb56;
}
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro h3{
  margin:5px 0 8px;
  color:#fff;
  font-size:clamp(24px,3vw,32px);
  line-height:1.25;
}
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro p{
  margin:0;
  color:#eaf3fa;
  font-size:14px;
  line-height:1.7;
}
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro p strong,
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro p span{
  display:block;
}
.tc-system-page-typing-coach-flick .tc-flick-lessons-intro p strong{
  margin-bottom:2px;
  color:#fff;
  font-size:15px;
}
.tc-system-page-typing-coach-flick .tc-flick-modes{
  margin-top:12px;
}

/* --------------------------------------------------------------------------
 * 2) The next-operation cue must work visually, not only as a sentence.
 * -------------------------------------------------------------------------- */
.tc-system-page-typing-coach-flick .tc-flick-next-hint{
  height:auto!important;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:5px 7px;
  margin:3px 0 0;
  padding:4px 5px;
  color:#35536f;
  font-weight:700;
  line-height:1.25;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__lead,
.tc-system-page-typing-coach-flick .tc-flick-next-hint__direction,
.tc-system-page-typing-coach-flick .tc-flick-next-hint__separator{
  font-size:12px;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__key,
.tc-system-page-typing-coach-flick .tc-flick-next-hint__char{
  color:#0a3156;
  font-size:13px;
  font-weight:900;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__direction{
  color:#5a6f83;
  font-weight:800;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:34px;
  border:2px solid #d9a62d;
  border-radius:10px;
  background:#fff8e7;
  box-shadow:0 3px 8px rgba(171,114,0,.10);
  color:#9f6800;
  font-size:27px;
  font-weight:900;
  line-height:1;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__separator{
  color:#7b8da0;
  font-weight:900;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint.is-center-action .tc-flick-next-hint__arrow{
  font-size:18px;
}

/* --------------------------------------------------------------------------
 * 3) Adaptive prompt sizing: short words stay bold and large; longer display
 *    sentences scale down in controlled steps and may wrap without clipping.
 * -------------------------------------------------------------------------- */
.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
  max-width:100%;
  overflow-wrap:anywhere;
  line-break:strict;
  text-wrap:balance;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-medium strong{
  font-size:clamp(42px,10.8vw,54px);
  line-height:1.08;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long{
  height:118px;
  min-height:118px;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
  font-size:clamp(30px,8.4vw,40px);
  line-height:1.18;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong{
  height:128px;
  min-height:128px;
}
.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
  font-size:clamp(23px,6.6vw,32px);
  line-height:1.28;
}

.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-medium{
  font-size:clamp(22px,6.7vw,28px);
}
.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-long{
  height:62px;
  min-height:62px;
  font-size:clamp(19px,5.8vw,24px);
  line-height:1.28;
}
.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-xlong{
  height:70px;
  min-height:70px;
  font-size:clamp(16px,4.9vw,21px);
  line-height:1.32;
}

@media (min-width:701px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-medium strong{
    font-size:clamp(48px,6vw,66px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long{
    min-height:154px;
    height:auto;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(38px,4.7vw,54px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong{
    min-height:164px;
    height:auto;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(30px,3.8vw,44px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__arrow{
    width:42px;
    height:36px;
    font-size:29px;
  }
}

@media (max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro{
    margin:28px 0 12px;
    padding:18px 16px 17px;
    border-radius:17px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro h3{
    margin-top:4px;
    font-size:23px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro p{
    font-size:12px;
    line-height:1.65;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro p strong{
    font-size:13px;
  }

  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    min-height:44px;
    gap:4px 5px;
    padding:3px 3px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__lead,
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__direction,
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__separator{
    font-size:11px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__key,
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__char{
    font-size:12px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__arrow{
    width:36px;
    height:32px;
    font-size:27px;
  }
}

@media (max-width:700px) and (max-height:740px){
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    min-height:40px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__arrow{
    width:33px;
    height:29px;
    font-size:24px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long{
    height:110px;
    min-height:110px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong{
    height:118px;
    min-height:118px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(27px,7.8vw,36px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(21px,6.1vw,28px);
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro{
    padding-inline:14px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    gap:3px 4px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__arrow{
    width:32px;
    height:28px;
    font-size:23px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-medium strong{
    font-size:clamp(36px,10.4vw,46px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(25px,7.4vw,33px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(19px,5.8vw,26px);
  }
}

/* ---- typing-coach-polish-v18662 | assets/css/polish-v18662.css ---- */
/* v1.86.62 — PC-like READY / 3・2・1 start flow for smartphone flick practice. */

.tc-system-page-typing-coach-flick .tc-flick-practice{
  position:relative;
  overflow:hidden;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown[hidden]{
  display:none!important;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown{
  position:absolute;
  inset:0;
  z-index:40;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(76px,12vh,128px) 18px 24px;
  box-sizing:border-box;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(247,251,254,.985),rgba(238,246,251,.975));
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__card{
  width:min(100%,430px);
  padding:24px 22px 22px;
  border:1px solid #d6e2ec;
  border-top:4px solid #d7a62f;
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 42px rgba(7,42,75,.13);
  text-align:center;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__eyebrow{
  display:block;
  color:#9d6904;
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  line-height:1.2;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__lesson{
  display:block;
  margin:9px auto 7px;
  color:#0a3156;
  font-size:clamp(21px,4vw,28px);
  font-weight:900;
  line-height:1.35;
  text-wrap:balance;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__difficulty{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:27px;
  padding:3px 10px;
  border:1px solid #e6c36d;
  border-radius:999px;
  background:#fff8e5;
  color:#8e5d00;
  font-size:11px;
  font-weight:850;
  line-height:1;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__number{
  display:flex;
  align-items:center;
  justify-content:center;
  width:110px;
  height:110px;
  margin:18px auto 12px;
  border:2px solid #e1b84c;
  border-radius:50%;
  background:linear-gradient(145deg,#fffdf6,#fff4d6);
  box-shadow:0 9px 22px rgba(176,118,0,.10),inset 0 0 0 7px rgba(255,255,255,.82);
  color:#0a3156;
  font-size:68px;
  font-weight:900;
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__number.is-pulse{
  animation:tc-flick-countdown-pulse .42s ease-out;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__number.is-start{
  width:150px;
  border-radius:999px;
  color:#8b5c00;
  font-size:30px;
  letter-spacing:.06em;
}
.tc-system-page-typing-coach-flick .tc-flick-countdown__card small{
  display:block;
  color:#667b8e;
  font-size:12px;
  font-weight:700;
  line-height:1.55;
}
.tc-system-page-typing-coach-flick .tc-flick.is-counting-down .tc-flick-keypad,
.tc-system-page-typing-coach-flick .tc-flick.is-counting-down .tc-flick-guide,
.tc-system-page-typing-coach-flick .tc-flick.is-counting-down .tc-flick-target-card{
  user-select:none;
}

@keyframes tc-flick-countdown-pulse{
  0%{transform:scale(.84);opacity:.45}
  55%{transform:scale(1.06);opacity:1}
  100%{transform:scale(1);opacity:1}
}

@media (max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-countdown{
    padding:68px 10px 18px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__card{
    width:min(100%,360px);
    padding:20px 15px 18px;
    border-radius:18px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__lesson{
    margin-top:7px;
    font-size:21px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__number{
    width:96px;
    height:96px;
    margin:15px auto 10px;
    font-size:60px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__number.is-start{
    width:138px;
    font-size:27px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__card small{
    font-size:11px;
  }
}

@media (max-width:700px) and (max-height:740px){
  .tc-system-page-typing-coach-flick .tc-flick-countdown{
    padding-top:54px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__card{
    padding-top:17px;
    padding-bottom:15px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__number{
    width:84px;
    height:84px;
    margin-block:12px 8px;
    font-size:52px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-countdown__number.is-start{
    width:126px;
    font-size:24px;
  }
}

@media (prefers-reduced-motion:reduce){
  .tc-system-page-typing-coach-flick .tc-flick-countdown__number.is-pulse{
    animation:none;
  }
}

/* ---- typing-coach-polish-v18663 | assets/css/polish-v18663.css ---- */
/* v1.86.63 — visible random-session behavior and semantic two-line long examples. */

/* Explicit line breaks authored for the longer smartphone lessons are intentional.
   Preserve them so phrases wrap by meaning rather than wherever the viewport happens to end. */
.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break strong{
  white-space:pre-line;
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:wrap;
  text-align:center;
}

/* The new longer lessons are designed around two meaningful display lines.
   Give them enough vertical room while keeping the reading clearly secondary. */
@media (max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:132px;
    min-height:132px;
    padding-top:8px;
    padding-bottom:8px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break strong{
    margin:5px 0 4px;
    font-size:clamp(24px,7vw,31px);
    line-height:1.34;
    letter-spacing:.01em;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break span{
    font-size:10px;
  }
}

@media (max-width:700px) and (max-height:740px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:122px;
    min-height:122px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break strong{
    font-size:clamp(22px,6.6vw,28px);
    line-height:1.3;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:120px;
    min-height:120px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break strong{
    font-size:clamp(21px,6.3vw,26px);
  }
}

@media (min-width:701px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    min-height:174px;
    height:auto;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break strong{
    font-size:clamp(34px,4vw,48px);
    line-height:1.3;
  }
}

/* ---- typing-coach-polish-v18664 | assets/css/polish-v18664.css ---- */
/* v1.86.64 — smartphone lesson difficulty filters and result return route. */

.tc-system-page-typing-coach-flick .tc-flick-difficulty-filter{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 8px;
  padding:2px 0;
}
.tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button{
  min-height:40px;
  padding:8px 15px;
  border:1px solid #cad9e6;
  border-radius:999px;
  background:#fff;
  color:#173f64;
  font:inherit;
  font-size:13px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  box-shadow:0 2px 7px rgba(10,45,80,.04);
  transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button:hover,
.tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button:focus-visible{
  border-color:#b78a21;
  box-shadow:0 4px 12px rgba(112,77,0,.10);
}
.tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button.is-active{
  border-color:#0c3a65;
  background:#0c3a65;
  color:#fff;
  box-shadow:0 5px 14px rgba(7,42,75,.16);
}
.tc-system-page-typing-coach-flick .tc-flick-difficulty-help{
  margin:0 0 15px;
  color:#5c7286;
  font-size:12px;
  font-weight:700;
  line-height:1.55;
}
.tc-system-page-typing-coach-flick .tc-flick-mode[hidden]{
  display:none!important;
}
.tc-system-page-typing-coach-flick .tc-flick-filter-empty{
  grid-column:1/-1;
  margin:0;
  padding:22px 16px;
  border:1px dashed #ccd9e4;
  border-radius:16px;
  background:#f7fafc;
  color:#5b7184;
  text-align:center;
  font-size:13px;
  font-weight:700;
}
.tc-system-page-typing-coach-flick .tc-flick-filter-empty[hidden]{display:none!important}

/* Make the explicit route back to the smartphone practice top easy to find after results. */
.tc-system-page-typing-coach-flick .tc-flick-result-actions .tc-flick-result-home{
  border-color:#b98a21;
  background:#fffaf0;
  color:#0a3156;
  font-weight:900;
}

@media (max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-top:2px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button{
    width:100%;
    min-height:42px;
    padding:8px 10px;
    font-size:13px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button:first-child{
    grid-column:1/-1;
  }
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-help{
    margin-bottom:12px;
    font-size:11px;
  }
}

/* ---- typing-coach-polish-v18665 | assets/css/polish-v18665.css ---- */
/* v1.86.65 — five advanced smartphone lessons and long-prose practice layout. */

/* Advanced lessons intentionally use complete, meaningful sentences. Give the display text
   enough room for semantic 2–3 line breaks, while keeping the reading/input line secondary. */
.tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-display-prompt.has-semantic-break{
  height:auto;
  min-height:174px;
  padding:10px 10px 9px;
}
.tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-display-prompt.has-semantic-break strong{
  font-size:clamp(20px,5.8vw,27px);
  line-height:1.42;
  letter-spacing:.005em;
  white-space:pre-line;
  text-wrap:balance;
}
.tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-target.is-reading-xlong{
  height:auto;
  min-height:104px;
  padding:6px 5px;
  font-size:clamp(15px,4.45vw,19px);
  line-height:1.48;
  letter-spacing:.015em;
  overflow-wrap:anywhere;
}
.tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-target-card{
  overflow:visible;
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-display-prompt.has-semantic-break{
    min-height:166px;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-display-prompt.has-semantic-break strong{
    font-size:clamp(18px,5.5vw,23px);
    line-height:1.42;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-target.is-reading-xlong{
    min-height:96px;
    font-size:clamp(14px,4.15vw,17px);
  }
}

@media (min-width:701px){
  .tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-display-prompt.has-semantic-break{
    min-height:208px;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-display-prompt.has-semantic-break strong{
    font-size:clamp(30px,3.7vw,44px);
    line-height:1.36;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-flick-advanced-mode .tc-flick-target.is-reading-xlong{
    min-height:118px;
    font-size:clamp(20px,2.5vw,28px);
  }
}

/* ---- typing-coach-polish-v18666 | assets/css/polish-v18666.css ---- */
/* v1.86.66 — smartphone session controls, richer result coaching, and mobile ad-preview visibility. */

/* Result page: add depth without turning the result into a wall of text. */
.tc-system-page-typing-coach-flick .tc-flick-result-depth{
  margin:20px 0;
  padding:20px;
  border:1px solid #d8e5ee;
  border-radius:20px;
  background:linear-gradient(145deg,#f8fbfd 0%,#fffdf8 100%);
}
.tc-system-page-typing-coach-flick .tc-flick-result-depth>header>small,
.tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article>small,
.tc-system-page-typing-coach-flick .tc-flick-result-note>small{
  display:block;
  color:#9a6810;
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
}
.tc-system-page-typing-coach-flick .tc-flick-result-depth>header h3{
  margin:5px 0 8px;
  color:#0a2d50;
  font-size:clamp(21px,3vw,29px);
  line-height:1.42;
}
.tc-system-page-typing-coach-flick .tc-flick-result-depth>header p{
  margin:0;
  color:#50687d;
  line-height:1.85;
  font-size:14px;
}
.tc-system-page-typing-coach-flick .tc-flick-result-depth-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article{
  padding:16px 17px;
  border:1px solid #dce7ef;
  border-radius:16px;
  background:#fff;
}
.tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article strong{
  display:block;
  margin:4px 0 7px;
  color:#0b3157;
  font-size:16px;
  line-height:1.5;
}
.tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article p{
  margin:0;
  color:#536a7e;
  font-size:13px;
  line-height:1.75;
}
.tc-system-page-typing-coach-flick .tc-flick-result-note{
  margin-top:12px;
  padding:14px 16px;
  border-left:4px solid #d6a52e;
  border-radius:12px;
  background:#fff9ea;
}
.tc-system-page-typing-coach-flick .tc-flick-result-note p{
  margin:4px 0 0;
  color:#425d73;
  font-size:13px;
  line-height:1.8;
}

/* Keep ad positions visually separated from practice controls and result actions. */
.tc-system-page-typing-coach-flick .tc-flick-ad-wrap--before-lessons{margin-top:22px}
.tc-system-page-typing-coach-flick .tc-flick-ad-wrap--result-mid{margin:22px 0}

/* v1.86.58 hid the preview badge during practice to protect the keypad.
   On mobile preview we now keep a tiny edge badge visible so the operator can confirm PREVIEW mode
   without covering the keyboard or status controls. */
@media(max-width:767px){
  body.tc-flick-practice-active .tc-ad-preview-status{
    display:flex!important;
    position:fixed;
    left:auto;
    right:0;
    top:42%;
    bottom:auto;
    width:auto;
    max-width:26px;
    padding:7px 4px;
    border-radius:10px 0 0 10px;
    writing-mode:vertical-rl;
    text-orientation:mixed;
    opacity:.88;
    box-shadow:0 6px 18px rgba(0,0,0,.16);
  }
  body.tc-flick-practice-active .tc-ad-preview-status span{display:none!important}
  body.tc-flick-practice-active .tc-ad-preview-status b{
    font-size:9px;
    line-height:1.1;
    letter-spacing:.08em;
    white-space:nowrap;
  }

  .tc-system-page-typing-coach-flick .tc-flick-result-depth{padding:16px 14px;border-radius:17px}
  .tc-system-page-typing-coach-flick .tc-flick-result-depth-grid{grid-template-columns:1fr;gap:9px}
  .tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article{padding:14px}
  .tc-system-page-typing-coach-flick .tc-flick-result-depth>header h3{font-size:20px}
  .tc-system-page-typing-coach-flick .tc-flick-result-depth>header p,
  .tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article p,
  .tc-system-page-typing-coach-flick .tc-flick-result-note p{font-size:12px;line-height:1.72}

  /* Mobile ad-preview surfaces remain visible and intentionally resemble a real responsive placement. */
  .tc-system-page-typing-coach-flick .tc-page-ad-wrap,
  .tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap{
    margin-block:24px!important;
  }
  .tc-system-page-typing-coach-flick .tc-ad-preview-copy,
  .tc-system-page-typing-coach-flick-ranking .tc-ad-preview-copy{
    padding:18px 16px 24px;
  }
  .tc-system-page-typing-coach-flick .tc-ad-preview-copy>strong,
  .tc-system-page-typing-coach-flick-ranking .tc-ad-preview-copy>strong{
    font-size:19px;
  }
}

/* ---- typing-coach-polish-v18667 | assets/css/polish-v18667.css ---- */
/* v1.86.67 — smartphone lesson-list in-feed ad that visually follows the lesson-card rhythm. */

.tc-system-page-typing-coach-flick .tc-flick-infeed-ad{
  display:flex;
  width:100%;
  min-width:0;
  min-height:var(--tc-flick-infeed-card-height,220px);
  box-sizing:border-box;
  overflow:hidden;
  border:1px dashed #bfd0dc;
  border-radius:18px;
  background:#f8fbfd;
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad[hidden]{display:none!important}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad__inner{
  display:flex;
  width:100%;
  min-width:0;
  min-height:100%;
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad__inner>.tc-ad-slot{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  width:100%;
  min-width:0;
  min-height:var(--tc-flick-infeed-card-height,220px);
  border:0;
  border-radius:0;
  background:#fff;
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview-slot-status{
  flex:0 0 auto;
  width:100%;
  max-width:none;
  margin:0;
  padding:8px 12px;
  border:0;
  border-bottom:1px solid #e3ebf0;
  border-radius:0;
  background:#f6f9fb;
  box-sizing:border-box;
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview-slot-status b{font-size:10px}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview-slot-status span{font-size:9px}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview.is-layout-infeed,
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-live-content{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  border:0;
  border-radius:0;
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-layout-infeed .adsbygoogle{
  min-height:calc(var(--tc-flick-infeed-card-height,220px) - 34px);
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-fallback-card{
  flex:1 1 auto;
  margin:0;
  border:0;
  border-radius:0;
}

@media(max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-infeed-ad{
    min-height:var(--tc-flick-infeed-card-height,270px);
    border-radius:18px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-infeed-ad__inner>.tc-ad-slot{
    min-height:var(--tc-flick-infeed-card-height,270px);
  }
  .tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview.is-layout-infeed{
    grid-template-columns:1fr;
    min-height:0;
  }
  .tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview.is-layout-infeed .tc-ad-preview-art{
    min-height:96px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview.is-layout-infeed .tc-ad-preview-copy{
    padding:14px 16px 16px;
  }
}

/* ---- typing-coach-polish-v18668 | assets/css/polish-v18668.css ---- */
/* v1.86.68 — richer smartphone lesson cards + coordinated ad frames across flick-related pages.
   Add restrained color, depth, and category cues while keeping Typing Coach's navy/gold premium tone. */

/* --------------------------------------------------------------------------
   Smartphone lesson cards: shared premium surface
   -------------------------------------------------------------------------- */
.tc-system-page-typing-coach-flick .tc-flick-mode{
  --tc-flick-card-accent:#3f78a8;
  --tc-flick-card-soft:#eef6fc;
  --tc-flick-card-border:#c9ddeb;
  position:relative;
  overflow:hidden;
  border:1px solid var(--tc-flick-card-border);
  background:
    radial-gradient(circle at 96% 8%,color-mix(in srgb,var(--tc-flick-card-accent) 9%,transparent) 0 16%,transparent 17%),
    linear-gradient(145deg,#ffffff 0%,var(--tc-flick-card-soft) 100%);
  box-shadow:0 8px 22px rgba(8,46,79,.075);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.tc-system-page-typing-coach-flick .tc-flick-mode::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--tc-flick-card-accent),#d5a32b);
  opacity:.9;
}
.tc-system-page-typing-coach-flick .tc-flick-mode::after{
  content:"";
  position:absolute;
  top:0;
  left:18px;
  right:18px;
  height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tc-flick-card-accent) 45%,#d5a32b),transparent);
  opacity:.7;
}
.tc-system-page-typing-coach-flick .tc-flick-mode:hover,
.tc-system-page-typing-coach-flick .tc-flick-mode:focus-visible{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--tc-flick-card-accent) 56%,#c7d8e5);
  box-shadow:0 13px 28px rgba(8,46,79,.12);
}
.tc-system-page-typing-coach-flick .tc-flick-mode.is-selected{
  border-color:#d2a02b;
  background:linear-gradient(145deg,#fffdf7 0%,var(--tc-flick-card-soft) 100%);
  box-shadow:0 12px 30px rgba(153,108,12,.14);
}
.tc-system-page-typing-coach-flick .tc-flick-mode>small{
  color:color-mix(in srgb,var(--tc-flick-card-accent) 72%,#7b5909);
}
.tc-system-page-typing-coach-flick .tc-flick-mode strong{
  color:#0a3157;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__meta{
  display:flex!important;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__meta b,
.tc-system-page-typing-coach-flick .tc-flick-mode__meta em{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border-radius:999px;
  font-style:normal;
  font-size:10px;
  font-weight:850;
  line-height:1;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__meta b{
  border:1px solid color-mix(in srgb,var(--tc-flick-card-accent) 35%,#d9e4ec);
  background:color-mix(in srgb,var(--tc-flick-card-accent) 11%,#fff);
  color:color-mix(in srgb,var(--tc-flick-card-accent) 82%,#173a59);
}
.tc-system-page-typing-coach-flick .tc-flick-mode__meta em{
  border:1px solid #e4e9ee;
  background:rgba(255,255,255,.78);
  color:#597084;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__action{
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid color-mix(in srgb,var(--tc-flick-card-accent) 15%,#e5ebf0);
  color:#0c3d68!important;
  font-weight:900;
}

/* Difficulty colors are intentionally soft rather than rainbow-like. */
.tc-system-page-typing-coach-flick .tc-flick-mode[data-flick-difficulty="初心者"]{
  --tc-flick-card-accent:#4f9873;
  --tc-flick-card-soft:#f1faf5;
  --tc-flick-card-border:#cbe5d6;
}
.tc-system-page-typing-coach-flick .tc-flick-mode[data-flick-difficulty="初級"]{
  --tc-flick-card-accent:#3f78a8;
  --tc-flick-card-soft:#eef6fc;
  --tc-flick-card-border:#c9ddeb;
}
.tc-system-page-typing-coach-flick .tc-flick-mode[data-flick-difficulty="中級"]{
  --tc-flick-card-accent:#b98726;
  --tc-flick-card-soft:#fff9ea;
  --tc-flick-card-border:#ead8a7;
}
.tc-system-page-typing-coach-flick .tc-flick-mode[data-flick-difficulty="上級"]{
  --tc-flick-card-accent:#9a5d72;
  --tc-flick-card-soft:#fbf3f6;
  --tc-flick-card-border:#e7ccd5;
}

/* --------------------------------------------------------------------------
   In-feed ad: same visual rhythm and card size, but clearly remains an ad area
   -------------------------------------------------------------------------- */
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad{
  position:relative;
  border:1px solid #d8c58d;
  background:linear-gradient(145deg,#fffdf7 0%,#f4f8fb 55%,#fff8e7 100%);
  box-shadow:0 9px 24px rgba(8,46,79,.085);
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  z-index:2;
  width:5px;
  pointer-events:none;
  background:linear-gradient(180deg,#0d4b78 0%,#d5a32b 100%);
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad::after{
  content:"";
  position:absolute;
  top:0;
  left:20px;
  right:20px;
  z-index:2;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,#d5a32b,transparent);
  opacity:.72;
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad__inner{
  padding-left:4px;
  box-sizing:border-box;
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad__inner>.tc-ad-slot{
  background:rgba(255,255,255,.90);
}
.tc-system-page-typing-coach-flick .tc-flick-infeed-ad .tc-ad-preview-slot-status{
  background:linear-gradient(90deg,#f7fbfe,#fff8e8);
  border-bottom-color:#eadfbf;
}

/* --------------------------------------------------------------------------
   All standard ad frames on smartphone-input related pages
   -------------------------------------------------------------------------- */
.tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot,
.tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap{
  position:relative;
  overflow:hidden;
  box-sizing:border-box;
  padding:16px 14px;
  border:1px solid #d9d3bd;
  border-radius:18px;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(120deg,rgba(16,69,108,.25),rgba(213,163,43,.44),rgba(16,69,108,.17)) border-box;
  box-shadow:0 8px 24px rgba(8,46,79,.065);
}
.tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot::before,
.tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap::before{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:0;
  height:2px;
  background:linear-gradient(90deg,transparent,#174f77 22%,#d5a32b 50%,#174f77 78%,transparent);
  opacity:.72;
}
.tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot .tc-ad-slot,
.tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap .tc-ad-slot{
  border-radius:14px;
  overflow:hidden;
}
.tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot .tc-ad-preview-slot-status,
.tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap .tc-ad-preview-slot-status{
  border-color:#e5dcc4;
  background:linear-gradient(90deg,#f8fbfd,#fff9ea);
}

/* Ranking-related cards share the same restrained navy/gold depth. */
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article,
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-empty{
  border-color:#d8e2ea;
  background:linear-gradient(145deg,#ffffff 0%,#f5f9fc 74%,#fff9eb 100%);
  box-shadow:0 6px 18px rgba(8,46,79,.055);
}

@media(max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-mode{
    padding:19px 17px 18px 20px;
    border-radius:18px;
    box-shadow:0 7px 19px rgba(8,46,79,.075);
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode::before{width:4px}
  .tc-system-page-typing-coach-flick .tc-flick-mode strong{font-size:19px}
  .tc-system-page-typing-coach-flick .tc-flick-mode__meta{gap:5px}
  .tc-system-page-typing-coach-flick .tc-flick-mode__meta b,
  .tc-system-page-typing-coach-flick .tc-flick-mode__meta em{
    min-height:24px;
    padding:4px 8px;
    font-size:9px;
  }

  .tc-system-page-typing-coach-flick .tc-flick-infeed-ad,
  .tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot,
  .tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap{
    border-radius:17px;
    box-shadow:0 7px 20px rgba(8,46,79,.07);
  }
  .tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot,
  .tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap{
    margin-inline:0!important;
    padding:12px 9px;
  }
}

@media(prefers-reduced-motion:reduce){
  .tc-system-page-typing-coach-flick .tc-flick-mode{transition:none}
}

/* ---- typing-coach-polish-v18669 | assets/css/polish-v18669.css ---- */
/* v1.86.69 — align in-feed ad cards with adjacent lesson-card geometry.
   Feed rhythm comes first: same outer width / track / radius, while the ad remains visually disclosed. */

/* --------------------------------------------------------------------------
   Typing Coach Home — member lesson feed
   -------------------------------------------------------------------------- */
.tc-home .tc-top-practice-grid-member > .tc-top-practice-card,
.tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"]{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  justify-self:stretch!important;
  align-self:stretch!important;
  box-sizing:border-box!important;
  border-radius:20px!important;
}

/* The outer ad card follows the lesson-card frame, but keeps a restrained gold cue. */
.tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"]{
  border:1px solid #dbe3ec!important;
  border-top:4px solid #c79a3b!important;
  background:
    radial-gradient(circle at 92% 8%,rgba(199,154,59,.08),transparent 25%),
    linear-gradient(145deg,#ffffff 0%,#f7fafc 72%,#fffaf0 100%)!important;
  box-shadow:0 10px 28px rgba(11,35,68,.07)!important;
  overflow:hidden!important;
}
.tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-infeed-ad-inner,
.tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-slot,
.tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview-surface{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"] .tc-ad-preview-slot-status{
  border-bottom:1px solid #e4e9ed!important;
  background:linear-gradient(90deg,#f7fbfd 0%,#fff9eb 100%)!important;
}

/* --------------------------------------------------------------------------
   Discovery lesson feed — keep regular lesson cards and in-feed ads on one grid rhythm.
   -------------------------------------------------------------------------- */
.tc-discovery .tc-lesson-card-grid > .tc-lesson-card,
.tc-discovery .tc-lesson-card-grid > .tc-lesson-card--infeed-ad{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  justify-self:stretch!important;
  align-self:stretch!important;
  box-sizing:border-box!important;
}
.tc-discovery .tc-lesson-card-grid > .tc-lesson-card--infeed-ad{
  border-radius:20px!important;
  overflow:hidden!important;
}

/* --------------------------------------------------------------------------
   Smartphone-input lesson feed — same full-track rule for lesson and in-feed ad cards.
   -------------------------------------------------------------------------- */
.tc-system-page-typing-coach-flick .tc-flick-modes > .tc-flick-mode,
.tc-system-page-typing-coach-flick .tc-flick-modes > .tc-flick-infeed-ad{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
}

@media(max-width:767px){
  /* On phones, both content and in-feed ad cards consume exactly the same available column. */
  .tc-home .tc-top-practice-grid-member{
    width:100%!important;
    grid-template-columns:minmax(0,1fr)!important;
  }
  .tc-home .tc-top-practice-grid-member > .tc-top-practice-card,
  .tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad[data-tc-infeed-ad="HOME_MEMBER_INFEED"]{
    width:100%!important;
    max-width:none!important;
  }
}

/* ---- typing-coach-polish-v18670 | assets/css/polish-v18670.css ---- */
/* v1.86.70 — unify feed card widths with their surrounding section frames.
   The previous home card rule retained a legacy max-width:360px on tablet/mobile,
   which made popular/guest/member lesson cards look narrower than the section and ad frames. */

/* All Typing Coach Home lesson shelves use the full track allotted by their grid. */
.tc-home .tc-top-practice-grid{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.tc-home .tc-top-practice-grid > .tc-top-practice-card,
.tc-home .tc-top-practice-grid > .tc-lesson-card--infeed-ad{
  min-width:0!important;
  box-sizing:border-box!important;
}

/* Popular shelf: explicitly match the inner available width of the warm outer frame. */
.tc-home-popular-cards .tc-top-practice-grid{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  justify-content:stretch!important;
}
.tc-home-popular-cards .tc-top-practice-grid > .tc-top-practice-card,
.tc-home-popular-cards .tc-top-practice-grid > .tc-lesson-card--infeed-ad{
  width:100%!important;
  min-width:0!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
}

/* Guest/member shelves use the same rule so login state does not change the visual rhythm. */
.tc-home .tc-top-practice-grid-guest > .tc-top-practice-card,
.tc-home .tc-top-practice-grid-member > .tc-top-practice-card,
.tc-home .tc-top-practice-grid-popular > .tc-top-practice-card,
.tc-home .tc-top-practice-grid-guest > .tc-lesson-card--infeed-ad,
.tc-home .tc-top-practice-grid-member > .tc-lesson-card--infeed-ad,
.tc-home .tc-top-practice-grid-popular > .tc-lesson-card--infeed-ad{
  width:100%!important;
  min-width:0!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
}

/* Tablet and phone are where the old 360px cap was visible. Remove it for every Home feed. */
@media(max-width:1100px){
  .tc-home .tc-top-practice-grid,
  .tc-home .tc-top-practice-grid.tc-card-count-1,
  .tc-home .tc-top-practice-grid.tc-card-count-2,
  .tc-home .tc-top-practice-grid.tc-card-count-3,
  .tc-home .tc-top-practice-grid.tc-card-count-4{
    width:100%!important;
    max-width:none!important;
    justify-content:stretch!important;
  }
  .tc-home .tc-top-practice-grid > .tc-top-practice-card,
  .tc-home .tc-top-practice-grid > .tc-lesson-card--infeed-ad{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    justify-self:stretch!important;
  }
}

@media(max-width:700px){
  /* One-column mobile feed: outer section, lesson card and in-feed ad share one width. */
  .tc-home .tc-top-practice-grid,
  .tc-home .tc-top-practice-grid.tc-card-count-1,
  .tc-home .tc-top-practice-grid.tc-card-count-2,
  .tc-home .tc-top-practice-grid.tc-card-count-3,
  .tc-home .tc-top-practice-grid.tc-card-count-4{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .tc-home-popular-cards .tc-top-practice-card,
  .tc-home .tc-top-practice-grid-guest .tc-top-practice-card,
  .tc-home .tc-top-practice-grid-member .tc-top-practice-card,
  .tc-home .tc-top-practice-grid-popular .tc-top-practice-card{
    width:100%!important;
    max-width:none!important;
  }

  /* Keep generic page ad frames inside the same content width instead of visually overhanging. */
  .tc-home .tc-page-ad-wrap{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
}

/* Discovery and smartphone-input feeds were already aligned in v1.86.69;
   preserve the same direct-child contract explicitly for guest/member-visible variants. */
.tc-discovery .tc-lesson-card-grid > .tc-lesson-card,
.tc-discovery .tc-lesson-card-grid > .tc-lesson-card--infeed-ad,
.tc-system-page-typing-coach-flick .tc-flick-modes > .tc-flick-mode,
.tc-system-page-typing-coach-flick .tc-flick-modes > .tc-flick-infeed-ad{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
}

/* ---- typing-coach-polish-v18671 | assets/css/polish-v18671.css ---- */
/* Typing Coach v1.86.71 — Japanese semantic line wrapping across public/user-facing pages.
 * Prevent visually awkward breaks such as "タイピング教 / 材" while retaining responsive safety.
 */

/* Reusable authored heading chunks: keep each meaning unit together whenever it fits. */
.tc-semantic-heading{
  line-break:strict;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
}
.tc-semantic-heading__chunk{
  display:inline-block;
  max-width:100%;
  white-space:nowrap;
}
.tc-semantic-heading__chunk + .tc-semantic-heading__chunk::before{
  content:" ";
  white-space:normal;
}

/* Modern Japanese browsers can choose phrase boundaries automatically.
 * This becomes the common Typing Coach policy for headings, explanatory copy,
 * cards and CTAs across guest and logged-in system pages. */
.tc-system-body :is(
  h1,h2,h3,h4,
  .tc-kicker,
  .tc-discovery-lead,
  .tc-home-lead,
  .tc-card-title,
  .tc-lesson-card-title,
  .tc-lesson-card-description,
  .tc-top-practice-card,
  .tc-inline-help-link,
  .tc-linkbtn,
  .tc-primary,
  .tc-secondary,
  button
){
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
  text-wrap:pretty;
}

@supports (word-break:auto-phrase){
  .tc-system-body :is(
    h1,h2,h3,h4,p,li,
    .tc-kicker,
    .tc-discovery-lead,
    .tc-home-lead,
    .tc-card-title,
    .tc-lesson-card-title,
    .tc-lesson-card-description,
    .tc-inline-help-link,
    .tc-linkbtn,
    .tc-primary,
    .tc-secondary,
    button
  ){
    word-break:auto-phrase;
  }
}

/* Practice/input characters are functional glyph streams, not prose.
 * Keep them out of phrase wrapping rules. */
.tc-system-body :is(
  .tc-jp,
  .tc-romaji,
  .tc-flick-target,
  .tc-flick-display-prompt strong,
  [data-flick-target],
  [data-flick-display],
  .tc-ranking-table,
  code,pre
){
  word-break:normal;
  overflow-wrap:normal;
}

/* Discovery hero: prioritize the two intended meaning units on phones/tablets. */
.tc-system-page-typing-lessons #tc-discovery-title.tc-semantic-heading{
  max-width:100%;
}

@media(max-width:700px){
  .tc-system-page-typing-lessons #tc-discovery-title.tc-semantic-heading{
    font-size:clamp(31px,8.7vw,42px);
    line-height:1.28;
    letter-spacing:.005em;
  }
  .tc-system-page-typing-lessons #tc-discovery-title .tc-semantic-heading__chunk{
    display:block;
    width:max-content;
    max-width:100%;
  }
  .tc-system-page-typing-lessons #tc-discovery-title .tc-semantic-heading__chunk + .tc-semantic-heading__chunk::before{
    content:none;
  }
}

/* Very narrow phones: allow a chunk to wrap only if it truly cannot fit.
 * auto-phrase still prefers natural Japanese phrase boundaries. */
@media(max-width:380px){
  .tc-semantic-heading__chunk{
    white-space:normal;
  }
  @supports (word-break:auto-phrase){
    .tc-semantic-heading__chunk{word-break:auto-phrase}
  }
}

/* ---- typing-coach-polish-v18672 | assets/css/polish-v18672.css ---- */
/* Typing Coach v1.86.72 — mobile text overflow safety + semantic wrapping hardening.
 *
 * v1.86.71 introduced meaning-unit wrapping, but authored chunks could still keep
 * white-space:nowrap and become wider than the viewport. This layer keeps the
 * semantic grouping while always allowing a chunk to wrap when it physically
 * cannot fit, and adds a conservative mobile min-width/overflow guard to public
 * and logged-in Typing Coach system pages.
 */

/* Never let an authored semantic chunk be wider than its text lane on phones. */
@media (max-width:760px){
  .tc-semantic-heading,
  .tc-semantic-heading__chunk{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  .tc-semantic-heading__chunk{
    width:100%!important;
    white-space:normal!important;
    line-break:strict!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
    text-wrap:pretty;
  }

  @supports (word-break:auto-phrase){
    .tc-semantic-heading__chunk{
      word-break:auto-phrase!important;
      overflow-wrap:normal!important;
    }
  }

  /* Flex/grid children may otherwise preserve intrinsic text width and force
     the whole page wider than the viewport. min-width:0 is intentionally
     broad but does not alter visual widths by itself. */
  body.tc-system-body .tc-system-main :is(
    section,article,header,footer,aside,
    .tc-system-main__inner,
    .tc-home,
    .tc-discovery,
    .tc-features-page,
    .tc-auth-shell,
    .tc-account-panel,
    .tc-account-section,
    .tc-flick,
    .tc-user-faq,
    .tc-lesson-card,
    .tc-top-practice-card,
    .tc-page-ad-wrap
  ){
    min-width:0!important;
    box-sizing:border-box!important;
  }

  /* Public/user-facing prose must wrap inside its own container. Avoid
     applying this to practice glyph streams, rankings/tables or code. */
  body.tc-system-body .tc-system-main :is(
    h1,h2,h3,h4,h5,
    .tc-card-title,
    .tc-lesson-card-title,
    .tc-lesson-card-description,
    .tc-discovery-lead,
    .tc-home-lead,
    .tc-features-heading,
    .tc-features-heading p,
    .tc-auth-lead,
    .tc-account-panel p,
    .tc-account-section p,
    .tc-inline-help-link,
    .tc-user-faq-strip,
    .tc-copy-line,
    .tc-semantic-copy-line,
    .tc-auth-brand-line,
    .tc-flick-title-line
  ){
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    line-break:strict!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
    text-overflow:clip!important;
  }

  @supports (word-break:auto-phrase){
    body.tc-system-body .tc-system-main :is(
      h1,h2,h3,h4,h5,
      .tc-card-title,
      .tc-lesson-card-title,
      .tc-lesson-card-description,
      .tc-discovery-lead,
      .tc-home-lead,
      .tc-features-heading,
      .tc-features-heading p,
      .tc-auth-lead,
      .tc-account-panel p,
      .tc-account-section p,
      .tc-inline-help-link,
      .tc-copy-line,
      .tc-semantic-copy-line,
      .tc-auth-brand-line,
      .tc-flick-title-line
    ){
      word-break:auto-phrase!important;
      overflow-wrap:normal!important;
    }
  }

  /* Discovery page: preserve the requested first meaning unit, then let the
     second unit wrap naturally (e.g. "タイピング教材を / 見つける") instead
     of clipping at the right edge. */
  .tc-system-page-typing-lessons #tc-discovery-title.tc-semantic-heading{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    font-size:clamp(30px,8.1vw,39px)!important;
    line-height:1.3!important;
  }
  .tc-system-page-typing-lessons #tc-discovery-title .tc-semantic-heading__chunk{
    display:block!important;
    width:100%!important;
  }

  /* Text/media should never create horizontal page overflow. */
  body.tc-system-body .tc-system-main img,
  body.tc-system-body .tc-system-main svg,
  body.tc-system-body .tc-system-main video,
  body.tc-system-body .tc-system-main iframe{
    max-width:100%;
    height:auto;
  }
}

/* Extra-narrow phones: slightly reduce only the discovery hero, rather than
   forcing a semantic phrase off-screen. */
@media (max-width:390px){
  .tc-system-page-typing-lessons #tc-discovery-title.tc-semantic-heading{
    font-size:clamp(28px,8vw,34px)!important;
  }
}

/* ---- typing-coach-polish-v18673 | assets/css/polish-v18673.css ---- */
/* Typing Coach v1.86.73 — unify the compact smartphone header on standalone lesson pages.
 *
 * Root cause: the compact header introduced in v1.86.18 was scoped to
 * body.tc-system-body. A lesson opened from a lesson card uses the standalone
 * template (body.tc-standalone-body), so old responsive desktop-navigation
 * rules remained active on phones. That produced the large two-column header
 * seen by both guests and logged-in members.
 */

@media (max-width:760px){
  /* Standalone lesson pages use exactly the same compact shell as system pages. */
  body.tc-standalone-body .tc-system-header{
    position:relative!important;
    top:auto!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-header__inner{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    max-width:none!important;
    min-height:68px!important;
    height:auto!important;
    margin:0!important;
    padding:8px 12px!important;
    box-sizing:border-box!important;
  }
  body.tc-standalone-body .tc-system-header .tc-header-nav-zone{
    display:none!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo{
    grid-column:1!important;
    grid-row:1!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    justify-self:start!important;
    align-self:center!important;
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    gap:9px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield,
  body.tc-standalone-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:36px!important;
    height:41px!important;
    min-width:36px!important;
    min-height:41px!important;
    max-width:36px!important;
    max-height:41px!important;
    flex:0 0 36px!important;
    object-fit:contain!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo__wordmark{
    min-width:0!important;
    max-width:100%!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo__wordmark strong{
    display:block!important;
    font-size:20px!important;
    line-height:1.02!important;
    white-space:nowrap!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo__wordmark small{
    display:block!important;
    margin-top:4px!important;
    font-size:6.8px!important;
    line-height:1!important;
    letter-spacing:.16em!important;
    white-space:nowrap!important;
  }

  body.tc-standalone-body .tc-system-header .tc-mobile-header-actions{
    grid-column:2!important;
    grid-row:1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:7px!important;
    min-width:0!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-register-cta{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    min-height:42px!important;
    padding:8px 11px!important;
    border:1px solid #e0b54c!important;
    border-radius:12px!important;
    background:linear-gradient(135deg,#e8b948,#f0c65c)!important;
    color:#08284a!important;
    box-shadow:0 5px 14px rgba(0,0,0,.13)!important;
    text-decoration:none!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:900!important;
    white-space:nowrap!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-menu-toggle{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:inline-grid!important;
    place-items:center!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(226,181,73,.72)!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.055)!important;
    color:#f1c85f!important;
    box-shadow:none!important;
    cursor:pointer!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-menu-toggle:hover,
  body.tc-standalone-body .tc-system-header .tc-mobile-menu-toggle:focus-visible,
  body.tc-standalone-body .tc-system-header .tc-mobile-menu-toggle[aria-expanded="true"]{
    background:rgba(226,181,73,.13)!important;
    border-color:#e5b94e!important;
    outline:none!important;
  }

  /* Drawer: one clear vertical list, usable even for the longer member menu. */
  body.tc-standalone-body .tc-system-header .tc-mobile-nav-drawer{
    position:absolute!important;
    top:calc(100% - 1px)!important;
    left:10px!important;
    right:10px!important;
    z-index:100000!important;
    display:block!important;
    width:auto!important;
    max-height:calc(100dvh - 84px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding:8px!important;
    border:1px solid rgba(226,181,73,.48)!important;
    border-radius:0 0 18px 18px!important;
    background:linear-gradient(180deg,#071c3a,#06162f)!important;
    box-shadow:0 18px 34px rgba(2,17,37,.32)!important;
    box-sizing:border-box!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-nav-drawer[hidden]{
    display:none!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-nav{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:3px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a{
    width:100%!important;
    min-height:43px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
    margin:0!important;
    padding:9px 12px!important;
    border:1px solid transparent!important;
    border-radius:11px!important;
    background:transparent!important;
    color:#f5f8fb!important;
    text-align:left!important;
    text-decoration:none!important;
    font-size:13px!important;
    line-height:1.25!important;
    font-weight:800!important;
    white-space:normal!important;
    box-sizing:border-box!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a:hover,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a:focus-visible{
    background:rgba(255,255,255,.07)!important;
    border-color:rgba(255,255,255,.12)!important;
    outline:none!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a.is-current,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a[aria-current="page"]{
    background:rgba(226,181,73,.12)!important;
    border-color:rgba(226,181,73,.62)!important;
    color:#f1cb68!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-nav .tc-nav-icon,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav .tc-login-user-icon{
    width:22px!important;
    min-width:22px!important;
    display:inline-grid!important;
    place-items:center!important;
    margin:0!important;
    color:#e5b94e!important;
    font-size:14px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-nav .tc-login-user-icon svg{
    width:17px!important;
    height:17px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-auth-link{
    margin-top:3px!important;
    border-top:1px solid rgba(255,255,255,.11)!important;
    border-radius:0 0 10px 10px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-auth-link.is-login{
    color:#f1cb68!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-user-summary{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    min-width:0!important;
    padding:9px 12px 7px!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
    color:#dce8f1!important;
    font-size:11px!important;
    line-height:1.3!important;
    font-weight:800!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-user-summary>span:first-child{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-user-badges{
    display:flex!important;
    flex:0 0 auto!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
    gap:4px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-user-badges b{
    display:inline-flex!important;
    min-height:22px!important;
    align-items:center!important;
    padding:3px 7px!important;
    border:1px solid rgba(226,181,73,.42)!important;
    border-radius:999px!important;
    color:#f1cb68!important;
    font-size:9px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  /* Shared hardening for both the normal system pages and standalone lessons. */
  body.tc-system-body .tc-system-header .tc-mobile-nav-drawer,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav-drawer{
    max-height:calc(100dvh - 84px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    scrollbar-width:thin!important;
  }
}

@media (max-width:390px){
  body.tc-standalone-body .tc-system-header .tc-app-header__inner{
    gap:7px!important;
    padding-inline:9px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo{
    gap:7px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo__wordmark strong{
    font-size:18px!important;
  }
  body.tc-standalone-body .tc-system-header .tc-app-logo__wordmark small{
    font-size:6.2px!important;
    letter-spacing:.12em!important;
  }
  body.tc-standalone-body .tc-system-header .tc-mobile-register-cta{
    padding-inline:9px!important;
  }
}

/* ---- typing-coach-polish-v18674 | assets/css/polish-v18674.css ---- */
/* Typing Coach v1.86.74 — use more of the smartphone viewport on My Typing Coach.
 *
 * The dashboard previously inherited the generic panel padding (22px) in addition
 * to the system-page gutter, which made every dashboard section noticeably narrow
 * on phones. Desktop/tablet geometry is unchanged; only the compact mobile canvas
 * is widened while preserving comfortable inner padding.
 */

@media (max-width:760px){
  .tc-system-page-my-typing-coach .tc-system-main{
    padding-left:5px!important;
    padding-right:5px!important;
  }
  .tc-system-page-my-typing-coach .tc-system-main__inner{
    width:100%!important;
    max-width:none!important;
    margin-inline:auto!important;
    padding-inline:0!important;
  }
  .tc-system-page-my-typing-coach .tc-my-panel{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:8px 7px 22px!important;
    box-sizing:border-box!important;
    border-radius:16px!important;
  }

  /* All dashboard zones should use the widened panel canvas rather than keeping
     a second hidden max-width or horizontal inset. */
  .tc-system-page-my-typing-coach .tc-my-panel > :is(
    .tc-my-page-hero,
    .tc-my-jump-nav,
    .tc-user-faq-strip,
    .tc-notice,
    .tc-page-ad-wrap,
    .tc-my-today-hub,
    .tc-my-goals,
    .tc-my-growth-report-status,
    .tc-my-score-zone,
    .tc-my-30day,
    .tc-my-flick-summary,
    .tc-my-brand-benefits,
    .tc-my-history-section
  ){
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* The hero/status block shown in the supplied screenshot can safely gain a
     little more usable width without making text touch the screen edge. */
  .tc-system-page-my-typing-coach .tc-my-page-hero{
    padding:20px 14px!important;
  }
  .tc-system-page-my-typing-coach .tc-my-page-hero-status{
    width:100%!important;
    max-width:none!important;
    padding:6px!important;
    box-sizing:border-box!important;
  }
  .tc-system-page-my-typing-coach .tc-my-page-hero-status article{
    width:100%!important;
    box-sizing:border-box!important;
  }

  /* Keep section interiors roomy, but reclaim a few pixels from the old desktop
     padding so cards/forms/tables feel intentionally full-width on a phone. */
  .tc-system-page-my-typing-coach .tc-my-today-hub,
  .tc-system-page-my-typing-coach .tc-my-score-zone,
  .tc-system-page-my-typing-coach .tc-my-history-section,
  .tc-system-page-my-typing-coach .tc-my-goals,
  .tc-system-page-my-typing-coach .tc-my-growth-report-status,
  .tc-system-page-my-typing-coach .tc-my-flick-summary,
  .tc-system-page-my-typing-coach .tc-my-brand-benefits{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .tc-system-page-my-typing-coach .tc-my-jump-nav{
    padding-left:6px!important;
    padding-right:6px!important;
  }

  .tc-system-page-my-typing-coach .tc-table-wrap{
    max-width:100%!important;
  }
}

@media (max-width:390px){
  .tc-system-page-my-typing-coach .tc-system-main{
    padding-left:3px!important;
    padding-right:3px!important;
  }
  .tc-system-page-my-typing-coach .tc-my-panel{
    padding-left:5px!important;
    padding-right:5px!important;
  }
  .tc-system-page-my-typing-coach .tc-my-page-hero{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}

/* ---- typing-coach-polish-v18675 | assets/css/polish-v18675.css ---- */
/* v1.86.75 — shared bottom links + website HOME in legal footer. */

.tc-system-bottom-home-links{
  width:min(calc(100% - 40px),920px);
  margin:18px auto 26px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.tc-system-main__inner>.tc-system-bottom-home-links{
  width:min(100%,920px);
}
.tc-bottom-home-link{
  min-width:0;
  min-height:68px;
  padding:12px 18px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  column-gap:12px;
  align-items:center;
  border:1px solid #cbd9e4;
  border-radius:18px;
  background:#fff;
  color:#123b60;
  text-decoration:none;
  box-shadow:0 10px 26px rgba(12,48,78,.07);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.tc-bottom-home-link>span{
  grid-row:1/3;
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  font-size:13px;
  font-weight:900;
  line-height:1;
}
.tc-bottom-home-link>strong{align-self:end;font-size:15px;line-height:1.2}
.tc-bottom-home-link>small{align-self:start;margin-top:3px;color:#708397;font-size:11px;font-weight:700;line-height:1.25}
.tc-bottom-home-link--typing{border-color:#dbc16f;background:linear-gradient(135deg,#fffdf7,#f5f9fc)}
.tc-bottom-home-link--typing>span{background:#0b345b;color:#f3c552;box-shadow:inset 0 0 0 1px rgba(220,176,55,.38)}
.tc-bottom-home-link--site>span{background:#eef5fa;color:#164f79;border:1px solid #d3e0e9;font-size:18px}
.tc-bottom-home-link:hover{transform:translateY(-1px);border-color:#c49a2f;box-shadow:0 13px 30px rgba(12,48,78,.1)}
.tc-bottom-home-link:focus-visible{outline:3px solid rgba(205,163,55,.34);outline-offset:3px}

/* The lesson app uses a separate standalone shell; keep its return links on
   the same readable lane as the application. */
.tc-standalone-body>.tc-system-bottom-home-links{margin-top:22px;margin-bottom:26px}

.tc-system-footer .tc-footer-home-link{font-weight:800;color:#4d667b}

@media(max-width:700px){
  .tc-system-bottom-home-links,
  .tc-system-main__inner>.tc-system-bottom-home-links{
    width:calc(100% - 28px);
    max-width:560px;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:14px;
    margin-bottom:22px;
  }
  .tc-system-main__inner>.tc-system-bottom-home-links{width:100%}
  .tc-bottom-home-link{min-height:62px;padding:10px 12px;column-gap:9px;border-radius:15px}
  .tc-bottom-home-link>span{width:34px;height:34px;border-radius:10px;font-size:11px}
  .tc-bottom-home-link--site>span{font-size:16px}
  .tc-bottom-home-link>strong{font-size:13px}
  .tc-bottom-home-link>small{font-size:9px}
  .tc-system-footer{padding-inline:12px;text-align:center}
}

@media(max-width:380px){
  .tc-system-bottom-home-links,
  .tc-system-main__inner>.tc-system-bottom-home-links{grid-template-columns:1fr}
  .tc-bottom-home-link{min-height:58px}
}

/* ---- typing-coach-polish-v18676 | assets/css/polish-v18676.css ---- */
/* v1.86.76 — Features page mobile width + clipping repair.
   Keep the editorial/semantic line breaks, but never allow a title, paragraph,
   mock device or card to exceed the phone viewport. */

@media (max-width:760px){
  /* Use almost all of the phone width on the Features page. */
  .tc-system-page-typing-coach-features .tc-system-main{
    padding-inline:4px!important;
    overflow-x:hidden!important;
  }
  .tc-system-page-typing-coach-features .tc-system-main__inner,
  .tc-system-page-typing-coach-features .tc-features-page{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-inline:auto!important;
    overflow-x:hidden!important;
  }

  /* Legacy feature visuals were authored with content-box sizing.  A child
     with width:100% + padding could therefore become wider than its parent. */
  .tc-system-page-typing-coach-features .tc-features-page *,
  .tc-system-page-typing-coach-features .tc-features-page *::before,
  .tc-system-page-typing-coach-features .tc-features-page *::after{
    box-sizing:border-box;
  }

  .tc-system-page-typing-coach-features .tc-features-hero,
  .tc-system-page-typing-coach-features .tc-features-section,
  .tc-system-page-typing-coach-features .tc-features-final{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .tc-system-page-typing-coach-features .tc-features-hero{
    padding:30px 14px 24px!important;
    border-radius:18px!important;
    gap:22px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-section{
    padding-left:14px!important;
    padding-right:14px!important;
    margin-top:16px!important;
    margin-bottom:16px!important;
    border-radius:18px!important;
  }

  /* Hero copy: semantic chunks stay meaningful, but long chunks are allowed
     to wrap and are sized to fit real phone widths. */
  .tc-system-page-typing-coach-features .tc-features-hero-copy,
  .tc-system-page-typing-coach-features .tc-features-hero-copy h1,
  .tc-system-page-typing-coach-features .tc-features-hero-copy p,
  .tc-system-page-typing-coach-features .tc-features-hero-copy strong,
  .tc-system-page-typing-coach-features .tc-features-hero-copy .tc-title-row,
  .tc-system-page-typing-coach-features .tc-features-hero-copy .tc-title-chunk{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .tc-system-page-typing-coach-features .tc-features-hero-copy h1{
    margin:10px 0 16px!important;
    font-size:clamp(28px,7.2vw,44px)!important;
    line-height:1.34!important;
    letter-spacing:-.025em!important;
    overflow:visible!important;
  }
  .tc-system-page-typing-coach-features .tc-features-hero-copy .tc-title-row,
  .tc-system-page-typing-coach-features .tc-features-hero-copy .tc-title-chunk{
    display:block!important;
    white-space:normal!important;
    line-break:strict!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  @supports (word-break:auto-phrase){
    .tc-system-page-typing-coach-features .tc-features-hero-copy .tc-title-row,
    .tc-system-page-typing-coach-features .tc-features-hero-copy .tc-title-chunk{
      word-break:auto-phrase!important;
      overflow-wrap:normal!important;
    }
  }
  .tc-system-page-typing-coach-features .tc-features-hero-copy p{
    margin-right:0!important;
    font-size:15px!important;
    line-height:1.85!important;
    white-space:normal!important;
    line-break:strict!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  @supports (word-break:auto-phrase){
    .tc-system-page-typing-coach-features .tc-features-hero-copy p{
      word-break:auto-phrase!important;
      overflow-wrap:normal!important;
    }
  }

  /* Hero CTAs should use the full content lane without forcing overflow. */
  .tc-system-page-typing-coach-features .tc-features-hero-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-hero-actions .tc-linkbtn{
    width:100%!important;
    min-width:0!important;
    padding:13px 10px!important;
    text-align:center!important;
    white-space:normal!important;
  }

  /* The phone/mockup visual was the second major source of right clipping. */
  .tc-system-page-typing-coach-features .tc-features-hero-art,
  .tc-system-page-typing-coach-features .tc-hero-device,
  .tc-system-page-typing-coach-features .tc-hero-device-screen,
  .tc-system-page-typing-coach-features .tc-hero-stat-card,
  .tc-system-page-typing-coach-features .tc-hero-books,
  .tc-system-page-typing-coach-features .tc-hero-tagline{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .tc-system-page-typing-coach-features .tc-features-hero-art{
    overflow:hidden!important;
    padding-inline:0!important;
  }
  .tc-system-page-typing-coach-features .tc-hero-device{
    margin:12px 0!important;
    padding:14px!important;
  }
  .tc-system-page-typing-coach-features .tc-hero-device-screen{
    padding:16px 14px!important;
    overflow:hidden!important;
  }
  .tc-system-page-typing-coach-features .tc-hero-screen-title{
    max-width:100%!important;
    font-size:clamp(23px,6.7vw,31px)!important;
    line-height:1.42!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  @supports (word-break:auto-phrase){
    .tc-system-page-typing-coach-features .tc-hero-screen-title{
      word-break:auto-phrase!important;
      overflow-wrap:normal!important;
    }
  }

  /* Keep all other feature-page cards/visuals on the same wide lane. */
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading,
    .tc-features-six,
    .tc-features-six article,
    .tc-features-flick,
    .tc-features-flick-copy,
    .tc-features-flick-visual,
    .tc-growth-cycle-layout,
    .tc-growth-cycle-track,
    .tc-growth-cycle-side,
    .tc-coach-value,
    .tc-coach-value-copy,
    .tc-coach-value-side,
    .tc-feature-catalog-grid,
    .tc-report-showcase,
    .tc-report-preview,
    .tc-report-benefits,
    .tc-goal-input-mock,
    .tc-plan-current-grid,
    .tc-audience-cards,
    .tc-audience-table-wrap
  ){
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .tc-system-page-typing-coach-features .tc-features-page :is(h2,h3,p,strong,b,small,span){
    max-width:100%;
  }

  .tc-system-page-typing-coach-features .tc-audience-table-wrap,
  .tc-system-page-typing-coach-features .tc-plan-table-wrap{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
}

@media (max-width:520px){
  .tc-system-page-typing-coach-features .tc-features-hero-actions{
    grid-template-columns:1fr!important;
  }
  .tc-system-page-typing-coach-features .tc-features-hero-copy h1{
    font-size:clamp(28px,7.2vw,36px)!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-section{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}

/* ---- typing-coach-polish-v18677 | assets/css/polish-v18677.css ---- */
/* v1.86.77 — smartphone flick ranking: wider mobile canvas + two-stage ranking selector. */

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-selector{
  margin:18px 0 16px;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:6px;
  border:1px solid #d9e4ec;
  border-radius:18px;
  background:#eef4f8;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a{
  display:flex;
  min-width:0;
  min-height:72px;
  padding:12px 14px;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:#24465f;
  text-decoration:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  text-align:center;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a strong{
  color:#0a3157;
  font-size:18px;
  line-height:1.25;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a span{
  color:#657b8e;
  font-size:11px;
  font-weight:700;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a.is-active{
  border-color:#d5a329;
  background:linear-gradient(145deg,#0a3157,#174e76);
  box-shadow:0 7px 18px rgba(8,48,84,.14);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a.is-active strong,
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a.is-active span{color:#fff}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-lesson-picker{
  margin-top:12px;
  padding:18px;
  border:1px solid #dce5ec;
  border-radius:20px;
  background:linear-gradient(145deg,#fff 0%,#f7fafc 72%,#fff9eb 100%);
  box-shadow:0 7px 20px rgba(8,46,79,.055);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-picker-head>span{
  display:block;
  margin-bottom:4px;
  color:#ae7605;
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-picker-head>strong{
  display:block;
  color:#0a3157;
  font-size:21px;
  line-height:1.35;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-picker-head>p{
  margin:6px 0 0;
  color:#607487;
  font-size:12px;
  line-height:1.7;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-difficulty{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin:15px 0 14px;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-difficulty>a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:40px;
  padding:8px 6px;
  border:1px solid #d5e1ea;
  border-radius:999px;
  background:#fff;
  color:#164165;
  font-size:12px;
  font-weight:850;
  text-decoration:none;
  text-align:center;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-difficulty>a.is-active{
  border-color:#d6a329;
  background:#fff7df;
  color:#875800;
  box-shadow:inset 0 0 0 1px rgba(214,163,41,.18);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-lesson-form{
  display:block;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-lesson-form>label{
  display:block;
  margin:0 0 6px;
  color:#24465f;
  font-size:12px;
  font-weight:850;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-select-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-select-row select,
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-select-row button{
  min-height:46px;
  box-sizing:border-box;
  border-radius:12px;
  font:inherit;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-select-row select{
  width:100%;
  min-width:0;
  padding:8px 38px 8px 12px;
  border:1px solid #ccdbe6;
  background:#fff;
  color:#0b3155;
  font-weight:750;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-select-row button{
  padding:8px 18px;
  border:1px solid #0a3157;
  background:#0a3157;
  color:#fff;
  font-weight:850;
  cursor:pointer;
}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:18px 0 10px;
  padding:13px 15px;
  border-left:4px solid #d5a329;
  border-radius:0 14px 14px 0;
  background:#f4f8fb;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current small{
  width:100%;
  color:#718496;
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current strong{
  color:#0a3157;
  font-size:20px;
  line-height:1.3;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current span{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border:1px solid #dfc577;
  border-radius:999px;
  background:#fff8e7;
  color:#8b6204;
  font-size:10px;
  font-weight:850;
}

@media (max-width:760px){
  /* Use nearly all available phone width, matching the recent My Typing Coach / Features improvements. */
  .tc-system-page-typing-coach-flick-ranking .tc-system-main{
    padding:8px 4px 40px!important;
    overflow-x:hidden!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-system-main__inner{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding-inline:0!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking.tc-panel{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:8px 0 18px!important;
    padding:8px 7px 16px!important;
    border-radius:18px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking>*{
    min-width:0;
    box-sizing:border-box;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero{
    width:100%!important;
    max-width:none!important;
    padding:24px 14px 20px!important;
    border-radius:18px!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero h1,
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero p{
    max-width:100%!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    gap:8px!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero-actions .tc-linkbtn{
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    text-align:center!important;
  }

  .tc-system-page-typing-coach-flick-ranking .tc-page-ad-wrap,
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-selector,
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current,
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary,
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-empty,
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table-wrap{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-selector{
    margin-top:12px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch{
    gap:6px;
    padding:5px;
    border-radius:16px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a{
    min-height:64px;
    padding:10px 7px;
    border-radius:12px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a strong{font-size:16px}
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a span{font-size:9px}

  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-lesson-picker{
    padding:15px 10px 13px;
    border-radius:17px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-difficulty{
    gap:5px;
    margin:13px 0 12px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-difficulty>a{
    min-height:38px;
    padding:7px 3px;
    font-size:11px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-select-row{
    grid-template-columns:minmax(0,1fr) 64px;
    gap:6px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-select-row button{
    padding-inline:8px;
    font-size:12px;
  }

  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current{
    margin-top:14px;
    padding:11px 12px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current strong{
    font-size:18px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary{
    gap:8px!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article{
    width:100%!important;
    padding:14px!important;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table-wrap{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    border-radius:14px;
  }
}

@media (max-width:380px){
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-difficulty{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (hover:hover){
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a:hover{
    transform:translateY(-1px);
  }
}

@media (prefers-reduced-motion:reduce){
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-switch>a{transition:none}
}

/* ---- typing-coach-polish-v18678 | assets/css/polish-v18678.css ---- */
/* v1.86.78 — smartphone flick ranking hero tap/click safety.
 * Decorative hero layers must never sit above CTA links on touch devices.
 */

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero{
  isolation:isolate;
}

/* The large decorative TC glyph is visual only. Without pointer-events:none
   it can become the hit target above nearby links on some mobile browsers. */
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero::before,
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero::after{
  pointer-events:none!important;
  user-select:none!important;
  z-index:0!important;
}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero > *{
  position:relative;
  z-index:1;
}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero-actions{
  position:relative;
  z-index:3;
  pointer-events:auto!important;
}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero-actions a.tc-linkbtn{
  position:relative;
  z-index:4;
  pointer-events:auto!important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(214,164,45,.18);
}

@media (max-width:760px){
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-hero-actions a.tc-linkbtn{
    min-height:52px;
  }
}

/* ---- typing-coach-polish-v18679 | assets/css/polish-v18679.css ---- */
/* v1.86.79 — keep smartphone flick ranking selector in view after filter navigation. */
.tc-system-page-typing-coach-flick-ranking #tc-flick-ranking-selector{
  scroll-margin-top:clamp(74px,12vw,112px);
  outline:none;
}
@media (max-width:700px){
  .tc-system-page-typing-coach-flick-ranking #tc-flick-ranking-selector{
    scroll-margin-top:76px;
  }
}

/* ---- typing-coach-polish-v18681 | assets/css/polish-v18681.css ---- */
/* v1.86.81 — enrich smartphone flick ranking visuals with clearer color hierarchy.
   Goal: ranking should feel more lively and easier to scan, especially on mobile. */

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current{
  border-left-color:#d6a329;
  background:linear-gradient(145deg,#fff7df 0%,#ffffff 52%,#f4f8fb 100%);
  box-shadow:0 10px 24px rgba(9,43,77,.06);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current strong{
  color:#0a3157;
}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article{
  position:relative;
  overflow:hidden;
  border-color:#d8e3eb;
  box-shadow:0 8px 22px rgba(9,43,77,.06);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:4px;
  background:#d6a329;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article:nth-child(1){
  background:linear-gradient(145deg,#fffdf7 0%,#f5fbf8 100%);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article:nth-child(1)::before{
  background:linear-gradient(90deg,#76b28a,#c8dfcf);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article:nth-child(2){
  background:linear-gradient(145deg,#fffdf8 0%,#fff6df 100%);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article:nth-child(2)::before{
  background:linear-gradient(90deg,#d6a329,#f0d887);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article:nth-child(3){
  background:linear-gradient(145deg,#f8fbff 0%,#edf6ff 100%);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article:nth-child(3)::before{
  background:linear-gradient(90deg,#5a87b0,#8eb6d7);
}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table-wrap{
  border:1px solid #d8e3eb;
  border-radius:18px;
  background:linear-gradient(180deg,#fff 0%,#f8fbfd 100%);
  box-shadow:0 12px 30px rgba(9,43,77,.07);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table{
  border-collapse:separate;
  border-spacing:0;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table thead th{
  position:sticky;
  top:0;
  z-index:1;
  background:linear-gradient(180deg,#0b3157 0%,#194e76 100%);
  color:#fff;
  font-size:12px;
  letter-spacing:.03em;
  border-bottom:0;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table thead th:first-child{border-top-left-radius:16px;}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table thead th:last-child{border-top-right-radius:16px;}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table tbody tr{
  background:#fff;
  transition:background-color .18s ease, transform .18s ease;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table tbody tr:nth-child(even){
  background:#fbfdff;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table tbody td{
  border-top:1px solid #e8eff4;
  vertical-align:middle;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table tbody tr.is-current-user{
  background:linear-gradient(90deg,#eef7ff 0%,#fffaf0 100%);
  box-shadow:inset 4px 0 0 #5a87b0;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table tbody tr.is-rank-1{
  background:linear-gradient(90deg,#fff7de 0%,#fffdf8 65%);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table tbody tr.is-rank-2{
  background:linear-gradient(90deg,#f4f8fc 0%,#ffffff 65%);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table tbody tr.is-rank-3{
  background:linear-gradient(90deg,#fbf3ea 0%,#ffffff 65%);
}

.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-rank-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  min-height:34px;
  padding:4px 12px;
  border-radius:999px;
  background:#edf3f7;
  color:#24465f;
  font-weight:900;
  box-shadow:inset 0 0 0 1px rgba(36,70,95,.08);
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-row.is-rank-1 .tc-flick-ranking-rank-badge{
  background:linear-gradient(145deg,#f3cf61,#d6a329);
  color:#08263f;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-row.is-rank-2 .tc-flick-ranking-rank-badge{
  background:linear-gradient(145deg,#eef3f8,#b7c7d5);
  color:#14324e;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-row.is-rank-3 .tc-flick-ranking-rank-badge{
  background:linear-gradient(145deg,#f3d0b2,#c98a57);
  color:#14324e;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-score{
  color:#0a3157;
  font-size:18px;
  font-weight:900;
}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-row.is-rank-1 .tc-flick-ranking-score{color:#9b6700;}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-row.is-rank-2 .tc-flick-ranking-score{color:#45627d;}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-row.is-rank-3 .tc-flick-ranking-score{color:#8f5a30;}
.tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-me{
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  padding:3px 8px;
  border-radius:999px;
  background:#eef7ff;
  color:#28527a;
  font-size:11px;
  font-weight:800;
}

@media (max-width:760px){
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-current{
    padding:13px 12px;
    border-radius:16px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-summary article{
    border-radius:16px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table-wrap{
    border-radius:16px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-table thead th{
    font-size:11px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-rank-badge{
    min-width:52px;
    min-height:31px;
    padding:4px 10px;
    font-size:12px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-score{
    font-size:17px;
  }
  .tc-system-page-typing-coach-flick-ranking .tc-flick-ranking-me{
    margin-left:6px;
    font-size:10px;
  }
}

/* ---- typing-coach-polish-v18682 | assets/css/polish-v18682.css ---- */
/* v1.86.82 — three-stage smartphone weakness coaching: current result, long-term My Typing Coach, focused practice. */
.tc-flick-mode.is-personal{border-color:#d8b34d;background:linear-gradient(145deg,#fff8df 0%,#f7fbff 62%,#fff 100%);box-shadow:0 10px 28px rgba(8,46,79,.08),inset 4px 0 0 #d6a329}
.tc-flick-mode.is-personal>small{color:#9a6800}.tc-flick-mode.is-personal .tc-flick-mode__action{color:#8b5d00}

.tc-flick-current-weakness{margin-top:18px;padding:20px;border:1px solid #d9e5ed;border-radius:22px;background:linear-gradient(145deg,#f7fbff,#fffaf0)}
.tc-flick-current-weakness-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.tc-flick-current-weakness-list article{display:flex;gap:12px;align-items:center;min-width:0;padding:14px;border:1px solid #dde7ee;border-radius:16px;background:#fff}
.tc-flick-current-weakness-list article.is-primary{border-color:#d9b34c;background:linear-gradient(145deg,#fff9e8,#fff)}
.tc-flick-weakness-key{display:flex;flex:0 0 48px;width:48px;height:48px;align-items:center;justify-content:center;border:2px solid #d7a52e;border-radius:14px;background:#fff8dc;color:#0a3157;font-size:24px;box-shadow:0 5px 14px rgba(8,46,79,.08)}
.tc-flick-current-weakness-list article div{min-width:0}.tc-flick-current-weakness-list strong,.tc-flick-current-weakness-list small,.tc-flick-current-weakness-list span{display:block}
.tc-flick-current-weakness-list strong{color:#0a3157;font-size:18px}.tc-flick-current-weakness-list small{margin-top:2px;color:#9a6800;font-weight:850}.tc-flick-current-weakness-list span{margin-top:5px;color:#607487;font-size:11px;line-height:1.55}
.tc-flick-current-weakness-note{margin:12px 0 0;color:#5b7185;font-size:12px;line-height:1.7}
.tc-flick-weakness-practice-link{border-color:#d6a329!important;background:#fff8e4!important;color:#795000!important}

.tc-my-flick-weakness{margin-top:18px;padding:19px;border:1px solid #d8e5ed;border-radius:20px;background:linear-gradient(145deg,#f6fbff 0%,#fffaf0 100%)}
.tc-my-flick-weakness-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}.tc-my-flick-weakness-head h4{margin:3px 0 5px;color:#0a3157;font-size:22px}.tc-my-flick-weakness-head p{margin:0;color:#607487;line-height:1.7}
.tc-my-flick-trend{display:inline-flex;flex:0 0 auto;align-items:center;min-height:31px;padding:5px 11px;border-radius:999px;background:#eef4f7;color:#526a7e;font-size:11px;font-weight:900}.tc-my-flick-trend.is-ready{background:#eef8f1;color:#34744a}
.tc-my-flick-weakness-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}
.tc-my-flick-weakness-grid article{display:flex;gap:11px;align-items:center;min-width:0;padding:14px;border:1px solid #dce7ee;border-radius:16px;background:#fff}
.tc-my-flick-keycap{display:flex;flex:0 0 46px;width:46px;height:46px;align-items:center;justify-content:center;border:2px solid #d6a329;border-radius:13px;background:#fff8de;color:#0a3157;font-size:23px}
.tc-my-flick-weakness-grid article>div{min-width:0}.tc-my-flick-weakness-grid strong,.tc-my-flick-weakness-grid small,.tc-my-flick-weakness-grid span{display:block}.tc-my-flick-weakness-grid strong{color:#0a3157;font-size:17px}.tc-my-flick-weakness-grid small{margin-top:2px;color:#9b6b08;font-weight:850}.tc-my-flick-weakness-grid span{margin-top:5px;color:#65798b;font-size:10px;line-height:1.55}
.tc-my-flick-weakness-foot{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:14px;padding-top:13px;border-top:1px solid #dfe8ee}.tc-my-flick-weakness-foot p{margin:0;color:#3d5870;line-height:1.65}.tc-my-flick-weakness-foot p span{color:#687d8f;font-size:12px}
.tc-my-flick-weakness-learning{margin-top:14px;padding:16px;border-radius:16px;background:#fff}.tc-my-flick-weakness-learning strong{color:#0a3157}.tc-my-flick-weakness-learning p{color:#607487;line-height:1.7}

@media(max-width:760px){
 .tc-flick-current-weakness{padding:16px 10px;border-radius:18px}.tc-flick-current-weakness-list{grid-template-columns:1fr;gap:8px}.tc-flick-current-weakness-list article{padding:12px}.tc-flick-weakness-key{flex-basis:44px;width:44px;height:44px;font-size:22px}
 .tc-my-flick-weakness{padding:15px 10px;border-radius:18px}.tc-my-flick-weakness-head{flex-direction:column}.tc-my-flick-weakness-head h4{font-size:20px}.tc-my-flick-weakness-grid{grid-template-columns:1fr;gap:8px}.tc-my-flick-weakness-grid article{padding:12px}.tc-my-flick-weakness-foot{align-items:stretch;flex-direction:column}.tc-my-flick-weakness-foot .tc-linkbtn{width:100%;box-sizing:border-box;text-align:center}
}

/* ---- typing-coach-polish-v18683 | assets/css/polish-v18683.css ---- */
/* v1.86.83 — My Typing Coach information architecture + colored action system.
   Clear sequence: Today -> PC keyboard -> Smartphone flick -> Goals/Report -> History. */

.tc-system-page-my-typing-coach #pc-input,
.tc-system-page-my-typing-coach #smartphone-input,
.tc-system-page-my-typing-coach #my-goals,
.tc-system-page-my-typing-coach #practice-history{scroll-margin-top:110px}

/* Five-part jump navigation: no more long mixed list. */
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a{
  display:flex;
  min-width:0;
  min-height:62px;
  padding:10px 12px;
  border:1px solid #d6e1e9;
  border-radius:14px;
  background:#f8fbfd;
  color:#173d5e;
  flex-direction:column;
  justify-content:center;
  text-decoration:none;
  box-shadow:0 5px 14px rgba(9,45,77,.045);
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a small{display:block;color:#7790a3;font-size:8px;font-weight:900;letter-spacing:.1em}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a strong{display:block;margin-top:2px;color:#173d5e;font-size:13px;line-height:1.35}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-pc{border-top:3px solid #3978a6;background:linear-gradient(145deg,#f4f9fd,#edf6fc)}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-flick{border-top:3px solid #4f9870;background:linear-gradient(145deg,#f4fbf7,#edf8f1)}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-growth{border-top:3px solid #d2a237;background:linear-gradient(145deg,#fffdf7,#fff7e8)}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-history{border-top:3px solid #8a6caa;background:linear-gradient(145deg,#fbf9fd,#f5f0fa)}

/* Major zone introductions make PC and smartphone equal-level sections. */
.tc-system-page-my-typing-coach .tc-my-input-overview,
.tc-system-page-my-typing-coach .tc-my-common-overview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin:30px 0 14px;
  padding:22px 24px;
  border-radius:22px;
  box-sizing:border-box;
}
.tc-system-page-my-typing-coach .tc-my-input-overview>div,
.tc-system-page-my-typing-coach .tc-my-common-overview>div{min-width:0}
.tc-system-page-my-typing-coach .tc-my-input-overview h2,
.tc-system-page-my-typing-coach .tc-my-common-overview h2{margin:4px 0 7px;font-size:clamp(24px,2.5vw,33px);line-height:1.3}
.tc-system-page-my-typing-coach .tc-my-input-overview p,
.tc-system-page-my-typing-coach .tc-my-common-overview p{margin:0;max-width:840px;line-height:1.75}
.tc-system-page-my-typing-coach .tc-my-input-overview--pc{
  border:1px solid #bcd3e5;
  border-left:6px solid #3978a6;
  background:linear-gradient(135deg,#eef7fd 0%,#fff 68%);
  box-shadow:0 12px 30px rgba(24,80,120,.07);
}
.tc-system-page-my-typing-coach .tc-my-input-overview--pc h2{color:#0a3157}
.tc-system-page-my-typing-coach .tc-my-input-overview--pc p{color:#536e83}
.tc-system-page-my-typing-coach .tc-my-common-overview{
  border:1px solid #eadcb8;
  border-left:6px solid #d2a237;
  background:linear-gradient(135deg,#fff8e8 0%,#fff 72%);
  box-shadow:0 12px 30px rgba(101,70,16,.06);
}
.tc-system-page-my-typing-coach .tc-my-common-overview h2{color:#193c59}
.tc-system-page-my-typing-coach .tc-my-common-overview p{color:#675f52}

/* PC zone keeps its own blue identity. */
.tc-system-page-my-typing-coach .tc-my-score-zone{
  border-top-color:#3978a6;
  background:linear-gradient(145deg,#f5faff 0%,#fff 58%);
}
.tc-system-page-my-typing-coach .tc-my-score-zone .tc-my-zone-heading .tc-kicker{color:#2d6e9d}
.tc-system-page-my-typing-coach .tc-plus-growth-studio{border-top:4px solid #3978a6}

/* Smartphone zone has a distinct green/gold identity and is never followed by PC analysis. */
.tc-system-page-my-typing-coach .tc-my-flick-summary{
  margin-top:30px;
  border-color:#cfe1d5;
  border-top:5px solid #4f9870;
  background:linear-gradient(145deg,#f1faf4 0%,#fff 52%,#fff9e9 100%);
  box-shadow:0 12px 30px rgba(33,105,66,.07);
}
.tc-system-page-my-typing-coach .tc-my-flick-summary .tc-kicker{color:#397f58}
.tc-system-page-my-typing-coach .tc-my-flick-summary .tc-my-section-head h3{font-size:clamp(24px,2.4vw,31px);color:#123e2a}

/* Colored action system: white buttons are reserved for low-priority controls only. */
.tc-system-page-my-typing-coach .tc-my-panel .tc-secondary.tc-linkbtn,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-zone-action{
  border-color:#2f6f9c!important;
  background:linear-gradient(145deg,#2f6f9c,#1a527c)!important;
  color:#fff!important;
  box-shadow:0 7px 17px rgba(30,88,130,.16);
}
.tc-system-page-my-typing-coach .tc-my-panel .tc-secondary.tc-linkbtn:hover,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-zone-action:hover{filter:brightness(1.05);transform:translateY(-1px)}
.tc-system-page-my-typing-coach .tc-my-zone-action{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 17px;border:1px solid;border-radius:12px;font-weight:850;text-decoration:none;white-space:nowrap}
.tc-system-page-my-typing-coach .tc-my-zone-action--pc{background:linear-gradient(145deg,#0a3157,#245f8b)!important;border-color:#0a3157!important}
.tc-system-page-my-typing-coach .tc-my-btn-flick{background:linear-gradient(145deg,#4f9870,#34744a)!important;border-color:#34744a!important;color:#fff!important}
.tc-system-page-my-typing-coach .tc-my-btn-ranking{background:linear-gradient(145deg,#3479ad,#245d89)!important;border-color:#245d89!important;color:#fff!important}
.tc-system-page-my-typing-coach .tc-my-btn-guide{background:linear-gradient(145deg,#e6bd55,#c9982d)!important;border-color:#c9982d!important;color:#17324a!important}
.tc-system-page-my-typing-coach .tc-my-btn-focus{background:linear-gradient(145deg,#b94f67,#95384d)!important;border-color:#95384d!important;color:#fff!important;box-shadow:0 7px 18px rgba(149,56,77,.18)}
.tc-system-page-my-typing-coach .tc-my-btn-info{background:linear-gradient(145deg,#3479ad,#245d89)!important;border-color:#245d89!important;color:#fff!important}
.tc-system-page-my-typing-coach .tc-my-action-status .tc-my-btn-success{border-color:#34744a!important;background:#34744a!important;color:#fff!important;box-shadow:0 6px 16px rgba(52,116,74,.16)}
.tc-system-page-my-typing-coach .tc-my-feature-link--button{display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:10px;background:#245d89;color:#fff!important;text-decoration:none!important;box-shadow:0 6px 15px rgba(36,93,137,.13)}

/* History actions now read clearly as actions. */
.tc-system-page-my-typing-coach .tc-my-history-heading{align-items:center}
.tc-system-page-my-typing-coach .tc-my-history-tools{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.tc-system-page-my-typing-coach .tc-my-history-flick-link{min-height:38px;padding:7px 11px;font-size:12px}
.tc-system-page-my-typing-coach .tc-history-result-btn{border-color:#245d89;background:#245d89;color:#fff;box-shadow:0 5px 13px rgba(36,93,137,.14)}
.tc-system-page-my-typing-coach .tc-history-result-btn:hover,.tc-system-page-my-typing-coach .tc-history-result-btn:focus-visible{border-color:#17486e;background:#17486e;color:#fff}
.tc-system-page-my-typing-coach .tc-history-delete-btn{border-color:#c85e70;background:#fff0f2;color:#96384a}
.tc-system-page-my-typing-coach .tc-history-pagination .tc-secondary.tc-linkbtn{background:#315f86!important;border-color:#315f86!important;color:#fff!important}

@media(max-width:860px){
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2{display:flex;overflow-x:auto;gap:7px;padding-bottom:5px;scrollbar-width:thin}
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a{flex:0 0 126px;min-height:58px}
  .tc-system-page-my-typing-coach .tc-my-input-overview,.tc-system-page-my-typing-coach .tc-my-common-overview{align-items:flex-start;flex-direction:column}
}

@media(max-width:760px){
  .tc-system-page-my-typing-coach #pc-input,
  .tc-system-page-my-typing-coach #smartphone-input,
  .tc-system-page-my-typing-coach #my-goals,
  .tc-system-page-my-typing-coach #practice-history{scroll-margin-top:78px}
  .tc-system-page-my-typing-coach .tc-my-input-overview,
  .tc-system-page-my-typing-coach .tc-my-common-overview{
    width:100%;
    margin:22px 0 10px;
    padding:18px 13px;
    border-radius:17px;
  }
  .tc-system-page-my-typing-coach .tc-my-input-overview h2,
  .tc-system-page-my-typing-coach .tc-my-common-overview h2{font-size:23px}
  .tc-system-page-my-typing-coach .tc-my-input-overview p,
  .tc-system-page-my-typing-coach .tc-my-common-overview p{font-size:13px;line-height:1.75}
  .tc-system-page-my-typing-coach .tc-my-zone-action{width:100%;box-sizing:border-box;white-space:normal;text-align:center}
  .tc-system-page-my-typing-coach .tc-my-flick-actions{display:grid;width:100%;grid-template-columns:1fr 1fr;gap:7px}
  .tc-system-page-my-typing-coach .tc-my-flick-actions .tc-linkbtn{width:100%;min-width:0;box-sizing:border-box;text-align:center;justify-content:center}
  .tc-system-page-my-typing-coach .tc-my-flick-actions .tc-my-btn-flick{grid-column:1/-1}
  .tc-system-page-my-typing-coach .tc-my-history-heading{display:block}
  .tc-system-page-my-typing-coach .tc-my-history-tools{justify-content:flex-start;margin-top:10px}
}

@media(max-width:390px){
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a{flex-basis:116px;padding:8px 9px}
  .tc-system-page-my-typing-coach .tc-my-flick-actions{grid-template-columns:1fr}
  .tc-system-page-my-typing-coach .tc-my-flick-actions .tc-my-btn-flick{grid-column:auto}
}

/* ---- typing-coach-polish-v18684 | assets/css/polish-v18684.css ---- */
/* v1.86.84 — My Typing Coach: richer color language, clearer interactive navigation,
   stronger dashboard hierarchy, and lighter history density. */

/* --------------------------------------------------------------------------
   Hero: make the three headline metrics read as distinct information types.
   -------------------------------------------------------------------------- */
.tc-system-page-my-typing-coach .tc-my-page-hero-status article{
  position:relative;
  overflow:hidden;
  border:1px solid #d8e3eb;
  box-shadow:0 7px 18px rgba(7,42,75,.055);
}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(1){background:linear-gradient(145deg,#f2f8ff,#fff)}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(1)::before{background:#3978a6}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(1) small{color:#2f6f9c}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(2){background:linear-gradient(145deg,#fff8e8,#fff)}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(2)::before{background:#d2a237}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(2) small{color:#9b6c0f}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(3){background:linear-gradient(145deg,#eef9f3,#fff)}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(3)::before{background:#4f9870}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(3) small{color:#34744a}

/* --------------------------------------------------------------------------
   Five dashboard jump buttons: obvious click targets + hover/focus/press/current.
   Each destination has its own semantic accent color.
   -------------------------------------------------------------------------- */
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a{
  --tc-nav-accent:#b94f67;
  --tc-nav-deep:#96384a;
  --tc-nav-soft:#fff2f5;
  --tc-nav-shadow:rgba(149,56,77,.18);
  position:relative;
  overflow:hidden;
  padding-right:38px;
  cursor:pointer;
  border-width:1px;
  border-top-width:4px;
  border-top-color:var(--tc-nav-accent);
  background:linear-gradient(145deg,var(--tc-nav-soft),#fff 72%);
  box-shadow:0 7px 18px rgba(9,45,77,.075);
  transform:translateY(0);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease;
  -webkit-tap-highlight-color:transparent;
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-today{
  --tc-nav-accent:#b94f67;--tc-nav-deep:#96384a;--tc-nav-soft:#fff2f5;--tc-nav-shadow:rgba(149,56,77,.20);
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-pc{
  --tc-nav-accent:#3978a6;--tc-nav-deep:#235e89;--tc-nav-soft:#eef7fd;--tc-nav-shadow:rgba(35,94,137,.20);
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-flick{
  --tc-nav-accent:#4f9870;--tc-nav-deep:#34744a;--tc-nav-soft:#edf9f2;--tc-nav-shadow:rgba(52,116,74,.20);
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-growth{
  --tc-nav-accent:#d2a237;--tc-nav-deep:#a97712;--tc-nav-soft:#fff8e8;--tc-nav-shadow:rgba(169,119,18,.20);
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-history{
  --tc-nav-accent:#8a6caa;--tc-nav-deep:#684e89;--tc-nav-soft:#f7f1fb;--tc-nav-shadow:rgba(104,78,137,.20);
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a::after{
  content:"↘";
  position:absolute;
  right:13px;
  bottom:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  background:var(--tc-nav-accent);
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1;
  box-shadow:0 4px 10px var(--tc-nav-shadow);
  transition:transform .18s ease,background .18s ease;
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a small{color:var(--tc-nav-deep)}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a strong{color:#153a59}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:hover,
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:focus-visible{
  transform:translateY(-4px);
  border-color:var(--tc-nav-accent);
  background:linear-gradient(145deg,#fff,var(--tc-nav-soft));
  box-shadow:0 14px 28px var(--tc-nav-shadow);
  outline:none;
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:hover::after,
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:focus-visible::after{transform:translate(2px,2px)}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.96),0 0 0 6px var(--tc-nav-accent),0 14px 28px var(--tc-nav-shadow)}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:active{transform:translateY(-1px) scale(.985)}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-current{
  border-color:var(--tc-nav-deep);
  background:linear-gradient(145deg,var(--tc-nav-deep),var(--tc-nav-accent));
  box-shadow:0 13px 26px var(--tc-nav-shadow);
}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-current small,
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-current strong{color:#fff}
.tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a.is-current::after{background:#fff;color:var(--tc-nav-deep);box-shadow:none}

/* --------------------------------------------------------------------------
   TODAY becomes a warmer dashboard zone: coaching / practice / commitment are
   visually distinct instead of three white-ish cards.
   -------------------------------------------------------------------------- */
.tc-system-page-my-typing-coach .tc-my-today-hub{
  border-color:#ead8dc;
  border-top:5px solid #b94f67;
  background:linear-gradient(145deg,#fff8f9 0%,#fffdf7 48%,#f7fbff 100%);
  box-shadow:0 14px 32px rgba(92,49,61,.07);
}
.tc-system-page-my-typing-coach .tc-my-today-hub .tc-my-hub-heading .tc-kicker{color:#a53f57}
.tc-system-page-my-typing-coach .tc-my-daily-coaching{
  border-color:#cfe0ee;
  border-left:5px solid #3978a6;
  background:linear-gradient(145deg,#eef7ff 0%,#fff 78%)!important;
  box-shadow:0 8px 20px rgba(57,120,166,.07);
}
.tc-system-page-my-typing-coach .tc-my-next-step{
  border-color:#eadcb8!important;
  border-left:5px solid #d2a237!important;
  background:linear-gradient(145deg,#fff8e8 0%,#fff 78%)!important;
  box-shadow:0 8px 20px rgba(169,119,18,.07)!important;
}
.tc-system-page-my-typing-coach .tc-my-coach-action{
  border-color:#cfe3d6!important;
  border-left:5px solid #4f9870!important;
  background:linear-gradient(145deg,#eef9f3 0%,#fff 80%)!important;
  box-shadow:0 8px 20px rgba(52,116,74,.07)!important;
}

/* --------------------------------------------------------------------------
   PC metrics: color helps the eye distinguish speed, accuracy, volume and rank.
   -------------------------------------------------------------------------- */
.tc-system-page-my-typing-coach .tc-my-stats .tc-my-stat,
.tc-system-page-my-typing-coach .tc-my-30day-grid article,
.tc-system-page-my-typing-coach .tc-my-flick-stats article{
  position:relative;
  overflow:hidden;
  border:1px solid #dce6ee;
}
.tc-system-page-my-typing-coach .tc-my-stats .tc-my-stat::before,
.tc-system-page-my-typing-coach .tc-my-30day-grid article::before,
.tc-system-page-my-typing-coach .tc-my-flick-stats article::before{
  content:"";position:absolute;inset:0 0 auto;height:4px;
}
.tc-system-page-my-typing-coach .tc-my-stat-wpm{background:linear-gradient(145deg,#eef7ff,#fff)!important}.tc-system-page-my-typing-coach .tc-my-stat-wpm::before{background:#3978a6}.tc-system-page-my-typing-coach .tc-my-stat-wpm b{color:#245d89}
.tc-system-page-my-typing-coach .tc-my-stat-accuracy{background:linear-gradient(145deg,#eef9f3,#fff)!important}.tc-system-page-my-typing-coach .tc-my-stat-accuracy::before{background:#4f9870}.tc-system-page-my-typing-coach .tc-my-stat-accuracy b{color:#34744a}
.tc-system-page-my-typing-coach .tc-my-stat-plays{background:linear-gradient(145deg,#f7f1fb,#fff)!important}.tc-system-page-my-typing-coach .tc-my-stat-plays::before{background:#8a6caa}.tc-system-page-my-typing-coach .tc-my-stat-plays b{color:#684e89}
.tc-system-page-my-typing-coach .tc-my-stat-rank{background:linear-gradient(145deg,#fff8e8,#fff)!important}.tc-system-page-my-typing-coach .tc-my-stat-rank::before{background:#d2a237}.tc-system-page-my-typing-coach .tc-my-stat-rank b{color:#9b6c0f}

.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(1){background:linear-gradient(145deg,#eef7ff,#fff)}.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(1)::before{background:#3978a6}
.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(2){background:linear-gradient(145deg,#eef9f3,#fff)}.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(2)::before{background:#4f9870}
.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(3){background:linear-gradient(145deg,#fff1f4,#fff)}.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(3)::before{background:#b94f67}
.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(4){background:linear-gradient(145deg,#f7f1fb,#fff)}.tc-system-page-my-typing-coach .tc-my-30day-grid article:nth-child(4)::before{background:#8a6caa}

/* Smartphone metrics: similar hierarchy, but with a green-led identity. */
.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(1){background:linear-gradient(145deg,#eef9f3,#fff)}.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(1)::before{background:#4f9870}
.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(2){background:linear-gradient(145deg,#effaf9,#fff)}.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(2)::before{background:#3b9990}
.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(3){background:linear-gradient(145deg,#eef7ff,#fff)}.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(3)::before{background:#3978a6}
.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(4){background:linear-gradient(145deg,#fff8e8,#fff)}.tc-system-page-my-typing-coach .tc-my-flick-stats article:nth-child(4)::before{background:#d2a237}

/* Goals + report: stronger color cues in their sub-cards. */
.tc-system-page-my-typing-coach .tc-my-goals{
  border-color:#eadcb8!important;
  background:linear-gradient(145deg,#fffdf7 0%,#fff8e8 32%,#fff 100%)!important;
}
.tc-system-page-my-typing-coach .tc-my-goal-cards article{position:relative;overflow:hidden;box-shadow:0 8px 20px rgba(9,45,77,.055)}
.tc-system-page-my-typing-coach .tc-my-goal-cards article::before{content:"";position:absolute;inset:0 0 auto;height:4px}
.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(1){background:#fff8e8}.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(1)::before{background:#d2a237}
.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(2){background:#f7f1fb}.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(2)::before{background:#8a6caa}
.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(3){background:#eef7ff}.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(3)::before{background:#3978a6}
.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(4){background:#eef9f3}.tc-system-page-my-typing-coach .tc-my-goal-cards article:nth-child(4)::before{background:#4f9870}

.tc-system-page-my-typing-coach .tc-my-growth-report-status{
  border-color:#cfdfea!important;
  background:linear-gradient(145deg,#f2f8fd 0%,#fff 58%,#f7f1fb 100%)!important;
}
.tc-system-page-my-typing-coach .tc-report-readiness-grid article{position:relative;overflow:hidden;box-shadow:0 6px 16px rgba(9,45,77,.05)}
.tc-system-page-my-typing-coach .tc-report-readiness-grid article:nth-child(1){border-top:3px solid #3978a6}
.tc-system-page-my-typing-coach .tc-report-readiness-grid article:nth-child(2){border-top:3px solid #4f9870}
.tc-system-page-my-typing-coach .tc-report-readiness-grid article:nth-child(3){border-top:3px solid #d2a237}
.tc-system-page-my-typing-coach .tc-report-readiness-grid article:nth-child(4){border-top:3px solid #8a6caa}

/* WHY cards: retain brand consistency while avoiding a wall of white. */
.tc-system-page-my-typing-coach .tc-my-benefit-grid article{border:1px solid #dfe7ed;border-radius:14px;box-shadow:0 6px 16px rgba(9,45,77,.045)}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(1){background:linear-gradient(145deg,#eef7ff,#fff)}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(2){background:linear-gradient(145deg,#eef9f3,#fff)}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(3){background:linear-gradient(145deg,#fff8e8,#fff)}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(4){background:linear-gradient(145deg,#f7f1fb,#fff)}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(1)>span{color:#3978a6}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(2)>span{color:#4f9870}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(3)>span{color:#a97712}
.tc-system-page-my-typing-coach .tc-my-benefit-grid article:nth-child(4)>span{color:#8a6caa}

/* History is a distinct purple final zone; only 10 PC records are rendered per page. */
.tc-system-page-my-typing-coach .tc-my-history-section{
  border-color:#ddd3e8;
  border-top-color:#8a6caa;
  background:linear-gradient(145deg,#fff 0%,#faf7fd 100%);
}
.tc-system-page-my-typing-coach .tc-my-history-section .tc-kicker{color:#735691}
.tc-system-page-my-typing-coach .tc-my-history-section .tc-table-wrap{border-color:#e2d9eb}

/* All important actions should feel pressable, not like white labels. */
.tc-system-page-my-typing-coach .tc-my-panel .tc-linkbtn,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-zone-action,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-feature-link--button,
.tc-system-page-my-typing-coach .tc-my-panel .tc-history-result-btn,
.tc-system-page-my-typing-coach .tc-my-panel .tc-history-delete-btn,
.tc-system-page-my-typing-coach .tc-my-panel button.tc-primary,
.tc-system-page-my-typing-coach .tc-my-panel button.tc-secondary{
  cursor:pointer;
  transition:transform .16s ease,filter .16s ease,box-shadow .16s ease;
  -webkit-tap-highlight-color:transparent;
}
.tc-system-page-my-typing-coach .tc-my-panel .tc-linkbtn:hover,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-zone-action:hover,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-feature-link--button:hover,
.tc-system-page-my-typing-coach .tc-my-panel .tc-history-result-btn:hover,
.tc-system-page-my-typing-coach .tc-my-panel button.tc-primary:hover,
.tc-system-page-my-typing-coach .tc-my-panel button.tc-secondary:hover{
  transform:translateY(-2px);
  filter:brightness(1.06) saturate(1.04);
}
.tc-system-page-my-typing-coach .tc-my-panel .tc-linkbtn:active,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-zone-action:active,
.tc-system-page-my-typing-coach .tc-my-panel .tc-my-feature-link--button:active,
.tc-system-page-my-typing-coach .tc-my-panel .tc-history-result-btn:active,
.tc-system-page-my-typing-coach .tc-my-panel button.tc-primary:active,
.tc-system-page-my-typing-coach .tc-my-panel button.tc-secondary:active{transform:translateY(0) scale(.985)}

@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a{
    flex-basis:132px;
    min-height:64px;
    padding:9px 35px 9px 10px;
  }
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a::after{right:9px;bottom:9px;width:20px;height:20px;font-size:11px}
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:hover{transform:none}
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a:active{transform:scale(.975)}
  .tc-system-page-my-typing-coach .tc-my-today-hub{padding:17px 12px;border-radius:17px}
  .tc-system-page-my-typing-coach .tc-my-page-hero-status article{border-radius:12px}
}

@media(prefers-reduced-motion:reduce){
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a,
  .tc-system-page-my-typing-coach .tc-my-jump-nav-v2>a::after,
  .tc-system-page-my-typing-coach .tc-my-panel .tc-linkbtn,
  .tc-system-page-my-typing-coach .tc-my-panel .tc-my-zone-action,
  .tc-system-page-my-typing-coach .tc-my-panel .tc-my-feature-link--button,
  .tc-system-page-my-typing-coach .tc-my-panel button{transition:none!important}
}

/* ---- typing-coach-polish-v18685 | assets/css/polish-v18685.css ---- */
/* v1.86.85 — shared horizontal-scroll affordance for public Typing Coach pages.
   The hint is shown only when JavaScript confirms that the region actually overflows. */

.tc-horizontal-scroll-hint{
  display:none;
  width:max-content;
  max-width:100%;
  box-sizing:border-box;
  align-items:center;
  gap:7px;
  margin:7px 0 8px;
  padding:6px 10px;
  border:1px solid #cfe0eb;
  border-radius:999px;
  background:linear-gradient(145deg,#eef7fd,#fff);
  color:#315b78;
  font-size:11px;
  font-weight:850;
  line-height:1.35;
  letter-spacing:.01em;
  box-shadow:0 4px 12px rgba(9,45,77,.055);
}
.tc-horizontal-scroll-hint.is-visible{display:inline-flex}
.tc-horizontal-scroll-hint__arrows{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  color:#0f5a88;
  font-size:13px;
  font-weight:950;
  letter-spacing:.08em;
}
.tc-horizontal-scroll-hint__text{white-space:nowrap}

.tc-horizontal-scrollable{
  scroll-behavior:smooth;
  scrollbar-color:#8caec4 #edf4f8;
  scrollbar-width:thin;
}
.tc-horizontal-scrollable::-webkit-scrollbar{height:7px}
.tc-horizontal-scrollable::-webkit-scrollbar-track{
  background:#edf4f8;
  border-radius:999px;
}
.tc-horizontal-scrollable::-webkit-scrollbar-thumb{
  background:#8caec4;
  border-radius:999px;
}

/* My Typing Coach keeps the shared hint aligned with its stronger dashboard color system. */
.tc-system-page-my-typing-coach .tc-horizontal-scroll-hint{
  border-color:#d7dce8;
  background:linear-gradient(145deg,#f4f8ff 0%,#fff8e8 100%);
  color:#3e5870;
}
.tc-system-page-my-typing-coach .tc-horizontal-scroll-hint__arrows{color:#3978a6}

/* Ranking / data-heavy pages use a little more contrast so the notice is not missed. */
.tc-system-page-typing-coach-flick-ranking .tc-horizontal-scroll-hint,
.tc-system-page-ranking .tc-horizontal-scroll-hint{
  border-color:#d8c887;
  background:linear-gradient(145deg,#fff8df,#fff);
  color:#6e571b;
}
.tc-system-page-typing-coach-flick-ranking .tc-horizontal-scroll-hint__arrows,
.tc-system-page-ranking .tc-horizontal-scroll-hint__arrows{color:#9a6b05}

@media(max-width:760px){
  .tc-horizontal-scroll-hint{
    margin:6px 0 7px;
    padding:6px 9px;
    font-size:10.5px;
  }
  .tc-horizontal-scroll-hint__arrows{
    min-width:28px;
    font-size:12px;
  }
}

@media(prefers-reduced-motion:reduce){
  .tc-horizontal-scrollable{scroll-behavior:auto}
}

/* ---- typing-coach-polish-v18687 | assets/css/polish-v18687.css ---- */
/* v1.86.87 — Coach Rank Journey: Stage 1 of the visual Rank system.
   Makes the complete 10-rank ladder, current position and next milestone obvious.
   This intentionally uses milestone cards, not final Rank badges; badge artwork is Stage 2. */

.tc-system-page-my-typing-coach .tc-coach-rank-journey{
  margin:18px 0 22px;
  padding:22px;
  border:1px solid #d9e3eb;
  border-radius:22px;
  background:
    radial-gradient(circle at 92% 0%,rgba(210,162,55,.14),transparent 31%),
    radial-gradient(circle at 0% 100%,rgba(57,120,166,.10),transparent 34%),
    linear-gradient(145deg,#ffffff 0%,#f8fbfd 58%,#fffaf0 100%);
  box-shadow:0 12px 30px rgba(9,45,77,.065);
  overflow:hidden;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-head>div:first-child{min-width:0}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-head h3{
  margin:4px 0 8px;
  color:#0a3157;
  font-size:clamp(21px,2.5vw,30px);
  line-height:1.35;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-head p{
  max-width:760px;
  margin:0;
  color:#526b7f;
  font-size:14px;
  line-height:1.8;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-head p strong{color:#173d5e}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now{
  flex:0 0 auto;
  min-width:190px;
  padding:14px 16px;
  border:1px solid #d8bd66;
  border-radius:17px;
  background:linear-gradient(145deg,#0a3157 0%,#174e76 74%,#1e618e 100%);
  box-shadow:0 9px 20px rgba(8,48,84,.14);
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now small,
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now strong,
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now span{display:block}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now small{
  color:#efd073;
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now strong{
  margin:4px 0 2px;
  color:#fff;
  font-size:20px;
  line-height:1.25;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now span{
  color:#dcebf5;
  font-size:12px;
  font-weight:800;
}

.tc-system-page-my-typing-coach .tc-coach-rank-journey-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:16px 0 12px;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-meta>span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:30px;
  padding:5px 10px;
  border:1px solid #d8e3eb;
  border-radius:999px;
  background:#fff;
  color:#607487;
  font-size:10px;
  font-weight:800;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-meta b{color:#0a3157;font-size:12px}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-meta .is-next{
  border-color:#e2ca7a;
  background:#fff8df;
  color:#82610f;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-meta .is-next b{color:#9b6c0f}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-meta .is-complete{
  border-color:#a9d0b7;
  background:#eef9f3;
  color:#34744a;
}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-meta .is-complete b{color:#34744a}

.tc-system-page-my-typing-coach .tc-coach-rank-journey-track{
  display:grid;
  grid-template-columns:repeat(10,minmax(0,1fr));
  gap:7px;
  width:100%;
  min-width:0;
  padding:4px 1px 8px;
  overflow-x:visible;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step{
  --rank-accent:#8294a3;
  position:relative;
  display:flex;
  min-width:0;
  min-height:158px;
  padding:12px 8px 11px;
  border:1px solid #dfe7ed;
  border-radius:15px;
  background:linear-gradient(155deg,#fff,#f6f9fb);
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  box-shadow:0 5px 14px rgba(9,45,77,.04);
}
.tc-system-page-my-typing-coach .tc-coach-rank-step::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  border-radius:15px 15px 0 0;
  background:var(--rank-accent);
  opacity:.52;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step-index{
  display:flex;
  width:37px;
  height:37px;
  margin:1px 0 7px;
  border:1px solid color-mix(in srgb,var(--rank-accent) 45%,#dfe7ed);
  border-radius:50%;
  background:color-mix(in srgb,var(--rank-accent) 12%,#fff);
  align-items:center;
  justify-content:center;
  color:var(--rank-accent);
  font-weight:950;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step>small{
  color:#8294a3;
  font-size:7px;
  font-weight:950;
  letter-spacing:.08em;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step>strong{
  display:flex;
  min-height:34px;
  margin:4px 0 3px;
  align-items:center;
  justify-content:center;
  color:#24465f;
  font-size:10.5px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step>span{
  color:#6d8293;
  font-size:9px;
  font-weight:750;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step>em{
  margin-top:auto;
  padding-top:8px;
  color:#8496a4;
  font-size:8px;
  font-style:normal;
  font-weight:850;
}

/* Each Rank gets a distinct identity now; final badge artwork will reuse this hierarchy in Stage 2. */
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-starter{--rank-accent:#778896}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-learner{--rank-accent:#5f9dca}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-builder{--rank-accent:#3d9d9b}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-steady{--rank-accent:#5a9a67}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-flow{--rank-accent:#24a3a7}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-grow{--rank-accent:#2f9872}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-advanced{--rank-accent:#3978a6}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-expert{--rank-accent:#8063a8}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-master{--rank-accent:#b44f63}
.tc-system-page-my-typing-coach .tc-coach-rank-step.tc-rank-grand-master{--rank-accent:#c69018}

.tc-system-page-my-typing-coach .tc-coach-rank-step.is-complete{
  border-color:color-mix(in srgb,var(--rank-accent) 28%,#dfe7ed);
  background:linear-gradient(155deg,color-mix(in srgb,var(--rank-accent) 7%,#fff),#fff);
}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-complete::before{opacity:.85}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-complete>em{color:var(--rank-accent)}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current{
  z-index:1;
  border:2px solid var(--rank-accent);
  background:linear-gradient(155deg,color-mix(in srgb,var(--rank-accent) 13%,#fff),#fff 70%);
  box-shadow:0 9px 24px color-mix(in srgb,var(--rank-accent) 18%,transparent);
  transform:translateY(-3px);
}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current::before{height:5px;opacity:1}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current .tc-coach-rank-step-index{
  background:var(--rank-accent);
  border-color:var(--rank-accent);
  color:#fff;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current>small,
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current>em{color:var(--rank-accent)}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current>strong{color:#0a3157}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-future{opacity:.68;filter:saturate(.62)}

.tc-system-page-my-typing-coach .tc-coach-rank-journey-note{
  margin:9px 2px 0;
  padding:10px 12px;
  border-left:3px solid #d2a237;
  border-radius:0 10px 10px 0;
  background:rgba(255,248,232,.72);
  color:#647a8c;
  font-size:11px;
  line-height:1.75;
}

@media(max-width:1000px){
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-track{
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:118px;
    justify-content:start;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }
  .tc-system-page-my-typing-coach .tc-coach-rank-step{scroll-snap-align:start}
}

@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-coach-rank-journey{
    margin:14px 0 18px;
    padding:16px 10px 14px;
    border-radius:18px;
  }
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-head{
    flex-direction:column;
    gap:11px;
  }
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-head h3{
    font-size:21px;
  }
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-head p{
    font-size:12px;
    line-height:1.75;
  }
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-now{
    width:100%;
    min-width:0;
    box-sizing:border-box;
    padding:12px 14px;
  }
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-now strong{font-size:18px}
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-meta{margin:12px 0 8px;gap:5px}
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-meta>span{padding:5px 8px;font-size:9px}
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-track{grid-auto-columns:112px;gap:6px;padding-bottom:7px}
  .tc-system-page-my-typing-coach .tc-coach-rank-step{min-height:150px;padding:11px 7px 9px;border-radius:14px}
  .tc-system-page-my-typing-coach .tc-coach-rank-step>strong{font-size:10px}
  .tc-system-page-my-typing-coach .tc-coach-rank-step.is-current{transform:none}
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-note{font-size:10px}
}

@supports not (color:color-mix(in srgb,#000 50%,#fff)){
  .tc-system-page-my-typing-coach .tc-coach-rank-step-index{border-color:#d8e3eb;background:#f5f8fa}
  .tc-system-page-my-typing-coach .tc-coach-rank-step.is-complete{border-color:#d5e0e8;background:#f9fbfc}
  .tc-system-page-my-typing-coach .tc-coach-rank-step.is-current{background:#fff;border-color:#3978a6;box-shadow:0 9px 24px rgba(57,120,166,.16)}
}

@media(prefers-reduced-motion:reduce){
  .tc-system-page-my-typing-coach .tc-coach-rank-step.is-current{transform:none}
}

/* ---- typing-coach-polish-v18688 | assets/css/polish-v18688.css ---- */
/* v1.86.88 — Coach Rank Journey copy + Japanese reading labels. */
.tc-system-page-my-typing-coach .tc-rank-journey-kana{
  display:block;
  margin-top:3px;
  color:#708196;
  font-size:10px;
  font-weight:800;
  line-height:1.35;
  letter-spacing:.02em;
}
.tc-system-page-my-typing-coach .is-current .tc-rank-journey-kana{
  color:inherit;
  opacity:.78;
}
@media (max-width:760px){
  .tc-system-page-my-typing-coach .tc-rank-journey-kana{
    margin-top:2px;
    font-size:9px;
  }
}

/* ---- typing-coach-polish-v18689 | assets/css/polish-v18689.css ---- */
/* v1.86.89 — correctly render Japanese readings below every Coach Rank name. */
.tc-system-page-my-typing-coach .tc-coach-rank-step > .tc-rank-journey-kana{
  display:block;
  min-height:14px;
  margin:-1px 0 4px;
  color:#728596;
  font-size:8.5px;
  font-weight:800;
  line-height:1.25;
  letter-spacing:.015em;
  white-space:nowrap;
}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current > .tc-rank-journey-kana{color:var(--rank-accent);opacity:.9}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now .tc-rank-journey-now-kana{
  display:block;
  margin:0 0 3px;
  color:#cddfea;
  font-size:10px;
  font-weight:800;
  line-height:1.3;
}
@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-coach-rank-step > .tc-rank-journey-kana{font-size:8px;margin-bottom:3px}
  .tc-system-page-my-typing-coach .tc-coach-rank-journey-now .tc-rank-journey-now-kana{font-size:9px}
}

/* ---- typing-coach-polish-v18690 | assets/css/polish-v18690.css ---- */
/* v1.86.90 — Stage 2: Coach Rank badge system.
   One evolving shield family across My Typing Coach, result screens and rankings. */

.tc-coach-rank-badge{
  --badge-size:64px;
  --badge-metal-1:#cfd6dc;
  --badge-metal-2:#8996a1;
  --badge-field-1:#6c7b87;
  --badge-field-2:#344b5b;
  --badge-ink:#fff;
  --badge-glow:rgba(61,91,112,.18);
  --badge-gem:.12;
  --badge-aura:0;
  --badge-crown:0;
  position:relative;
  display:inline-grid;
  width:var(--badge-size);
  aspect-ratio:.88;
  flex:0 0 auto;
  place-items:center;
  vertical-align:middle;
  filter:drop-shadow(0 5px 8px rgba(8,31,52,.16));
  isolation:isolate;
}
.tc-coach-rank-badge--xs{--badge-size:31px}
.tc-coach-rank-badge--sm{--badge-size:45px}
.tc-coach-rank-badge--md{--badge-size:62px}
.tc-coach-rank-badge--lg{--badge-size:76px}
.tc-coach-rank-badge--xl{--badge-size:104px}
.tc-coach-rank-badge__aura{
  position:absolute;
  inset:-12%;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle,var(--badge-glow) 0 26%,transparent 67%);
  opacity:var(--badge-aura);
}
.tc-coach-rank-badge__shield{
  position:relative;
  display:block;
  width:86%;
  height:91%;
  clip-path:polygon(50% 0,91% 14%,87% 66%,50% 100%,13% 66%,9% 14%);
  background:linear-gradient(145deg,var(--badge-metal-1) 0%,var(--badge-metal-2) 82%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);
}
.tc-coach-rank-badge__shield::before{
  content:"";
  position:absolute;
  inset:6%;
  clip-path:inherit;
  background:
    linear-gradient(155deg,rgba(255,255,255,.15),transparent 38%),
    linear-gradient(150deg,var(--badge-field-1),var(--badge-field-2));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}
.tc-coach-rank-badge__shield::after{
  content:"";
  position:absolute;
  inset:11% 13% 14%;
  border:1px solid rgba(255,255,255,.20);
  clip-path:polygon(50% 0,91% 14%,87% 66%,50% 100%,13% 66%,9% 14%);
  opacity:.9;
}
.tc-coach-rank-badge__brand,
.tc-coach-rank-badge__stage,
.tc-coach-rank-badge__gem,
.tc-coach-rank-badge__crown{position:absolute;z-index:2}
.tc-coach-rank-badge__brand{
  top:34%;left:50%;transform:translate(-50%,-50%);
  color:var(--badge-ink);
  font-family:Georgia,"Times New Roman",serif;
  font-size:calc(var(--badge-size) * .18);
  font-weight:900;
  letter-spacing:.04em;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
}
.tc-coach-rank-badge__stage{
  left:50%;bottom:17%;transform:translateX(-50%);
  color:var(--badge-ink);
  font-size:calc(var(--badge-size) * .105);
  font-weight:950;
  letter-spacing:.10em;
  opacity:.92;
}
.tc-coach-rank-badge__gem{
  top:13%;left:50%;transform:translateX(-50%);
  color:var(--badge-metal-1);
  font-size:calc(var(--badge-size) * .12);
  line-height:1;
  opacity:var(--badge-gem);
  text-shadow:0 1px 3px rgba(0,0,0,.18);
}
.tc-coach-rank-badge__crown{
  top:-2%;left:50%;transform:translateX(-50%);
  width:36%;height:15%;
  clip-path:polygon(0 100%,7% 35%,28% 69%,50% 0,72% 69%,93% 35%,100% 100%);
  background:linear-gradient(180deg,var(--badge-metal-1),var(--badge-metal-2));
  opacity:var(--badge-crown);
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));
}

/* Badge progression: restrained at the beginning, increasingly premium at higher ranks. */
.tc-coach-rank-badge--starter{--badge-metal-1:#d5dde3;--badge-metal-2:#8a98a3;--badge-field-1:#7c8993;--badge-field-2:#405463;--badge-glow:rgba(109,127,140,.18);--badge-gem:.05}
.tc-coach-rank-badge--learner{--badge-metal-1:#d7e9f7;--badge-metal-2:#7babc9;--badge-field-1:#5f9dca;--badge-field-2:#2f6289;--badge-glow:rgba(95,157,202,.22);--badge-gem:.18}
.tc-coach-rank-badge--builder{--badge-metal-1:#d9f0ed;--badge-metal-2:#69aaa6;--badge-field-1:#3d9d9b;--badge-field-2:#246b6e;--badge-glow:rgba(61,157,155,.24);--badge-gem:.28}
.tc-coach-rank-badge--steady{--badge-metal-1:#e0efe1;--badge-metal-2:#7fb087;--badge-field-1:#5a9a67;--badge-field-2:#32643e;--badge-glow:rgba(90,154,103,.24);--badge-gem:.36}
.tc-coach-rank-badge--flow{--badge-metal-1:#d7f0f0;--badge-metal-2:#6bb3b6;--badge-field-1:#24a3a7;--badge-field-2:#176b76;--badge-glow:rgba(36,163,167,.28);--badge-gem:.48}
.tc-coach-rank-badge--grow{--badge-metal-1:#dbeee5;--badge-metal-2:#75ad92;--badge-field-1:#2f9872;--badge-field-2:#1e634c;--badge-glow:rgba(47,152,114,.30);--badge-gem:.58}
.tc-coach-rank-badge--advanced{--badge-metal-1:#f1ce70;--badge-metal-2:#b88a27;--badge-field-1:#3978a6;--badge-field-2:#163c66;--badge-glow:rgba(57,120,166,.36);--badge-gem:.84;--badge-aura:.24}
.tc-coach-rank-badge--expert{--badge-metal-1:#f0ca72;--badge-metal-2:#ae8127;--badge-field-1:#8063a8;--badge-field-2:#44316c;--badge-glow:rgba(128,99,168,.40);--badge-gem:1;--badge-aura:.36}
.tc-coach-rank-badge--master{--badge-metal-1:#f2cc72;--badge-metal-2:#ad771d;--badge-field-1:#b44f63;--badge-field-2:#70283c;--badge-glow:rgba(180,79,99,.44);--badge-gem:1;--badge-aura:.46;--badge-crown:.72}
.tc-coach-rank-badge--grand-master{--badge-metal-1:#f6d97b;--badge-metal-2:#b98012;--badge-field-1:#133d67;--badge-field-2:#071f3b;--badge-glow:rgba(215,166,43,.52);--badge-gem:1;--badge-aura:.72;--badge-crown:1}
.tc-coach-rank-badge--grand-master .tc-coach-rank-badge__shield{filter:drop-shadow(0 0 5px rgba(224,177,58,.35))}
.tc-coach-rank-badge--master .tc-coach-rank-badge__shield::after,
.tc-coach-rank-badge--grand-master .tc-coach-rank-badge__shield::after{border-color:rgba(255,236,174,.48)}

/* My Typing Coach: make the earned badge the visual anchor. */
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature{
  display:flex;
  width:118px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:7px;
  color:#f0ca68;
  text-align:center;
}
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature>small{font-size:.56rem;font-weight:900;letter-spacing:.11em;white-space:nowrap;color:#f1cf7d}
.tc-system-page-my-typing-coach .tc-my-hero-rank{display:flex!important;align-items:center!important;gap:10px!important;text-align:left!important}
.tc-system-page-my-typing-coach .tc-my-hero-rank>div:last-child{display:grid;min-width:0}
.tc-system-page-my-typing-coach .tc-my-hero-rank-badge{display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now{display:grid!important;grid-template-columns:auto 1fr!important;column-gap:8px!important;align-items:center!important}
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now>.tc-coach-rank-journey-now-badge{grid-row:1/5;align-self:center}
.tc-system-page-my-typing-coach .tc-coach-rank-step{min-height:184px}
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge{display:flex;min-height:51px;margin:1px 0 6px;align-items:center;justify-content:center}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-future .tc-coach-rank-step-badge{filter:saturate(.58);opacity:.62}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current .tc-coach-rank-step-badge{transform:scale(1.06)}

/* Rankings: badge plus the existing precise text/Level pill. */
.tc-coach-rank-cell{display:inline-flex;align-items:center;gap:7px;min-width:0}
.tc-coach-rank-cell .tc-coach-rank-mini{padding:4px 7px}
.tc-coach-rank-you{display:flex!important;align-items:center!important;gap:10px!important}
.tc-coach-rank-you-copy{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:baseline}
.tc-coach-rank-you-copy>span{grid-column:1/-1;font-size:.68rem;color:#dce8f2;font-weight:800}
.tc-coach-rank-you-copy>strong{color:#efc65d}
.tc-coach-rank-you-copy>b{font-size:.8rem}
.tc-coach-rank-you-copy>small{grid-column:1/-1;color:#dce8f2}

/* Practice result: brand shield while waiting/guest; earned badge after result calculation. */
.tc-result-rank-badge-zone{display:flex;width:86px;min-height:86px;align-items:center;justify-content:center}
.tc-result-rank-brand{display:flex;align-items:center;justify-content:center}
.tc-result-rank-brand .tc-official-shield-image{width:64px;height:auto;filter:drop-shadow(0 7px 14px rgba(4,26,49,.18))}
.tc-result-rank-badge-zone [hidden]{display:none!important}

@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature{width:100%;margin:0 auto 2px}
  .tc-system-page-my-typing-coach .tc-my-coach-rank{grid-template-columns:1fr!important}
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:92px}
  .tc-system-page-my-typing-coach .tc-coach-rank-step{min-height:178px}
  .tc-coach-rank-cell{gap:5px}
  .tc-coach-rank-cell .tc-coach-rank-mini{font-size:.68rem}
  .tc-result-rank-badge-zone{width:100%;min-height:78px}
}

@media(prefers-reduced-motion:no-preference){
  .tc-system-page-my-typing-coach .tc-coach-rank-step.is-current .tc-coach-rank-badge__aura{animation:tc-rank-badge-breathe 3.2s ease-in-out infinite}
  @keyframes tc-rank-badge-breathe{0%,100%{transform:scale(.96)}50%{transform:scale(1.05)}}
}

/* ---- typing-coach-polish-v18691 | assets/css/polish-v18691.css ---- */
/* v1.86.91 — Coach Rank badge polish + My Typing Coach hero layout refinement. */

/* --------------------------------------------------------------------------
   Premium Coach Rank badge evolution
   -------------------------------------------------------------------------- */
.tc-coach-rank-badge{
  --badge-rim-1:rgba(255,255,255,.86);
  --badge-rim-2:rgba(255,255,255,.18);
  filter:drop-shadow(0 9px 18px rgba(8,31,52,.18));
}
.tc-coach-rank-badge::before,
.tc-coach-rank-badge::after{
  content:"";
  position:absolute;
  inset:auto;
  pointer-events:none;
}
.tc-coach-rank-badge::before{
  inset:11% 11% 9%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.20),rgba(255,255,255,0) 52%);
  opacity:.52;
  z-index:0;
}
.tc-coach-rank-badge::after{
  left:18%;
  right:18%;
  bottom:2.5%;
  height:9%;
  border-radius:999px;
  background:radial-gradient(ellipse at center,rgba(4,26,49,.24) 0%,rgba(4,26,49,.08) 52%,transparent 78%);
  filter:blur(4px);
  z-index:0;
}
.tc-coach-rank-badge__aura{
  inset:-18%;
  background:
    radial-gradient(circle at 50% 50%,var(--badge-glow) 0 24%,transparent 58%),
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.16) 0 8%,transparent 26%);
}
.tc-coach-rank-badge__halo{
  position:absolute;
  inset:5.5% 10% 10%;
  z-index:0;
  border-radius:46% 46% 50% 50% / 42% 42% 58% 58%;
  background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0));
  border:1px solid rgba(255,255,255,.16);
  opacity:.72;
}
.tc-coach-rank-badge__shield{
  width:88%;
  height:92%;
  background:
    linear-gradient(145deg,rgba(255,255,255,.22),rgba(255,255,255,0) 25%),
    linear-gradient(145deg,var(--badge-metal-1) 0%,var(--badge-metal-2) 82%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 -2px 6px rgba(0,0,0,.10),
    0 7px 14px rgba(10,34,55,.18);
}
.tc-coach-rank-badge__shield::before{
  inset:6.5%;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.22),transparent 44%),
    linear-gradient(155deg,rgba(255,255,255,.16),transparent 38%),
    linear-gradient(150deg,var(--badge-field-1),var(--badge-field-2));
}
.tc-coach-rank-badge__shield::after{
  inset:10.5% 12% 14%;
  border:1px solid rgba(255,255,255,.24);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
.tc-coach-rank-badge__shine{
  position:absolute;
  top:14%;
  left:16%;
  width:42%;
  height:26%;
  z-index:2;
  background:linear-gradient(135deg,rgba(255,255,255,.40),rgba(255,255,255,0));
  clip-path:polygon(0 0,100% 0,58% 100%,0 100%);
  opacity:.52;
  border-radius:8px;
}
.tc-coach-rank-badge__brand{
  top:36%;
  color:var(--badge-ink);
  font-size:calc(var(--badge-size) * .19);
  letter-spacing:.02em;
  text-shadow:0 1px 2px rgba(0,0,0,.30),0 0 10px rgba(255,255,255,.08);
}
.tc-coach-rank-badge__stage{
  left:50%;
  bottom:15%;
  min-width:34%;
  padding:.08em .44em;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(0,0,0,.08));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  font-size:calc(var(--badge-size) * .102);
  letter-spacing:.11em;
}
.tc-coach-rank-badge__gem{
  top:11%;
  color:rgba(255,245,204,.95);
  font-size:calc(var(--badge-size) * .122);
  opacity:var(--badge-gem);
  text-shadow:0 0 8px rgba(255,224,141,.35),0 1px 3px rgba(0,0,0,.22);
}
.tc-coach-rank-badge__crown{
  top:-3.5%;
  width:38%;
  height:15.5%;
  background:
    linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 36%),
    linear-gradient(180deg,var(--badge-metal-1),var(--badge-metal-2));
  box-shadow:0 2px 5px rgba(0,0,0,.12);
}
.tc-coach-rank-badge__spark{
  position:absolute;
  top:18%;
  z-index:3;
  color:rgba(255,242,202,.92);
  font-size:calc(var(--badge-size) * .09);
  line-height:1;
  text-shadow:0 0 8px rgba(255,222,133,.34);
  opacity:0;
  transform:translateY(0) scale(.82);
}
.tc-coach-rank-badge__spark--left{left:10%}
.tc-coach-rank-badge__spark--right{right:10%}

.tc-coach-rank-badge--starter{--badge-ink:#f7fbff}
.tc-coach-rank-badge--learner{--badge-ink:#f7fcff}
.tc-coach-rank-badge--builder{--badge-ink:#f7fffe}
.tc-coach-rank-badge--steady{--badge-ink:#f8fffb}
.tc-coach-rank-badge--flow{--badge-ink:#f7fffe}
.tc-coach-rank-badge--grow{--badge-ink:#f7fffb}
.tc-coach-rank-badge--advanced{--badge-ink:#ffecbf;--badge-aura:.32}
.tc-coach-rank-badge--expert{--badge-ink:#ffecc0;--badge-aura:.42}
.tc-coach-rank-badge--master{--badge-ink:#fff0c8;--badge-aura:.50;--badge-crown:.84}
.tc-coach-rank-badge--grand-master{--badge-ink:#fff2c9;--badge-aura:.80;--badge-crown:1}

.tc-coach-rank-badge--advanced .tc-coach-rank-badge__spark,
.tc-coach-rank-badge--expert .tc-coach-rank-badge__spark,
.tc-coach-rank-badge--master .tc-coach-rank-badge__spark,
.tc-coach-rank-badge--grand-master .tc-coach-rank-badge__spark{opacity:.68}
.tc-coach-rank-badge--expert .tc-coach-rank-badge__spark{opacity:.78}
.tc-coach-rank-badge--master .tc-coach-rank-badge__spark,
.tc-coach-rank-badge--grand-master .tc-coach-rank-badge__spark{opacity:.92}
.tc-coach-rank-badge--master .tc-coach-rank-badge__shield::after,
.tc-coach-rank-badge--grand-master .tc-coach-rank-badge__shield::after{
  border-color:rgba(255,239,190,.62);
}
.tc-coach-rank-badge--grand-master .tc-coach-rank-badge__halo{
  background:
    radial-gradient(circle at 50% 50%,rgba(255,214,96,.10),transparent 58%),
    linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0));
  border-color:rgba(255,228,154,.34);
}

/* --------------------------------------------------------------------------
   My Typing Coach hero: give the rank tile more breathing room and a clearer
   information hierarchy so the badge feels intentional, not cramped.
   -------------------------------------------------------------------------- */
.tc-system-page-my-typing-coach .tc-my-page-hero-status{
  grid-template-columns:minmax(240px,1.35fr) repeat(2,minmax(145px,.82fr));
  align-items:stretch;
}
.tc-system-page-my-typing-coach .tc-my-page-hero-status .tc-my-hero-rank{
  display:grid!important;
  grid-template-columns:auto 1fr;
  gap:12px 14px!important;
  align-items:center!important;
  justify-items:start;
  padding:16px 16px!important;
  text-align:left!important;
}
.tc-system-page-my-typing-coach .tc-my-hero-rank-badge .tc-coach-rank-badge--sm{
  --badge-size:58px;
}
.tc-system-page-my-typing-coach .tc-my-hero-rank>div:last-child{
  display:grid;
  align-content:center;
  gap:2px;
  min-width:0;
}
.tc-system-page-my-typing-coach .tc-my-hero-rank small{
  font-size:10px;
  letter-spacing:.06em;
}
.tc-system-page-my-typing-coach .tc-my-hero-rank strong{
  margin:0!important;
  white-space:nowrap;
  overflow-wrap:normal!important;
  font-size:clamp(21px,1.95vw,30px)!important;
  line-height:1.03!important;
  letter-spacing:-.02em;
}
.tc-system-page-my-typing-coach .tc-my-hero-rank span{
  color:#7d6a3a;
  font-size:11px;
  font-weight:850;
}
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(2),
.tc-system-page-my-typing-coach .tc-my-page-hero-status article:nth-child(3){
  display:grid;
  align-content:center;
}

/* the main earned badge block inside the PC zone should feel more premium too */
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature{
  width:142px;
  padding:10px 8px 8px;
  border:1px solid rgba(237,205,114,.34);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(15,52,85,.28),rgba(10,38,66,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 22px rgba(7,33,61,.10);
}
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:114px}
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature>small{
  margin-top:2px;
  font-size:.53rem;
  letter-spacing:.13em;
}

@media(max-width:1040px){
  .tc-system-page-my-typing-coach .tc-my-page-hero-status{
    grid-template-columns:1fr 1fr;
  }
  .tc-system-page-my-typing-coach .tc-my-page-hero-status .tc-my-hero-rank{
    grid-column:1 / -1;
  }
}
@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-page-hero-status{
    grid-template-columns:1fr 1fr!important;
    gap:8px;
  }
  .tc-system-page-my-typing-coach .tc-my-page-hero-status .tc-my-hero-rank{
    grid-column:1 / -1;
    padding:14px 14px!important;
  }
  .tc-system-page-my-typing-coach .tc-my-hero-rank-badge .tc-coach-rank-badge--sm{--badge-size:54px}
  .tc-system-page-my-typing-coach .tc-my-hero-rank strong{
    font-size:clamp(19px,6vw,25px)!important;
  }
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature{
    width:100%;
    max-width:180px;
    margin:0 auto 2px;
  }
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:104px}
}
@media(max-width:520px){
  .tc-system-page-my-typing-coach .tc-my-page-hero-status{
    grid-template-columns:1fr!important;
  }
  .tc-system-page-my-typing-coach .tc-my-page-hero-status .tc-my-hero-rank{
    grid-column:auto;
  }
}

@media(prefers-reduced-motion:no-preference){
  .tc-coach-rank-badge--expert .tc-coach-rank-badge__spark,
  .tc-coach-rank-badge--master .tc-coach-rank-badge__spark,
  .tc-coach-rank-badge--grand-master .tc-coach-rank-badge__spark{
    animation:tc-rank-sparkle 3.6s ease-in-out infinite;
  }
  .tc-coach-rank-badge--master .tc-coach-rank-badge__spark--right,
  .tc-coach-rank-badge--grand-master .tc-coach-rank-badge__spark--right,
  .tc-coach-rank-badge--expert .tc-coach-rank-badge__spark--right{
    animation-delay:1.4s;
  }
  @keyframes tc-rank-sparkle{
    0%,100%{transform:translateY(0) scale(.82);opacity:.38}
    45%{transform:translateY(-2px) scale(1);opacity:1}
    70%{transform:translateY(-1px) scale(.9);opacity:.72}
  }
}

/* ---- typing-coach-polish-v18692 | assets/css/polish-v18692.css ---- */
/* v1.86.92 — My Typing Coach hero overflow fix.
   Ensure the three summary cards never clip outside the hero on desktop/mobile. */

.tc-system-page-my-typing-coach .tc-my-page-hero{
  grid-template-columns:minmax(0,1.16fr) minmax(0,.94fr)!important;
}

.tc-system-page-my-typing-coach .tc-my-page-hero-copy,
.tc-system-page-my-typing-coach .tc-my-page-hero-status{
  min-width:0!important;
}

.tc-system-page-my-typing-coach .tc-my-page-hero-status{
  width:100%!important;
  max-width:640px!important;
  justify-self:end!important;
  align-self:stretch!important;
  box-sizing:border-box!important;
  grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  overflow:hidden!important;
}

.tc-system-page-my-typing-coach .tc-my-page-hero-status article{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

.tc-system-page-my-typing-coach .tc-my-page-hero-status .tc-my-hero-rank{
  grid-template-columns:auto minmax(0,1fr)!important;
}

.tc-system-page-my-typing-coach .tc-my-hero-rank>div:last-child{
  min-width:0!important;
}

.tc-system-page-my-typing-coach .tc-my-hero-rank strong{
  max-width:100%;
  overflow-wrap:anywhere!important;
  word-break:keep-all!important;
}

@media(max-width:1280px){
  .tc-system-page-my-typing-coach .tc-my-page-hero{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .tc-system-page-my-typing-coach .tc-my-page-hero-status{
    max-width:760px!important;
    justify-self:stretch!important;
  }
}

@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-page-hero-status{
    max-width:none!important;
    grid-template-columns:1fr 1fr!important;
  }
}

@media(max-width:520px){
  .tc-system-page-my-typing-coach .tc-my-page-hero-status{
    grid-template-columns:1fr!important;
  }
}

/* ---- typing-coach-polish-v18694 | assets/css/polish-v18694.css ---- */
/* v1.86.94 — formally adopted Coach Rank badge artwork + share safety fixes. */

/* Replace the earlier CSS-generated crest internals with the formally adopted PNG artwork. */
.tc-coach-rank-badge{
  overflow:visible;
  filter:drop-shadow(0 7px 13px rgba(8,31,52,.18));
}
.tc-coach-rank-badge::before,
.tc-coach-rank-badge::after{display:none!important}
.tc-coach-rank-badge__image{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  filter:none;
  user-select:none;
  pointer-events:none;
}
.tc-coach-rank-badge--xs{--badge-size:34px}
.tc-coach-rank-badge--sm{--badge-size:48px}
.tc-coach-rank-badge--md{--badge-size:66px}
.tc-coach-rank-badge--lg{--badge-size:82px}
.tc-coach-rank-badge--xl{--badge-size:118px}

/* Wide upper ranks need a touch more room so wings and ornamentation remain visible. */
.tc-coach-rank-badge--master,
.tc-coach-rank-badge--grand-master{aspect-ratio:1/1}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xs{--badge-size:38px}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--sm{--badge-size:52px}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xl{--badge-size:128px}

.tc-system-page-my-typing-coach .tc-my-rank-badge-feature{
  width:150px!important;
  min-width:150px;
  padding:10px 8px 8px;
}
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:122px}
.tc-system-page-my-typing-coach .tc-my-hero-rank-badge .tc-coach-rank-badge--sm{--badge-size:60px}
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge{min-height:66px}
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge .tc-coach-rank-badge--sm{--badge-size:55px}
.tc-system-page-my-typing-coach .tc-coach-rank-step.is-current .tc-coach-rank-step-badge{transform:scale(1.04)}

.tc-result-rank-badge-zone .tc-coach-rank-badge--lg{--badge-size:88px}
.tc-result-rankup-banner{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:8px 0 0;
  padding:8px 12px;
  border:1px solid rgba(221,171,58,.62);
  border-radius:999px;
  background:linear-gradient(135deg,#fff7dd,#fffdf4);
  color:#7b5a13;
  font-size:.76rem;
  font-weight:850;
  line-height:1.45;
  box-shadow:0 6px 16px rgba(14,40,66,.05);
}
.tc-result-rankup-banner::before{content:'★';display:inline-grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#d7a02d;color:#fff;font-size:.82rem;flex:0 0 auto}
.tc-result-rankup-banner[hidden]{display:none!important}
.tc-result-coach-rank.is-rank-up{border-color:#dfb24a;box-shadow:0 12px 30px rgba(15,38,67,.08),inset 0 1px 0 rgba(255,255,255,.72)}

@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature{width:100%!important;min-width:0;max-width:190px}
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:112px}
}

/* ---- typing-coach-polish-v18696 | assets/css/polish-v18696.css ---- */
/* v1.86.96 — Coach Rank badge edge-safety refinement.
   The formally adopted PNG badges looked clipped in a few UI contexts,
   especially at smaller sizes. Add consistent inner breathing room so the
   gold frame and side tips remain visible across My Typing Coach, the rank
   journey, and result cards. */

.tc-coach-rank-badge{
  box-sizing:border-box;
  overflow:visible!important;
}

.tc-coach-rank-badge--xs{padding:2px}
.tc-coach-rank-badge--sm{padding:3px}
.tc-coach-rank-badge--md{padding:4px}
.tc-coach-rank-badge--lg{padding:5px}
.tc-coach-rank-badge--xl{padding:6px}

.tc-coach-rank-badge__image{
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain;
  object-position:center center;
  transform:translateZ(0);
}

/* Keep badge holders generous as well, so the padded art is never hidden. */
.tc-result-rank-badge-zone,
.tc-system-page-my-typing-coach .tc-my-hero-rank-badge,
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature,
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge,
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now-badge{
  overflow:visible!important;
}

/* The officially adopted wide top-tier badges benefit from a touch more room. */
.tc-coach-rank-badge--master.tc-coach-rank-badge--xs,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xs{padding:3px}
.tc-coach-rank-badge--master.tc-coach-rank-badge--sm,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--sm{padding:4px}
.tc-coach-rank-badge--master.tc-coach-rank-badge--md,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--md{padding:5px}
.tc-coach-rank-badge--master.tc-coach-rank-badge--lg,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--lg{padding:6px}
.tc-coach-rank-badge--master.tc-coach-rank-badge--xl,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xl{padding:7px}

/* ---- typing-coach-polish-v18697 | assets/css/polish-v18697.css ---- */
/* v1.86.97 — badge artwork source fix.
   v1.86.96 only added CSS breathing room, but the underlying adopted PNGs were
   exported too tightly from the master sheet. v1.86.97 rebuilds the assets
   with a true transparent safety canvas and keeps their natural proportions. */

.tc-coach-rank-badge{
  padding:0!important;
  aspect-ratio:auto!important;
  height:auto!important;
  overflow:visible!important;
  line-height:0;
}

.tc-coach-rank-badge__image{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}

/* Keep every badge holder non-clipping. */
.tc-result-rank-badge-zone,
.tc-system-page-my-typing-coach .tc-my-hero-rank-badge,
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature,
.tc-system-page-my-typing-coach .tc-coach-rank-step,
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge,
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now,
.tc-system-page-my-typing-coach .tc-coach-rank-journey-now-badge{
  overflow:visible!important;
}

/* The master artwork now contains its own transparent safety margin, so no
   extra padding should be applied even to the wide upper-rank emblems. */
.tc-coach-rank-badge--master,
.tc-coach-rank-badge--grand-master,
.tc-coach-rank-badge--master.tc-coach-rank-badge--xs,
.tc-coach-rank-badge--master.tc-coach-rank-badge--sm,
.tc-coach-rank-badge--master.tc-coach-rank-badge--md,
.tc-coach-rank-badge--master.tc-coach-rank-badge--lg,
.tc-coach-rank-badge--master.tc-coach-rank-badge--xl,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xs,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--sm,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--md,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--lg,
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xl{
  padding:0!important;
  aspect-ratio:auto!important;
}

/* ---- typing-coach-polish-v18700 | assets/css/polish-v18700.css ---- */
/* v1.87.00 — Coach Rank badge safe-area refinement */
.tc-coach-rank-badge{overflow:visible!important;}
.tc-coach-rank-badge__image{display:block; width:100%; height:100%; object-fit:contain; object-position:center center;}
.tc-my-rank-badge-feature .tc-coach-rank-badge,
.tc-my-hero-rank-badge .tc-coach-rank-badge,
.tc-coach-rank-step-badge .tc-coach-rank-badge,
.tc-coach-rank-journey-now-badge .tc-coach-rank-badge,
.tc-result-rank-badge-zone .tc-coach-rank-badge{width:92%!important;height:92%!important;margin:0 auto;}

/* ---- typing-coach-polish-v18701 | assets/css/polish-v18701.css ---- */
/* v1.87.01 — Coach Rank badge rollback + stable layout restore.
   v1.87.00 made the badge wrappers expand to 92% of their containers, which
   broke the My Typing Coach hero layout. This file restores the compact fixed-
   size badge system and uses the approved unclipped badge crops. */
.tc-coach-rank-badge{
  position:relative!important;
  display:inline-grid!important;
  width:var(--badge-size)!important;
  aspect-ratio:.88!important;
  height:auto!important;
  flex:0 0 auto!important;
  place-items:center!important;
  vertical-align:middle!important;
  line-height:0!important;
  overflow:visible!important;
}
.tc-coach-rank-badge__image{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
}
.tc-coach-rank-badge--xs{--badge-size:34px!important}
.tc-coach-rank-badge--sm{--badge-size:48px!important}
.tc-coach-rank-badge--md{--badge-size:66px!important}
.tc-coach-rank-badge--lg{--badge-size:82px!important}
.tc-coach-rank-badge--xl{--badge-size:118px!important}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xs{--badge-size:38px!important}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--sm{--badge-size:52px!important}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xl{--badge-size:128px!important}
.tc-my-rank-badge-feature .tc-coach-rank-badge,
.tc-my-hero-rank-badge .tc-coach-rank-badge,
.tc-coach-rank-step-badge .tc-coach-rank-badge,
.tc-coach-rank-journey-now-badge.tc-coach-rank-badge,
.tc-result-rank-badge-zone .tc-coach-rank-badge{
  width:var(--badge-size)!important;
  height:auto!important;
  margin:0!important;
}
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature{
  width:150px!important;
  min-width:150px!important;
  padding:10px 8px 8px!important;
}
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:122px!important}
.tc-system-page-my-typing-coach .tc-my-hero-rank-badge .tc-coach-rank-badge--sm{--badge-size:60px!important}
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge{display:flex!important;align-items:center!important;justify-content:center!important;min-height:66px!important}
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge .tc-coach-rank-badge--sm{--badge-size:55px!important}
.tc-result-rank-badge-zone .tc-coach-rank-badge--lg{--badge-size:88px!important}
@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature{width:100%!important;min-width:0!important;max-width:190px!important}
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:112px!important}
}

/* ---- typing-coach-polish-v18703 | assets/css/polish-v18703.css ---- */
/* v1.87.03 — Official Coach Rank badge set rollout.
   The adopted badge assets are square tiles with their own navy/gold frame.
   Keep every rank fully visible, equally sized, and free from rank-specific
   overflow scaling so My Typing Coach, rankings, results and share UIs stay
   consistent. */
.tc-coach-rank-badge{
  aspect-ratio:1/1!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.tc-coach-rank-badge__image{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
}
/* The new official set uses one square canvas for all ten ranks. */
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xs{--badge-size:34px!important}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--sm{--badge-size:48px!important}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--md{--badge-size:66px!important}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--lg{--badge-size:82px!important}
.tc-coach-rank-badge--grand-master.tc-coach-rank-badge--xl{--badge-size:118px!important}

/* My Typing Coach: use the adopted square badge without stretching the layout. */
.tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:122px!important}
.tc-system-page-my-typing-coach .tc-my-hero-rank-badge .tc-coach-rank-badge--sm{--badge-size:60px!important}
.tc-system-page-my-typing-coach .tc-coach-rank-step-badge .tc-coach-rank-badge--sm{--badge-size:55px!important}
.tc-result-rank-badge-zone .tc-coach-rank-badge--lg{--badge-size:88px!important}

/* Prevent legacy badge decoration layers from appearing around image badges. */
.tc-coach-rank-badge::before,
.tc-coach-rank-badge::after,
.tc-coach-rank-badge__aura,
.tc-coach-rank-badge__shield,
.tc-coach-rank-badge__brand,
.tc-coach-rank-badge__stage,
.tc-coach-rank-badge__gem,
.tc-coach-rank-badge__crown{
  display:none!important;
}

@media(max-width:760px){
  .tc-system-page-my-typing-coach .tc-my-rank-badge-feature .tc-coach-rank-badge--xl{--badge-size:112px!important}
}

/* ---- typing-coach-polish-v18704 | assets/css/polish-v18704.css ---- */
/* Typing Coach v1.87.04 — new official brand logo rollout.
 * The new emblem is a square transparent PNG. Preserve its native aspect ratio
 * on every product surface and avoid inheriting the legacy 539:512 shield box.
 */
.tc-brand-shield-image,
.tc-home-brand-shield-image,
.tc-official-shield-image,
.tc-gfaq-brand-shield-image{
  aspect-ratio:1/1!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* Shared desktop header: compact square emblem beside the existing wordmark. */
body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield,
body.tc-standalone-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  max-width:48px!important;
  max-height:48px!important;
  flex:0 0 48px!important;
}
body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image,
body.tc-standalone-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
  width:48px!important;
  height:auto!important;
  min-width:48px!important;
  min-height:0!important;
  max-width:48px!important;
  max-height:none!important;
}

/* TOP hero: retain visual prominence without stretching the new square asset. */
.tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand{
  width:108px!important;
  height:108px!important;
  min-width:108px!important;
  min-height:108px!important;
  max-width:108px!important;
  max-height:108px!important;
}
.tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand .tc-home-brand-shield-image{
  width:108px!important;
  height:auto!important;
  min-width:108px!important;
  min-height:0!important;
  max-width:108px!important;
  max-height:none!important;
}

@media(max-width:1100px){
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield,
  body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    flex-basis:42px!important;
  }
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand{
    width:98px!important;height:98px!important;
    min-width:98px!important;min-height:98px!important;
    max-width:98px!important;max-height:98px!important;
  }
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand .tc-home-brand-shield-image{
    width:98px!important;min-width:98px!important;max-width:98px!important;
  }
}

@media(max-width:760px){
  body.tc-system-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield,
  body.tc-standalone-body .tc-system-header .tc-app-logo__mark.tc-app-logo__shield{
    width:38px!important;height:38px!important;
    min-width:38px!important;min-height:38px!important;
    max-width:38px!important;max-height:38px!important;
    flex:0 0 38px!important;
  }
  body.tc-system-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image,
  body.tc-standalone-body .tc-system-header .tc-app-logo__shield .tc-brand-shield-image{
    width:38px!important;min-width:38px!important;max-width:38px!important;
    height:auto!important;min-height:0!important;max-height:none!important;
  }
}

@media(max-width:600px){
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand{
    width:90px!important;height:90px!important;
    min-width:90px!important;min-height:90px!important;
    max-width:90px!important;max-height:90px!important;
  }
  .tc-home-hero-panel>.tc-home-mark.tc-home-mark--brand .tc-home-brand-shield-image{
    width:90px!important;min-width:90px!important;max-width:90px!important;
  }
}

/* ---- typing-coach-polish-v18705 | assets/css/polish-v18705.css ---- */
/* Typing Coach v1.87.05 — result-page ad outer frame parity.
 * Give every managed ad on 「あなたの練習結果」 the same premium outer
 * frame language used by the main page ad stages, without changing ad logic.
 */
body.tc-stage-result .tc-result-managed-ad:not([hidden]){
  position:relative;
  display:block;
  width:100%;
  max-width:none;
  box-sizing:border-box;
  margin:30px auto;
  padding:18px clamp(14px,2vw,28px) 24px;
  border:1px solid #d9e4eb;
  border-radius:22px;
  background:
    radial-gradient(circle at 96% 8%,rgba(207,164,58,.08),transparent 22%),
    linear-gradient(135deg,rgba(249,252,253,.98),rgba(255,252,244,.96));
  box-shadow:0 14px 34px rgba(16,52,80,.055);
  overflow:hidden;
  text-align:center;
}
body.tc-stage-result .tc-result-managed-ad:not([hidden])::before{
  content:"";
  position:absolute;
  top:0;
  left:clamp(20px,2.2vw,34px);
  width:112px;
  height:3px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,#c89624,#edc85b);
}

/* Keep the actual ad/preview centered inside the decorative frame. */
body.tc-stage-result .tc-result-managed-ad .tc-ad-preview-slot-status,
body.tc-stage-result .tc-result-managed-ad .tc-ad-preview-surface,
body.tc-stage-result .tc-result-managed-ad .tc-ad-live-content,
body.tc-stage-result .tc-result-managed-ad .tc-ad-fallback-card,
body.tc-stage-result .tc-result-managed-ad > .tc-ad-disclosure{
  position:relative;
  z-index:1;
}
body.tc-stage-result .tc-result-managed-ad .tc-ad-preview-slot-status{
  width:100%;
  max-width:1180px;
  margin:0 auto 10px;
  border-color:#d7e2e9;
  background:rgba(255,255,255,.74);
}
body.tc-stage-result .tc-result-managed-ad .tc-ad-preview-surface,
body.tc-stage-result .tc-result-managed-ad .tc-ad-live-content{
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}

/* Avoid a heavy double-card feel when a rectangle slot is selected. */
body.tc-stage-result .tc-result-managed-ad.tc-ad-layout-rectangle{
  max-width:none;
  border:1px solid #d9e4eb;
  background:
    radial-gradient(circle at 96% 8%,rgba(207,164,58,.08),transparent 22%),
    linear-gradient(135deg,rgba(249,252,253,.98),rgba(255,252,244,.96));
}
body.tc-stage-result .tc-result-managed-ad.tc-ad-layout-rectangle .tc-ad-live-content{
  width:min(336px,100%);
}

@media(max-width:767px){
  body.tc-stage-result .tc-result-managed-ad:not([hidden]){
    margin:24px auto;
    padding:16px 10px 18px;
    border-radius:18px;
  }
  body.tc-stage-result .tc-result-managed-ad:not([hidden])::before{
    left:18px;
    width:86px;
  }
  body.tc-stage-result .tc-result-managed-ad .tc-ad-preview-slot-status{
    margin-bottom:8px;
  }
}

/* ---- typing-coach-polish-v18706 | assets/css/polish-v18706.css ---- */
/* v1.87.06 — mobile content-width audit
 * Use more of the phone viewport across Typing Coach without changing
 * desktop/tablet geometry or the active typing-practice stage.
 */

@media (max-width:760px){
  /* ------------------------------------------------------------
     1) Typing Coach TOP: remove stacked outer gutters.
     ------------------------------------------------------------ */
  .tc-home-template-main.tc-home-template-standalone{
    padding-left:4px!important;
    padding-right:4px!important;
  }
  .tc-home-template-standalone>.tc-home,
  body.tc-home-system-page .tc-home{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .tc-home :is(
    .tc-home-hero,
    .tc-home-flick-entry,
    .tc-home-section,
    .tc-home-growth-now,
    .tc-home-register-value,
    .tc-home-popular-cards,
    .tc-home-for-groups,
    .tc-home-framework,
    .tc-home-final,
    .tc-top-practice-section,
    .tc-page-ad-wrap
  ){
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
  /* The flick-entry previously added its own 20–24px width deduction on top
     of the page gutter. Keep the design, but let it use the full lane. */
  .tc-home .tc-home-flick-entry{
    max-width:none!important;
    margin-top:16px!important;
    margin-bottom:22px!important;
  }
  /* Section frames remain comfortable, but no longer sacrifice a large part
     of the small-screen lane to nested horizontal padding. */
  .tc-home .tc-top-practice-section,
  .tc-home .tc-home-popular-cards{
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .tc-home .tc-home-register-value,
  .tc-home .tc-home-for-groups,
  .tc-home .tc-home-framework,
  .tc-home .tc-home-final{
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .tc-home .tc-home-section-head,
  .tc-home .tc-home-growth-head,
  .tc-home .tc-home-groups-copy,
  .tc-home .tc-home-benefits,
  .tc-home .tc-home-framework-grid,
  .tc-home .tc-top-practice-grid,
  .tc-home .tc-top-practice-grid>*{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .tc-home .tc-top-practice-card,
  .tc-home .tc-lesson-card--infeed-ad{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }

  /* ------------------------------------------------------------
     2) Shared system pages: a wider mobile canvas.
     Active intro/ready/practice stages keep their dedicated practice layout.
     ------------------------------------------------------------ */
  body.tc-system-body:not(.tc-stage-intro):not(.tc-stage-ready):not(.tc-stage-practice) .tc-system-main{
    padding-left:5px!important;
    padding-right:5px!important;
  }
  body.tc-system-body:not(.tc-stage-intro):not(.tc-stage-ready):not(.tc-stage-practice) .tc-system-main__inner{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
  }
  body.tc-system-body:not(.tc-stage-intro):not(.tc-stage-ready):not(.tc-stage-practice) .tc-system-main__inner > :is(
    .tc-panel,
    .tc-discovery,
    .tc-features-page,
    .tc-flick-page,
    .tc-flick-ranking,
    .tc-user-faq,
    .tc-growth-report,
    .tc-account-panel,
    .tc-register-panel,
    .tc-ranking-panel
  ){
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  /* Discovery had a viewport-based 24px deduction in addition to the shared
     shell. Let the shared shell own the gutter instead. */
  .tc-system-page-typing-lessons .tc-discovery{
    width:100%!important;
    max-width:none!important;
    margin-inline:0!important;
  }

  /* Login/account/register/legal pages may retain readable inner cards, but
     their page canvas itself should no longer be artificially narrow. */
  .tc-system-page-typing-coach-login .tc-system-main__inner,
  .tc-system-page-typing-coach-account .tc-system-main__inner,
  .tc-system-page-typing-coach-register .tc-system-main__inner,
  .tc-system-page-typing-coach-register-thanks .tc-system-main__inner,
  .tc-system-page-typing-coach-terms .tc-system-main__inner,
  .tc-system-page-typing-coach-privacy .tc-system-main__inner,
  .tc-system-page-typing-coach-commerce .tc-system-main__inner{
    width:100%!important;
    max-width:none!important;
  }

  /* Teams and FAQ shells use their own inner gutters; trim only the redundant
     outer mobile inset while leaving component padding intact. */
  .tc-system-page-typing-coach-groups .tc-gsales-v1855,
  .tc-system-page-typing-coach-groups .tc-gsales-v1856{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  /* Wide tables still scroll inside their wrappers rather than widening the
     whole page. */
  body.tc-system-body :is(
    .tc-table-wrap,
    .tc-ranking-table-wrap,
    .tc-audience-table-wrap,
    .tc-plan-table-wrap,
    .tc-aff-table-wrap,
    .tc-admin-table-scroll
  ){
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
}

@media (max-width:390px){
  .tc-home-template-main.tc-home-template-standalone{
    padding-left:3px!important;
    padding-right:3px!important;
  }
  body.tc-system-body:not(.tc-stage-intro):not(.tc-stage-ready):not(.tc-stage-practice) .tc-system-main{
    padding-left:3px!important;
    padding-right:3px!important;
  }
  .tc-home .tc-top-practice-section,
  .tc-home .tc-home-popular-cards,
  .tc-home .tc-home-register-value,
  .tc-home .tc-home-for-groups,
  .tc-home .tc-home-framework,
  .tc-home .tc-home-final{
    padding-left:9px!important;
    padding-right:9px!important;
  }
}

/* ---- typing-coach-polish-v18707 | assets/css/polish-v18707.css ---- */
/* v1.87.07 — Features-page mobile readability pass
 * Strengthen hierarchy, contrast and readable type on smartphones while
 * preserving the v1.87.06 wide mobile canvas and desktop/tablet layout.
 */

@media (max-width:760px){
  /* ------------------------------------------------------------
     1) Page-wide mobile typography and contrast.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page{
    color:#29475f;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(.tc-kicker,.tc-features-heading>span){
    color:#976812!important;
    font-size:10.5px!important;
    line-height:1.35!important;
    font-weight:900!important;
    letter-spacing:.14em!important;
    opacity:1!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading h2,
    .tc-coach-value-copy h2,
    .tc-features-accessible h2
  ){
    margin-top:8px!important;
    margin-bottom:13px!important;
    color:#0a3157!important;
    font-size:clamp(23px,6.4vw,28px)!important;
    line-height:1.43!important;
    letter-spacing:-.02em!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page .tc-title-segment{
    white-space:normal!important;
    line-break:strict!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  @supports (word-break:auto-phrase){
    .tc-system-page-typing-coach-features .tc-features-page .tc-title-segment{
      word-break:auto-phrase!important;
      overflow-wrap:normal!important;
    }
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading>p,
    .tc-coach-value-copy>p,
    .tc-features-accessible p,
    .tc-features-flick-lead,
    .tc-goal-story-lead
  ){
    color:#40596f!important;
    font-size:15.5px!important;
    line-height:1.86!important;
    font-weight:500!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page .tc-semantic-copy-line{
    line-height:inherit!important;
  }

  /* ------------------------------------------------------------
     2) Make the PC / smartphone-flick section unmistakably a section heading.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-flick-copy .tc-kicker{
    display:block!important;
    margin-bottom:8px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-copy h2{
    position:relative!important;
    display:block!important;
    margin:0 0 16px!important;
    padding:5px 0 7px 13px!important;
    border-left:4px solid #d5a32d!important;
    background:linear-gradient(90deg,rgba(255,247,226,.92),rgba(255,255,255,0) 88%)!important;
    color:#082f54!important;
    font-size:clamp(24px,6.8vw,29px)!important;
    line-height:1.42!important;
    letter-spacing:-.02em!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-copy h2 .tc-title-segment{
    display:block!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-points{
    gap:7px!important;
    margin-top:17px!important;
    margin-bottom:22px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-points span{
    min-height:34px!important;
    padding:7px 10px!important;
    color:#36546b!important;
    font-size:12px!important;
    line-height:1.45!important;
    font-weight:850!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    width:100%!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-actions .tc-linkbtn{
    width:100%!important;
    min-height:46px!important;
    padding:12px 14px!important;
    font-size:15px!important;
    line-height:1.45!important;
    text-align:center!important;
  }

  /* The previous two-column phone/result mock forced 9–11px text.  Stack it
     on phones so the explanatory copy can use real reading sizes. */
  .tc-system-page-typing-coach-features .tc-features-flick-visual{
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:14px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-phone{
    width:min(220px,78%)!important;
    min-height:188px!important;
    margin:0 auto!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result{
    width:100%!important;
    padding:8px 2px 2px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result>small{
    color:#946918!important;
    font-size:10.5px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result>strong{
    margin:6px 0 11px!important;
    color:#0a3157!important;
    font-size:19px!important;
    line-height:1.45!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result>div{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
    margin-bottom:10px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result>div span{
    display:block!important;
    padding:9px 6px!important;
    text-align:center!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result>div b{
    font-size:18px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result>div small{
    display:block!important;
    margin-top:2px!important;
    color:#526a7e!important;
    font-size:10.5px!important;
    line-height:1.4!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-result p{
    color:#40596f!important;
    font-size:14.5px!important;
    line-height:1.75!important;
  }

  /* ------------------------------------------------------------
     3) Cards: stronger headings, darker body copy, roomier line-height.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-six h3,
    .tc-feature-catalog-grid h3,
    .tc-score-formula h3,
    .tc-report-materials h3,
    .tc-report-benefits h3,
    .tc-audience-cards>article>strong
  ){
    color:#153b5b!important;
    font-size:17px!important;
    line-height:1.5!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-six p,
    .tc-feature-catalog-grid p,
    .tc-score-formula p,
    .tc-report-materials p,
    .tc-report-benefits>p,
    .tc-audience-cards>article>p,
    .tc-plan-status-note,
    .tc-plan-compare-note,
    .tc-audience-two-axis-footnote
  ){
    color:#435d72!important;
    font-size:14.5px!important;
    line-height:1.78!important;
  }
  .tc-system-page-typing-coach-features .tc-features-six article{
    padding:18px 16px!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid article{
    padding:18px 16px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-six article>b{
    color:#a57516!important;
    opacity:1!important;
  }
  .tc-system-page-typing-coach-features .tc-features-six article>span,
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid article>span{
    flex:0 0 auto!important;
  }

  /* ------------------------------------------------------------
     4) Growth / report / purpose blocks: raise the smallest readable copy.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article>strong{
    color:#173d5d!important;
    font-size:15.5px!important;
    line-height:1.45!important;
  }
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article>small{
    color:#52697b!important;
    font-size:12.5px!important;
    line-height:1.6!important;
  }
  .tc-system-page-typing-coach-features .tc-coach-value-points span,
  .tc-system-page-typing-coach-features .tc-score-breakdown span,
  .tc-system-page-typing-coach-features .tc-score-benefits span,
  .tc-system-page-typing-coach-features .tc-report-benefit-list span,
  .tc-system-page-typing-coach-features .tc-accessible-points span{
    color:#36546b!important;
    font-size:12.5px!important;
    line-height:1.55!important;
    font-weight:800!important;
  }
  .tc-system-page-typing-coach-features .tc-report-flow span{
    color:#244760!important;
    font-size:14px!important;
    line-height:1.5!important;
    font-weight:850!important;
  }
  .tc-system-page-typing-coach-features .tc-report-flow small,
  .tc-system-page-typing-coach-features .tc-report-materials-grid small,
  .tc-system-page-typing-coach-features .tc-report-format small,
  .tc-system-page-typing-coach-features .tc-plan-current-grid small{
    color:#536b7e!important;
    font-size:12px!important;
    line-height:1.6!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials-grid span,
  .tc-system-page-typing-coach-features .tc-report-format strong,
  .tc-system-page-typing-coach-features .tc-plan-current-grid strong{
    color:#173d5d!important;
    font-size:14.5px!important;
    line-height:1.5!important;
  }
  .tc-system-page-typing-coach-features .tc-report-preview-head small,
  .tc-system-page-typing-coach-features .tc-report-preview-body small{
    color:#dce8f0!important;
    font-size:11.5px!important;
    line-height:1.55!important;
    opacity:1!important;
  }
  .tc-system-page-typing-coach-features .tc-goal-input-mock label{
    color:#244760!important;
    font-size:14px!important;
    line-height:1.5!important;
  }
  .tc-system-page-typing-coach-features .tc-goal-input-mock article>div{
    color:#536a7d!important;
    font-size:13.5px!important;
    line-height:1.7!important;
  }
  .tc-system-page-typing-coach-features .tc-goal-input-mock small{
    color:#596f81!important;
    font-size:12px!important;
    line-height:1.6!important;
  }
  .tc-system-page-typing-coach-features .tc-goal-evolution article small{
    color:#6a5b35!important;
    font-size:11.5px!important;
  }
  .tc-system-page-typing-coach-features .tc-goal-evolution article strong{
    color:#193e5c!important;
    font-size:14px!important;
    line-height:1.55!important;
  }

  /* ------------------------------------------------------------
     5) Comparison + CTA readability.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-audience-cards li{
    color:#405a6d!important;
    font-size:13.5px!important;
    line-height:1.65!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page .tc-linkbtn{
    font-size:15px!important;
    line-height:1.45!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-features-accessible{
    gap:18px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-final>p{
    color:#e4edf4!important;
    font-size:15.5px!important;
    line-height:1.85!important;
  }
  .tc-system-page-typing-coach-features .tc-features-final .tc-kicker{
    color:#f0bd43!important;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading h2,
    .tc-coach-value-copy h2,
    .tc-features-accessible h2,
    .tc-features-flick-copy h2
  ){
    font-size:23px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading>p,
    .tc-coach-value-copy>p,
    .tc-features-accessible p,
    .tc-features-flick-lead,
    .tc-goal-story-lead
  ){
    font-size:15px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-phone{
    width:min(205px,82%)!important;
    min-height:178px!important;
  }
}

/* ---- typing-coach-polish-v18708 | assets/css/polish-v18708.css ---- */
/* v1.87.08 — Features-page mobile scan hierarchy + dark-panel contrast
 * Make important information recognizable while skim-reading on phones.
 * This layer intentionally targets only the public Features page at <=760px.
 */

@media (max-width:760px){
  /* ------------------------------------------------------------
     1) Stronger section rhythm: headings should read before body copy.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page .tc-features-heading{
    margin-bottom:22px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading h2,
    .tc-coach-value-copy h2,
    .tc-features-accessible h2,
    .tc-features-flick-copy h2
  ){
    color:#072f55!important;
    font-size:clamp(25px,7vw,30px)!important;
    line-height:1.38!important;
    font-weight:900!important;
    letter-spacing:-.025em!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading>p,
    .tc-coach-value-copy>p,
    .tc-features-accessible p,
    .tc-features-flick-lead,
    .tc-goal-story-lead
  ){
    color:#36546b!important;
    font-size:16px!important;
    line-height:1.9!important;
    font-weight:520!important;
  }

  /* ------------------------------------------------------------
     2) Scan-friendly card hierarchy.
     The title should be the first thing the eye catches on each card.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-six h3,
    .tc-feature-catalog-grid h3,
    .tc-score-formula h3,
    .tc-report-benefits h3,
    .tc-audience-cards>article>strong
  ){
    margin-top:14px!important;
    margin-bottom:10px!important;
    color:#082f54!important;
    font-size:20px!important;
    line-height:1.42!important;
    font-weight:900!important;
    letter-spacing:-.018em!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-six h3,
    .tc-feature-catalog-grid h3
  )::after{
    content:"";
    display:block;
    width:34px;
    height:3px;
    margin-top:9px;
    border-radius:999px;
    background:linear-gradient(90deg,#d8a52c,#efcf73);
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-six p,
    .tc-feature-catalog-grid p,
    .tc-score-formula p,
    .tc-report-benefits>p,
    .tc-audience-cards>article>p,
    .tc-plan-status-note,
    .tc-plan-compare-note,
    .tc-audience-two-axis-footnote
  ){
    color:#38566d!important;
    font-size:15.5px!important;
    line-height:1.88!important;
    font-weight:500!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid article,
  .tc-system-page-typing-coach-features .tc-features-six article{
    padding:22px 18px!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid article>span{
    width:56px!important;
    height:56px!important;
    border-radius:16px!important;
    font-size:16px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-six article>span{
    transform:scale(1.08);
    transform-origin:left center;
  }

  /* ------------------------------------------------------------
     3) Report flow: preserve contrast on the dark final step.
     v1.87.07's generic mobile title colors overrode the white-on-navy rule.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-report-flow article{
    padding:16px 12px!important;
  }
  .tc-system-page-typing-coach-features .tc-report-flow article span{
    color:#153c5d!important;
    font-size:15px!important;
    line-height:1.5!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-report-flow article small{
    color:#5b7183!important;
    font-size:12.5px!important;
    line-height:1.58!important;
  }
  .tc-system-page-typing-coach-features .tc-report-flow article.is-report{
    background:linear-gradient(180deg,#123f66,#0a3153)!important;
    border-color:#0a3153!important;
  }
  .tc-system-page-typing-coach-features .tc-report-flow article.is-report span{
    color:#fff!important;
  }
  .tc-system-page-typing-coach-features .tc-report-flow article.is-report small{
    color:#dbe9f2!important;
  }

  /* ------------------------------------------------------------
     4) Growth cycle: keep the gold/navy growth card readable.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article>strong{
    color:#123b5e!important;
    font-size:17px!important;
    line-height:1.45!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article>small{
    color:#526b7f!important;
    font-size:13px!important;
    line-height:1.62!important;
  }
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article.is-growth{
    background:linear-gradient(180deg,#174b72,#0d3558)!important;
    border-color:#d6a63a!important;
    box-shadow:inset 0 3px 0 #d9aa3c,0 12px 26px rgba(11,47,80,.12)!important;
  }
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article.is-growth>span{
    background:#f1c95c!important;
    color:#5c430c!important;
  }
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article.is-growth>strong{
    color:#fff!important;
  }
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article.is-growth>small{
    color:#dbe8f1!important;
  }

  /* ------------------------------------------------------------
     5) "What builds your report" is a dark editorial panel.
     Restore deliberate white-on-navy contrast and stronger hierarchy.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-report-materials{
    padding:24px 18px!important;
    background:linear-gradient(150deg,#0c3559 0%,#123f66 100%)!important;
    border-color:#184b72!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials>.tc-report-materials-grid{
    margin-top:2px!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials>div:first-child .tc-kicker{
    color:#f0bd43!important;
    font-size:11px!important;
    letter-spacing:.16em!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials>div:first-child h3{
    margin:8px 0 11px!important;
    color:#fff!important;
    font-size:clamp(22px,6vw,26px)!important;
    line-height:1.43!important;
    font-weight:900!important;
    letter-spacing:-.02em!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials>div:first-child p{
    margin:0!important;
    color:#e1edf5!important;
    font-size:15.5px!important;
    line-height:1.9!important;
    font-weight:500!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials-grid article{
    padding:17px 12px!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials-grid span{
    color:#0f3859!important;
    font-size:16px!important;
    line-height:1.48!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials-grid small{
    color:#5b7183!important;
    font-size:12.5px!important;
    line-height:1.62!important;
  }

  /* ------------------------------------------------------------
     6) Secondary information should still be comfortably readable.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-coach-value-points span,
    .tc-score-breakdown span,
    .tc-score-benefits span,
    .tc-report-benefit-list span,
    .tc-accessible-points span
  ){
    font-size:13.5px!important;
    line-height:1.62!important;
  }
  .tc-system-page-typing-coach-features .tc-report-format strong,
  .tc-system-page-typing-coach-features .tc-plan-current-grid strong{
    font-size:16px!important;
    line-height:1.5!important;
  }
  .tc-system-page-typing-coach-features .tc-report-format small,
  .tc-system-page-typing-coach-features .tc-plan-current-grid small{
    font-size:12.5px!important;
    line-height:1.65!important;
  }

  /* CTA / inline interactive text should scan like actions, not footnotes. */
  .tc-system-page-typing-coach-features .tc-features-page .tc-linkbtn{
    min-height:46px!important;
    font-size:15.5px!important;
    font-weight:900!important;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading h2,
    .tc-coach-value-copy h2,
    .tc-features-accessible h2,
    .tc-features-flick-copy h2
  ){
    font-size:24px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-heading>p,
    .tc-coach-value-copy>p,
    .tc-features-accessible p,
    .tc-features-flick-lead,
    .tc-goal-story-lead
  ){
    font-size:15.5px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-six h3,
    .tc-feature-catalog-grid h3,
    .tc-score-formula h3,
    .tc-report-benefits h3,
    .tc-audience-cards>article>strong
  ){
    font-size:19px!important;
  }
}

/* ---- typing-coach-polish-v18709 | assets/css/polish-v18709.css ---- */
/* v1.87.09 — Features-page mobile holistic reflow
 * Rebuild text-heavy split layouts into a single reading column on phones.
 * Compact metric/chip grids remain multi-column where that improves scanning.
 * Desktop/tablet composition is intentionally untouched.
 */

@media (max-width:760px){
  /* ------------------------------------------------------------
     1) Whole-page mobile layout guard.
     Text-heavy split layouts must never compete for horizontal space.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-flick,
    .tc-coach-value,
    .tc-report-materials,
    .tc-report-showcase,
    .tc-features-accessible,
    .tc-feature-visual-strip,
    .tc-report-format,
    .tc-goal-input-mock.is-four,
    .tc-plan-benefit-strip,
    .tc-audience-cards.is-2cols,
    .tc-audience-cards.is-3cols
  ){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-features-flick>*,
    .tc-coach-value>*,
    .tc-report-materials>*,
    .tc-report-showcase>*,
    .tc-features-accessible>*,
    .tc-feature-visual-strip>*,
    .tc-report-format>*,
    .tc-goal-input-mock.is-four>*,
    .tc-plan-benefit-strip>*,
    .tc-audience-cards>article
  ){
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  /* The plan summary is content-heavy on phones; one card per row is calmer. */
  .tc-system-page-typing-coach-features .tc-plan-current#individual-plans .tc-plan-current-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }

  /* Coaching theme groups contain long Japanese labels. */
  .tc-system-page-typing-coach-features .tc-coach-theme-groups{
    grid-template-columns:minmax(0,1fr)!important;
  }

  /* ------------------------------------------------------------
     2) EASY TO UNDERSTAND — copy first, points second.
     Fixes the screenshot where both columns became narrow and tall.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-accessible{
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
    gap:24px!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-accessible>div:first-child{
    width:100%!important;
    max-width:none!important;
  }
  .tc-system-page-typing-coach-features .tc-features-accessible .tc-kicker{
    display:block!important;
    margin-bottom:10px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-accessible h2{
    max-width:none!important;
    margin:0 0 14px!important;
    font-size:clamp(27px,7.4vw,32px)!important;
    line-height:1.38!important;
    text-align:left!important;
  }
  .tc-system-page-typing-coach-features .tc-features-accessible p{
    max-width:none!important;
    margin:0!important;
    font-size:16px!important;
    line-height:1.92!important;
    text-align:left!important;
  }
  .tc-system-page-typing-coach-features .tc-accessible-points{
    width:100%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    margin:0!important;
  }
  .tc-system-page-typing-coach-features .tc-accessible-points span{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    min-height:58px!important;
    padding:12px 10px!important;
    border-radius:14px!important;
    color:#244b68!important;
    font-size:14px!important;
    line-height:1.45!important;
    font-weight:900!important;
    text-align:center!important;
    white-space:normal!important;
  }

  /* ------------------------------------------------------------
     3) Consistent vertical rhythm after stacking.
     Do not let former column gaps turn into giant empty spaces.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-flick{
    gap:22px!important;
  }
  .tc-system-page-typing-coach-features .tc-coach-value{
    gap:24px!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials{
    gap:20px!important;
  }
  .tc-system-page-typing-coach-features .tc-report-showcase{
    gap:18px!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-visual-strip{
    gap:14px!important;
  }
  .tc-system-page-typing-coach-features .tc-report-format{
    gap:10px!important;
  }
  .tc-system-page-typing-coach-features .tc-goal-input-mock.is-four{
    gap:12px!important;
  }
  .tc-system-page-typing-coach-features .tc-plan-benefit-strip{
    gap:10px!important;
  }
  .tc-system-page-typing-coach-features .tc-plan-benefit-strip>i{
    transform:rotate(90deg)!important;
    text-align:center!important;
  }

  /* ------------------------------------------------------------
     4) Mobile section copy should use the available width.
     Prevent inherited desktop max-widths from recreating narrow columns.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page :is(
    .tc-coach-value-copy,
    .tc-coach-value-copy>p,
    .tc-features-flick-copy,
    .tc-features-flick-lead,
    .tc-report-materials>div:first-child,
    .tc-report-benefits,
    .tc-goal-story .tc-features-heading,
    .tc-features-accessible>div:first-child
  ){
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }

  /* Report/format cards are easier to scan when icon + copy have room. */
  .tc-system-page-typing-coach-features .tc-report-format>div{
    width:100%!important;
    min-width:0!important;
    padding:16px 14px!important;
  }

  /* Usage decision cards should read like clear actions, not a tiny grid. */
  .tc-system-page-typing-coach-features .tc-audience-next-actions,
  .tc-system-page-typing-coach-features .tc-audience-next-actions.is-four{
    grid-template-columns:minmax(0,1fr)!important;
    gap:9px!important;
  }
}

/* Narrow phones: even short utility chips get a full readable line. */
@media (max-width:430px){
  .tc-system-page-typing-coach-features .tc-accessible-points{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .tc-system-page-typing-coach-features .tc-accessible-points span{
    min-height:52px!important;
    font-size:14.5px!important;
  }
}

/* ---- typing-coach-polish-v18710 | assets/css/polish-v18710.css ---- */
/* v1.87.10 — Features page desktop scan hierarchy / editorial rhythm
 * Strengthens the desktop reading hierarchy without changing mobile reflow.
 * Goal: a user skimming the long Features page should still recognize every major section.
 */

@media (min-width:961px){
  /* ------------------------------------------------------------
     1) Page-wide editorial rhythm: stronger section titles and copy.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-section{
    margin-top:32px!important;
    margin-bottom:32px!important;
    padding-top:68px!important;
    padding-bottom:68px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page .tc-features-heading{
    margin-bottom:30px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page .tc-features-heading>span,
  .tc-system-page-typing-coach-features .tc-features-page .tc-kicker{
    color:#a17011!important;
    font-size:12.5px!important;
    line-height:1.4!important;
    font-weight:900!important;
    letter-spacing:.19em!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page .tc-features-heading h2{
    margin-top:10px!important;
    margin-bottom:13px!important;
    color:#062f55!important;
    font-size:clamp(35px,2.35vw,44px)!important;
    line-height:1.28!important;
    font-weight:900!important;
    letter-spacing:-.028em!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page .tc-features-heading>p{
    max-width:900px!important;
    color:#435f73!important;
    font-size:16px!important;
    line-height:1.9!important;
    font-weight:500!important;
  }

  /* ------------------------------------------------------------
     2) Smartphone flick section: make the Japanese copy a real H2 visually.
     Desktop remains a balanced 2-column editorial section.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-flick{
    grid-template-columns:minmax(0,1.08fr) minmax(460px,.92fr)!important;
    gap:52px!important;
    align-items:center!important;
    padding-left:52px!important;
    padding-right:52px!important;
    background:linear-gradient(135deg,#f8fbfd 0%,#fff 53%,#fff8e9 100%)!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-copy{
    min-width:0!important;
    max-width:760px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-copy h2{
    margin:10px 0 18px!important;
    color:#062f55!important;
    font-size:clamp(34px,2.25vw,42px)!important;
    line-height:1.32!important;
    font-weight:900!important;
    letter-spacing:-.025em!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-copy h2 .tc-title-segment{
    display:block!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-lead{
    max-width:720px!important;
    color:#425f74!important;
    font-size:16px!important;
    line-height:1.9!important;
    font-weight:500!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-points{
    gap:9px!important;
    margin-top:22px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-points span{
    padding:9px 13px!important;
    font-size:13.5px!important;
    line-height:1.4!important;
    font-weight:850!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-actions{
    margin-top:22px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-actions .tc-linkbtn{
    min-height:48px!important;
    padding:12px 20px!important;
    font-size:15px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-flick-visual{
    width:100%!important;
    max-width:620px!important;
    justify-self:end!important;
  }

  /* ------------------------------------------------------------
     3) Core cards: title first, explanation second.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-features-six{
    gap:20px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-six article{
    min-height:218px!important;
    padding:26px 22px 24px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-six h3,
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid h3{
    color:#0a3559!important;
    font-size:20.5px!important;
    line-height:1.42!important;
    font-weight:900!important;
    letter-spacing:-.015em!important;
  }
  .tc-system-page-typing-coach-features .tc-features-six h3::after,
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid h3::after{
    content:"";
    display:block;
    width:32px;
    height:2.5px;
    margin-top:9px;
    border-radius:999px;
    background:linear-gradient(90deg,#d49d24,#efd073);
  }
  .tc-system-page-typing-coach-features .tc-features-six p,
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid p{
    color:#526b7d!important;
    font-size:15.2px!important;
    line-height:1.84!important;
    font-weight:500!important;
  }

  /* ------------------------------------------------------------
     4) ALL IN ONE catalog: 3 columns on desktop to avoid tiny cards.
     Twelve items become four calm rows that are much easier to skim.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:18px!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid article{
    min-height:206px!important;
    padding:24px 22px 22px!important;
    border-radius:18px!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid article>span{
    width:54px!important;
    height:54px!important;
    border-radius:15px!important;
    font-size:15px!important;
  }

  /* ------------------------------------------------------------
     5) Long-form sections: strengthen their local headings and leads.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-features .tc-coach-value-copy h2,
  .tc-system-page-typing-coach-features .tc-goal-story .tc-features-heading h2,
  .tc-system-page-typing-coach-features .tc-features-accessible h2{
    color:#062f55!important;
    font-size:clamp(34px,2.25vw,41px)!important;
    line-height:1.32!important;
    font-weight:900!important;
    letter-spacing:-.025em!important;
  }
  .tc-system-page-typing-coach-features .tc-coach-value-copy>p,
  .tc-system-page-typing-coach-features .tc-goal-story-lead,
  .tc-system-page-typing-coach-features .tc-features-accessible p{
    color:#486477!important;
    font-size:15.8px!important;
    line-height:1.9!important;
    font-weight:500!important;
  }
  .tc-system-page-typing-coach-features .tc-coach-value-points span{
    padding:9px 13px!important;
    font-size:13px!important;
  }

  /* Growth cycle labels should remain legible even when scanned quickly. */
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article strong{
    font-size:18.5px!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-growth-cycle-track article small{
    color:#607789!important;
    font-size:12.5px!important;
    line-height:1.6!important;
  }

  /* Coach Score: clearer card hierarchy without making the formulas noisy. */
  .tc-system-page-typing-coach-features .tc-score-formula article{
    padding:24px 22px 22px!important;
  }
  .tc-system-page-typing-coach-features .tc-score-formula h3{
    color:#0b3558!important;
    font-size:20px!important;
    line-height:1.4!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-score-formula p{
    color:#50697b!important;
    font-size:15px!important;
    line-height:1.8!important;
  }

  /* Growth report: large title + distinct subhead blocks. */
  .tc-system-page-typing-coach-features .tc-features-report .tc-features-heading h2{
    font-size:clamp(35px,2.35vw,44px)!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials h3,
  .tc-system-page-typing-coach-features .tc-report-benefits h3{
    font-size:25px!important;
    line-height:1.38!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials>div:first-child>p,
  .tc-system-page-typing-coach-features .tc-report-benefits>p{
    font-size:15.5px!important;
    line-height:1.86!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials-grid article span{
    font-size:14.5px!important;
    font-weight:900!important;
  }
  .tc-system-page-typing-coach-features .tc-report-materials-grid article small{
    font-size:12.5px!important;
    line-height:1.6!important;
  }

  /* EASY TO UNDERSTAND remains two-column on desktop, but with stronger hierarchy. */
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-accessible{
    gap:42px!important;
    padding-left:44px!important;
    padding-right:44px!important;
  }
  .tc-system-page-typing-coach-features .tc-accessible-points{
    gap:11px!important;
  }
  .tc-system-page-typing-coach-features .tc-accessible-points span{
    min-height:58px!important;
    padding:14px 16px!important;
    border-radius:14px!important;
    font-size:14px!important;
    line-height:1.4!important;
    font-weight:900!important;
  }
}

/* Medium desktop / small laptop: keep the hierarchy, avoid oversized spacing. */
@media (min-width:961px) and (max-width:1240px){
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-section{
    padding-top:58px!important;
    padding-bottom:58px!important;
  }
  .tc-system-page-typing-coach-features .tc-features-page>.tc-features-flick{
    grid-template-columns:minmax(0,1fr) minmax(390px,.9fr)!important;
    gap:34px!important;
    padding-left:34px!important;
    padding-right:34px!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .tc-system-page-typing-coach-features .tc-feature-catalog-grid article{
    min-height:196px!important;
    padding:22px 18px 20px!important;
  }
}

/* ---- typing-coach-polish-v18711 | assets/css/polish-v18711.css ---- */
/* v1.87.11 — smartphone flick page mobile-first scanability + width optimization.
 * Scope: the smartphone-input landing / lesson-selection experience only.
 * Goal: use more of the phone viewport, strengthen hierarchy, and make fast scrolling easier to parse.
 */

@media (max-width:760px){
  /* ------------------------------------------------------------
     1) Wider page canvas — remove redundant nested gutters.
     Keep the active practice stage itself on the established safe layout.
     ------------------------------------------------------------ */
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-system-main{
    padding-left:3px!important;
    padding-right:3px!important;
  }
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-system-main__inner{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    padding-left:0!important;
    padding-right:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-flick{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    gap:13px!important;
    box-sizing:border-box!important;
  }
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-flick > :is(
    .tc-flick-hero,
    .tc-flick-start,
    .tc-flick-result,
    .tc-flick-ad-wrap,
    .tc-flick-desktop-note
  ){
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  /* ------------------------------------------------------------
     2) Hero — stronger first-screen hierarchy without wasting width.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-flick .tc-flick-hero{
    border-radius:19px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-hero__copy{
    padding:22px 14px 20px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-hero .tc-home-eyebrow{
    font-size:10.5px!important;
    letter-spacing:.13em!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-hero h1{
    margin:7px 0 13px!important;
    font-size:clamp(29px,8.2vw,35px)!important;
    line-height:1.2!important;
    letter-spacing:0!important;
    text-wrap:balance;
  }
  .tc-system-page-typing-coach-flick .tc-flick-hero p{
    font-size:14.5px!important;
    line-height:1.82!important;
    color:#344f68!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-semantic-copy > span{
    display:block!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-semantic-copy > span + span::before{
    content:""!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-hero__badges{
    gap:7px!important;
    margin-top:16px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-hero__badges span{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    padding:6px 10px!important;
    border:1px solid #dce7ef;
    background:#f7fafc!important;
    color:#334f68!important;
    font-size:10.5px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-help-actions{
    margin-top:13px!important;
  }

  /* ------------------------------------------------------------
     3) Selection section — less nested padding, clearer chapter rhythm.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-flick .tc-flick-start{
    padding:18px 8px 20px!important;
    border-radius:18px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-section-head{
    width:100%!important;
    max-width:none!important;
    padding:0 5px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-section-head .tc-home-eyebrow,
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro .tc-home-eyebrow{
    font-size:10.5px!important;
    letter-spacing:.13em!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-section-head h2{
    margin:5px 0 9px!important;
    font-size:clamp(24px,7.1vw,29px)!important;
    line-height:1.3!important;
    letter-spacing:.01em!important;
    text-wrap:balance;
  }
  .tc-system-page-typing-coach-flick .tc-flick-section-head p{
    font-size:14.5px!important;
    line-height:1.8!important;
    color:#405b72!important;
  }

  /* Three growth principles become obvious scan anchors. */
  .tc-system-page-typing-coach-flick .tc-flick-growth-principles{
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-top:18px!important;
    padding:0 1px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-growth-principles > div{
    min-height:0!important;
    padding:14px 14px 13px 16px!important;
    border-radius:15px!important;
    border-left:4px solid #3f78a8!important;
    box-shadow:0 5px 15px rgba(8,46,79,.045);
  }
  .tc-system-page-typing-coach-flick .tc-flick-growth-principles > div:nth-child(2){border-left-color:#d2a12d!important}
  .tc-system-page-typing-coach-flick .tc-flick-growth-principles > div:nth-child(3){border-left-color:#4f9873!important}
  .tc-system-page-typing-coach-flick .tc-flick-growth-principles small{font-size:10px!important}
  .tc-system-page-typing-coach-flick .tc-flick-growth-principles strong{
    margin:3px 0 4px!important;
    font-size:17px!important;
    line-height:1.4!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-growth-principles span{
    font-size:13.5px!important;
    line-height:1.68!important;
    color:#4d657b!important;
  }

  /* ------------------------------------------------------------
     4) Lessons chapter + difficulty tabs — easier to locate at speed.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro{
    margin:24px 0 10px!important;
    padding:18px 13px 16px!important;
    border-radius:16px!important;
    background:linear-gradient(145deg,#0b355c 0%,#0e446f 100%)!important;
    border-color:#1a587f!important;
    box-shadow:0 9px 25px rgba(8,46,79,.13)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro::after{
    opacity:.22!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro .tc-home-eyebrow{
    color:#f1bd47!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro h3{
    margin:4px 0 7px!important;
    color:#fff!important;
    font-size:clamp(25px,7.4vw,30px)!important;
    line-height:1.25!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro p{
    margin:0!important;
    color:#e5eef5!important;
    font-size:14px!important;
    line-height:1.72!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro p strong{
    color:#fff!important;
    font-size:14.5px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-lessons-intro p span{
    color:#d8e5ef!important;
  }

  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:7px!important;
    width:100%!important;
    max-width:none!important;
    margin:10px 0 5px!important;
    padding:2px 1px 6px!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
  }
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter::-webkit-scrollbar{display:none}
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button{
    flex:0 0 auto!important;
    min-width:74px!important;
    min-height:42px!important;
    padding:0 14px!important;
    border-radius:999px!important;
    border:1px solid #cfdee8!important;
    background:#fff!important;
    color:#24445f!important;
    font-size:14px!important;
    font-weight:850!important;
    scroll-snap-align:start;
    box-shadow:0 3px 10px rgba(8,46,79,.035);
  }
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button.is-active{
    border-color:#d7a52e!important;
    background:#0c3b64!important;
    color:#fff!important;
    box-shadow:inset 0 -3px 0 #d7a52e,0 6px 15px rgba(8,46,79,.13)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-help{
    margin:2px 3px 12px!important;
    color:#526a7e!important;
    font-size:13px!important;
    line-height:1.6!important;
  }

  /* ------------------------------------------------------------
     5) Lesson cards — full-lane, bigger titles, stronger difficulty cues.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-flick .tc-flick-modes{
    width:100%!important;
    max-width:none!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    margin-top:0!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode,
  .tc-system-page-typing-coach-flick .tc-flick-infeed-ad{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    border-radius:16px!important;
    box-sizing:border-box!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode{
    padding:17px 14px 16px 18px!important;
    box-shadow:0 7px 18px rgba(8,46,79,.07)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode::before{
    width:5px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode > small{
    font-size:10.5px!important;
    letter-spacing:.12em!important;
    line-height:1.3!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode strong{
    margin:5px 0 7px!important;
    font-size:clamp(19px,5.7vw,22px)!important;
    line-height:1.38!important;
    letter-spacing:.01em!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode__meta{
    gap:5px!important;
    margin-bottom:7px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode__meta b,
  .tc-system-page-typing-coach-flick .tc-flick-mode__meta em{
    min-height:25px!important;
    padding:4px 8px!important;
    font-size:10px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode__desc{
    color:#405970!important;
    font-size:14px!important;
    line-height:1.72!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode__action{
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    min-height:37px;
    margin-top:10px!important;
    padding-top:9px!important;
    color:#0b426f!important;
    font-size:13.5px!important;
    line-height:1.4!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode__action i{
    font-size:18px;
  }

  /* ------------------------------------------------------------
     6) Basic guide and end-of-list actions — readable but compact.
     ------------------------------------------------------------ */
  .tc-system-page-typing-coach-flick .tc-flick-howto{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:5px!important;
    margin-top:17px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-howto div{
    padding:9px 2px!important;
    border-radius:12px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-howto b{
    font-size:11.5px!important;
    line-height:1.35!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-howto span{
    margin:2px 0!important;
    font-size:9.5px!important;
    line-height:1.35!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-howto strong{
    font-size:10.5px!important;
    line-height:1.35!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-basic-note{
    margin:14px 4px 0!important;
    color:#52697d!important;
    font-size:13px!important;
    line-height:1.72!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-start-actions{
    margin-top:15px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-tap-start-note{
    padding:15px 13px!important;
    border-radius:15px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-tap-start-note strong{
    font-size:14.5px!important;
    line-height:1.55!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-tap-start-note span{
    font-size:13px!important;
    line-height:1.68!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-start-links{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-start-links > a{
    width:100%!important;
    min-height:46px!important;
    justify-content:center!important;
    box-sizing:border-box!important;
  }

  /* Ad frames should follow the same full-lane rhythm as lesson cards. */
  .tc-system-page-typing-coach-flick .tc-flick-ad-wrap,
  .tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-hero__copy{
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-start{
    padding-left:6px!important;
    padding-right:6px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-mode{
    padding-left:17px!important;
    padding-right:12px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-difficulty-filter button{
    min-width:70px!important;
    padding-inline:12px!important;
  }
}

/* ---- typing-coach-polish-v18712 | assets/css/polish-v18712.css ---- */
/* Typing Coach Core v1.87.12 — flick next-prompt preview + zero-wait prompt handoff */
.tc-system-page-typing-coach-flick .tc-flick-next-preview{
  box-sizing:border-box;
  width:min(100%,720px);
  margin:12px auto 2px;
  padding:10px 14px 11px;
  border:1px solid #cfe0ed;
  border-radius:14px;
  background:linear-gradient(135deg,#f3f8fc 0%,#fbfdff 100%);
  color:#244a68;
  text-align:left;
  box-shadow:0 5px 14px rgba(11,49,87,.05);
}
.tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{display:none!important}
.tc-system-page-typing-coach-flick .tc-flick-next-preview small,
.tc-system-page-typing-coach-flick .tc-flick-next-preview strong,
.tc-system-page-typing-coach-flick .tc-flick-next-preview>span{display:block}
.tc-system-page-typing-coach-flick .tc-flick-next-preview small{
  margin-bottom:3px;
  color:#8a6418;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
  color:#244a68;
  font-size:17px;
  font-weight:900;
  line-height:1.45;
  overflow-wrap:anywhere;
  white-space:pre-line;
}
.tc-system-page-typing-coach-flick .tc-flick-next-preview>span{
  margin-top:3px;
  color:#71879a;
  font-size:10px;
  font-weight:700;
}
.tc-system-page-typing-coach-flick .tc-flick-next-preview.is-long strong,
.tc-system-page-typing-coach-flick .tc-flick-next-preview.is-xlong strong{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}

@media (max-width:760px){
  .tc-system-page-typing-coach-flick .tc-flick-next-preview{
    margin:8px auto 1px;
    padding:8px 10px 9px;
    border-radius:12px;
    text-align:center;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview small{font-size:9px}
  .tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
    font-size:clamp(15px,4.5vw,18px);
    line-height:1.38;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview>span{font-size:9px}
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-next-preview{
    margin-top:6px;
    padding:7px 8px 8px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview strong{font-size:15px}
}

/* ---- typing-coach-polish-v18713 | assets/css/polish-v18713.css ---- */
/* Typing Coach Core v1.87.13 — flick practice layout stabilization.
 * Goal: while a smartphone flick session is active, prompt changes must not
 * move the keypad or make the viewport jump. The session reserves enough room
 * for its longest prompt, and the NEXT lane remains present through FINAL.
 */

@media (max-width:700px){
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-practice,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-practice{
    overflow-anchor:none;
  }

  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-target-card,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target-card,
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-guide,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-guide,
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-keypad,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-keypad{
    overflow-anchor:none;
  }

  /* Keep the display lane at the maximum height required by this session. */
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt{
    height:118px!important;
    min-height:118px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt{
    height:128px!important;
    min-height:128px!important;
  }

  /* Keep the reading lane equally stable when a lesson mixes lengths. */
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target{
    height:62px!important;
    min-height:62px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:70px!important;
    min-height:70px!important;
  }

  /* The operation hint can wrap, but its outer lane never changes height. */
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    box-sizing:border-box!important;
    height:54px!important;
    min-height:54px!important;
    max-height:54px!important;
    overflow:hidden!important;
    align-content:center;
  }

  /* v1.87.12 added NEXT. v1.87.13 reserves the same lane on every question,
     including the final one, so ら行 -> わ行 no longer collapses the card. */
  .tc-system-page-typing-coach-flick .tc-flick-next-preview,
  .tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    display:grid!important;
    grid-template-rows:13px minmax(0,42px) 13px;
    align-content:center;
    box-sizing:border-box!important;
    height:92px!important;
    min-height:92px!important;
    max-height:92px!important;
    overflow:hidden!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
    display:-webkit-box!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden!important;
    align-self:center;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview.is-final{
    background:linear-gradient(135deg,#fffaf0 0%,#fffdf7 100%);
    border-color:#ead49c;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview.is-final small{
    color:#9a6d0d;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview.is-final strong{
    color:#173f64;
  }

  /* Guide messages change after each input; reserve one consistent row. */
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    box-sizing:border-box!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
    overflow:hidden!important;
  }
}

@media (max-width:700px) and (max-height:740px){
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt{
    height:110px!important;
    min-height:110px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt{
    height:118px!important;
    min-height:118px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview,
  .tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    height:86px!important;
    min-height:86px!important;
    max-height:86px!important;
    grid-template-rows:12px minmax(0,38px) 12px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    height:50px!important;
    min-height:50px!important;
    max-height:50px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-next-preview,
  .tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    height:86px!important;
    min-height:86px!important;
    max-height:86px!important;
  }
}

/* ---- typing-coach-polish-v18714 | assets/css/polish-v18714.css ---- */
/* Typing Coach Core v1.87.14 — smartphone flick result mobile dashboard polish.
 * Scope: result state only. Wider usable lane, stronger scan hierarchy, and a
 * prominent quick retry near the result summary while preserving the lower actions.
 */

.tc-system-page-typing-coach-flick .tc-flick-result-quick-retry{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:4px 0 18px;
  padding:13px 15px;
  border:1px solid #ead59d;
  border-radius:17px;
  background:linear-gradient(135deg,#fff9e9 0%,#fffdf7 100%);
}
.tc-system-page-typing-coach-flick .tc-flick-result-quick-retry .tc-flick-start-button{
  flex:0 0 auto;
  min-width:190px;
  margin:0!important;
}
.tc-system-page-typing-coach-flick .tc-flick-result-quick-retry p{margin:0;color:#536a7d;line-height:1.55}
.tc-system-page-typing-coach-flick .tc-flick-result-quick-retry strong,
.tc-system-page-typing-coach-flick .tc-flick-result-quick-retry span{display:block}
.tc-system-page-typing-coach-flick .tc-flick-result-quick-retry strong{color:#173f64;font-size:13px}
.tc-system-page-typing-coach-flick .tc-flick-result-quick-retry span{margin-top:2px;font-size:11px}

@media (max-width:760px){
  /* Use the phone viewport instead of stacking page + panel + card gutters. */
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-system-main{
    padding-left:3px!important;
    padding-right:3px!important;
  }
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-system-main__inner,
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-flick,
  body.tc-system-page-typing-coach-flick:not(.tc-flick-practice-active) .tc-flick-result{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result{
    padding:18px 7px 22px!important;
    border-radius:18px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result > :is(
    .tc-flick-result__head,
    .tc-flick-result-grid,
    .tc-flick-result-quick-retry,
    .tc-flick-change,
    .tc-flick-micro-growth,
    .tc-flick-current-weakness,
    .tc-flick-result-depth,
    .tc-flick-result-coach,
    .tc-flick-action-coaching,
    .tc-flick-ad-wrap,
    .tc-flick-save-status,
    .tc-flick-data-note,
    .tc-flick-result-actions
  ){
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Result headline: one clear first-screen message. */
  .tc-system-page-typing-coach-flick .tc-flick-result__head{
    padding:0 6px 2px!important;
    text-align:left!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result__head .tc-home-eyebrow{
    font-size:10px!important;
    letter-spacing:.13em!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result__head h2{
    margin:5px 0 8px!important;
    color:#092f54!important;
    font-size:clamp(26px,7.3vw,31px)!important;
    line-height:1.28!important;
    letter-spacing:.01em!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result__head p{
    margin:0!important;
    color:#405d74!important;
    font-size:14.5px!important;
    line-height:1.78!important;
  }

  /* 2 x 2 scan-friendly primary metrics. */
  .tc-system-page-typing-coach-flick .tc-flick-result-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin:15px 0 10px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-grid article{
    min-height:112px;
    padding:14px 11px 12px!important;
    border-radius:15px!important;
    border-width:1px!important;
    box-shadow:0 6px 16px rgba(8,46,79,.045);
    position:relative;
    overflow:hidden;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-grid article::before{
    content:"";
    position:absolute;
    left:0;top:0;right:0;height:4px;
    background:#4e84b1;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-grid article:nth-child(2)::before{background:#4d9b74}
  .tc-system-page-typing-coach-flick .tc-flick-result-grid article:nth-child(3)::before{background:#c45a6a}
  .tc-system-page-typing-coach-flick .tc-flick-result-grid article:nth-child(4)::before{background:#d0a034}
  .tc-system-page-typing-coach-flick .tc-flick-result-grid small{
    color:#557086!important;
    font-size:11.5px!important;
    font-weight:850!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-grid strong{
    margin:6px 0 3px!important;
    color:#0a3157!important;
    font-size:clamp(27px,8vw,34px)!important;
    line-height:1.12!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-grid b{
    color:#718596!important;
    font-size:10.5px!important;
  }

  /* A second attempt should be reachable without scrolling to the bottom. */
  .tc-system-page-typing-coach-flick .tc-flick-result-quick-retry{
    display:block!important;
    margin:0 0 14px!important;
    padding:11px 10px 10px!important;
    border-radius:15px!important;
    text-align:center;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-quick-retry .tc-flick-start-button{
    width:100%!important;
    min-width:0!important;
    min-height:52px!important;
    margin:0!important;
    font-size:15.5px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-quick-retry p{
    margin:8px 2px 0!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-quick-retry strong{font-size:12.5px!important}
  .tc-system-page-typing-coach-flick .tc-flick-result-quick-retry span{font-size:11.5px!important;line-height:1.55!important}

  /* Shared section rhythm: wide cards, stronger section names, darker copy. */
  .tc-system-page-typing-coach-flick :is(
    .tc-flick-change,
    .tc-flick-micro-growth,
    .tc-flick-current-weakness,
    .tc-flick-result-depth,
    .tc-flick-result-coach,
    .tc-flick-next-step,
    .tc-flick-reflection,
    .tc-flick-save-status
  ){
    border-radius:16px!important;
  }
  .tc-system-page-typing-coach-flick :is(.tc-flick-change,.tc-flick-micro-growth,.tc-flick-current-weakness,.tc-flick-result-depth){
    margin-top:12px!important;
    margin-bottom:12px!important;
    padding:15px 11px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-section-head h3,
  .tc-system-page-typing-coach-flick .tc-flick-result-depth>header h3{
    margin:4px 0 6px!important;
    color:#092f54!important;
    font-size:clamp(20px,5.7vw,23px)!important;
    line-height:1.38!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-section-head p,
  .tc-system-page-typing-coach-flick .tc-flick-result-depth>header p{
    color:#435f75!important;
    font-size:13.5px!important;
    line-height:1.72!important;
  }

  /* Change numbers stay compact, but readable. */
  .tc-system-page-typing-coach-flick .tc-flick-change__head{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:4px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-change__head strong{font-size:20px!important}
  .tc-system-page-typing-coach-flick .tc-flick-change__head>span{text-align:left!important;font-size:12px!important;color:#506a7e!important}
  .tc-system-page-typing-coach-flick .tc-flick-change-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-change-grid>div{padding:11px 7px!important}
  .tc-system-page-typing-coach-flick .tc-flick-change-grid strong{font-size:18px!important}

  /* Micro-growth: still scannable, without squeezing copy. */
  .tc-system-page-typing-coach-flick .tc-flick-micro-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-micro-grid article{
    padding:13px 10px!important;
    border-radius:14px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-micro-grid small{font-size:11px!important}
  .tc-system-page-typing-coach-flick .tc-flick-micro-grid strong{font-size:17px!important}
  .tc-system-page-typing-coach-flick .tc-flick-micro-grid span{font-size:11.5px!important;line-height:1.55!important;color:#506a7e!important}

  /* Weakness analysis is a vertical reading task on phones. */
  .tc-system-page-typing-coach-flick .tc-flick-current-weakness-list{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-current-weakness-list article{
    padding:12px 10px!important;
    border-radius:14px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-current-weakness-list strong{font-size:17px!important}
  .tc-system-page-typing-coach-flick .tc-flick-current-weakness-list span{font-size:12px!important;line-height:1.58!important}
  .tc-system-page-typing-coach-flick .tc-flick-current-weakness-note{font-size:12.5px!important;line-height:1.68!important;color:#516a7f!important}

  /* Good sign / next focus stack vertically for one-glance comprehension. */
  .tc-system-page-typing-coach-flick .tc-flick-result-depth-grid{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article{
    padding:14px 12px!important;
    border-radius:14px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article strong{font-size:16.5px!important;line-height:1.45!important}
  .tc-system-page-typing-coach-flick .tc-flick-result-depth-grid article p,
  .tc-system-page-typing-coach-flick .tc-flick-result-note p{font-size:13px!important;line-height:1.68!important;color:#445f75!important}

  /* Coaching + next action get their own full-width lanes. */
  .tc-system-page-typing-coach-flick .tc-flick-result-coach{
    padding:15px 11px!important;
    gap:11px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-coach>span{
    width:40px!important;height:40px!important;flex-basis:40px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-coach strong{font-size:17px!important;line-height:1.45!important}
  .tc-system-page-typing-coach-flick .tc-flick-result-coach p{font-size:13.5px!important;line-height:1.7!important}
  .tc-system-page-typing-coach-flick .tc-flick-action-coaching{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-step,
  .tc-system-page-typing-coach-flick .tc-flick-reflection{
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    padding:14px 11px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-step strong,
  .tc-system-page-typing-coach-flick .tc-flick-reflection strong{font-size:16.5px!important;line-height:1.48!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-step p{font-size:13.5px!important;line-height:1.7!important}

  /* Save note / ads / final actions use the same full-width lane. */
  .tc-system-page-typing-coach-flick .tc-flick-save-status{
    display:block!important;
    margin:12px 0!important;
    padding:12px 11px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-save-status strong,
  .tc-system-page-typing-coach-flick .tc-flick-save-status span{display:block!important}
  .tc-system-page-typing-coach-flick .tc-flick-save-status span{margin-top:3px;font-size:12.5px!important;line-height:1.65!important}
  .tc-system-page-typing-coach-flick .tc-flick-data-note{
    padding:0 3px!important;
    color:#516a7e!important;
    font-size:12.5px!important;
    line-height:1.72!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-ad-wrap,
  .tc-system-page-typing-coach-flick .tc-page-ad-wrap.tc-flick-ad-slot{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin-top:14px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-actions > :is(a,button){
    width:100%!important;
    min-height:48px!important;
    margin:0!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    text-align:center!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-result-actions .tc-flick-start-button{
    min-height:54px!important;
    font-size:15.5px!important;
  }
}

@media (max-width:400px){
  .tc-system-page-typing-coach-flick .tc-flick-result{padding-left:5px!important;padding-right:5px!important}
  .tc-system-page-typing-coach-flick .tc-flick-result-grid{gap:6px!important}
  .tc-system-page-typing-coach-flick .tc-flick-result-grid article{padding-left:9px!important;padding-right:9px!important}
  .tc-system-page-typing-coach-flick .tc-flick-change-grid{grid-template-columns:1fr!important}
  .tc-system-page-typing-coach-flick .tc-flick-change-grid>div{
    display:grid!important;
    grid-template-columns:1fr auto auto!important;
    align-items:center!important;
    gap:8px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-change-grid strong{margin:0!important}
  .tc-system-page-typing-coach-flick .tc-flick-change-grid span{text-align:right!important}
  .tc-system-page-typing-coach-flick .tc-flick-micro-grid{grid-template-columns:1fr!important}
}

/* ---- typing-coach-polish-v18715 | assets/css/polish-v18715.css ---- */
/* Typing Coach Core v1.87.15 — result report continuity + readable Japanese copy.
 * Scope:
 * - detailed analysis is always visible; no summary/detail toggle dependency
 * - RESULT_FIRST_VIEW remains directly after the four headline metrics
 * - long Japanese result copy gets a readable measure and balanced wrapping
 * - desktop scan hierarchy is strengthened without reducing ad candidates
 */

/* Safety for cached legacy markup/JS: the detailed report is never collapsed.
 * Preserve the established layout mode of each analysis block. */
body.tc-stage-result .tc-result.tc-result-summary-mode .tc-result-reading-guide{
  display:block!important;
}
body.tc-stage-result .tc-result.tc-result-summary-mode :is(
  .tc-advanced-analysis,
  .tc-signature-analysis,
  .tc-evidence-intelligence,
  .tc-result-insights
){
  display:grid!important;
}
body.tc-stage-result .tc-result-view-toggle{
  display:none!important;
}

/* Quick navigation now only moves within the always-visible report. */
body.tc-stage-result .tc-result-quicknav{
  justify-content:flex-start!important;
  padding:13px 15px!important;
  background:linear-gradient(135deg,#f7fafc 0%,#fffdf8 100%)!important;
  border-left-color:#c89a2f!important;
}
body.tc-stage-result .tc-result-quicknav-main{
  width:100%;
  gap:8px!important;
}
body.tc-stage-result .tc-result-quicknav-main>strong{
  flex:0 0 auto;
  margin-right:5px!important;
  font-size:14px!important;
  letter-spacing:.01em;
}

/* Japanese result copy: readable line length, natural punctuation rules, and calmer rag. */
body.tc-stage-result :is(
  .tc-result-head p,
  .tc-result-change-summary-wrap p,
  .tc-micro-progress-head p,
  .tc-micro-note,
  .tc-coach-summary-main p,
  .tc-motivation-card p,
  .tc-reflection-question,
  .tc-content-coach-role,
  .tc-content-coach-insight,
  .tc-content-coach-perspective p,
  .tc-content-coach-context-note,
  .tc-content-coach-disclaimer,
  .tc-result-reading-guide p,
  .tc-key-timing-help,
  .tc-growth-analysis p,
  .tc-longitudinal-head p,
  .tc-history-note,
  .tc-baseline-head p,
  .tc-baseline-note,
  .tc-personal-plan-head p,
  .tc-evidence-note p,
  .tc-result-share-copy p
){
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
  text-wrap:pretty;
}

body.tc-stage-result :is(
  .tc-result-head h2,
  .tc-result-change-head h3,
  .tc-micro-progress-head h3,
  .tc-coach-summary-title,
  .tc-coaching-lane-head h3,
  .tc-motivation-card h3,
  .tc-reflection-card h3,
  .tc-content-coaching-head h3,
  .tc-result-reading-guide-head h3,
  .tc-section-title-row h3,
  .tc-pace-map-card>h3,
  .tc-key-timing-card>h3,
  .tc-growth-readable-title,
  .tc-longitudinal-head h3,
  .tc-baseline-head h3,
  .tc-personal-plan-head h3,
  .tc-result-share-copy h3
){
  line-break:strict;
  word-break:normal;
  text-wrap:balance;
}

/* Keep cards wide while keeping prose itself within a comfortable reading measure. */
@media (min-width:961px){
  body.tc-stage-result .tc-result-head p{
    max-width:50ch;
    font-size:16px!important;
    line-height:1.8!important;
  }
  body.tc-stage-result .tc-result-head h2{
    max-width:16ch;
    line-height:1.22!important;
  }

  /* The ad candidate remains in the first-view lane immediately after metrics. */
  body.tc-stage-result .tc-result-grid{
    margin-bottom:16px!important;
  }
  body.tc-stage-result .tc-result-managed-ad[data-ad-slot="RESULT_FIRST_VIEW"]{
    margin-top:0!important;
    margin-bottom:22px!important;
  }

  body.tc-stage-result :is(
    .tc-result-change-summary-wrap p,
    .tc-micro-progress-head p,
    .tc-coach-summary-main p,
    .tc-motivation-card p,
    .tc-reflection-question,
    .tc-content-coach-role,
    .tc-content-coach-insight,
    .tc-content-coach-perspective p,
    .tc-content-coach-context-note,
    .tc-content-coach-disclaimer,
    .tc-result-reading-guide p,
    .tc-key-timing-help,
    .tc-growth-analysis p,
    .tc-longitudinal-head p,
    .tc-history-note,
    .tc-baseline-head p,
    .tc-baseline-note,
    .tc-personal-plan-head p,
    .tc-evidence-note p,
    .tc-result-share-copy p
  ){
    max-width:66ch;
    font-size:15px;
    line-height:1.84;
  }

  /* Lead/decision copy should scan in short semantic lines even inside wide panels. */
  body.tc-stage-result :is(
    .tc-coach-summary-title,
    [data-result-motivation-title],
    [data-content-coach-heading],
    [data-content-coach-highlight-text],
    [data-content-coach-question],
    [data-result-plan-next],
    [data-result-plan-check],
    [data-result-plan-goal]
  ){
    max-width:31ch;
    line-height:1.55!important;
    text-wrap:balance;
  }

  body.tc-stage-result .tc-content-coach-insight{
    max-width:62ch!important;
    font-size:16px!important;
    line-height:1.9!important;
  }
  body.tc-stage-result .tc-content-coach-highlight strong{
    display:block;
    max-width:38ch;
    font-size:clamp(19px,1.45vw,23px)!important;
    line-height:1.65!important;
  }
  body.tc-stage-result .tc-content-coach-question-box strong{
    display:block;
    max-width:36ch;
    font-size:clamp(18px,1.35vw,22px)!important;
    line-height:1.6!important;
  }

  /* Make the long report feel like chapters rather than one uniform wall. */
  body.tc-stage-result :is(
    .tc-result-change-snapshot,
    .tc-micro-progress,
    .tc-coach-summary,
    .tc-motivation-reflection,
    .tc-content-coaching,
    .tc-result-reading-guide,
    .tc-advanced-analysis,
    .tc-signature-analysis,
    .tc-evidence-intelligence,
    .tc-result-insights,
    .tc-longitudinal-growth,
    .tc-baseline-growth,
    .tc-personal-plan,
    .tc-result-share
  ){
    scroll-margin-top:112px;
  }
  body.tc-stage-result :is(
    .tc-result-change-snapshot,
    .tc-micro-progress,
    .tc-motivation-reflection,
    .tc-content-coaching,
    .tc-result-reading-guide,
    .tc-advanced-analysis,
    .tc-signature-analysis,
    .tc-evidence-intelligence,
    .tc-result-insights,
    .tc-longitudinal-growth,
    .tc-baseline-growth,
    .tc-personal-plan
  ){
    margin-top:22px!important;
  }

  body.tc-stage-result .tc-coaching-lane-head p,
  body.tc-stage-result .tc-content-coaching-head .tc-content-coach-role{
    max-width:58ch;
    color:#526b80!important;
    line-height:1.72!important;
  }
}

@media (max-width:960px){
  body.tc-stage-result .tc-result-quicknav{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  body.tc-stage-result .tc-result-quicknav-main>strong{
    width:100%;
  }
  body.tc-stage-result :is(
    .tc-coach-summary-title,
    [data-result-motivation-title],
    [data-content-coach-heading],
    [data-content-coach-highlight-text],
    [data-content-coach-question]
  ){
    text-wrap:pretty;
  }
}

/* ---- typing-coach-polish-v18716 | assets/css/polish-v18716.css ---- */
/* Typing Coach Core v1.87.16 — semantic Japanese wrapping for result reports.
 * Goal: preserve meaningful Japanese phrases without forcing artificial line-by-line copy.
 * The browser remains free to compose natural lines; only semantic break opportunities are authored.
 */

body.tc-stage-result .tc-semantic-copy{
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
  text-wrap:pretty;
  hanging-punctuation:allow-end;
}

/* One semantic unit is intentionally modest (roughly 10–18 Japanese characters).
 * Keeping only the unit together prevents awkward splits such as 再｜現 or 次の｜行動.
 * Multiple units can share one visual line, so paragraphs do not become choppy. */
body.tc-stage-result .tc-semantic-copy>.tc-semantic-unit{
  white-space:nowrap;
}
body.tc-stage-result .tc-semantic-copy>wbr{
  display:inline;
}

/* Result prose should feel like readable editorial copy, not an ultra-wide dashboard label. */
@media (min-width:961px){
  body.tc-stage-result :is(
    [data-coach-summary-body],
    [data-result-motivation-body],
    [data-content-coach-insight],
    [data-content-coach-perspective-text],
    [data-content-coach-context-note],
    .tc-result-reading-guide p,
    .tc-growth-analysis p,
    [data-history-note],
    [data-baseline-note],
    [data-result-evidence]
  ){
    max-width:64ch!important;
  }

  body.tc-stage-result :is(
    [data-content-coach-highlight-text],
    [data-content-coach-question],
    [data-result-plan-next],
    [data-result-plan-check],
    [data-result-plan-goal]
  ){
    max-width:40ch!important;
  }
}

/* On phones, the semantic units still stay together, but their controlled size is short
 * enough to fit the result cards. As an emergency safety valve on very narrow screens,
 * allow an oversized unit to wrap rather than overflow the viewport. */
@media (max-width:600px){
  body.tc-stage-result .tc-semantic-copy>.tc-semantic-unit.is-long{
    white-space:normal;
  }
}

/* ---- typing-coach-result-copy-safety-v18773 ----
 * Result glossary cards contain an authored label and explanation.
 * Semantic wrapping is not intended inside these structured cards; keep any
 * accidental semantic units inline as a second safety layer.
 */
body.tc-stage-result .tc-analysis-guide .tc-method-grid p > .tc-semantic-unit{
  display:inline!important;
  margin:0!important;
  font:inherit!important;
  color:inherit!important;
  line-height:inherit!important;
}
body.tc-stage-result .tc-analysis-guide .tc-method-grid p > wbr{
  display:inline!important;
}

/* ---- typing-coach-polish-v18717 | assets/css/polish-v18717.css ---- */
/* Typing Coach Core v1.87.17 — result coaching question hierarchy + semantic-span collision fix.
 *
 * v1.87.16 adds inline semantic spans to Japanese result copy. The historical v1.65 rule
 * `.tc-content-coach-question-box span` was intentionally broad and therefore also styled those
 * newly inserted spans as block labels. That produced oversized vertical gaps and reduced the
 * actual question text to the label font size. Keep semantic chunks inline, and style only the
 * direct question label as the label.
 */

/* The question label is the only label-like span in this card. */
body.tc-stage-result .tc-content-coach-question-box > [data-content-coach-question-label]{
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  width:max-content;
  max-width:100%;
  margin:0 0 10px!important;
  padding:5px 10px;
  border-radius:999px;
  background:#dfeefa;
  color:#2f6697!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1.35!important;
  letter-spacing:.015em;
}
body.tc-stage-result .tc-content-coach-question-box > [data-content-coach-question-label]::before{
  content:"?";
  display:inline-grid;
  place-items:center;
  width:18px;
  height:18px;
  flex:0 0 18px;
  border:1px solid rgba(47,102,151,.26);
  border-radius:50%;
  background:#fff;
  color:#2f6697;
  font-size:12px;
  font-weight:950;
  line-height:1;
}

/* Restore the question body as one continuous sentence. Semantic units remain protected from
 * awkward intra-phrase breaks, but they do not become separate rows or inherit label styling. */
body.tc-stage-result .tc-content-coach-question-box > strong{
  display:block!important;
  margin:0!important;
  color:#173b5d!important;
  font-weight:850!important;
  line-height:1.62!important;
}
body.tc-stage-result .tc-content-coach-question-box > strong.tc-semantic-copy > .tc-semantic-unit{
  display:inline!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:inherit!important;
  font:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
  white-space:nowrap;
}
body.tc-stage-result .tc-content-coach-question-box > strong.tc-semantic-copy > wbr{
  display:inline!important;
  margin:0!important;
  padding:0!important;
}

@media (min-width:961px){
  body.tc-stage-result .tc-content-coach-question-box{
    padding:20px 24px!important;
    border-left-width:6px!important;
    border-color:#4f89bf!important;
    background:linear-gradient(135deg,#edf6fd 0%,#f5faff 100%)!important;
    box-shadow:0 8px 22px rgba(29,79,121,.06)!important;
  }
  body.tc-stage-result .tc-content-coach-question-box > strong{
    max-width:44ch!important;
    font-size:clamp(19px,1.35vw,22px)!important;
    line-height:1.62!important;
    text-wrap:pretty;
  }
}

@media (max-width:960px){
  body.tc-stage-result .tc-content-coach-question-box > [data-content-coach-question-label]{
    margin-bottom:8px!important;
  }
  body.tc-stage-result .tc-content-coach-question-box > strong{
    line-height:1.65!important;
  }
  /* Safety valve for an unusually long semantic unit on a very narrow phone. */
  body.tc-stage-result .tc-content-coach-question-box > strong.tc-semantic-copy > .tc-semantic-unit.is-long{
    white-space:normal;
  }
}

/* ---- typing-coach-polish-v18718 | assets/css/polish-v18718.css ---- */
/* v1.87.18 — theme-linked online learning CTA + result copy variety foundation */
.tc-online-material-cta{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:28px;align-items:center;margin:30px 0;padding:28px 30px;border:1px solid #e1c57d;border-radius:18px;background:linear-gradient(135deg,#fffdf8 0%,#fff8e8 58%,#f5f9fd 100%);box-shadow:0 14px 34px rgba(12,43,74,.08);overflow:hidden}.tc-online-material-cta[hidden]{display:none!important}.tc-online-material-cta:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(#d5a32d,#0c4c7f)}.tc-online-material-cta__copy{min-width:0;max-width:760px}.tc-online-material-cta .tc-kicker{display:inline-block;margin-bottom:8px;color:#a56f0d;letter-spacing:.14em}.tc-online-material-cta h3{margin:0 0 10px;color:#08284c;font-size:clamp(24px,2.2vw,31px);line-height:1.42;text-wrap:balance}.tc-online-material-cta p{max-width:58ch;margin:0;color:#526a80;font-size:16px;line-height:1.9;line-break:strict;text-wrap:pretty}.tc-online-material-cta__meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.tc-online-material-cta__theme,.tc-online-material-cta__price{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800}.tc-online-material-cta__theme{background:#eef6fb;color:#215b86}.tc-online-material-cta__price{background:#fff1cc;color:#7a5508}.tc-online-material-cta__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.tc-online-material-cta__button{display:inline-flex!important;align-items:center;justify-content:center;min-height:46px;padding:11px 18px!important;text-decoration:none!important}.tc-online-material-cta__note{color:#71869a;font-size:12px}.tc-online-material-cta__visual{margin:0;min-width:0}.tc-online-material-cta__visual[hidden]{display:none!important}.tc-online-material-cta__visual img{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:14px;border:1px solid rgba(11,54,92,.12);box-shadow:0 10px 24px rgba(12,43,74,.10)}
.tc-history-online-material{margin:20px 0;padding:22px 24px;border:1px solid #e1c57d;border-radius:16px;background:linear-gradient(135deg,#fffdf8,#fff8e8)}.tc-history-online-material .tc-kicker{color:#a56f0d}.tc-history-online-material h3{margin:6px 0 8px;color:#08284c}.tc-history-online-material p{max-width:58ch;color:#526a80;line-height:1.85}.tc-history-online-material__meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.tc-history-online-material__meta span{padding:5px 9px;border-radius:999px;background:#eef6fb;color:#215b86;font-size:12px;font-weight:800}.tc-history-online-material__meta .is-price{background:#fff1cc;color:#7a5508}
@media(max-width:760px){.tc-online-material-cta{grid-template-columns:1fr;gap:18px;margin:22px 0;padding:22px 16px 20px}.tc-online-material-cta__copy{max-width:none}.tc-online-material-cta h3{font-size:24px;line-height:1.5}.tc-online-material-cta p{max-width:none;font-size:15.5px;line-height:1.88}.tc-online-material-cta__actions{display:grid;grid-template-columns:1fr}.tc-online-material-cta__button{width:100%;min-height:48px}.tc-online-material-cta__visual{order:-1}.tc-online-material-cta__visual img{max-height:190px}.tc-history-online-material{padding:20px 16px}}

/* ---- typing-coach-polish-v18719 | assets/css/polish-v18719.css ---- */
/* v1.87.19 — administrator-only online-material CTA preview + premium fallback visual */
.tc-online-material-preview-flag{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-6px -4px 2px;padding:10px 13px;border:1px solid #a8c8e0;border-radius:12px;background:#eef7fd;color:#214f73;font-size:12px;line-height:1.5}.tc-online-material-preview-flag[hidden]{display:none!important}.tc-online-material-preview-flag b{display:inline-flex;align-items:center;gap:7px;color:#0b3d67;font-size:12px}.tc-online-material-preview-flag b:before{content:"PREVIEW";display:inline-flex;padding:3px 7px;border-radius:999px;background:#0c4f80;color:#fff;font-size:9px;letter-spacing:.08em}.tc-online-material-preview-flag span{color:#56738a}.tc-online-material-cta.is-preview{border-color:#98bdd8;box-shadow:0 14px 34px rgba(12,73,119,.11)}.tc-online-material-cta.is-preview:before{background:linear-gradient(#0c568a,#d5a32d)}.tc-online-material-cta.is-preview .tc-online-material-cta__button[aria-disabled="true"],.tc-online-material-preview-disabled{cursor:not-allowed;opacity:.92;pointer-events:none}.tc-online-material-cta__visual{display:grid;place-items:center}.tc-online-material-cta__visual>img[hidden]{display:none!important}.tc-online-material-cta__book-preview{position:relative;display:grid;align-content:center;gap:8px;width:min(100%,286px);min-height:210px;padding:30px 28px;border:1px solid rgba(218,177,83,.75);border-radius:18px;background:linear-gradient(145deg,#061d39 0%,#0c355f 60%,#164f79 100%);box-shadow:0 18px 38px rgba(5,31,57,.2);overflow:hidden;color:#fff;transform:rotate(1.2deg)}.tc-online-material-cta__book-preview[hidden]{display:none!important}.tc-online-material-cta__book-preview:before,.tc-online-material-cta__book-preview:after{content:"";position:absolute;border-radius:50%;background:rgba(219,173,66,.16)}.tc-online-material-cta__book-preview:before{width:150px;height:150px;right:-62px;top:-58px}.tc-online-material-cta__book-preview:after{width:95px;height:95px;left:-38px;bottom:-38px}.tc-online-material-cta__book-preview span,.tc-online-material-cta__book-preview strong,.tc-online-material-cta__book-preview em,.tc-online-material-cta__book-preview small{position:relative;z-index:1}.tc-online-material-cta__book-preview span{color:#efc668;font-size:11px;font-weight:900;letter-spacing:.18em}.tc-online-material-cta__book-preview strong{font-size:31px;line-height:1.05;letter-spacing:.04em}.tc-online-material-cta__book-preview em{font-style:normal;color:#f8dfa2;font-size:20px;font-weight:800;letter-spacing:.06em}.tc-online-material-cta__book-preview small{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.22);color:#d5e4ef;font-size:12px;letter-spacing:.06em}.tc-online-material-preview-status{position:fixed;z-index:999999;right:18px;bottom:18px;display:grid;gap:2px;max-width:330px;padding:11px 14px;border:1px solid #96bfdc;border-radius:12px;background:rgba(7,42,72,.96);box-shadow:0 12px 32px rgba(3,23,43,.26);color:#fff;font-size:12px}.tc-online-material-preview-status b{color:#f2c967;font-size:12px}.tc-online-material-preview-status span{color:#d8e7f2}.tc-history-online-material.is-preview{border-color:#98bdd8;background:linear-gradient(135deg,#f8fcff,#fffaf0)}.tc-history-online-material__preview-note{display:block;margin-top:7px;color:#70879a;font-size:12px}
@media(max-width:760px){.tc-online-material-preview-flag{display:grid;justify-items:start;gap:4px;margin:-3px 0 0;padding:9px 10px}.tc-online-material-cta__book-preview{width:min(88vw,286px);min-height:180px;padding:24px 22px}.tc-online-material-cta__book-preview strong{font-size:28px}.tc-online-material-preview-status{right:10px;left:10px;bottom:10px;max-width:none}.tc-online-material-cta__visual{order:-1}.tc-online-material-preview-flag+.tc-online-material-cta__copy{order:0}.tc-online-material-preview-flag+.tc-online-material-cta__copy+.tc-online-material-cta__visual{order:-1}}

/* ---- typing-coach-polish-v18720 | assets/css/polish-v18720.css ---- */
/* v1.87.20 — online-learning CTA belongs after the complete result/report flow */
.tc-online-material-cta[data-result-section="next"]{margin-top:44px;margin-bottom:24px}
.tc-online-material-cta[data-result-section="next"]:after{content:"";position:absolute;left:30px;right:30px;top:-23px;height:1px;background:linear-gradient(90deg,transparent,#d9e3eb 18%,#d9e3eb 82%,transparent)}
.tc-result-managed-ad[data-ad-slot="RESULT_AFTER_ACTIONS"]+.tc-online-material-cta{margin-top:46px}
.tc-history-result-footer+.tc-history-online-material{margin-top:30px;margin-bottom:0}
.tc-history-result-footer+.tc-history-online-material:before{content:"学びの続きを探す";display:block;margin:0 0 7px;color:#a26c12;font-size:10px;font-weight:900;letter-spacing:.13em}
@media(max-width:760px){.tc-online-material-cta[data-result-section="next"]{margin-top:32px;margin-bottom:18px}.tc-online-material-cta[data-result-section="next"]:after{left:16px;right:16px;top:-17px}.tc-result-managed-ad[data-ad-slot="RESULT_AFTER_ACTIONS"]+.tc-online-material-cta{margin-top:34px}.tc-history-result-footer+.tc-history-online-material{margin-top:24px}}

/* ---- typing-coach-polish-v18722 | assets/css/polish-v18722.css ---- */
/* Typing Coach v1.87.22 — registration clarity & lower-friction profile setup */

.tc-register-panel .tc-privacy-boundary{
  margin-bottom:22px;
}
.tc-register-panel .tc-privacy-boundary strong{
  display:block;
  margin-bottom:5px;
  font-size:16px;
  line-height:1.5;
}
.tc-register-panel .tc-privacy-boundary p{
  max-width:74ch;
}

.tc-register-section{
  margin:0 0 18px;
  padding:20px;
  border:1px solid #dce5ed;
  border-radius:16px;
  background:#fff;
}
.tc-register-section--account{
  border-top:3px solid #4b83b8;
  background:linear-gradient(145deg,#fff 0%,#f7fbff 100%);
}
.tc-register-section--optional{
  border-top:3px solid #d6a22d;
  background:linear-gradient(145deg,#fff 0%,#fffaf0 100%);
}
.tc-register-section-head{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:17px;
}
.tc-register-step{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 36px;
  min-height:30px;
  padding:4px 7px;
  border-radius:999px;
  background:#0b3155;
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
}
.tc-register-section--optional .tc-register-step{
  background:#a97410;
}
.tc-register-section-head h3{
  margin:0 0 4px!important;
  color:#0b2f50;
  font-size:19px;
  line-height:1.45;
}
.tc-register-section-head p{
  margin:0;
  max-width:62ch;
  color:#607386;
  font-size:13.5px;
  line-height:1.65;
}
.tc-register-panel .tc-member-grid--account{
  gap:18px 20px;
}
.tc-register-panel .tc-member-grid--optional{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.tc-register-panel .tc-member-grid>label>span{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
}
.tc-register-panel .tc-member-grid small{
  margin-left:0;
}
.tc-register-panel .tc-member-grid small.is-required{
  background:#fbe9ed;
  color:#a7384f;
}
.tc-register-panel .tc-member-grid small.is-public{
  background:#e9f3fb;
  color:#35658e;
}
.tc-register-panel .tc-member-grid small.is-private{
  background:#f0f3f6;
  color:#617184;
}
.tc-register-panel .tc-password-field{
  width:100%;
}
.tc-register-panel .tc-password-field input{
  width:100%;
}
.tc-register-field-status{
  min-height:20px;
  transition:color .15s ease;
}
.tc-register-field-status.is-ok{
  color:#367650!important;
  font-weight:750;
}
.tc-register-field-status.is-warning{
  color:#9b5b18!important;
  font-weight:750;
}
.tc-register-extra-fields{
  margin:18px 0 14px;
}
.tc-register-extra-fields>label,
.tc-register-extra-fields .tc-check,
.tc-register-extra-fields>div{
  box-sizing:border-box;
}
.tc-register-panel .tc-registration-terms{
  margin-top:14px;
}
.tc-register-panel .tc-member-submit{
  min-width:min(100%,360px);
}

@media(max-width:980px){
  .tc-register-panel .tc-member-grid--optional{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .tc-register-panel .tc-privacy-boundary{
    margin-bottom:16px;
    padding:14px 15px!important;
  }
  .tc-register-section{
    margin-bottom:14px;
    padding:16px 14px;
    border-radius:14px;
  }
  .tc-register-section-head{
    gap:9px;
    margin-bottom:14px;
  }
  .tc-register-step{
    flex-basis:32px;
    min-height:28px;
    font-size:11px;
  }
  .tc-register-section-head h3{
    font-size:17px;
  }
  .tc-register-section-head p{
    font-size:13px;
  }
  .tc-register-panel .tc-member-grid--account,
  .tc-register-panel .tc-member-grid--optional{
    grid-template-columns:1fr;
    gap:15px;
  }
  .tc-register-panel .tc-member-grid>label>span{
    font-size:15.5px;
  }
  .tc-register-panel .tc-member-grid input:not([type=checkbox]),
  .tc-register-panel .tc-member-grid select{
    min-height:50px;
  }
  .tc-register-panel .tc-member-submit{
    width:100%;
    min-width:0;
  }
}

/* ---- typing-coach-polish-v18723 | assets/css/polish-v18723.css ---- */
/* Typing Coach v1.87.23 — registration required profile + explicit notice-email consent */

.tc-register-section--profile{
  border-top:3px solid #d6a22d;
  background:linear-gradient(145deg,#fff 0%,#fffaf0 100%);
}
.tc-register-section--profile .tc-register-step{
  background:#a97410;
}
.tc-register-panel .tc-member-grid--profile{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.tc-register-notice-consent,
.tc-registration-notice-consent{
  margin:18px 0 14px;
  padding:16px 18px;
  border:1px solid #cbdcec;
  border-left:4px solid #4b83b8;
  border-radius:14px;
  background:linear-gradient(135deg,#f7fbff 0%,#fff 100%);
  box-sizing:border-box;
}
.tc-register-notice-consent label,
.tc-registration-notice-consent label{
  margin:0!important;
}
.tc-register-notice-consent .tc-check,
.tc-registration-notice-consent .tc-check,
.tc-register-notice-consent>label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#173a5a;
  font-size:15px;
  line-height:1.65;
  font-weight:700;
}
.tc-register-notice-consent input[type="checkbox"],
.tc-registration-notice-consent input[type="checkbox"]{
  flex:0 0 auto;
  width:19px;
  height:19px;
  margin-top:2px;
}
.tc-register-notice-consent .is-required,
.tc-registration-notice-consent .is-required{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  margin-left:5px;
  padding:1px 7px;
  border-radius:999px;
  background:#fbe9ed;
  color:#a7384f;
  font-size:11px;
  font-weight:900;
  vertical-align:middle;
}
.tc-register-consent-note,
.tc-registration-notice-consent label small:not(.is-required){
  display:block;
  margin-top:6px;
  color:#617487;
  font-size:12.5px;
  line-height:1.65;
  font-weight:500;
}
.tc-register-panel .tc-registration-terms{
  margin-top:12px;
}

@media(max-width:980px){
  .tc-register-panel .tc-member-grid--profile{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .tc-register-panel .tc-member-grid--profile{
    grid-template-columns:1fr;
  }
  .tc-register-notice-consent,
  .tc-registration-notice-consent{
    margin:14px 0 12px;
    padding:14px;
    border-radius:13px;
  }
  .tc-register-notice-consent .tc-check,
  .tc-registration-notice-consent .tc-check,
  .tc-register-notice-consent>label{
    font-size:14.5px;
  }
}

/* ---- typing-coach-polish-v18724 | assets/css/polish-v18724.css ---- */
/* v1.87.24 — notice-mail consent and account preference polish */
.tc-account-notice-email{
  border:1px solid #d7e4ed;
  border-left:4px solid #c99a36;
  background:linear-gradient(145deg,#fff 0%,#fffdf8 100%);
}
.tc-account-notice-email>p:first-of-type{
  max-width:760px;
  color:#536b7e;
  line-height:1.8;
}
.tc-account-notice-email .tc-account-ranking-choice{
  margin-top:14px;
  padding:14px 16px;
  border:1px solid #dce7ef;
  border-radius:13px;
  background:#f8fbfd;
}
.tc-account-notice-email .tc-account-ranking-note{
  margin-top:12px;
  padding:11px 13px;
  border-radius:11px;
  background:#f4f7fa;
  color:#526b7d;
  line-height:1.7;
}
.tc-register-notice-consent>.tc-register-consent-note{
  margin:8px 0 0 29px;
}
@media(max-width:700px){
  .tc-account-notice-email .tc-account-ranking-choice{padding:12px 13px}
  .tc-register-notice-consent>.tc-register-consent-note{margin-left:0}
}

/* ---- typing-coach-polish-v18727 | assets/css/polish-v18727.css ---- */
/* v1.87.27 — administrator-only preview status glass treatment.
 * Keep the labels readable while letting the page below remain visible. */
.tc-ad-preview-status{
  background:rgba(7,35,61,.80)!important;
  border-color:rgba(216,176,74,.78)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.14)!important;
  -webkit-backdrop-filter:blur(7px) saturate(112%);
  backdrop-filter:blur(7px) saturate(112%);
}
.tc-online-material-preview-status{
  background:rgba(7,42,72,.80)!important;
  border-color:rgba(150,191,220,.78)!important;
  box-shadow:0 8px 24px rgba(3,23,43,.16)!important;
  -webkit-backdrop-filter:blur(7px) saturate(112%);
  backdrop-filter:blur(7px) saturate(112%);
}

/* ---- typing-coach-polish-v18729 | assets/css/polish-v18729.css ---- */
/* Typing Coach Core v1.87.29 — compact flick prompt stack + modifier key.
 * Keeps the question lanes stable while bringing the keypad visibly closer on
 * tablet-width smartphones / browser previews such as 700–820px.
 */
.tc-system-page-typing-coach-flick .tc-flick-guide{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.tc-system-page-typing-coach-flick .tc-flick-guide>[data-flick-guide-text]{
  min-width:0;
  text-align:center;
}
.tc-system-page-typing-coach-flick .tc-flick-guide-help{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:3px;
  min-height:28px;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.46);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:inherit;
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.tc-system-page-typing-coach-flick .tc-flick-guide-help>span{font-size:9px}
.tc-system-page-typing-coach-flick .tc-flick-key.is-modifier strong{
  font-size:clamp(17px,3.2vw,23px);
  letter-spacing:-.08em;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__modifier{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  margin-inline:4px;
  padding:3px 7px;
  border:2px solid #dfa31d;
  border-radius:10px;
  background:#fff8e7;
  color:#9d6800;
  font-weight:900;
}

@media (max-width:820px){
  .tc-system-page-typing-coach-flick .tc-flick-target-card{
    margin:6px 0 7px;
    padding:7px 8px 6px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target-card>.tc-home-eyebrow{display:none}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    box-sizing:border-box;
    height:104px!important;
    min-height:104px!important;
    margin:0 auto 4px!important;
    padding:8px 10px 7px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    margin:3px 0 2px!important;
    font-size:clamp(44px,9vw,64px)!important;
    line-height:1!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt small{font-size:9px!important}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{font-size:11px!important}
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt{
    height:110px!important;min-height:110px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt{
    height:116px!important;min-height:116px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    height:13px!important;min-height:13px!important;line-height:13px!important;
    margin:0 auto!important;font-size:9px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    box-sizing:border-box;
    height:46px!important;min-height:46px!important;
    font-size:clamp(25px,5.2vw,34px)!important;
    line-height:1.05!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target{
    height:52px!important;min-height:52px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:58px!important;min-height:58px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-typed{margin-block:0 2px!important;min-height:18px!important;line-height:18px!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    box-sizing:border-box!important;
    height:46px!important;min-height:46px!important;max-height:46px!important;
    margin:1px auto 4px!important;
    overflow:hidden!important;
    align-content:center;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview,
  .tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    display:grid!important;
    grid-template-rows:12px minmax(0,38px)!important;
    align-content:center;
    box-sizing:border-box!important;
    height:70px!important;min-height:70px!important;max-height:70px!important;
    margin:5px auto 1px!important;
    padding:7px 10px!important;
    overflow:hidden!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview>span{display:none!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
    font-size:clamp(16px,3.8vw,21px)!important;
    line-height:1.25!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    box-sizing:border-box!important;
    height:48px!important;min-height:48px!important;max-height:48px!important;
    margin:0 auto 5px!important;
    padding:6px 8px!important;
    overflow:hidden!important;
  }
}

@media (max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:96px!important;min-height:96px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    font-size:clamp(42px,13vw,58px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt{
    height:104px!important;min-height:104px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt{
    height:110px!important;min-height:110px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    height:44px!important;min-height:44px!important;
    font-size:clamp(23px,7vw,30px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target{
    height:50px!important;min-height:50px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:56px!important;min-height:56px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview,
  .tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    height:66px!important;min-height:66px!important;max-height:66px!important;
    grid-template-rows:11px minmax(0,36px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    height:44px!important;min-height:44px!important;max-height:44px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    height:44px!important;min-height:44px!important;max-height:44px!important;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-guide-help>span{display:none}
  .tc-system-page-typing-coach-flick .tc-flick-guide-help{min-width:26px;padding-inline:6px}
}

/* Six operation cards: five directions + the Japanese modifier key. */
.tc-system-page-typing-coach-flick .tc-flick-howto{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
}
@media (max-width:820px){
  .tc-system-page-typing-coach-flick .tc-flick-howto{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* ---- typing-coach-polish-v18730 | assets/css/polish-v18730.css ---- */
/* Typing Coach Core v1.87.30 — compact flick prompt stack + clearer flick guide. */
 * Keeps the question lanes stable while bringing the keypad visibly closer on
 * tablet-width smartphones / browser previews such as 700–820px.
 */
.tc-system-page-typing-coach-flick .tc-flick-guide{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.tc-system-page-typing-coach-flick .tc-flick-guide>[data-flick-guide-text]{
  min-width:0;
  text-align:center;
}
.tc-system-page-typing-coach-flick .tc-flick-guide-help{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:3px;
  min-height:28px;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.46);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:inherit;
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.tc-system-page-typing-coach-flick .tc-flick-guide-help>span{font-size:9px}
.tc-system-page-typing-coach-flick .tc-flick-key.is-modifier strong{
  font-size:clamp(17px,3.2vw,23px);
  letter-spacing:-.08em;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__modifier{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  margin-inline:4px;
  padding:3px 7px;
  border:2px solid #dfa31d;
  border-radius:10px;
  background:#fff8e7;
  color:#9d6800;
  font-weight:900;
}

@media (max-width:820px){
  .tc-system-page-typing-coach-flick .tc-flick-target-card{
    margin:6px 0 7px;
    padding:7px 8px 6px;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target-card>.tc-home-eyebrow{display:none}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    box-sizing:border-box;
    height:104px!important;
    min-height:104px!important;
    margin:0 auto 4px!important;
    padding:8px 10px 7px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    margin:3px 0 2px!important;
    font-size:clamp(44px,9vw,64px)!important;
    line-height:1!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt small{font-size:9px!important}
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt span{font-size:11px!important}
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt{
    height:110px!important;min-height:110px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt{
    height:116px!important;min-height:116px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-reading-label{
    height:13px!important;min-height:13px!important;line-height:13px!important;
    margin:0 auto!important;font-size:9px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    box-sizing:border-box;
    height:46px!important;min-height:46px!important;
    font-size:clamp(25px,5.2vw,34px)!important;
    line-height:1.05!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target{
    height:52px!important;min-height:52px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:58px!important;min-height:58px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-typed{margin-block:0 2px!important;min-height:18px!important;line-height:18px!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    box-sizing:border-box!important;
    height:46px!important;min-height:46px!important;max-height:46px!important;
    margin:1px auto 4px!important;
    overflow:hidden!important;
    align-content:center;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview,
  .tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    display:grid!important;
    grid-template-rows:12px minmax(0,38px)!important;
    align-content:center;
    box-sizing:border-box!important;
    height:70px!important;min-height:70px!important;max-height:70px!important;
    margin:5px auto 1px!important;
    padding:7px 10px!important;
    overflow:hidden!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview>span{display:none!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
    font-size:clamp(16px,3.8vw,21px)!important;
    line-height:1.25!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    box-sizing:border-box!important;
    height:48px!important;min-height:48px!important;max-height:48px!important;
    margin:0 auto 5px!important;
    padding:6px 8px!important;
    overflow:hidden!important;
  }
}

@media (max-width:700px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt{
    height:96px!important;min-height:96px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    font-size:clamp(42px,13vw,58px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt{
    height:104px!important;min-height:104px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt{
    height:110px!important;min-height:110px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-target{
    height:44px!important;min-height:44px!important;
    font-size:clamp(23px,7vw,30px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target{
    height:50px!important;min-height:50px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:56px!important;min-height:56px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-preview,
  .tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    height:66px!important;min-height:66px!important;max-height:66px!important;
    grid-template-rows:11px minmax(0,36px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    height:44px!important;min-height:44px!important;max-height:44px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    height:44px!important;min-height:44px!important;max-height:44px!important;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-guide-help>span{display:none}
  .tc-system-page-typing-coach-flick .tc-flick-guide-help{min-width:26px;padding-inline:6px}
}

/* Six operation cards: five directions + the Japanese modifier key. */
.tc-system-page-typing-coach-flick .tc-flick-howto{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
}
@media (max-width:820px){
  .tc-system-page-typing-coach-flick .tc-flick-howto{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}


/* v1.87.30 — clearer visual hint system for flick directions and modifier steps. */
.tc-system-page-typing-coach-flick .tc-flick-next-hint{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  text-align:center;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__row--chips{font-weight:800}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__row--desc{
  color:#51667c;
  font-size:12px;
  line-height:1.35;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__desc-accent{
  color:#9d6800;
  font-weight:900;
}
.tc-system-page-typing-coach-flick .tc-flick-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:28px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(12,49,87,.12);
  background:#fff;
  color:#0b3157;
  box-shadow:0 1px 2px rgba(8,39,70,.06);
  white-space:nowrap;
}
.tc-system-page-typing-coach-flick .tc-flick-chip b{font-size:14px;line-height:1}
.tc-system-page-typing-coach-flick .tc-flick-chip small{font-size:10px;line-height:1;color:#6f8396;font-weight:800}
.tc-system-page-typing-coach-flick .tc-flick-chip--key{background:#f8fbfe}
.tc-system-page-typing-coach-flick .tc-flick-chip--action{background:#fff8ea;border-color:rgba(223,163,29,.34);color:#9d6800}
.tc-system-page-typing-coach-flick .tc-flick-chip--modifier{background:#fff5f6;border-color:rgba(190,105,123,.28);color:#8d4150}
.tc-system-page-typing-coach-flick .tc-flick-step-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  background:#0b3157;
  color:#fff;
  font-size:11px;
  font-weight:900;
  box-shadow:0 1px 2px rgba(8,39,70,.18);
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__lead{
  color:#6f8396;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__separator{font-weight:900;color:#9d6800}
.tc-system-page-typing-coach-flick .tc-flick-next-hint__char{
  color:#0b3157;
  font-size:16px;
  font-weight:900;
  white-space:nowrap;
}
.tc-system-page-typing-coach-flick .tc-flick-key[data-flick-target-dir],
.tc-system-page-typing-coach-flick .tc-flick-key.is-target-secondary{
  overflow:visible;
}
.tc-system-page-typing-coach-flick .tc-flick-key[data-flick-step]::before{
  content:attr(data-flick-step);
  position:absolute;
  top:6px;
  left:6px;
  z-index:3;
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#0b3157;
  color:#fff;
  font-size:11px;
  font-weight:900;
  box-shadow:0 1px 3px rgba(8,39,70,.22);
}
.tc-system-page-typing-coach-flick .tc-flick-key[data-flick-target-arrow]::after{
  content:attr(data-flick-target-arrow);
  position:absolute;
  top:7px;
  right:8px;
  z-index:3;
  display:grid;
  place-items:center;
  min-width:24px;
  height:24px;
  padding:0 6px;
  border-radius:999px;
  background:#fff8ea;
  border:2px solid #dfa31d;
  color:#9d6800;
  font-size:16px;
  font-weight:900;
  line-height:1;
  box-shadow:0 1px 3px rgba(223,163,29,.18);
}
.tc-system-page-typing-coach-flick .tc-flick-key.is-target-secondary{
  outline:2px dashed rgba(190,105,123,.55);
  outline-offset:2px;
  background:#fff9fb;
}
.tc-system-page-typing-coach-flick .tc-flick-key.is-target-secondary[data-flick-target-arrow]::after{
  background:#fff5f6;
  border-color:#c88695;
  color:#8d4150;
}
@media (max-width:820px){
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    height:auto!important;
    min-height:60px!important;
    max-height:none!important;
    padding:6px 6px!important;
    margin:1px auto 4px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__row--desc{font-size:11px}
  .tc-system-page-typing-coach-flick .tc-flick-chip{min-height:25px;padding:3px 7px}
  .tc-system-page-typing-coach-flick .tc-flick-chip b{font-size:13px}
  .tc-system-page-typing-coach-flick .tc-flick-chip small{font-size:9px}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__char{font-size:15px}
}
@media (max-width:560px){
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    min-height:66px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__row{gap:5px}
  .tc-system-page-typing-coach-flick .tc-flick-step-badge{width:20px;height:20px;font-size:10px}
  .tc-system-page-typing-coach-flick .tc-flick-key[data-flick-step]::before{width:18px;height:18px;font-size:10px}
  .tc-system-page-typing-coach-flick .tc-flick-key[data-flick-target-arrow]::after{top:6px;right:6px;min-width:22px;height:22px;font-size:14px}
}

/* ---- typing-coach-polish-v18732 | assets/css/polish-v18732.css ---- */
/* Typing Coach Core v1.87.32 — flick practice viewport stabilization.
 * Prevents the practice screen from moving vertically as prompts, conversion
 * states, hint chips and typed text change. Keeps the keypad close to the guide.
 */

/* Flick gestures belong to the keypad, not to page scrolling. Outside this
 * keypad the page remains normally scrollable. */
.tc-system-page-typing-coach-flick .tc-flick-keypad{
  touch-action:none;
  overscroll-behavior:contain;
}
.tc-system-page-typing-coach-flick .tc-flick-key{
  touch-action:none!important;
  -webkit-tap-highlight-color:transparent;
}

/* Disable browser scroll anchoring in the active practice stack. This extends
 * the older <=700px protection to the wider smartphone/tablet preview range. */
@media (max-width:900px){
  body.tc-flick-practice-active,
  body.tc-flick-practice-active .tc-system-main,
  body.tc-flick-practice-active .tc-system-main__inner,
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick,
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-practice,
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-target-card,
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-guide,
  body.tc-flick-practice-active .tc-system-page-typing-coach-flick .tc-flick-keypad{
    overflow-anchor:none!important;
  }

  /* v1.87.30 intentionally made this lane auto-height for richer hints, which
   * allowed different characters to push the keypad up/down. Reserve one lane
   * for every character instead. */
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    box-sizing:border-box!important;
    height:76px!important;
    min-height:76px!important;
    max-height:76px!important;
    overflow:hidden!important;
    padding:6px 7px!important;
    margin:1px auto 4px!important;
    align-content:center!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__row--chips{
    flex-wrap:nowrap!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__row--desc{
    display:-webkit-box!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden!important;
    max-height:2.7em;
  }

  /* "入力済み" grows during a word/sentence. Keep it to one stable line so
   * the increasing text length cannot change the card height. */
  .tc-system-page-typing-coach-flick .tc-flick-typed{
    box-sizing:border-box!important;
    height:20px!important;
    min-height:20px!important;
    max-height:20px!important;
    line-height:20px!important;
    margin-block:0 2px!important;
    padding-inline:4px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
  }

  /* The guide message changes after every input. Keep its box fixed as well. */
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    box-sizing:border-box!important;
    height:48px!important;
    min-height:48px!important;
    max-height:48px!important;
    overflow:hidden!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-guide>[data-flick-guide-text]{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    line-height:1.35;
  }
}

@media (max-width:560px){
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    height:82px!important;
    min-height:82px!important;
    max-height:82px!important;
    padding-inline:4px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__row{gap:4px!important}
  .tc-system-page-typing-coach-flick .tc-flick-chip{padding:3px 5px!important}
  .tc-system-page-typing-coach-flick .tc-flick-chip b{font-size:12px!important}
  .tc-system-page-typing-coach-flick .tc-flick-chip small{font-size:8px!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__lead{display:none!important}
  .tc-system-page-typing-coach-flick .tc-flick-guide{
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
  }
}

@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-next-hint{
    height:86px!important;
    min-height:86px!important;
    max-height:86px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-step-badge{width:18px!important;height:18px!important;font-size:9px!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__separator{font-size:10px!important}
  .tc-system-page-typing-coach-flick .tc-flick-next-hint__char{font-size:14px!important}
}

/* ---- typing-coach-polish-v18733 | assets/css/polish-v18733.css ---- */
/* Typing Coach Core v1.87.33 — mobile menu visual consistency.
 * Keep aria-current for accessibility, but do not turn Typing Coach HOME into
 * a CTA-like highlighted card when it is the current page.
 */
@media (max-width:980px){
  body.tc-system-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home.is-current,
  body.tc-system-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home[aria-current="page"],
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home.is-current,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home[aria-current="page"]{
    background:transparent!important;
    border-color:transparent!important;
    color:#f5f8fb!important;
  }

  body.tc-system-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home.is-current:hover,
  body.tc-system-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home[aria-current="page"]:hover,
  body.tc-system-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home.is-current:focus-visible,
  body.tc-system-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home[aria-current="page"]:focus-visible,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home.is-current:hover,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home[aria-current="page"]:hover,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home.is-current:focus-visible,
  body.tc-standalone-body .tc-system-header .tc-mobile-nav>a.tc-system-nav-tc-home[aria-current="page"]:focus-visible{
    background:rgba(255,255,255,.07)!important;
    border-color:rgba(255,255,255,.12)!important;
    color:#f5f8fb!important;
    outline:none!important;
  }
}

/* ---- typing-coach-polish-v18735 | assets/css/polish-v18735.css ---- */
/* Typing Coach Core v1.87.35 — member Home smartphone-input entry.
 * Gives flick practice a clear, non-competing place between the growth snapshot
 * and member lesson grid. The layout is responsive and keeps the existing ad
 * and lesson monetization flow unchanged.
 */
.tc-system-page-typing-coach-home .tc-home-member-flick{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);
  gap:30px;
  align-items:center;
  overflow:hidden;
  padding:34px 36px;
  border:1px solid #d7e2eb;
  border-radius:20px;
  background:linear-gradient(135deg,#f8fbfe 0%,#f2f8fc 58%,#fff9ec 100%);
  box-shadow:0 12px 30px rgba(10,45,78,.07);
}
.tc-system-page-typing-coach-home .tc-home-member-flick::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,#0d416e 0 34%,#dca61f 34% 62%,#cc5b6b 62% 100%);
}
.tc-system-page-typing-coach-home .tc-home-member-flick::after{
  content:"TC";
  position:absolute;
  right:-20px;
  bottom:-46px;
  color:rgba(10,49,87,.035);
  font-family:Georgia,"Times New Roman",serif;
  font-size:180px;
  font-weight:700;
  line-height:1;
  pointer-events:none;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__copy,
.tc-system-page-typing-coach-home .tc-home-member-flick__visual{
  position:relative;
  z-index:1;
  min-width:0;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__copy h2{
  margin:8px 0 0;
  color:#0a3157;
  font-size:clamp(25px,2.25vw,34px);
  line-height:1.35;
  font-weight:900;
  letter-spacing:.015em;
  text-wrap:balance;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__lead{
  max-width:720px;
  margin:14px 0 0;
  color:#486176;
  font-size:14px;
  line-height:1.85;
  font-weight:600;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__points{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0 0;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__points>span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:32px;
  padding:5px 10px 5px 7px;
  border:1px solid #d6e2eb;
  border-radius:999px;
  background:rgba(255,255,255,.86);
  color:#284963;
  font-size:11px;
  line-height:1.35;
  font-weight:800;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__points b{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  flex:0 0 22px;
  border-radius:50%;
  background:#0c416e;
  color:#f2bd42;
  font-size:11px;
  font-weight:900;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__note{
  margin:12px 0 0;
  color:#6b7d8d;
  font-size:11px;
  line-height:1.65;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:20px;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__actions>a{
  margin:0;
  text-decoration:none;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__primary{
  min-height:46px;
  padding-inline:18px;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__primary>span{
  margin-left:8px;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__secondary{
  min-height:46px;
  padding-inline:17px;
}

.tc-system-page-typing-coach-home .tc-home-member-flick__visual{
  display:flex;
  justify-content:center;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__phone{
  width:min(100%,330px);
  padding:15px;
  border:1px solid rgba(221,176,58,.62);
  border-radius:24px;
  background:linear-gradient(160deg,#0b3157,#123f68);
  box-shadow:0 18px 40px rgba(8,39,70,.18);
}
.tc-system-page-typing-coach-home .tc-home-member-flick__phone-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
  color:#dceaf4;
  font-size:8px;
  font-weight:800;
  letter-spacing:.12em;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__phone-head i{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 7px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:#f0bd43;
  font-style:normal;
  letter-spacing:0;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__prompt{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:2px 8px;
  min-height:66px;
  padding:10px 12px;
  border-radius:15px;
  background:#fff;
  color:#0b3157;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__prompt small{
  align-self:end;
  color:#718497;
  font-size:8px;
  font-weight:800;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__prompt strong{
  grid-row:1/3;
  grid-column:2;
  font-size:36px;
  line-height:1;
  font-weight:900;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__prompt em{
  align-self:start;
  color:#a17012;
  font-size:9px;
  font-style:normal;
  font-weight:900;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__guide{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:5px;
  min-height:34px;
  margin:8px 0;
  padding:5px 7px;
  border-radius:11px;
  background:rgba(255,255,255,.09);
  color:#fff;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__guide>span{
  display:grid;
  place-items:center;
  width:17px;
  height:17px;
  border-radius:50%;
  background:#f0bd43;
  color:#0b3157;
  font-size:8px;
  font-weight:900;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__guide>b,
.tc-system-page-typing-coach-home .tc-home-member-flick__guide>i{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:0 7px;
  border-radius:7px;
  background:#fff;
  color:#0b3157;
  font-size:10px;
  font-style:normal;
  font-weight:900;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__guide>strong{
  color:#f5cc6c;
  font-size:10px;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__keys{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__keys>i{
  position:relative;
  display:grid;
  place-items:center;
  min-height:35px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:9px;
  background:rgba(255,255,255,.96);
  color:#0a3157;
  font-size:14px;
  font-style:normal;
  font-weight:900;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
}
.tc-system-page-typing-coach-home .tc-home-member-flick__keys>i.is-target{
  border:2px solid #e0a821;
  background:#fff8e5;
  box-shadow:0 0 0 2px rgba(224,168,33,.16);
}
.tc-system-page-typing-coach-home .tc-home-member-flick__keys>i.is-target small{
  position:absolute;
  top:2px;
  right:5px;
  color:#a26e08;
  font-size:9px;
}
.tc-system-page-typing-coach-home .tc-home-member-flick__keys>i.is-modifier{
  background:#fff4f6;
  color:#954557;
  font-size:10px;
}

@media (max-width:900px){
  .tc-system-page-typing-coach-home .tc-home-member-flick{
    grid-template-columns:minmax(0,1fr) 260px;
    gap:20px;
    padding:27px 24px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__copy h2{
    font-size:clamp(23px,3vw,29px);
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__phone{
    width:min(100%,270px);
  }
}

@media (max-width:760px){
  .tc-system-page-typing-coach-home .tc-home-member-flick{
    grid-template-columns:1fr;
    gap:18px;
    padding:22px 16px 18px!important;
    border-radius:18px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick::after{
    right:-12px;
    bottom:-28px;
    font-size:118px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__copy h2{
    max-width:520px;
    font-size:clamp(22px,6.4vw,28px);
    line-height:1.4;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__lead{
    font-size:13px;
    line-height:1.8;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__points{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__points>span{
    min-width:0;
    padding:6px;
    border-radius:12px;
    justify-content:flex-start;
    font-size:9px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__points b{
    width:20px;
    height:20px;
    flex-basis:20px;
    font-size:10px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:17px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__actions>a{
    width:100%;
    justify-content:center;
    box-sizing:border-box;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__primary{
    justify-content:space-between!important;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__visual{
    justify-content:flex-start;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__phone{
    width:100%;
    max-width:420px;
    padding:12px;
    border-radius:19px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__prompt{
    min-height:58px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__keys>i{
    min-height:33px;
  }
}

@media (max-width:430px){
  .tc-system-page-typing-coach-home .tc-home-member-flick{
    padding:20px 13px 15px!important;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__points{
    grid-template-columns:1fr;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__points>span{
    min-height:30px;
    font-size:10px;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__visual{
    display:none;
  }
  .tc-system-page-typing-coach-home .tc-home-member-flick__note{
    margin-top:10px;
  }
}

/* ---- typing-coach-polish-v18739 | assets/css/polish-v18739.css ---- */
/* Typing Coach Core v1.87.39 — compact smartphone ranking embed aligned with the PC Coach Rank card. */
.tc-embedded-flick-ranking{box-sizing:border-box;max-width:100%}
.tc-embedded-flick-ranking *{box-sizing:border-box}
.tc-embedded-flick-ranking .tc-flick-embed-table-wrap{max-width:100%;overflow:visible!important}
.tc-embedded-flick-ranking .tc-flick-embed-table{
  width:100%!important;min-width:0!important;max-width:100%!important;
  table-layout:fixed;border-collapse:collapse;font-size:.86rem
}
.tc-embedded-flick-ranking .tc-flick-embed-table th,
.tc-embedded-flick-ranking .tc-flick-embed-table td{
  min-width:0!important;max-width:none!important;padding:11px 8px;
  vertical-align:middle;overflow-wrap:anywhere;word-break:normal
}
.tc-embedded-flick-ranking .tc-flick-embed-table th{
  color:#102b49;font-weight:850;white-space:normal;line-height:1.25
}
.tc-embedded-flick-ranking .tc-flick-embed-table th:nth-child(1){width:7%}
.tc-embedded-flick-ranking .tc-flick-embed-table th:nth-child(2){width:9%}
.tc-embedded-flick-ranking .tc-flick-embed-table th:nth-child(3){width:16%}
.tc-embedded-flick-ranking .tc-flick-embed-table th:nth-child(4){width:11%}
.tc-embedded-flick-ranking .tc-flick-embed-table th:nth-child(5){width:12%}
.tc-embedded-flick-ranking .tc-flick-embed-table th:nth-child(6){width:10%}
.tc-embedded-flick-ranking .tc-flick-embed-table th:nth-child(7){width:35%}
.tc-embedded-flick-ranking .tc-flick-embed-table tbody tr{
  border-top:1px solid #e6d7aa;border-bottom:1px solid #e6d7aa;
  background:rgba(255,255,255,.62)
}
.tc-embedded-flick-ranking .tc-flick-embed-table tbody tr.is-me{
  background:#fff8df;box-shadow:inset 3px 0 0 #d9a62e
}
.tc-embedded-flick-ranking .tc-flick-embed-rank{
  display:inline-flex;align-items:center;justify-content:center;min-width:32px;
  color:#0b2d50;font-weight:900;font-variant-numeric:tabular-nums
}
.tc-embedded-flick-ranking .tc-flick-embed-rank.is-pending,
.tc-embedded-flick-ranking .tc-ranking-percentile-value.is-pending{
  width:max-content;padding:5px 9px;border-radius:999px;background:#eef3f6;
  color:#71808c;font-size:.72rem;font-weight:850;white-space:nowrap
}
.tc-embedded-flick-ranking .tc-ranking-percentile-value:not(.is-pending){
  display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;
  background:#fff6d9;color:#8b6210;font-size:.74rem;font-weight:850;white-space:nowrap
}
.tc-embedded-flick-ranking .tc-ranking-nickname{color:#173752}
.tc-embedded-flick-ranking .tc-ranking-nickname>strong{font-weight:800}
.tc-embedded-flick-ranking .tc-ranking-nickname small{
  display:inline-flex;margin-left:5px;padding:3px 7px;border-radius:999px;
  background:#eaf2f7;color:#456276;font-size:.66rem;font-weight:850;white-space:nowrap
}
.tc-embedded-flick-ranking .tc-flick-embed-score{
  color:#9b6b09;font-size:1.02rem;font-weight:900;font-variant-numeric:tabular-nums
}
.tc-embedded-flick-ranking .tc-flick-embed-best{min-width:0}
.tc-embedded-flick-ranking .tc-flick-embed-best>span{
  display:-webkit-box;max-width:100%;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  color:#0a4e84;font-weight:850;line-height:1.35
}
.tc-embedded-flick-ranking .tc-ranking-empty td{
  padding:18px!important;text-align:center!important;color:#6f7e8c;font-weight:700
}

@media(max-width:1050px){
  .tc-embedded-flick-ranking .tc-flick-embed-table{font-size:.79rem}
  .tc-embedded-flick-ranking .tc-flick-embed-table th,
  .tc-embedded-flick-ranking .tc-flick-embed-table td{padding:9px 6px}
}

@media(max-width:760px){
  .tc-embedded-flick-ranking{overflow:visible}
  .tc-embedded-flick-ranking .tc-flick-embed-table,
  .tc-embedded-flick-ranking .tc-flick-embed-table tbody{display:block;width:100%}
  .tc-embedded-flick-ranking .tc-flick-embed-table thead{display:none}
  .tc-embedded-flick-ranking .tc-flick-embed-table tr:not(.tc-ranking-empty){
    display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;
    width:100%;margin:0 0 12px;padding:12px!important;
    border:1px solid #e4d29b!important;border-radius:16px!important;
    background:linear-gradient(180deg,#fffdf7 0%,#fff9e8 100%)!important;
    box-shadow:0 8px 24px rgba(18,51,80,.07)!important;overflow:hidden
  }
  .tc-embedded-flick-ranking .tc-flick-embed-table tr.is-me{
    border-color:#d9a62e!important;box-shadow:0 10px 28px rgba(184,145,51,.12)!important
  }
  .tc-embedded-flick-ranking .tc-flick-embed-table td{
    display:flex!important;flex-direction:column;justify-content:center;align-items:flex-start!important;
    min-width:0;gap:4px!important;padding:9px 10px!important;border:1px solid rgba(17,55,86,.08)!important;
    border-radius:11px;background:rgba(255,255,255,.8);line-height:1.3;text-align:left!important
  }
  .tc-embedded-flick-ranking .tc-flick-embed-table td::before{
    content:attr(data-label);display:block;margin:0 0 2px;color:#788796;
    font-size:.61rem;font-weight:850;letter-spacing:.045em;line-height:1.2
  }
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(1){
    grid-column:span 2;background:#fff2c9;border-color:#edcf72!important
  }
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(2){grid-column:span 2}
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(3){
    grid-column:span 2;font-size:1.02rem;color:#0b2d50
  }
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(4),
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(5),
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(6){
    grid-column:span 2;min-height:66px;background:#fff!important;font-weight:800;color:#173c5d
  }
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(4){color:#0a4e84}
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(7){
    grid-column:1/-1;padding:10px 12px!important;background:#f3f8fc!important;
    border-color:#d6e4ee!important;border-left:3px solid #c99527!important
  }
  .tc-embedded-flick-ranking .tc-flick-embed-best>span{font-size:.9rem}
  .tc-embedded-flick-ranking .tc-ranking-empty{display:block;padding:14px;border-radius:12px;background:#f7f9fb}
  .tc-embedded-flick-ranking .tc-ranking-empty td{display:block!important;padding:0!important;border:0!important;background:transparent!important}
  .tc-embedded-flick-ranking .tc-ranking-empty td::before{content:none}
}

@media(max-width:430px){
  .tc-embedded-flick-ranking .tc-flick-embed-table tr:not(.tc-ranking-empty){gap:7px;padding:10px!important}
  .tc-embedded-flick-ranking .tc-flick-embed-table td{padding:8px!important}
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(2),
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(3){grid-column:span 4}
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(1){grid-column:span 2}
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(4),
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(5),
  .tc-embedded-flick-ranking .tc-flick-embed-table td:nth-child(6){font-size:.9rem;min-height:62px}
}

/* ---- typing-coach-polish-v18741 | assets/css/polish-v18741.css ---- */
/* Typing Coach Core v1.87.41 — smartphone lesson access controls.
 * Public lesson cards keep the existing premium layout; member-only cards remain
 * visible to guests without exposing their practice payload and offer clear
 * registration/login paths.
 */
.tc-system-page-typing-coach-flick .tc-flick-access-badge.is-public{
  border-color:#c8e4d4!important;
  background:#eef9f3!important;
  color:#167549!important;
}
.tc-system-page-typing-coach-flick .tc-flick-access-badge.is-members{
  border-color:#ead5a4!important;
  background:#fff8e7!important;
  color:#8a5a08!important;
}
.tc-system-page-typing-coach-flick article.tc-flick-mode{
  text-align:left;
  color:var(--flick-text);
}
.tc-system-page-typing-coach-flick .tc-flick-mode.is-locked{
  cursor:default;
  border-color:#dfd4b5;
  background:
    radial-gradient(circle at 96% 8%,rgba(213,163,43,.09) 0 16%,transparent 17%),
    linear-gradient(145deg,#fff 0%,#fffaf0 100%);
}
.tc-system-page-typing-coach-flick .tc-flick-mode.is-locked:hover{
  transform:none;
  border-color:#dfd4b5;
  box-shadow:0 8px 22px rgba(8,46,79,.075);
}
.tc-system-page-typing-coach-flick .tc-flick-mode__locked-copy{
  display:block!important;
  margin-top:11px;
  padding-top:10px;
  border-top:1px solid #eee4ca;
  color:#5c6670!important;
  font-size:12px!important;
  line-height:1.65!important;
  font-weight:700;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__gate-actions{
  display:flex!important;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__gate-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  text-decoration:none!important;
  font-size:12px;
  line-height:1.2;
  font-weight:900;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__gate-actions a:first-child{
  border:1px solid #0b426f;
  background:#0b426f;
  color:#fff!important;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__gate-actions a:last-child{
  border:1px solid #c8d5df;
  background:#fff;
  color:#0b426f!important;
}
.tc-system-page-typing-coach-flick .tc-flick-mode__gate-actions a:focus-visible{
  outline:3px solid rgba(213,163,43,.34);
  outline-offset:2px;
}
.tc-flick-ranking-access-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:6px;
  padding:3px 7px;
  border:1px solid #ead5a4;
  border-radius:999px;
  background:#fff8e7;
  color:#8a5a08;
  font-size:10px;
  line-height:1.1;
  font-weight:900;
  white-space:nowrap;
}
@media (max-width:560px){
  .tc-system-page-typing-coach-flick .tc-flick-mode__gate-actions a{
    flex:1 1 120px;
  }
}

/* ---- typing-coach-report-v18629 | assets/css/report-v18629.css ---- */
/* Typing Coach v1.86.29 — shared user-facing Growth & Action Report presentation
   Loaded on the live report, report preview center, and print/PDF fallback. */
.tc-growth-report{
  --tc-report-navy:#0b2f50;
  --tc-report-navy-2:#15466e;
  --tc-report-gold:#d2a540;
  --tc-report-gold-soft:#f4e5b8;
  --tc-report-ink:#17324b;
  --tc-report-text:#354e67;
  --tc-report-muted:#52677d;
  --tc-report-line:#d8e3ea;
  --tc-report-soft:#f5f9fc;
  --tc-report-cream:#fffaf0;
  position:relative;
  width:100%;
  box-sizing:border-box;
  overflow:hidden;
  border:1px solid var(--tc-report-line);
  border-radius:22px;
  background:#fff;
  color:var(--tc-report-ink);
  box-shadow:0 18px 46px rgba(11,47,80,.08);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
.tc-growth-report *{box-sizing:border-box}
.tc-growth-report p,.tc-growth-report li,.tc-growth-report dd,.tc-growth-report blockquote{color:var(--tc-report-text)}

/* Cover / report identity */
.tc-growth-report .tc-growth-report-hero{
  position:relative;
  overflow:hidden;
  padding:25px 29px 23px;
  border:0;
  border-radius:0;
  background:
    radial-gradient(circle at 92% -20%,rgba(239,202,104,.16),transparent 34%),
    linear-gradient(145deg,var(--tc-report-navy) 0%,var(--tc-report-navy-2) 100%);
  color:#fff;
}
.tc-growth-report .tc-growth-report-hero:before{
  content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#b98724,#f1d271,#bd8e2b);
}
.tc-growth-report .tc-growth-report-hero:after{
  content:"";position:absolute;width:250px;height:250px;border:1px solid rgba(240,204,109,.13);border-radius:50%;right:-122px;bottom:-155px;pointer-events:none;
}
.tc-growth-report .tc-report-hero-brandline{
  position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.14);
}
.tc-growth-report .tc-growth-report-brand{display:flex;align-items:center;gap:10px;margin:0!important;min-width:0}
.tc-growth-report .tc-growth-report-brand img{
  display:block!important;width:42px!important;max-width:42px!important;height:42px!important;max-height:42px!important;
  flex:0 0 42px!important;object-fit:contain!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;
}
.tc-growth-report .tc-growth-report-brand>div{display:grid;gap:1px;min-width:0}
.tc-growth-report .tc-growth-report-brand span{margin:0!important;color:#fff!important;font-size:13px!important;font-weight:900!important;letter-spacing:.035em!important;line-height:1.2!important}
.tc-growth-report .tc-growth-report-brand small{margin:0!important;color:#dbe7ef!important;font-size:8.5px!important;font-weight:850!important;letter-spacing:.16em!important;line-height:1.25!important}
.tc-growth-report .tc-report-hero-badge{position:relative;z-index:1;color:#f0cc6d!important;font-size:9.5px!important;font-weight:900!important;letter-spacing:.16em!important;line-height:1.35!important;text-align:right}
.tc-growth-report .tc-report-hero-main{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(230px,.72fr);gap:30px;align-items:start;padding-top:19px}
.tc-growth-report .tc-report-hero-copy{min-width:0}
.tc-growth-report .tc-report-hero-kicker,.tc-growth-report .tc-kicker{display:block;color:#a37616;font-size:10px;font-weight:900;letter-spacing:.15em;line-height:1.35}
.tc-growth-report .tc-report-hero-kicker{color:#f0cc6d!important}
.tc-growth-report .tc-report-hero-main h1{margin:7px 0 9px!important;color:#fff!important;font-size:clamp(29px,3vw,36px)!important;font-weight:900!important;line-height:1.22!important;letter-spacing:.01em}
.tc-growth-report .tc-report-hero-description{margin:0!important;max-width:620px!important;color:#e3edf4!important;font-size:13.5px!important;font-weight:600;line-height:1.8!important}
.tc-growth-report .tc-report-hero-facts{display:grid;gap:8px;margin:0;min-width:0}
.tc-growth-report .tc-report-hero-facts>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:baseline;padding:9px 11px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.075)}
.tc-growth-report .tc-report-hero-facts dt{margin:0;color:#cbdbe7!important;font-size:10.5px;font-weight:850;line-height:1.45}
.tc-growth-report .tc-report-hero-facts dd{margin:0;color:#fff!important;font-size:11.5px;font-weight:850;line-height:1.5;overflow-wrap:anywhere}
.tc-growth-report .tc-report-hero-note{position:relative;z-index:1;margin:14px 0 0!important;padding-top:12px;border-top:1px solid rgba(255,255,255,.11);max-width:72ch;color:#d7e4ed!important;font-size:11.5px!important;font-weight:600;line-height:1.7!important}

/* Overview metrics */
.tc-growth-report>.tc-report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:19px 26px 0}
.tc-growth-report>.tc-report-summary-grid>div{position:relative;min-width:0;padding:15px 16px 14px;border:1px solid var(--tc-report-line);border-radius:13px;background:#fff;box-shadow:0 6px 16px rgba(11,47,80,.04)}
.tc-growth-report>.tc-report-summary-grid>div:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:13px 13px 0 0;background:linear-gradient(90deg,#bd8e2b,#e1bc5c)}
.tc-growth-report>.tc-report-summary-grid span{display:block;color:var(--tc-report-muted)!important;font-size:11.5px!important;font-weight:850;line-height:1.4}
.tc-growth-report>.tc-report-summary-grid b{display:block;margin-top:5px;color:#123c5d!important;font-size:22px!important;font-weight:900;line-height:1.2}

/* Main report sections */
.tc-growth-report>.tc-report-section{
  position:relative;
  margin:18px 26px 0!important;
  padding:23px 24px 24px!important;
  border:1px solid #e0e8ee!important;
  border-radius:16px!important;
  background:#fff;
  box-shadow:0 7px 18px rgba(11,47,80,.035);
}
.tc-growth-report>.tc-report-section:before{content:"";position:absolute;left:0;top:22px;width:4px;height:36px;border-radius:0 4px 4px 0;background:#d2a540}
.tc-growth-report>.tc-report-section>.tc-kicker{margin-left:2px;color:#a37616!important}
.tc-growth-report>.tc-report-section>h2{margin:5px 0 14px!important;color:#0b2f50!important;font-size:22px!important;font-weight:900!important;line-height:1.35!important;letter-spacing:.005em}
.tc-growth-report .tc-report-lead{max-width:78ch;margin:14px 0 0;color:var(--tc-report-text)!important;font-size:13px!important;font-weight:600;line-height:1.85!important}

/* Purpose & goals */
.tc-growth-report>.tc-report-goals{background:linear-gradient(180deg,#fff 0%,#fffdf8 100%)}
.tc-growth-report .tc-report-goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:4px}
.tc-growth-report .tc-report-goal-grid>div{min-width:0;padding:15px 16px;border:1px solid #e8d8ad;border-radius:13px;background:var(--tc-report-cream)}
.tc-growth-report .tc-report-goal-grid small{display:block;color:#8b681b!important;font-size:11px;font-weight:900;line-height:1.5}
.tc-growth-report .tc-report-goal-grid strong{display:block;margin-top:7px;color:#27465e!important;font-size:13px;font-weight:850;line-height:1.72}
.tc-growth-report .tc-report-goal-grid p{margin:7px 0 0;color:var(--tc-report-muted)!important;font-size:11.5px;line-height:1.7}
.tc-growth-report .tc-report-goal-history{margin-top:18px;padding:18px;border:1px solid #d9e4ec;border-radius:14px;background:#f6fafc}
.tc-growth-report .tc-report-goal-history-head{display:flex;gap:10px;align-items:center}
.tc-growth-report .tc-report-goal-history-head>span{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#fff3cf;color:#9a7015;font-weight:900}
.tc-growth-report .tc-report-goal-history-head small{display:block;color:#9a7015;font-size:9.5px;font-weight:900;letter-spacing:.12em}
.tc-growth-report .tc-report-goal-history-head h3{margin:2px 0 0;color:#123c5d;font-size:16px;line-height:1.45}
.tc-growth-report .tc-report-goal-timeline{display:grid;grid-template-columns:1fr;gap:9px;margin-top:12px}
.tc-growth-report .tc-report-goal-timeline>i{display:none}
.tc-growth-report .tc-report-goal-timeline article{padding:12px 13px;border:1px solid #e1e8ee;border-radius:10px;background:#fff}
.tc-growth-report .tc-report-goal-timeline article small,.tc-growth-report .tc-report-goal-timeline article strong,.tc-growth-report .tc-report-goal-timeline article span{display:block;margin:0 0 5px;line-height:1.65}
.tc-growth-report .tc-report-goal-timeline article small{color:#7a681e;font-size:10px;font-weight:850}
.tc-growth-report .tc-report-goal-timeline article strong{color:#17324b;font-size:12.5px}
.tc-growth-report .tc-report-goal-timeline article span{color:#52677d;font-size:11.5px}
.tc-growth-report .tc-report-goal-history>p{margin:12px 0 0;color:#40566c;font-size:11.8px;line-height:1.75}

/* Skill section */
.tc-growth-report>.tc-report-skill{background:linear-gradient(180deg,#fff 0%,#f9fcfe 100%)}
.tc-growth-report .tc-report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:4px}
.tc-growth-report .tc-report-kpis>div{min-width:0;padding:14px;border:1px solid #d7e4ec;border-radius:12px;background:#f5f9fc}
.tc-growth-report .tc-report-kpis small{display:block;color:var(--tc-report-muted)!important;font-size:11px;font-weight:850;line-height:1.45}
.tc-growth-report .tc-report-kpis strong{display:block;margin-top:5px;color:#123c5d!important;font-size:21px;font-weight:900;line-height:1.2}

/* Learning themes */
.tc-growth-report>.tc-report-learning{background:#fff}
.tc-growth-report .tc-report-theme-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.tc-growth-report .tc-report-theme-list span{display:inline-flex;align-items:center;gap:4px;padding:8px 10px;border:1px solid #d9e8f1;border-radius:999px;background:#edf6fb;color:#315a79!important;font-size:11.5px;font-weight:800}
.tc-growth-report .tc-report-theme-list b{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#fff;color:#214d70!important;font-size:10.5px;box-shadow:inset 0 0 0 1px #d7e5ee}

/* Saved phrases and notes */
.tc-growth-report>.tc-report-phrases{background:linear-gradient(180deg,#fff 0%,#fffdf8 100%)}
.tc-growth-report .tc-report-quote-list{display:grid;gap:9px}
.tc-growth-report .tc-report-quote-list blockquote{position:relative;margin:0;padding:13px 15px 13px 18px;border:1px solid #ebdfbe;border-left:4px solid #d2a540;border-radius:0 11px 11px 0;background:#fffaf0;color:#40566c!important;font-size:12.5px;font-weight:650;line-height:1.75}
.tc-growth-report>.tc-report-notes{background:linear-gradient(180deg,#fff 0%,#f8fbfd 100%)}
.tc-growth-report .tc-report-note-list{display:grid;gap:9px}
.tc-growth-report .tc-report-note-list p{margin:0;padding:13px 15px;border:1px solid #dce7ee;border-radius:11px;background:#fff;color:#40566c!important;font-size:12.5px;font-weight:600;line-height:1.75}

/* Next action */
.tc-growth-report>.tc-report-next{margin-bottom:26px!important;border-color:#cfe0eb!important;background:linear-gradient(135deg,#edf6fb 0%,#f7fbfd 100%)!important;box-shadow:none}
.tc-growth-report>.tc-report-next:before{background:#4e8bb8}
.tc-growth-report .tc-report-next ol{counter-reset:tc-report-step;display:grid;gap:9px;margin:13px 0 0;padding:0;list-style:none}
.tc-growth-report .tc-report-next li{counter-increment:tc-report-step;position:relative;margin:0!important;padding:10px 12px 10px 42px;border:1px solid #d6e5ee;border-radius:10px;background:#fff;color:#284b65!important;font-size:12.5px;font-weight:650;line-height:1.7}
.tc-growth-report .tc-report-next li:before{content:counter(tc-report-step);position:absolute;left:11px;top:50%;display:grid;place-items:center;width:22px;height:22px;transform:translateY(-50%);border-radius:999px;background:#0f4169;color:#fff;font-size:10.5px;font-weight:900}
.tc-growth-report .tc-report-next>small{display:block;margin-top:13px;color:#52677d!important;font-size:10.5px;line-height:1.65}

/* Footer */
.tc-growth-report .tc-report-footer{display:flex;justify-content:space-between;gap:12px;margin:0 26px;padding:17px 1px 18px;border-top:1px solid #dfe7ed;color:#657c8e;font-size:10.5px;line-height:1.5}
.tc-growth-report .tc-report-footer span{color:#657c8e}
.tc-growth-report .tc-report-footer strong{color:#17324b;font-weight:900}

/* Preview center: render the user-facing report as the report itself, not as bare admin text. */
.tc-report-demo-personal-body{background:#edf3f7!important;padding:24px!important}
.tc-report-demo-personal-body .tc-growth-report{max-width:920px!important;margin:0 auto!important}
.tc-report-demo-browser{background:#edf3f7!important}

@media(max-width:900px){
  .tc-growth-report .tc-report-hero-main{grid-template-columns:1fr;gap:16px}
  .tc-growth-report .tc-report-hero-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tc-growth-report .tc-report-hero-facts>div{grid-template-columns:1fr;gap:3px}
  .tc-growth-report>.tc-report-summary-grid,.tc-growth-report .tc-report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .tc-growth-report{border-radius:17px}
  .tc-growth-report .tc-growth-report-hero{padding:21px 18px 19px}
  .tc-growth-report .tc-report-hero-brandline{align-items:flex-start}
  .tc-growth-report .tc-growth-report-brand{gap:9px}
  .tc-growth-report .tc-growth-report-brand img{width:38px!important;max-width:38px!important;height:38px!important;max-height:38px!important;flex-basis:38px!important}
  .tc-growth-report .tc-report-hero-badge{display:none}
  .tc-growth-report .tc-report-hero-main{padding-top:16px}
  .tc-growth-report .tc-report-hero-facts{grid-template-columns:1fr}
  .tc-growth-report .tc-report-hero-facts>div{grid-template-columns:70px minmax(0,1fr);gap:8px}
  .tc-growth-report .tc-report-hero-description{font-size:13px!important}
  .tc-growth-report>.tc-report-summary-grid{margin:15px 15px 0}
  .tc-growth-report>.tc-report-section{margin:14px 15px 0!important;padding:20px 18px 21px!important}
  .tc-growth-report>.tc-report-summary-grid,.tc-growth-report .tc-report-kpis,.tc-growth-report .tc-report-goal-grid{grid-template-columns:1fr}
  .tc-growth-report .tc-report-footer{margin:0 15px;padding-bottom:16px}
  .tc-report-demo-personal-body{padding:9px!important}
}

@media print{
  .tc-growth-report{border:1px solid #d8e3ea;box-shadow:none;border-radius:12px}
  .tc-growth-report>.tc-report-section{break-inside:avoid;box-shadow:none}
  .tc-growth-report>.tc-report-summary-grid>div{box-shadow:none}
}
.tc-report-demo-preview-note{max-width:920px;margin:0 auto 12px;padding:10px 13px;border:1px solid #d8e4eb;border-radius:10px;background:#f7fafc;color:#52677d;line-height:1.65}
.tc-report-demo-preview-note strong{color:#123c5d;margin-right:6px}

/* ---- typing-coach-group-report-v18630 | assets/css/group-report-v18630.css ---- */
/* Typing Coach v1.86.30 — premium presentation for group member growth reports. */
.tc-group-member-report.tc-member-report-premium{
  --tc-mr-navy:#0b2f50;--tc-mr-navy2:#15466e;--tc-mr-gold:#d2a540;--tc-mr-ink:#17324b;--tc-mr-text:#354e67;--tc-mr-muted:#52677d;--tc-mr-line:#d8e3ea;
  overflow:hidden;border:1px solid var(--tc-mr-line);border-radius:20px;background:#fff;box-shadow:0 16px 38px rgba(11,47,80,.07);color:var(--tc-mr-ink)
}
.tc-member-report-premium .tc-member-report-document-head{
  position:relative;padding:24px 26px 22px;color:#fff;background:radial-gradient(circle at 94% -20%,rgba(239,202,104,.16),transparent 34%),linear-gradient(145deg,var(--tc-mr-navy),var(--tc-mr-navy2));border-top:4px solid var(--tc-mr-gold)
}
.tc-member-report-premium .tc-member-report-brand{display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.14)}
.tc-member-report-premium .tc-member-report-brand img{display:block;width:44px!important;max-width:44px!important;height:44px!important;max-height:44px!important;object-fit:contain;margin:0!important;box-shadow:none!important}
.tc-member-report-premium .tc-member-report-brand>div{display:grid;gap:1px}.tc-member-report-premium .tc-member-report-brand strong{color:#fff;font-size:14px;line-height:1.2}.tc-member-report-premium .tc-member-report-brand small{color:#dce8f0;font-size:8px;font-weight:850;letter-spacing:.15em}
.tc-member-report-premium .tc-demo-badge,.tc-member-report-premium .tc-member-report-close{position:absolute;right:24px;top:23px}
.tc-member-report-premium .tc-member-report-close{color:#fff!important;border-color:rgba(255,255,255,.35)!important;background:rgba(255,255,255,.08)!important}
.tc-member-report-premium .tc-member-report-title-block{margin-top:18px;max-width:760px}.tc-member-report-premium .tc-member-report-title-block .tc-kicker{color:#efc45c!important}
.tc-member-report-premium .tc-member-report-title-block h2,.tc-member-report-premium .tc-member-report-title-block h5{margin:5px 0 8px!important;color:#fff!important;font-size:clamp(25px,2.7vw,34px)!important;font-weight:900!important;line-height:1.3!important}
.tc-member-report-premium .tc-member-report-title-block p{margin:0!important;max-width:70ch;color:#dce8f0!important;font-size:13px!important;font-weight:600;line-height:1.8!important}
.tc-member-report-premium .tc-member-report-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0 0}.tc-member-report-premium .tc-member-report-facts>div{min-width:0;padding:9px 11px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:rgba(255,255,255,.07)}
.tc-member-report-premium .tc-member-report-facts dt{margin:0;color:#c8d9e5;font-size:10px;font-weight:850}.tc-member-report-premium .tc-member-report-facts dd{margin:3px 0 0;color:#fff;font-size:11.5px;font-weight:850;line-height:1.45;overflow-wrap:anywhere}
.tc-member-report-premium .tc-report-action-bar{margin:0;padding:17px 26px;border-bottom:1px solid #e0e8ee;background:#fffdf8}
.tc-member-report-premium .tc-member-growth-summary{margin:18px 26px 0;padding:19px 20px;border:1px solid #d8e5ed;border-radius:15px;background:linear-gradient(180deg,#f7fbfd,#fff);box-shadow:0 6px 16px rgba(11,47,80,.035)}
.tc-member-report-premium .tc-member-growth-summary-head h3,.tc-member-report-premium .tc-member-growth-summary-head h6{margin:4px 0 4px;color:#123c5d;font-size:18px;line-height:1.45}.tc-member-report-premium .tc-member-growth-summary-head p{margin:0;color:var(--tc-mr-text);font-size:12.5px;line-height:1.75}
.tc-member-report-premium .tc-member-growth-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px}.tc-member-report-premium .tc-member-growth-summary-grid article{position:relative;min-width:0;padding:13px 14px;border:1px solid #dce6ed;border-radius:12px;background:#fff;overflow:hidden}.tc-member-report-premium .tc-member-growth-summary-grid article:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#bd8e2b,#e1bc5c)}
.tc-member-report-premium .tc-member-growth-summary-grid span{display:block;color:var(--tc-mr-muted);font-size:10.5px;font-weight:850}.tc-member-report-premium .tc-member-growth-summary-grid strong{display:block;margin-top:5px;color:#123c5d;font-size:22px;font-weight:900;line-height:1.2}.tc-member-report-premium .tc-member-growth-summary-grid strong small{margin-left:3px;color:#52677d;font-size:11px;font-weight:800}
.tc-member-report-premium .tc-member-value-pack{margin:16px 26px 18px;padding:20px;border-color:#cfdee8;border-radius:16px;background:linear-gradient(135deg,#edf7fb,#fbfdfe)}
.tc-member-report-premium .tc-member-value-pack-head h3,.tc-member-report-premium .tc-member-value-pack-head h6{color:#123c5d!important}.tc-member-report-premium .tc-member-value-pack-head p{color:#40566c!important}
.tc-member-report-premium .tc-member-value-pack-grid article{box-shadow:0 4px 12px rgba(11,47,80,.025)}
.tc-member-report-premium .tc-member-value-pack-grid .is-wins{border-color:#cfe2d6;background:#f5fbf7}.tc-member-report-premium .tc-member-value-pack-grid .is-goal{border-color:#ead9a8;background:#fffaf0}.tc-member-report-premium .tc-member-value-pack-grid .is-rank{border-color:#d5d9ec;background:#f7f6fc}.tc-member-report-premium .tc-member-value-pack-grid .is-next{border-color:#cfe0eb;background:#f3f9fc}
.tc-member-report-premium .tc-member-report-kpis,.tc-member-report-premium .tc-member-report-grid,.tc-member-report-premium .tc-member-report-ranking,.tc-member-report-premium .tc-member-report-tips,.tc-member-report-premium .tc-demo-recent-table,.tc-member-report-premium .tc-report-mail-demo,.tc-member-report-premium .tc-member-goal-override{margin-left:26px;margin-right:26px}
.tc-member-report-premium .tc-demo-report-footer{margin-left:26px;margin-right:26px}
.tc-report-demo-iframe{background:#eef3f7!important}
@media(max-width:900px){.tc-member-report-premium .tc-member-report-facts,.tc-member-report-premium .tc-member-growth-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.tc-member-report-premium{border-radius:15px}.tc-member-report-premium .tc-member-report-document-head{padding:20px 16px}.tc-member-report-premium .tc-member-report-brand img{width:38px!important;max-width:38px!important;height:38px!important;max-height:38px!important}.tc-member-report-premium .tc-demo-badge,.tc-member-report-premium .tc-member-report-close{position:static;display:inline-flex;margin-top:10px}.tc-member-report-premium .tc-member-report-title-block{margin-top:14px}.tc-member-report-premium .tc-member-report-facts{grid-template-columns:1fr}.tc-member-report-premium .tc-report-action-bar{padding:14px 16px}.tc-member-report-premium .tc-member-growth-summary,.tc-member-report-premium .tc-member-value-pack{margin-left:16px;margin-right:16px}.tc-member-report-premium .tc-member-growth-summary-grid{grid-template-columns:1fr 1fr}.tc-member-report-premium .tc-member-report-kpis,.tc-member-report-premium .tc-member-report-grid,.tc-member-report-premium .tc-member-report-ranking,.tc-member-report-premium .tc-member-report-tips,.tc-member-report-premium .tc-demo-recent-table,.tc-member-report-premium .tc-report-mail-demo,.tc-member-report-premium .tc-member-goal-override,.tc-member-report-premium .tc-demo-report-footer{margin-left:16px;margin-right:16px}}
@media(max-width:420px){.tc-member-report-premium .tc-member-growth-summary-grid{grid-template-columns:1fr}}
@media print{.tc-member-report-premium{box-shadow:none}.tc-member-report-premium .tc-member-report-close,.tc-member-report-premium .tc-report-action-bar{display:none!important}}

/* ---- typing-coach-group-report-v18631 | assets/css/group-report-v18631.css ---- */
/* Typing Coach v1.86.31 — semantic one-line report lead + coaching panel. */
@media (min-width:1100px){
  .tc-member-report-premium .tc-member-report-title-block{max-width:1120px}
  .tc-member-report-premium .tc-member-report-title-block p{max-width:none;white-space:nowrap}
}
.tc-member-report-premium .tc-member-coaching-panel{margin:16px 26px 18px;padding:20px;border:1px solid #cbdfea;border-radius:16px;background:linear-gradient(135deg,#eef7fb 0%,#fbfdfe 58%,#fffaf0 100%);box-shadow:0 6px 16px rgba(11,47,80,.035)}
.tc-member-report-premium .tc-member-coaching-head h3,.tc-member-report-premium .tc-member-coaching-head h6{margin:4px 0 4px;color:#123c5d;font-size:18px;line-height:1.45}
.tc-member-report-premium .tc-member-coaching-head p{margin:0;color:#40566c;font-size:12.5px;line-height:1.75}
.tc-member-report-premium .tc-member-coaching-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(230px,.55fr);gap:10px;margin-top:14px}
.tc-member-report-premium .tc-member-coaching-copy,.tc-member-report-premium .tc-member-coaching-focus,.tc-member-report-premium .tc-member-coaching-question{border:1px solid #d7e3eb;border-radius:13px;background:#fff;padding:15px 16px}
.tc-member-report-premium .tc-member-coaching-copy>span,.tc-member-report-premium .tc-member-coaching-focus>span,.tc-member-report-premium .tc-member-coaching-question>span{display:block;color:#8f6518;font-size:10.5px;font-weight:900;letter-spacing:.04em}
.tc-member-report-premium .tc-member-coaching-copy>strong,.tc-member-report-premium .tc-member-coaching-focus>strong{display:block;margin-top:6px;color:#123c5d;font-size:15px;font-weight:900;line-height:1.6}
.tc-member-report-premium .tc-member-coaching-copy>p{margin:8px 0 0;color:#40566c;font-size:12.5px;line-height:1.8}
.tc-member-report-premium .tc-member-coaching-focus{display:flex;flex-direction:column;justify-content:center;background:#f7fbfd}
.tc-member-report-premium .tc-member-coaching-question{margin-top:10px;border-color:#ead7a4;background:#fffaf0}
.tc-member-report-premium .tc-member-coaching-question p{margin:6px 0 0;color:#17324b;font-size:13px;font-weight:800;line-height:1.75}
@media(max-width:800px){.tc-member-report-premium .tc-member-coaching-main{grid-template-columns:1fr}}
@media(max-width:650px){.tc-member-report-premium .tc-member-coaching-panel{margin-left:16px;margin-right:16px;padding:17px 15px}}
@media print{.tc-member-report-premium .tc-member-coaching-panel{box-shadow:none;break-inside:avoid}}

/* ---- typing-coach-group-report-v18632 | assets/css/group-report-v18632.css ---- */
/* Typing Coach v1.86.32 — member report preview separation + print-safe layout. */
.tc-member-report-premium .tc-member-report-title-block{max-width:none}
.tc-member-report-premium .tc-member-report-title-block p{max-width:none}
@media (min-width:900px){
  .tc-member-report-premium .tc-member-report-title-block p{white-space:nowrap;font-size:12.5px!important;letter-spacing:-.005em}
}
.tc-demo-mail-admin-card .tc-report-mail-demo{margin:0}
.tc-demo-mail-admin-card .tc-demo-section-head{margin-bottom:14px}
.tc-demo-mail-admin-card .tc-demo-section-head p{max-width:520px}
@media print{
  @page{size:A4 portrait;margin:10mm}
  html,body{background:#fff!important}
  body{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .tc-member-report-premium{width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
  .tc-member-report-premium .tc-member-report-document-head{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .tc-member-report-premium .tc-member-report-actions,
  .tc-member-report-premium .tc-member-report-close,
  .tc-member-report-premium .tc-report-mail-demo,
  .tc-member-report-premium .tc-member-report-mailbox,
  .tc-member-report-premium .tc-member-goal-override,
  .tc-member-report-premium .tc-member-report-tips{display:none!important}
  .tc-member-report-premium .tc-member-growth-summary,
  .tc-member-report-premium .tc-member-value-pack,
  .tc-member-report-premium .tc-member-coaching-panel,
  .tc-member-report-premium .tc-member-report-ranking{break-inside:avoid;page-break-inside:avoid}
  .tc-member-report-premium .tc-table-wrap{overflow:visible!important}
  .tc-member-report-premium .tc-table{width:100%!important;min-width:0!important;font-size:10px!important}
  .tc-member-report-premium .tc-table th,.tc-member-report-premium .tc-table td{padding:6px 5px!important}
  .tc-member-report-premium .tc-demo-recent-table{break-after:avoid-page;page-break-after:avoid}
  .tc-member-report-premium .tc-demo-report-footer{break-before:avoid-page;page-break-before:avoid;margin-top:10px!important;padding-top:8px!important}
}

/* ---- tc-nickname-v18638 | assets/css/nickname-v18638.css ---- */
.tc-nickname-check{display:block;margin-top:8px;font-size:.84rem;line-height:1.55;color:#40566c}
.tc-nickname-check.is-ok{color:#256b50}
.tc-nickname-check.is-error{color:#9a3448}
.tc-nickname-check.is-checking{color:#52677d}
.tc-nickname-message{font-weight:700}
.tc-nickname-suggestions{margin-top:8px;padding:9px 10px;border:1px solid #d8e2ec;border-radius:12px;background:#f7fafc;color:#354e67}
.tc-nickname-suggestions small{display:block;margin-bottom:6px;font-weight:700}
.tc-nickname-suggestions>div{display:flex;flex-wrap:wrap;gap:7px}
.tc-nickname-suggestion{appearance:none;border:1px solid #b9cde0;border-radius:999px;background:#fff;color:#123553;padding:6px 11px;font:inherit;font-weight:800;cursor:pointer}
.tc-nickname-suggestion:hover,.tc-nickname-suggestion:focus-visible{border-color:#d2a638;box-shadow:0 0 0 3px rgba(210,166,56,.15);outline:0}
.login .tc-nickname-check{margin:7px 0 15px}
.login .tc-nickname-suggestions>div{gap:5px}

/* ---- Typing Coach Core v1.87.45 ranking readability + compact WPM ---- */
/* Smartphone ranking embed: keep table header readable even when SWELL/site CSS loads later. */
.tc-embedded-flick-ranking .tc-flick-embed-table thead th,
.tc-embedded-flick-ranking .tc-flick-embed-table thead th *{
  color:#fff!important;
  text-shadow:none!important;
}

/* Compact PC ranking now has seven columns: rank / percentile / nickname / Coach Rank / Coach Score / WPM / BEST LESSON. */
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(1){width:7%!important}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(2){width:10%!important}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(3){width:20%!important}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(4){width:18%!important}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(5){width:13%!important}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(6){width:9%!important}
.tc-embedded-coach-ranking .tc-coach-rank-table.is-compact th:nth-child(7){width:23%!important}
.tc-embedded-coach-ranking .tc-ranking-wpm-cell{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  color:#173c5d;
  font-weight:800;
}

@media(max-width:760px){
  /* Keep the compact card balanced after the WPM field is added. */
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(4){
    grid-column:1/-1!important;
    background:linear-gradient(90deg,#f5f8fb,#fff)!important;
    border-color:#dce6ed!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(5),
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(6){
    grid-column:span 3!important;
    min-height:64px!important;
    background:#fff!important;
    border-left:1px solid rgba(17,55,86,.08)!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(5){
    color:#0a4e84!important;
    font-weight:850!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(6){
    color:#173c5d!important;
    font-weight:800!important;
  }
  .tc-embedded-coach-ranking .tc-coach-rank-table.is-compact td:nth-child(7){
    grid-column:1/-1!important;
    background:#f3f8fc!important;
    border-left:3px solid #c99527!important;
  }
}

/* ---- Typing Coach Core v1.87.46 ranking navigation menus ----
 * Ranking is now a navigation category with two explicit destinations:
 * PC typing overall ranking and smartphone flick ranking.
 */
.tc-nav-ranking-group{
  position:relative;
  display:flex;
  align-items:stretch;
  min-width:0;
}
.tc-system-nav .tc-system-nav-ranking-trigger{
  position:relative;
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:0;
  margin:0;
  padding:10px 11px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#f7f8fb;
  font:inherit;
  font-size:14px;
  font-weight:750;
  line-height:1.2;
  white-space:nowrap;
  cursor:pointer;
}
.tc-system-nav .tc-system-nav-ranking-trigger .tc-nav-icon{color:#f1c654}
.tc-system-nav .tc-system-nav-ranking-trigger .tc-nav-chevron{
  display:inline-block;
  margin-left:1px;
  color:#d7e2ed;
  font-size:12px;
  line-height:1;
  transform-origin:center;
  transition:transform .16s ease,color .16s ease;
}
.tc-nav-ranking-group:hover .tc-system-nav-ranking-trigger,
.tc-nav-ranking-group:focus-within .tc-system-nav-ranking-trigger,
.tc-nav-ranking-group.is-open .tc-system-nav-ranking-trigger{
  background:rgba(255,255,255,.08);
}
.tc-nav-ranking-group.is-current .tc-system-nav-ranking-trigger{
  border-color:rgba(232,193,100,.70);
  background:rgba(255,255,255,.10);
  box-shadow:inset 0 0 0 1px rgba(199,154,59,.28);
}
.tc-nav-ranking-group.is-current .tc-system-nav-ranking-trigger::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:4px;
  height:2px;
  border-radius:999px;
  background:#e2b34e;
}
.tc-nav-ranking-group.is-open .tc-nav-chevron,
.tc-nav-ranking-group:focus-within .tc-nav-chevron{transform:rotate(180deg);color:#f1c654}
.tc-system-nav .tc-system-nav-ranking-trigger:focus-visible{
  outline:2px solid rgba(231,199,127,.82);
  outline-offset:2px;
}
.tc-nav-ranking-dropdown{
  position:absolute;
  top:calc(100% + 9px);
  left:50%;
  z-index:10020;
  width:min(390px,calc(100vw - 24px));
  padding:8px;
  border:1px solid rgba(207,164,60,.42);
  border-radius:15px;
  background:#fffdf8;
  box-shadow:0 18px 42px rgba(4,25,50,.20);
  transform:translateX(-50%);
}
.tc-nav-ranking-dropdown[hidden]{display:none!important}
.tc-nav-ranking-dropdown::before{
  content:"";
  position:absolute;
  top:-7px;
  left:50%;
  width:12px;
  height:12px;
  border-top:1px solid rgba(207,164,60,.42);
  border-left:1px solid rgba(207,164,60,.42);
  background:#fffdf8;
  transform:translateX(-50%) rotate(45deg);
}
.tc-system-nav .tc-nav-ranking-option{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:11px;
  width:100%;
  min-height:66px;
  padding:10px 12px;
  border:1px solid transparent!important;
  border-radius:11px;
  background:transparent!important;
  color:#0b3157!important;
  text-align:left;
  text-decoration:none!important;
  box-shadow:none!important;
  box-sizing:border-box;
}
.tc-system-nav .tc-nav-ranking-option::after{display:none!important}
.tc-system-nav .tc-nav-ranking-option:hover,
.tc-system-nav .tc-nav-ranking-option:focus-visible{
  border-color:#ead9ad!important;
  background:#fff7df!important;
  outline:none!important;
}
.tc-system-nav .tc-nav-ranking-option.is-current,
.tc-system-nav .tc-nav-ranking-option[aria-current="page"]{
  border-color:#d6a536!important;
  background:#fff4d5!important;
}
.tc-ranking-option-icon{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:10px;
  background:#0b3157;
  color:#f1c654;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
}
.tc-nav-ranking-option>span:last-child{display:block;min-width:0}
.tc-nav-ranking-option strong{
  display:block;
  color:#0b3157;
  font-size:13px;
  line-height:1.35;
  font-weight:900;
  white-space:normal;
}
.tc-nav-ranking-option small{
  display:block;
  margin-top:3px;
  color:#6d8091;
  font-size:10.5px;
  line-height:1.4;
  font-weight:700;
  white-space:normal;
}

/* Tablet system header still uses the desktop navigation grid. Treat the
   ranking category as one ordinary grid cell rather than increasing width. */
@media (min-width:761px) and (max-width:1100px){
  body.tc-system-body .tc-system-header .tc-nav-ranking-group,
  body.tc-standalone-body .tc-system-header .tc-nav-ranking-group{
    width:100%!important;
    min-width:0!important;
  }
  body.tc-system-body .tc-system-header .tc-system-nav .tc-system-nav-ranking-trigger,
  body.tc-standalone-body .tc-system-header .tc-system-nav .tc-system-nav-ranking-trigger{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    padding:6px 7px!important;
    font-size:11px!important;
    white-space:normal!important;
  }
  .tc-nav-ranking-dropdown{
    left:0;
    width:min(360px,calc(100vw - 30px));
    transform:none;
  }
  .tc-nav-ranking-dropdown::before{left:32px;transform:rotate(45deg)}
}

/* Mobile drawer: ranking becomes one accordion, replacing the former separate
   PC ranking and smartphone ranking top-level entries. */
.tc-mobile-ranking-group{display:block;min-width:0}
.tc-mobile-ranking-toggle{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-height:43px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  margin:0;
  padding:9px 12px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:#f5f8fb;
  text-align:left;
  font:inherit;
  font-size:13px;
  line-height:1.25;
  font-weight:800;
  cursor:pointer;
  box-sizing:border-box;
}
.tc-mobile-ranking-toggle .tc-nav-icon{
  width:22px;
  min-width:22px;
  display:inline-grid;
  place-items:center;
  color:#e5b94e;
  font-size:14px;
}
.tc-mobile-ranking-toggle strong{flex:1;min-width:0}
.tc-mobile-ranking-toggle .tc-nav-chevron{
  flex:0 0 auto;
  color:#d7e2ed;
  font-size:15px;
  transition:transform .16s ease,color .16s ease;
}
.tc-mobile-ranking-toggle:hover,
.tc-mobile-ranking-toggle:focus-visible,
.tc-mobile-ranking-group.is-open>.tc-mobile-ranking-toggle{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.12);
  outline:none;
}
.tc-mobile-ranking-group.is-current>.tc-mobile-ranking-toggle{
  color:#f1cb68;
}
.tc-mobile-ranking-group.is-open>.tc-mobile-ranking-toggle .tc-nav-chevron{transform:rotate(180deg);color:#f1cb68}
.tc-mobile-ranking-submenu{
  display:grid;
  grid-template-columns:1fr;
  gap:4px;
  margin:2px 0 5px 32px;
  padding:5px 0 5px 10px;
  border-left:1px solid rgba(226,181,73,.36);
}
.tc-mobile-ranking-submenu[hidden]{display:none!important}
.tc-mobile-ranking-submenu .tc-mobile-ranking-link{
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:9px!important;
  row-gap:1px!important;
  align-items:center!important;
  min-height:52px!important;
  padding:7px 9px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  background:transparent!important;
  color:#edf4fa!important;
  text-decoration:none!important;
  box-sizing:border-box!important;
}
.tc-mobile-ranking-link>span:first-child{
  grid-column:1;
  grid-row:1 / span 2;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:8px;
  background:rgba(255,255,255,.08);
  color:#f1c85f;
  font-size:9px;
  font-weight:900;
  letter-spacing:.03em;
}
.tc-mobile-ranking-link strong{
  grid-column:2;
  grid-row:1;
  color:inherit;
  font-size:12px;
  line-height:1.3;
  font-weight:900;
}
.tc-mobile-ranking-link small{
  grid-column:2;
  grid-row:2;
  color:#aebfce;
  font-size:9.5px;
  line-height:1.3;
  font-weight:700;
}
.tc-mobile-ranking-submenu .tc-mobile-ranking-link:hover,
.tc-mobile-ranking-submenu .tc-mobile-ranking-link:focus-visible{
  border-color:rgba(255,255,255,.12)!important;
  background:rgba(255,255,255,.07)!important;
  outline:none!important;
}
.tc-mobile-ranking-submenu .tc-mobile-ranking-link.is-current,
.tc-mobile-ranking-submenu .tc-mobile-ranking-link[aria-current="page"]{
  border-color:rgba(226,181,73,.55)!important;
  background:rgba(226,181,73,.12)!important;
  color:#f1cb68!important;
}

/* The mobile accordion only exists inside the drawer, but keep it hidden from
   accidental desktop rendering if a theme overrides drawer display rules. */
@media (min-width:761px){
  .tc-mobile-ranking-group{display:none!important}
}
@media (max-width:760px){
  body.tc-system-body .tc-system-header .tc-mobile-ranking-group,
  body.tc-standalone-body .tc-system-header .tc-mobile-ranking-group{display:block!important}
}


/* ---- Typing Coach Core v1.87.48 — desktop header visual balance ----
 * After removing the always-visible membership badge, the user utility zone
 * became lighter and the primary navigation visually leaned toward the brand.
 * Rebalance only the desktop header: add breathing room after the logo on
 * wide screens, reduce it progressively on narrower screens, and leave the
 * compact mobile header untouched.
 */
@media (min-width:1451px){
  body.tc-system-body .tc-system-header .tc-app-logo,
  body.tc-standalone-body .tc-system-header .tc-app-logo{
    margin-right:clamp(64px,4vw,78px)!important;
  }
  body.tc-system-body .tc-system-header .tc-header-nav-zone,
  body.tc-standalone-body .tc-system-header .tc-header-nav-zone{
    gap:16px!important;
  }
}

@media (min-width:1250px) and (max-width:1450px){
  body.tc-system-body .tc-system-header .tc-app-logo,
  body.tc-standalone-body .tc-system-header .tc-app-logo{
    margin-right:38px!important;
  }
}

@media (min-width:1101px) and (max-width:1249px){
  /* Preserve room for every destination instead of forcing horizontal overflow. */
  body.tc-system-body .tc-system-header .tc-app-logo,
  body.tc-standalone-body .tc-system-header .tc-app-logo{
    margin-right:22px!important;
  }
}

/* The U+2304 glyph has a low visual baseline in several system fonts.
   Pull it into the same optical line as the Ranking label. */
@media (min-width:761px){
  body.tc-system-body .tc-system-header .tc-system-nav-ranking-trigger .tc-nav-chevron,
  body.tc-standalone-body .tc-system-header .tc-system-nav-ranking-trigger .tc-nav-chevron{
    position:relative!important;
    top:-1px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:1em!important;
    transform:translateY(-1px)!important;
  }
  body.tc-system-body .tc-system-header .tc-nav-ranking-group.is-open .tc-nav-chevron,
  body.tc-system-body .tc-system-header .tc-nav-ranking-group:focus-within .tc-nav-chevron,
  body.tc-standalone-body .tc-system-header .tc-nav-ranking-group.is-open .tc-nav-chevron,
  body.tc-standalone-body .tc-system-header .tc-nav-ranking-group:focus-within .tc-nav-chevron{
    transform:translateY(-1px) rotate(180deg)!important;
  }
}

/* ---- Typing Coach Core v1.87.49 | smartphone prompt readability ----
 * Long smartphone display sentences use a stable prompt lane, slightly smaller
 * typography and display-only semantic line breaks. Author-entered line breaks
 * remain authoritative; the reading/input string is never changed here.
 */
.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
  white-space:pre-line!important;
  text-align:center!important;
}

@media (max-width:900px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    box-sizing:border-box!important;
    height:108px!important;
    min-height:108px!important;
    max-height:108px!important;
    margin:0 auto 4px!important;
    padding:6px 10px!important;
    overflow:hidden!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    max-width:100%!important;
    margin:2px 0!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    line-break:strict!important;
    text-wrap:balance!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-short strong{
    font-size:clamp(34px,7.4vw,46px)!important;
    line-height:1.03!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-medium strong{
    font-size:clamp(28px,6.4vw,36px)!important;
    line-height:1.12!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(23px,5.4vw,30px)!important;
    line-height:1.18!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(19px,4.5vw,25px)!important;
    line-height:1.20!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break strong{
    white-space:pre-line!important;
    overflow-wrap:anywhere!important;
  }
  /* The reading label immediately below already explains what to type. On a
     long/semantic display, reclaim this duplicate helper line for the prompt. */
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long>span,
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong>span,
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break>span{
    display:none!important;
  }
}

@media (max-width:430px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:104px!important;
    min-height:104px!important;
    max-height:104px!important;
    padding:5px 8px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-short strong{
    font-size:clamp(32px,9.7vw,42px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-medium strong{
    font-size:clamp(26px,7.7vw,33px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(21px,6.4vw,27px)!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(18px,5.3vw,23px)!important;
  }
}

@media (max-width:360px){
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt,
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:102px!important;
    min-height:102px!important;
    max-height:102px!important;
  }
  .tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(17px,5vw,21px)!important;
  }
}

/* ---- Typing Coach Core v1.87.51 | flick prompt hierarchy + viewport fit ----
 * v1.87.51 correction: the system page class lives on <body> itself.
 * Use the combined body selector so the compact reading / viewport-fit rules
 * actually apply during practice at tablet and smartphone widths.
 * Previous descendant form could never match the standalone system template.
 * --------------------------------------------------------------------------
 * Typing Coach Core v1.87.50 intended hierarchy + viewport fit:
 * The Japanese display sentence is the primary task and must always remain
 * visually larger than the reading/input string. Compact secondary lanes so
 * long prompts do not push NEXT / guide / keypad unnecessarily below view.
 */
@media (max-width:900px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-practice{
    padding-top:7px!important;
    padding-bottom:8px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target-card{
    margin:4px 0 5px!important;
    padding:5px 7px 5px!important;
  }

  /* Primary display lane. Keep even xlong copy comfortably above reading size. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    display:flex!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    height:100px!important;
    min-height:100px!important;
    max-height:100px!important;
    margin:0 auto 3px!important;
    padding:5px 8px!important;
    overflow:hidden!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    color:#0a2d50!important;
    font-weight:900!important;
    letter-spacing:.01em!important;
    line-height:1.16!important;
    white-space:pre-line!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    line-break:strict!important;
    text-align:center!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-short strong{
    font-size:clamp(32px,7.8vw,42px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-medium strong{
    font-size:clamp(27px,6.6vw,34px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(23px,5.7vw,28px)!important;
    line-height:1.18!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(21px,5.1vw,24px)!important;
    line-height:1.17!important;
  }
  /* For multiline copy, spend the limited lane on the sentence itself. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break>small,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break>span,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long>span,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong>span{
    display:none!important;
  }

  /* Reading is supporting information: readable, but always below display size. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-reading-label{
    box-sizing:border-box!important;
    height:12px!important;
    min-height:12px!important;
    line-height:12px!important;
    margin:0 auto!important;
    font-size:8px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
    align-content:center!important;
    box-sizing:border-box!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    margin:0 auto!important;
    padding:0 3px!important;
    font-size:clamp(18px,4.6vw,20px)!important;
    line-height:1.16!important;
    font-weight:800!important;
    letter-spacing:.025em!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-medium{
    font-size:clamp(17.5px,4.35vw,19px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-long{
    font-size:clamp(17px,4.15vw,18.5px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-xlong{
    font-size:clamp(16px,3.95vw,17.5px)!important;
  }

  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-typed{
    height:18px!important;
    min-height:18px!important;
    max-height:18px!important;
    line-height:18px!important;
    margin:0 0 1px!important;
    font-size:10px!important;
  }

  /* Current-action hint: preserve the actionable row, trim redundant vertical space. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-hint{
    box-sizing:border-box!important;
    height:54px!important;
    min-height:54px!important;
    max-height:54px!important;
    margin:1px auto 3px!important;
    padding:4px 5px!important;
    gap:2px!important;
    overflow:hidden!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-hint__row--desc{
    font-size:10px!important;
    line-height:1.25!important;
    max-height:2.5em!important;
  }

  /* NEXT remains visible, but it does not need a large card on a phone. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    display:grid!important;
    grid-template-rows:10px minmax(0,30px)!important;
    align-content:center!important;
    box-sizing:border-box!important;
    height:52px!important;
    min-height:52px!important;
    max-height:52px!important;
    margin:3px auto 0!important;
    padding:5px 8px!important;
    overflow:hidden!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview small{
    margin:0!important;
    font-size:8px!important;
    line-height:10px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
    font-size:clamp(14px,3.8vw,17px)!important;
    line-height:1.18!important;
    -webkit-line-clamp:2!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview>span{
    display:none!important;
  }

  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-guide{
    box-sizing:border-box!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    margin:0 auto 4px!important;
    padding:5px 7px!important;
  }
}

@media (max-width:430px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:98px!important;
    min-height:98px!important;
    max-height:98px!important;
    padding:4px 6px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-short strong{
    font-size:clamp(30px,9vw,38px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-medium strong{
    font-size:clamp(26px,7.2vw,31px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(23px,6.15vw,27px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(21px,5.55vw,23px)!important;
  }
  /* On narrow phones the chips already explain the action; omit duplicated prose. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-hint__row--desc{
    display:none!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-hint{
    height:48px!important;
    min-height:48px!important;
    max-height:48px!important;
  }
}

@media (max-width:700px) and (max-height:760px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-status-row>div,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-status-row>button{
    min-height:38px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-long .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-xlong .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:94px!important;
    min-height:94px!important;
    max-height:94px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    height:48px!important;
    min-height:48px!important;
    max-height:48px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-guide{
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
  }
}

/* ---- Typing Coach Core v1.87.52 | multiline flick layout repair ----
 * Multiline smartphone prompts must never create accidental extra rows,
 * crop the reading, or let NEXT overlap its preview text. The session keeps a
 * stable minimum lane size, while content is allowed to grow rather than clip.
 */
@media (max-width:900px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    height:auto!important;
    max-height:none!important;
    min-height:100px!important;
    overflow:visible!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-4 .tc-flick-display-prompt{
    min-height:112px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:normal!important;
    text-wrap:initial!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    overflow-wrap:normal!important;
    word-break:keep-all!important;
    text-align:center!important;
  }

  /* Reading is secondary. Reserve enough rows for the longest prompt in the
     session, but never crop if browser font metrics need a little more room. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:auto!important;
    max-height:none!important;
    min-height:30px!important;
    padding:2px 4px!important;
    font-size:clamp(14px,3.7vw,16px)!important;
    line-height:1.28!important;
    letter-spacing:.015em!important;
    overflow:visible!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-medium{
    font-size:clamp(15.5px,4vw,17px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-long{
    font-size:clamp(14.5px,3.8vw,16px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-xlong{
    font-size:clamp(13.5px,3.55vw,15px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-1 .tc-flick-target{min-height:28px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-2 .tc-flick-target{min-height:40px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-3 .tc-flick-target{min-height:54px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-4 .tc-flick-target{min-height:68px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-reading-label{
    height:13px!important;
    min-height:13px!important;
    line-height:13px!important;
    font-size:9px!important;
  }

  /* NEXT label and preview occupy separate flex rows with a real gap. This
     prevents the label from sitting on top of a two-line preview. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    box-sizing:border-box!important;
    height:auto!important;
    min-height:60px!important;
    max-height:none!important;
    padding:6px 9px!important;
    overflow:hidden!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview small{
    flex:0 0 auto!important;
    margin:0!important;
    font-size:9px!important;
    line-height:11px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
    display:-webkit-box!important;
    flex:0 1 auto!important;
    width:100%!important;
    margin:0!important;
    font-size:clamp(14px,3.65vw,16px)!important;
    line-height:1.22!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    text-align:center!important;
  }
}

@media (max-width:430px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:auto!important;
    max-height:none!important;
    min-height:98px!important;
    overflow:visible!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-4 .tc-flick-display-prompt{
    min-height:108px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-long strong{
    font-size:clamp(22px,5.9vw,25px)!important;
    line-height:1.18!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.is-display-xlong strong{
    font-size:clamp(20px,5.35vw,23px)!important;
    line-height:1.18!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    min-height:60px!important;
  }
}

@media (max-width:700px) and (max-height:760px){
  /* Short displays may be compacted, but multiline content must remain intact. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    height:auto!important;
    max-height:none!important;
    min-height:96px!important;
    overflow:visible!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-4 .tc-flick-display-prompt{
    min-height:106px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-2 .tc-flick-target{min-height:40px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-3 .tc-flick-target{min-height:52px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-4 .tc-flick-target{min-height:66px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    height:auto!important;
    min-height:58px!important;
    max-height:none!important;
  }
}

/* ---- Typing Coach Core v1.87.53 | three-level flick reading hierarchy ----
 * The sentence the learner is asked to understand is the visual anchor.
 * Practice display is capped at three lines; reading and NEXT are deliberately
 * smaller supporting layers. These rules are placed last to prevent historical
 * responsive overrides from reversing the hierarchy again.
 */
@media (max-width:900px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    height:auto!important;
    max-height:none!important;
    margin:0 auto 5px!important;
    padding:7px 10px!important;
    overflow:visible!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1 .tc-flick-display-prompt{min-height:78px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-2 .tc-flick-display-prompt{min-height:96px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-3 .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-4 .tc-flick-display-prompt{min-height:116px!important}

  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt strong{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    color:#0a2d50!important;
    font-weight:900!important;
    letter-spacing:.005em!important;
    text-align:center!important;
    white-space:normal!important;
    overflow:visible!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"] strong{
    font-size:clamp(31px,7.6vw,39px)!important;
    line-height:1.10!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="2"] strong{
    font-size:clamp(27px,6.3vw,32px)!important;
    line-height:1.16!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="3"] strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="4"] strong{
    font-size:clamp(23.5px,5.55vw,28px)!important;
    line-height:1.19!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    text-align:center!important;
  }
  /* Reading is important but secondary to the displayed sentence. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-reading-label{
    height:16px!important;
    min-height:16px!important;
    line-height:16px!important;
    margin:1px auto 0!important;
    color:#5c7184!important;
    font-size:10px!important;
    font-weight:800!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    align-content:center!important;
    flex-wrap:wrap!important;
    box-sizing:border-box!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    min-height:30px!important;
    margin:0 auto!important;
    padding:2px 5px 3px!important;
    color:#0a2d50!important;
    font-size:clamp(14px,3.65vw,16px)!important;
    line-height:1.38!important;
    font-weight:800!important;
    letter-spacing:.01em!important;
    overflow:visible!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-medium{font-size:clamp(14px,3.55vw,15.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-long{font-size:clamp(13.5px,3.45vw,15px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-xlong{font-size:clamp(13px,3.3vw,14.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target>span{
    font-size:1em!important;
    line-height:inherit!important;
    font-weight:inherit!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-1 .tc-flick-target{min-height:30px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-2 .tc-flick-target{min-height:44px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-3 .tc-flick-target{min-height:60px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-lines-4 .tc-flick-target{min-height:74px!important}

  /* NEXT is a preview, not the current task. Keep it clearly below reading size. */
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview[hidden]{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    box-sizing:border-box!important;
    height:auto!important;
    min-height:58px!important;
    max-height:none!important;
    margin:5px auto 0!important;
    padding:7px 10px!important;
    overflow:hidden!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview small{
    flex:0 0 auto!important;
    margin:0!important;
    color:#8a6418!important;
    font-size:9px!important;
    line-height:11px!important;
    font-weight:900!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{
    display:-webkit-box!important;
    width:100%!important;
    margin:0!important;
    color:#244a68!important;
    font-size:clamp(12.5px,3.25vw,14.5px)!important;
    line-height:1.30!important;
    font-weight:850!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    text-align:center!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview>span{display:none!important}
}

@media (max-width:430px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1 .tc-flick-display-prompt{min-height:76px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-2 .tc-flick-display-prompt{min-height:94px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-3 .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-4 .tc-flick-display-prompt{min-height:112px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"] strong{font-size:clamp(30px,8.6vw,36px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="2"] strong{font-size:clamp(26px,7.2vw,30px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="3"] strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="4"] strong{font-size:clamp(22.5px,6.15vw,26px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{font-size:clamp(13.5px,3.8vw,15.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-long{font-size:clamp(13px,3.6vw,14.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-xlong{font-size:clamp(12.5px,3.45vw,14px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{font-size:clamp(12px,3.35vw,14px)!important}
}

@media (max-width:360px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="3"] strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="4"] strong{font-size:clamp(21px,6vw,24px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target{font-size:clamp(13px,3.8vw,14.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{font-size:12px!important}
}


/* ---- Typing Coach Core v1.87.54 | flick sentence-first readability ----
 * The displayed sentence is the main learning target. Long sentences move to
 * three lines earlier so the font does not need to collapse. Reading and NEXT
 * stay useful but clearly subordinate. This block intentionally comes last.
 */
@media (max-width:900px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt.has-semantic-break{
    padding:10px 10px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1 .tc-flick-display-prompt{min-height:82px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-2 .tc-flick-display-prompt{min-height:104px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-3 .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-4 .tc-flick-display-prompt{min-height:128px!important}

  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"] strong{
    font-size:clamp(34px,8.2vw,42px)!important;line-height:1.10!important;color:#082f55!important
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="2"] strong{
    font-size:clamp(29px,7.0vw,35px)!important;line-height:1.16!important;color:#082f55!important
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="3"] strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="4"] strong{
    font-size:clamp(25px,6.1vw,30px)!important;line-height:1.19!important;color:#082f55!important
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-line{
    font-size:1em!important;line-height:inherit!important;font-weight:900!important;color:inherit!important
  }

  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-reading-label{
    height:15px!important;min-height:15px!important;line-height:15px!important;margin:2px auto 0!important;font-size:9.5px!important
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{
    min-height:28px!important;padding:2px 5px 3px!important;font-size:clamp(13.5px,3.45vw,15.5px)!important;line-height:1.42!important;font-weight:800!important
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-medium{font-size:clamp(13.25px,3.35vw,15px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-long{font-size:clamp(12.75px,3.2vw,14.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-xlong{font-size:clamp(12.25px,3.05vw,14px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target>span{font-size:1em!important;line-height:inherit!important;font-weight:inherit!important}

  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview{min-height:56px!important;padding:7px 10px!important;gap:4px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview small{font-size:8.5px!important;line-height:10px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{font-size:clamp(11.5px,3.0vw,13.5px)!important;line-height:1.32!important;font-weight:800!important}
}

@media (max-width:430px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1 .tc-flick-display-prompt{min-height:80px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-2 .tc-flick-display-prompt{min-height:102px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-3 .tc-flick-display-prompt,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-4 .tc-flick-display-prompt{min-height:126px!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"] strong{font-size:clamp(33px,9.1vw,38px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="2"] strong{font-size:clamp(28px,7.7vw,32px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="3"] strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="4"] strong{font-size:clamp(25px,6.75vw,28px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-long .tc-flick-target,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-reading-xlong .tc-flick-target{font-size:clamp(13px,3.55vw,14.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-long{font-size:clamp(12.5px,3.35vw,14px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-target.is-reading-xlong{font-size:clamp(12px,3.2vw,13.5px)!important}
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-next-preview strong{font-size:clamp(11.5px,3.15vw,13px)!important}
}

/* ---- Typing Coach Core v1.87.55 | one-line prompt emphasis + punctuation key ----
 * One-line words and short phrases should feel like the primary object of
 * attention, not a reduced version of the long-sentence layout. Punctuation
 * shares the existing special key to keep the familiar 3-column keypad.
 */
@media (max-width:900px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-short strong{
    font-size:clamp(48px,12.2vw,60px)!important;
    line-height:1.04!important;
    letter-spacing:.01em!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-medium strong{
    font-size:clamp(40px,10.2vw,50px)!important;
    line-height:1.07!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-long strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-xlong strong{
    font-size:clamp(35px,8.8vw,43px)!important;
    line-height:1.10!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1 .tc-flick-display-prompt{
    min-height:92px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-key.is-modifier span{
    font-size:clamp(9px,2.25vw,11px)!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
  }
}

@media (max-width:430px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-short strong{
    font-size:clamp(46px,12.6vw,54px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-medium strong{
    font-size:clamp(38px,10.5vw,46px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-long strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-xlong strong{
    font-size:clamp(34px,9.2vw,40px)!important;
  }
}

/* ---- Typing Coach Core v1.87.57 | one-line prompt + reading scale ----
 * Short one-line practice items need a little more visual presence than the
 * long-sentence layout. Increase only the one-line display/reading lane while
 * preserving the hierarchy: display > reading > NEXT and the existing 2-3
 * line sentence sizing.
 */
@media (max-width:900px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-short strong{
    font-size:clamp(52px,13.2vw,64px)!important;
    line-height:1.03!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-medium strong{
    font-size:clamp(43px,10.9vw,54px)!important;
    line-height:1.06!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-long strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-xlong strong{
    font-size:clamp(38px,9.4vw,46px)!important;
    line-height:1.08!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1 .tc-flick-display-prompt{
    min-height:96px!important;
  }

  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-reading-label{
    height:17px!important;
    min-height:17px!important;
    line-height:17px!important;
    font-size:10.5px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target{
    min-height:34px!important;
    padding:2px 5px 4px!important;
    font-size:clamp(17px,4.35vw,20px)!important;
    line-height:1.34!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target.is-reading-medium{
    font-size:clamp(16.5px,4.15vw,19px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target.is-reading-long{
    font-size:clamp(16px,4vw,18px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target.is-reading-xlong{
    font-size:clamp(15.5px,3.85vw,17.5px)!important;
  }
}

@media (max-width:430px){
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-short strong{
    font-size:clamp(50px,13.9vw,60px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-medium strong{
    font-size:clamp(41px,11.45vw,49px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-long strong,
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick-display-prompt[data-display-lines="1"].is-display-xlong strong{
    font-size:clamp(36px,9.8vw,43px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1 .tc-flick-display-prompt{
    min-height:94px!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target{
    min-height:33px!important;
    font-size:clamp(16.5px,4.7vw,19px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target.is-reading-medium{
    font-size:clamp(16px,4.5vw,18.5px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target.is-reading-long{
    font-size:clamp(15.5px,4.3vw,17.5px)!important;
  }
  body.tc-flick-practice-active.tc-system-page-typing-coach-flick .tc-flick.is-session-display-lines-1.is-session-reading-lines-1 .tc-flick-target.is-reading-xlong{
    font-size:clamp(15px,4.15vw,17px)!important;
  }
}


/* ---- Typing Coach Core v1.87.59 | familiar punctuation key layout ----
 * Keep the 3-column Japanese kana grid intact: 小゛゜ / わ / punctuation on
 * the bottom row, placing punctuation directly below ら. Backspace moves to a
 * compact guide utility so the practice keypad matches common 12-key muscle
 * memory without adding a fourth main-key column.
 */
.tc-system-page-typing-coach-flick .tc-flick-guide>[data-flick-guide-text]{
  flex:1 1 auto;
  min-width:0;
}
.tc-system-page-typing-coach-flick .tc-flick-guide-actions{
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
}
.tc-system-page-typing-coach-flick .tc-flick-guide-delete{
  display:inline-flex;
  align-items:center;
  gap:3px;
  min-height:28px;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.46);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:inherit;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.tc-system-page-typing-coach-flick .tc-flick-guide-delete>span{font-size:9px}
.tc-system-page-typing-coach-flick .tc-flick-key.is-punctuation strong{
  font-size:clamp(27px,5vw,34px);
  letter-spacing:.02em;
}
.tc-system-page-typing-coach-flick .tc-flick-key.is-punctuation span{
  color:#677f94;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
@media (max-width:560px){
  .tc-system-page-typing-coach-flick .tc-flick-guide-actions{gap:4px}
  .tc-system-page-typing-coach-flick .tc-flick-guide-delete,
  .tc-system-page-typing-coach-flick .tc-flick-guide-help{min-width:30px;padding-inline:6px}
}
@media (max-width:390px){
  .tc-system-page-typing-coach-flick .tc-flick-guide-delete>span,
  .tc-system-page-typing-coach-flick .tc-flick-guide-help>span{display:none}
  .tc-system-page-typing-coach-flick .tc-flick-guide-delete,
  .tc-system-page-typing-coach-flick .tc-flick-guide-help{min-width:28px;padding-inline:6px}
}

/* v1.87.61 — Teams report review before delivery */
html.tc-report-review-open{overflow:hidden}
.tc-report-review-modal[hidden]{display:none!important}
.tc-report-review-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:24px}
.tc-report-review-backdrop{position:absolute;inset:0;background:rgba(8,27,43,.72);backdrop-filter:blur(4px)}
.tc-report-review-dialog{position:relative;z-index:1;width:min(1040px,96vw);max-height:92vh;overflow:auto;box-sizing:border-box;border:1px solid #d6e1e8;border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(5,29,47,.34);padding:24px;color:#173b5a}
.tc-report-review-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid #e1e8ed}
.tc-report-review-head>div>span{display:block;color:#a97711;font-size:.72rem;font-weight:900;letter-spacing:.08em}
.tc-report-review-head h3{margin:5px 0 7px!important;color:#0d3458!important;font-size:clamp(1.3rem,2.4vw,1.75rem)!important;line-height:1.35}
.tc-report-review-head p{margin:0;max-width:760px;color:#62798a;font-size:.86rem;line-height:1.75}
.tc-report-review-x{flex:0 0 auto;width:38px;height:38px;border:1px solid #d5e0e7;border-radius:50%;background:#f7fafc;color:#365b75;font-size:24px;line-height:1;cursor:pointer}
.tc-report-review-summary{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:18px 0 14px;padding:12px 14px;border-radius:12px;background:#f5f8fb;border:1px solid #dce6ed}
.tc-report-review-summary strong{color:#0d3458;font-size:.9rem}.tc-report-review-summary span{color:#5e7587;font-size:.78rem}
.tc-report-review-fields{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.2fr);gap:14px 16px}
.tc-report-review-fields label{display:block}.tc-report-review-fields label>span{display:block;margin-bottom:6px;color:#284c65;font-size:.73rem;font-weight:850}
.tc-report-review-fields label>span em{font-style:normal;font-weight:700;color:#7a8f9e}
.tc-report-review-fields input,.tc-report-review-fields select,.tc-report-review-fields textarea{box-sizing:border-box;width:100%;border:1px solid #b9ccd8;border-radius:10px;background:#fff;color:#173b5a;padding:10px 12px;font:inherit}
.tc-report-review-fields input,.tc-report-review-fields select{min-height:44px}.tc-report-review-fields input[readonly]{background:#f6f8fa;color:#4f6677}
.tc-report-review-fields textarea{min-height:112px;resize:vertical;line-height:1.7}
.tc-report-review-fields small{display:block;margin-top:5px;color:#748997;font-size:.68rem;line-height:1.6}
.tc-report-review-message{grid-column:1/-1}
.tc-report-review-preview-head{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin-top:20px;padding-top:18px;border-top:1px solid #e1e8ed}
.tc-report-review-preview-head strong{color:#0d3458;font-size:.92rem}.tc-report-review-preview-head span{color:#758a99;font-size:.7rem}
.tc-report-review-preview-loading{display:grid;place-items:center;min-height:200px;margin-top:10px;border:1px dashed #cad8e1;border-radius:14px;background:#f8fafb;color:#607789;font-size:.8rem}
.tc-report-review-preview{display:block;width:100%;height:min(520px,48vh);margin-top:10px;border:1px solid #cad8e1;border-radius:14px;background:#f4f7f9}
.tc-report-review-status:not(:empty){margin-top:14px}
.tc-report-review-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid #e1e8ed}
.tc-report-review-cancel{min-height:44px;padding:9px 18px;border:1px solid #b8cad6;border-radius:10px;background:#fff;color:#315b77;font-weight:800;cursor:pointer}
.tc-report-review-actions .tc-report-mail-primary{min-height:44px;padding-inline:22px}
.tc-report-review-dialog button:disabled,.tc-report-review-dialog select:disabled,.tc-report-review-dialog textarea:disabled{opacity:.62;cursor:not-allowed}
.tc-report-mail-demo .tc-demo-mail-message{grid-column:1/-1}.tc-report-mail-demo textarea{box-sizing:border-box;width:100%;min-height:74px;padding:9px 10px;border:1px solid #b6cad8;border-radius:8px;background:#fff;color:#173b5a;resize:vertical;line-height:1.6}
@media(max-width:760px){
  .tc-report-review-modal{padding:10px}.tc-report-review-dialog{width:100%;max-height:96vh;padding:18px 14px;border-radius:16px}
  .tc-report-review-head{gap:10px}.tc-report-review-head h3{font-size:1.28rem!important}.tc-report-review-head p{font-size:.78rem}
  .tc-report-review-fields{grid-template-columns:1fr}.tc-report-review-message{grid-column:auto}
  .tc-report-review-preview-head{display:grid;gap:4px}.tc-report-review-preview{height:44vh}
  .tc-report-review-actions{display:grid;grid-template-columns:1fr}.tc-report-review-actions button{width:100%}.tc-report-review-actions .tc-report-mail-primary{grid-row:1}
}

/* v1.87.62 Teams annual-plan lifecycle */
.tc-group-contract-card{margin:18px 0;padding:20px;border:1px solid var(--tc-line,#d9e2ea);border-radius:18px;background:linear-gradient(145deg,#fff,#fbfaf4);box-shadow:0 10px 28px rgba(20,48,74,.06)}
.tc-group-contract-card.is-stopping{background:linear-gradient(145deg,#fff,#f8fafc)}
.tc-group-contract-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.tc-group-contract-head h5{margin:3px 0 0;font-size:1.12rem}.tc-group-contract-status{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap;background:var(--tc-green-soft,#eaf7ef);color:var(--tc-green,#28794a)}.tc-group-contract-status.is-stopping,.tc-group-contract-status.is-legacy{background:var(--tc-gold-soft,#f7f0d7);color:var(--tc-ink,#1f3547)}
.tc-group-contract-price{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:14px;border-radius:14px;background:var(--tc-soft,#f5f8fa)}.tc-group-contract-price>div{display:grid;gap:2px}.tc-group-contract-price span{font-size:.75rem;color:var(--tc-muted,#657789)}.tc-group-contract-price strong{font-size:1.45rem;line-height:1.1;color:var(--tc-navy,#153a59)}.tc-group-contract-price p{margin:0;text-align:right;font-size:.83rem}.tc-group-contract-price b{font-size:1rem}
.tc-group-contract-facts{display:grid;gap:0;margin:0 0 14px}.tc-group-contract-facts>div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:9px 2px;border-bottom:1px solid var(--tc-line,#d9e2ea)}.tc-group-contract-facts dt{font-size:.78rem;color:var(--tc-muted,#657789)}.tc-group-contract-facts dd{margin:0;font-size:.86rem;font-weight:700;color:var(--tc-ink,#1f3547)}.tc-group-contract-note{margin:12px 0;font-size:.86rem;line-height:1.75}.tc-group-renewal-form{margin-top:14px}.tc-group-contract-foot{display:block;margin-top:12px;color:var(--tc-muted,#657789);line-height:1.6}.tc-group-contract-legacy-date{font-weight:700}.tc-demo-contract-card button[disabled]{opacity:.72;cursor:not-allowed}
.tc-gsales-price.is-annual{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px}.tc-gsales-price.is-annual small{width:100%;font-size:.78rem;font-weight:800;letter-spacing:.04em}.tc-gsales-price.is-annual b{font-size:clamp(2rem,5vw,3.3rem)}.tc-gsales-annual-total{margin:-4px 0 16px;font-size:.9rem;font-weight:700}.tc-gsales-annual-total strong{font-size:1.06rem}
@media(max-width:767px){.tc-group-contract-card{padding:16px}.tc-group-contract-head{display:grid}.tc-group-contract-status{justify-self:start}.tc-group-contract-price{display:grid;gap:8px}.tc-group-contract-price p{text-align:left}.tc-group-contract-facts>div{grid-template-columns:1fr;gap:3px}.tc-group-renewal-form button{width:100%}}


/* ---- v1.87.63 | Teams visual fallback + ad-gap hardening ---- */
/*
 * The Teams WHY section historically switched its inline illustration off and
 * relied on a CSS background photo. If that photo is unavailable for any
 * reason, the reserved visual height looked like a large advertisement gap.
 * Keep the inline SVG as a guaranteed fallback and layer the photo above it.
 */
.tc-gsales.tc-gsales-v18574 .tc-gsales-brand-art{
  position:relative;
  display:block;
  min-height:330px;
  overflow:hidden;
  isolation:isolate;
  border-radius:16px;
  background:linear-gradient(135deg,#eaf2f8 0%,#ffffff 58%,#fff7e8 100%);
}
.tc-gsales.tc-gsales-v18574 .tc-gsales-brand-art>.tc-gsales-learning-scene{
  display:block!important;
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  min-height:0!important;
}
.tc-gsales.tc-gsales-v18574 .tc-gsales-brand-art:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image:url('../images/group-sales-v1857/group-brand-students.jpg');
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}
.tc-gsales.tc-gsales-v18574 .tc-gsales-brand-art>span{
  z-index:2;
}

/* Empty/hidden ad containers must never reserve layout space. */
.tc-page-ad-wrap:empty,
.tc-page-ad-wrap[hidden],
[data-tc-ad-wrap][hidden]{
  display:none!important;
  min-height:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}

@media(max-width:700px){
  .tc-gsales.tc-gsales-v18574 .tc-gsales-brand-art{
    min-height:260px;
    border-radius:14px;
  }
}

/* ---- v1.87.64 | Teams WHY visual: real image + compact mobile layout ---- */
/*
 * Use a real IMG element instead of depending on a CSS background/pseudo-element.
 * This keeps the visual visible even when stylesheet image resolution is affected
 * by cache/optimization layers, and prevents a reserved blank block on mobile.
 */
.tc-gsales.tc-gsales-v18575 .tc-gsales-brand-art{
  position:relative;
  display:block;
  min-height:390px;
  overflow:hidden;
  isolation:isolate;
  border-radius:16px;
  background:linear-gradient(135deg,#eaf2f8 0%,#ffffff 58%,#fff7e8 100%);
}
.tc-gsales.tc-gsales-v18575 .tc-gsales-brand-art:after{
  content:none!important;
  display:none!important;
  background:none!important;
}
.tc-gsales.tc-gsales-v18575 .tc-gsales-brand-art>.tc-gsales-learning-scene{
  display:block!important;
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  min-height:0!important;
  opacity:1!important;
  visibility:visible!important;
}
.tc-gsales.tc-gsales-v18575 .tc-gsales-brand-photo{
  display:block!important;
  position:absolute;
  inset:0;
  z-index:1;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  margin:0!important;
  border:0!important;
  object-fit:cover;
  object-position:center 28%;
  opacity:1!important;
  visibility:visible!important;
}
.tc-gsales.tc-gsales-v18575 .tc-gsales-brand-art>span{z-index:2}

@media(max-width:1100px){
  .tc-gsales.tc-gsales-v18575 .tc-gsales-brand-art{
    width:min(100%,620px);
    min-height:300px;
    margin-inline:auto;
  }
}
@media(max-width:700px){
  .tc-gsales.tc-gsales-v18575 .tc-gsales-brand{
    padding-top:42px;
  }
  /* On mobile the WHY layout is already a one-column grid.
   * Keep a single, deliberate gap between the photo and copy instead of
   * stacking the grid gap and an extra bottom margin on the photo. */
  .tc-gsales.tc-gsales-v18575 .tc-gsales-brand-layout{
    row-gap:26px;
  }
  .tc-gsales.tc-gsales-v18575 .tc-gsales-brand-art{
    width:100%;
    min-height:190px;
    margin:0 auto;
    border-radius:14px;
  }
  .tc-gsales.tc-gsales-v18575 .tc-gsales-brand-photo{
    object-position:center 24%;
  }
}

/* ---- v1.87.65 | Teams WHY mobile vertical rhythm ---- */
/* The effective mobile spacing between the WHY photo and copy is intentionally
 * controlled by the grid row-gap above; no additional photo bottom margin. */

/* ---- v1.87.66 | Teams WHY centered story layout ---- */
/* Desktop: heading -> centered visual -> 3x2 benefit cards.
 * This gives the copy a full reading width instead of compressing six cards
 * into the right side of a two-column composition. */
.tc-gsales.tc-gsales-v18576 .tc-gsales-brand-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  width:min(100%,1080px);
  max-width:1080px;
  margin-inline:auto;
  gap:0;
  align-items:start;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-brand-copy{
  width:min(100%,860px);
  margin:0 auto 32px;
  text-align:center;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-brand-copy>.tc-gsales-heading.is-brand-promise{
  width:100%;
  max-width:860px;
  margin:0 auto;
  text-align:center;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-brand-copy>.tc-gsales-heading.is-brand-promise p{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-brand-art{
  width:min(100%,680px);
  height:340px;
  min-height:340px;
  margin:0 auto 38px;
  border-radius:20px;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-brand-photo{
  object-position:center 24%;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid{
  width:100%;
  max-width:1060px;
  margin:0 auto;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid article{
  min-width:0;
  min-height:0;
  padding:22px 20px 22px 64px;
  border-radius:16px;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid article>div{
  left:18px;
  top:22px;
  width:34px;
  height:34px;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid h3{
  margin:0 0 8px;
  font-size:15.5px;
  line-height:1.55;
}
.tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid p{
  font-size:13.2px;
  line-height:1.78;
}

@media(max-width:900px){
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand-copy{
    width:min(100%,760px);
    margin-bottom:28px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand-art{
    width:min(100%,640px);
    height:300px;
    min-height:300px;
    margin-bottom:32px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid{
    width:min(100%,760px);
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
  }
}

@media(max-width:700px){
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand{
    padding-top:46px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand-layout{
    row-gap:0;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand-copy{
    margin-bottom:22px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand-copy>.tc-gsales-heading.is-brand-promise{
    text-align:center;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand-art{
    width:100%;
    height:210px;
    min-height:210px;
    margin:0 auto 26px;
    border-radius:14px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-brand-photo{
    object-position:center 24%;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid{
    width:100%;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid article{
    padding:18px 17px 18px 58px;
    border-radius:14px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid article>div{
    left:15px;
    top:18px;
    width:32px;
    height:32px;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid h3{
    font-size:15px;
    line-height:1.5;
  }
  .tc-gsales.tc-gsales-v18576 .tc-gsales-feature-grid p{
    font-size:13.5px;
    line-height:1.76;
  }
}

/* ---- Typing Coach v1.87.99: minimal registration with generated nickname ---- */
.tc-register-panel .tc-register-section--account{margin-bottom:16px;}
.tc-register-panel .tc-register-section--account .tc-register-section-head{margin-bottom:18px;}
.tc-register-panel .tc-register-section--account .tc-member-grid--account{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 22px;align-items:start;
}
.tc-register-panel .tc-register-section--account .tc-member-grid--account>label{
  min-width:0;max-width:none;margin:0;
}
.tc-register-panel .tc-register-auto-nickname{
  margin:18px 0 0;padding:12px 15px;border-radius:10px;background:#eef6fd;
  color:#234865;font-size:14px;line-height:1.75;
}
@media(max-width:700px){
  .tc-register-panel .tc-register-section--account .tc-member-grid--account{
    grid-template-columns:minmax(0,1fr);gap:16px;
  }
  .tc-register-panel .tc-register-auto-nickname{font-size:13.5px;margin-top:16px;padding:12px 13px;}
}


/* Typing Coach shared heading typography v1.87.100
 * Same visual language as the WordPress pages: Japanese Mincho for headings,
 * Gothic for body, labels, forms and typing/measurement interfaces.
 * Keep this rule within Core components. Do not change SWELL's own headings.
 * Never change input glyphs, romanization, WPM/accuracy figures or keyboard.
 */
:root {
  --tc-font-heading: "Yu Mincho", YuMincho, "Hiragino Mincho ProN",
    "Hiragino Mincho Pro", "Noto Serif JP", "Noto Serif CJK JP",
    "MS PMincho", serif;
}
:where(
  .tc-home,
  .tc-gfaq,
  .tc-panel,
  .tc-shell,
  .tc-growth-report,
  .tc-growth-report-page,
  .tc-flick,
  .tc-features,
  .tc-features-page,
  .tc-discovery,
  .tc-gsales-v1856,
  .tc-gsales-v1857,
  .tc-group-demo,
  .tc-demo,
  .tc-group-management,
  .tc-ranking,
  .tc-lesson-discovery,
  .tc-measurement
) :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--tc-font-heading) !important;
  font-weight: 700 !important;
}
/* Dedicated titles (not semantic heading tags) shown above Core content. */
:where(.tc-home, .tc-gfaq, .tc-panel, .tc-shell)
  :is(.tc-section-title, .tc-panel-title) {
  font-family: var(--tc-font-heading) !important;
  font-weight: 700 !important;
}

/* v1.87.101 — two shortcode roots omitted by the original shared typography
 * coverage. Both are rendered independently from .tc-panel / .tc-shell:
 *   [typing_coach_lessons] -> .tc-discovery
 *   features shortcode   -> .tc-features-page
 * Keep title typography only, never affect explanatory text or training UI.
 * Specific selectors also survive SWELL theme heading font declarations. */
.tc-discovery .tc-discovery-hero > #tc-discovery-title,
.tc-features-page .tc-features-hero-copy > h1 {
  font-family: var(--tc-font-heading) !important;
}

/* Features HERO: semantic breaks when the Mincho heading needs two lines.
 * Keep the phrase intact on small displays instead of orphaning "く、". */
.tc-features-page .tc-features-hero-copy .tc-title-row-part {
  display: inline-block;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .tc-features-page .tc-features-hero-copy .tc-title-row-part {
    display: block;
  }
}

/* Teams pricing v1.87.103: compact comparison, readable on desktop and mobile. */
.tc-gsales .tc-gsales-price-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.4rem auto;max-width:960px}.tc-gsales .tc-gsales-price-row{display:flex;flex-direction:column;gap:.55rem;padding:1.25rem 1.45rem;border-radius:18px;border:1px solid rgba(176,142,71,.36);background:#f9f7f1;min-width:0}.tc-gsales .tc-gsales-price-row>strong{font-family:serif;color:#17334d;font-size:1.2rem}.tc-gsales .tc-gsales-price-row>span{font-size:.95rem;line-height:1.7;color:#273c4c}.tc-gsales .tc-gsales-price-row>span b{font-size:1.12rem;color:#112d48;white-space:nowrap}.tc-gsales .tc-teams-price-options{border:1px solid rgba(176,142,71,.36);border-radius:12px;padding:1rem;margin:.7rem 0;background:#faf9f4}.tc-gsales .tc-teams-price-options p{margin:.35rem 0;line-height:1.8}.tc-gsales .tc-teams-price-options p strong{display:block;color:#18364f}.tc-gsales .tc-teams-price-options p span{display:inline-block;margin-right:1rem;font-size:.92rem;color:#374b5c}@media(max-width:700px){.tc-gsales .tc-gsales-price-compare{grid-template-columns:minmax(0,1fr);gap:.8rem}.tc-gsales .tc-gsales-price-row{padding:1rem 1.1rem}.tc-gsales .tc-teams-price-options p span{display:block;margin-right:0}}

/* v1.87.113: password recovery support information */
.tc-auth-help-note{margin:18px 0 0;color:#52677b;font-size:.8rem;line-height:1.75}.tc-auth-help-note a{color:#28557a;font-weight:800;text-decoration:underline;text-underline-offset:3px}


/* v1.87.124 — public page headings omitted from v1.87.100 typography.
 * Scope: Typing Coach's own roots only. Leave general WordPress/SWELL
 * headings and Gothic body/form/typing/metric text untouched. */
:where(
  .tc-terms,
  .tc-gsales,
  .tc-auth-shell,
  .tc-registration,
  .tc-register-panel,
  .tc-account,
  .tc-member-profile
) :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--tc-font-heading) !important;
}
/* Explicit shortcode IDs withstand SWELL's more specific heading selectors. */
:is(#typing-coach-terms, #typing-coach-privacy, #typing-coach-commerce).tc-terms
  :is(h1, h2, h3, h4, h5, h6),
.tc-terms :is(.tc-terms-important > strong, .tc-terms-toc > strong),
.tc-ranking .tc-embedded-ranking-title[role="heading"] {
  font-family: var(--tc-font-heading) !important;
}


/* ---- Typing Coach Core v1.87.131 | result PC natural single-line layout ----
 * Historic 31ch/44ch/66ch caps suited narrow reports, but caused artificial
 * 2-line fragments inside wide result panels. Override only the five confirmed
 * trouble spots; never alter other pages, scoring, cards or mobile rules.
 * Longer dynamically generated sentences can still wrap at a meaningful point.
 */
@media (min-width:961px){
  body.tc-stage-result .tc-micro-progress-head p{
    max-width:none!important;
    width:auto;
  }
  body.tc-stage-result .tc-content-coaching-head h3[data-content-coach-heading]{
    max-width:none!important;
    width:auto;
  }
  body.tc-stage-result .tc-content-coach-question-box > strong[data-content-coach-question]{
    max-width:none!important;
    width:auto;
  }
}
@media (min-width:1280px){
  /* This heading always fits on a wide PC; the theme badge remains separate. */
  body.tc-stage-result .tc-content-coaching-head h3[data-content-coach-heading]{
    white-space:nowrap;
    text-wrap:nowrap;
  }
}


/* ---- Typing Coach Core v1.87.132 | result "Today's takeaway" title ----
 * v1.87.131 fixed five other copy blocks but omitted this title. On desktop,
 * the old 31ch title cap combined with the adjacent next-practice card could
 * split a Japanese word in mid-phrase. Give the summary text its own available
 * width and place the next-step card below, aligned to the right. Keep natural
 * wrapping when copy or viewport changes; never force nowrap or clip content.
 * Below 961px leave the existing responsive/mobile rules intact.
 */
@media (min-width:961px){
  body.tc-stage-result .tc-coach-summary{
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start;
  }
  body.tc-stage-result .tc-coach-summary-main{
    min-width:0;
  }
  body.tc-stage-result .tc-coach-summary-title{
    max-width:none!important;
    width:auto;
    line-break:strict;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:pretty!important;
  }
  body.tc-stage-result .tc-coach-summary-next{
    grid-column:2;
    justify-self:end;
    width:min(100%,380px);
  }
}

/* v1.87.158 - source lesson for the highest Coach Rank WPM */
.tc-ranking-wpm-cell .tc-ranking-wpm-lesson{display:block;margin-top:4px;max-width:175px;font-size:.72rem;line-height:1.45;font-weight:600;white-space:normal;overflow-wrap:anywhere;color:#64748b}
.tc-ranking-wpm-lesson a{color:#31577b;text-decoration:underline;text-underline-offset:2px}
.tc-ranking-wpm-lesson a:hover{color:#9a7014}
.tc-embedded-coach-ranking .tc-ranking-wpm-lesson{max-width:135px;font-size:.67rem}
@media(max-width:767px){.tc-ranking-wpm-cell .tc-ranking-wpm-lesson{max-width:none;font-size:.76rem;line-height:1.45}}

/* v1.87.159: scoped group WPM lesson identifier; preserve readable wrapping in narrow tables. */
.tc-group-coach-ranking-table .tc-group-highest-wpm{display:block;max-width:168px;margin-top:4px;font-size:.73rem;line-height:1.55;white-space:normal;overflow-wrap:anywhere;color:#5d7183}
.tc-group-coach-ranking-table .tc-group-highest-wpm a{color:#1b5380;text-decoration:underline;text-underline-offset:2px}
.tc-flick-highest-speed{display:block;max-width:180px;margin-top:3px;font-size:.69rem;line-height:1.5;white-space:normal;overflow-wrap:anywhere;color:#5d7183}
