/* HARU / Edition 06 — Editorial Learning Studio
   Impeccable: spatial hierarchy, clarity, states, adaptability.
   Taste Skill: app-first structure, quiet chrome, data-colour discipline.
   Original implementation; no upstream components or artwork copied.
*/
:root{
  --haru-bg:#f7f8f5;--haru-paper:#ffffff;--haru-ink:#1f292a;--haru-ink-soft:#4e6162;
  --haru-muted:#687879;--haru-line:#e5e9e4;--haru-accent:#496d61;--haru-accent-dark:#213f38;
  --haru-accent-pale:#e6efe8;--haru-yellow:#e7c68a;--haru-violet:#585bc5;
  --haru-violet-pale:#edecfd;--haru-radius:20px;--haru-focus:#b9a2ff;
  --bg:var(--haru-bg);--paper:var(--haru-paper);--ink:var(--haru-ink);
  --muted:var(--haru-muted);--line:var(--haru-line);--violet:var(--haru-violet);
  --violet-dark:#3e429a;--lavender:var(--haru-violet-pale);--lavender-2:#dfe1f5;
  --rose:#f7ebe0;--green:var(--haru-accent);--shadow:none;--r:20px;
}
html{scroll-behavior:smooth;scroll-padding-top:40px;}
body{background:var(--haru-bg);color:var(--haru-ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;letter-spacing:0;line-height:1.55;font-size:15px;text-rendering:optimizeLegibility}
*,*::before,*::after{box-sizing:border-box}
button,input,select,textarea{font:inherit}button{transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s cubic-bezier(.2,.7,.2,1),box-shadow .15s ease}
button:hover{filter:none}button:active{transform:scale(.987)!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--haru-focus)!important;outline-offset:3px!important}
:where(.workspace,.panel,.hero,.flash-card,.book-content,.word-card,.lesson-card,.settings-card){min-width:0}
:where(.field-input,.field-select,.search-input,input,select,textarea){accent-color:var(--haru-accent)}
.skip-link{position:fixed;z-index:3000;left:18px;top:-80px;background:var(--haru-ink);color:#fff;padding:10px 16px;border-radius:8px;text-decoration:none}
.skip-link:focus{top:18px}
.shell{max-width:none;margin:0;grid-template-columns:258px minmax(0,1fr);min-height:100vh}
.sidebar{background:#fbfcf9;border-right:1px solid #dce4dc;padding:35px 17px 26px;backdrop-filter:none;-webkit-backdrop-filter:none;position:sticky;top:0;min-height:100vh;align-self:start}
.brand{padding:2px 15px 46px;gap:12px}.brand-mark{border-radius:15px;width:42px;height:42px;background:#233f38;box-shadow:none;color:#e7cf9b;font-size:25px}.brand-name{color:var(--haru-ink);font-weight:850;letter-spacing:-1px;font-size:21px}.brand-note{color:#8c9690;letter-spacing:2.1px;font-size:9px;margin-top:3px}
.menu-heading{font-size:10px;letter-spacing:1.45px;color:#87928c;margin:0 13px 13px}
.nav{display:grid;gap:5px}.nav-button{display:flex;align-items:center;gap:14px;border-radius:12px;color:#4f6460;background:transparent;min-height:48px;padding:11px 14px;font-size:14px;font-weight:620}
.nav-button:hover{background:#eff3ef;color:#233c35}.nav-button.active{background:#e6efea;color:#274e42;box-shadow:none;font-weight:800}.nav-button.active::after{content:"";margin-left:auto;height:6px;width:6px;border-radius:50%;background:#407d64}
.nav-icon{display:inline-grid;place-items:center;flex:none;width:22px;height:22px;font-size:0}.ui-icon{height:21px;width:21px;display:block}.nav-label{white-space:nowrap}
.sidebar-bottom{margin-top:auto}.mini-profile{background:#f0f3ed;border:1px solid #e2e8df;border-radius:15px;padding:15px}.avatar{background:#dce9de;color:#284d40;border-radius:12px;font-size:17px}.profile-desc{color:#7d8d83}.sidebar-foot{color:#9eaaa2;letter-spacing:.2px}
.workspace{padding:33px clamp(28px,4.2vw,72px) 90px;min-width:0}.page-wrap{max-width:1240px;margin:0 auto}.topbar{padding-bottom:24px;margin-bottom:29px;border-bottom:1px solid #e2e7df;position:relative;min-height:51px}.breadcrumbs{font-size:13px;gap:11px;color:#7f8c83}.breadcrumbs b{color:#314940;font-weight:730}.date-pill{background:transparent;border:0;box-shadow:none;font-size:12px;color:#718278;padding:8px}.top-avatar{background:#e2eee3;border:0;box-shadow:none;border-radius:12px;color:#2c5747;min-width:36px;min-height:36px;display:grid;place-items:center}
.welcome-v4{padding:7px 0 8px}.welcome-label,.page-kicker,.small-upper{font-size:11px;color:#567565;letter-spacing:1.7px;font-weight:800;text-transform:uppercase}
.welcome-v4 h1{font-size:clamp(31px,3.5vw,49px);letter-spacing:-1.8px;line-height:1.24;font-weight:800;margin:13px 0 12px}.welcome-dot{color:#dba96b}.welcome-v4 p{font-size:14px;color:#6d7b78;letter-spacing:0}.only-mobile{display:none}
.home-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(262px,.8fr);gap:31px;margin-top:26px}.main-stack,.aside-stack{gap:24px}
/* Main lesson ticket — product-owned visual rather than generic card stack */
.hero-v4.hero-v6{min-height:310px;background:#243f39;border:1px solid #1c3630;border-radius:24px;box-shadow:none;isolation:isolate;position:relative;overflow:hidden;display:flex;align-items:stretch;color:#fff}
.hero-v6 .hero-content{max-width:none;width:100%;padding:29px 36px 31px;position:relative;z-index:2}
.hero-v6 .hero-kicker{display:flex;align-items:center;gap:20px;margin-bottom:24px;color:#c7dbcb;letter-spacing:1.5px;font-size:10px;font-weight:850}
.hero-v6 .hero-time{letter-spacing:0;font-weight:600;color:#b0c8b9;border-left:1px solid #718f80;padding-left:16px}
.hero-v6 h2{font-size:clamp(29px,3.2vw,40px);line-height:1.25;margin:0 0 9px;letter-spacing:-1.4px;font-weight:820;max-width:480px;color:#fff}
.hero-v6 p{font-size:13px;color:#c8ddd0;margin:0 0 25px;max-width:420px}
.hero-v6 .hero-progress{background:#426559;height:5px;width:min(75%,360px);margin-bottom:14px;overflow:hidden}
.hero-v6 .hero-progress-fill{background:#eed4a6;height:100%}
.hero-v6 .hero-bottom{display:flex;align-items:center;gap:20px;justify-content:space-between;max-width:430px}
.hero-v6 small{color:#b3cabe;font-size:12px;margin:0;white-space:normal}
.hero-v6 .hero-button{border-radius:11px!important;min-width:122px!important;width:auto!important;min-height:43px!important;padding:10px 17px!important;box-shadow:none!important;background:#e8c793;color:#273e33;font-weight:850!important;white-space:nowrap}
.hero-v6 .hero-button:hover{background:#f0d5a6;box-shadow:none!important;transform:translateY(-1px)!important}
.hero-v6 .hero-art{position:absolute;inset:0 0 0 auto;width:35%;max-width:250px;height:100%;right:0;top:0;display:block;opacity:1;border-left:1px solid #ffffff21;pointer-events:none;background:#27473e}
.hero-v6 .hero-art::before,.hero-v6 .hero-art::after{content:"";position:absolute;height:1px;left:0;right:0;background:#fff2;top:34%}.hero-v6 .hero-art::after{top:68%}
.hero-v6 .hero-hangul{font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-weight:720;font-size:clamp(98px,11vw,148px);position:absolute;top:76px;right:-11px;color:#eccd95;opacity:.95;line-height:1;transform:rotate(-7deg)}
.hero-v6 .hero-gridline{position:absolute;inset:16px;border:1px solid #e3dfae2d;border-radius:3px}
.hero-v6 .hero-vertical-label{position:absolute;writing-mode:vertical-rl;right:15px;bottom:18px;font-size:8px;font-weight:800;color:#b7caba;letter-spacing:2px}
.hero-v6 .orb,.hero-v6 .hero-spark{display:none}
/* daily priorities */
.v4-section-title{margin:8px 0 -1px;padding:0;gap:12px}.v4-section-title h3,.section-heading h3{font-size:20px;font-weight:760;letter-spacing:-.5px;color:#22342c}.v4-section-title span{font-size:12px;color:#718078;font-weight:550}
.v4-task-grid{gap:15px}.v4-task{min-height:150px;background:#fff;border:1px solid #e6eae5;border-radius:18px;padding:19px 20px;box-shadow:none;align-items:flex-start}
.v4-task:hover{border-color:#b9d0c2;box-shadow:0 5px 18px #18332809;transform:translateY(-2px)}.v4-task-icon{background:none!important;border-radius:0;width:30px;height:28px;font-size:24px;margin:0 0 12px;color:#44765e!important}.v4-task-icon.peach{color:#bb8651!important}.v4-task strong{font-size:16px;color:#263b31;font-weight:780}.v4-task small{font-size:12px;color:#6f8075}.v4-task-progress{background:#e7eee6}.v4-task-progress em{background:#528a70}.v4-task-count{background:#f5ede0;color:#986b3d;border-radius:7px;font-size:11px;padding:4px 8px}
.v5-daily-phrase{background:#fff;border:1px solid #e0e8dc;border-radius:19px;box-shadow:none;padding:18px 19px;min-height:94px;gap:16px}
.v5-daily-phrase:hover{border-color:#b8d2c2;background:#fdfefd}.v5-daily-symbol{background:#e8eee8;color:#2f5344;font-size:15px;border-radius:11px;flex-basis:53px;width:53px;height:53px}
.v5-daily-phrase b{font-size:14px;font-weight:800;color:#273d33}.v5-daily-phrase small{font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:#2b4338;font-size:15px!important;line-height:1.5}.v5-daily-phrase em{color:#819188;font-size:12px}.v5-daily-play{background:#28483b;color:#fff;height:39px;width:39px;font-size:13px}
.book-promo.v4-promo{background:#eff4ef;border:1px solid #dce7db;border-radius:17px;box-shadow:none;min-height:101px;padding:18px}.v4-promo .book-promo-icon{background:#dfece0;color:#315e48;border-radius:13px;flex:none;width:54px;height:54px}.v4-promo strong{font-size:15px;color:#304b3c}.v4-promo small{color:#728d77;font-size:12px}.v4-chevron{color:#5a806a}
.panel,.stat-card,.lesson-card,.course-tile,.word-card,.book-word,.scan-card{background:#fff;border:1px solid #e4e9e4;border-radius:19px;box-shadow:none}.panel{padding:24px}.daily-panel,.v4-metrics,.v4-chart{border-radius:19px}.section-heading{margin-bottom:20px}.link-btn{color:#426c58;font-weight:720}
.lesson-card{border-radius:16px;padding:21px;min-height:169px}.lesson-card:hover,.word-card:hover{border-color:#aecbb8;box-shadow:0 5px 18px #213f2e0a}.lesson-num{color:#72857b;font-size:10px;letter-spacing:1.1px}.lesson-symbol{background:#eef2e8;color:#3b5e49;box-shadow:none;border-radius:12px;width:45px;height:45px}.lesson-title{font-size:15px;font-weight:780}.lesson-desc{font-size:12px}.progress-track{height:5px;background:#e3ebe3}.progress-fill{background:#49816a}.lesson-bottom{font-size:11px}
.btn{font-weight:730;letter-spacing:0;border-radius:11px;padding:12px 19px;min-height:46px;box-shadow:none}.btn-primary{background:#2d5848;color:#fff;border-color:#2d5848;box-shadow:none}.btn-primary:hover{background:#234839;box-shadow:none;transform:translateY(-1px)}.btn-ghost{background:#eaf0e9;color:#315a44}.btn-outline{background:#fff;border:1px solid #dce5db;color:#375747}.btn-white{background:#fff;color:#2e5848}.btn-sm{min-height:40px}
.circle-progress{background:conic-gradient(#3d775d var(--pct),#e7efe5 0);box-shadow:none}.circle-progress::before{background:#fff}.circle-value{font-size:40px;color:#1e3e31}.daily-top .flower{color:#6b9677}.small-upper{font-size:10px;color:#6d8a74}.center-note{color:#718376;font-size:12px}.v4-metrics .v4-metric-row{border-color:#eaf0e9}.v4-metric-row b{color:#2b4938;font-weight:770}.v4-chart{margin:0}.weekly-chart .week-bar{background:#759b80}
.last-study{background:#f3f6f0;border-color:#e1e7dd;color:#355b45;border-radius:15px}.last-study strong{color:#2d533e}.last-study small{color:#72877a}
.page-kicker{color:#5a806c;font-size:11px;letter-spacing:1.8px}.page-title{font-size:clamp(27px,3vw,40px);color:#233b2e;letter-spacing:-1.25px;font-weight:810}.page-subtitle{color:#6f7f76;font-size:14px;line-height:1.8;max-width:730px}.course-grid{gap:16px}.course-tile{border-radius:17px}.chip,.small-tag{background:#eaf0eb;color:#37634e;border-color:#dce6dc;border-radius:8px}.chip{min-height:41px;padding:9px 15px}.chip.active{background:#2e624e;color:#fff}.search-input,.field-input,.field-select{border-radius:11px;border-color:#dce5de;background:#fcfdfa;color:#1f3430;min-height:46px}
.word-card{border-radius:17px;padding:23px}.word-ko,.book-ko,.flash-ko,.ko{font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic","PingFang SC",sans-serif}.word-ko{font-size:36px;color:#223d34;letter-spacing:-.5px}.word-rom{color:#8a9c8f}.word-cn{color:#43584a}.word-play,.book-mini{border-radius:9px;background:#ebf1e9;color:#325c47}.word-status.learned{color:#2c795a}
.grammar-card,.grammar-example{border-radius:16px}.lesson-hero{border:1px solid #dbe8da;border-radius:20px;background:#ecf3ed}
.flash-stage{max-width:780px}.flash-progress{background:#e2eae1}.flash-progress>div{background:#3d8160!important}.flash-card{border:1px solid #e0eae0!important;border-radius:23px!important;box-shadow:none!important;background:#fff}.flash-watermark{font-size:10px;letter-spacing:2px;color:#71877b}.flash-ko{font-size:clamp(54px,8vw,91px)!important;letter-spacing:-1px;color:#223d2d}.flash-rom{color:#667e71}.flash-control{gap:10px}.record-btn,.rating-btn{border-radius:11px}.flash-rating{gap:10px}.rating-btn{min-height:79px}
.book-alert{background:#f1f5ed;border-color:#d7e6d9;border-radius:15px;color:#385843;line-height:1.8}.book-index{border-radius:18px}.book-chapter{border-radius:10px;min-height:53px}.book-chapter.selected{background:#e9f0e9;border-color:#caddcb;color:#2c5b42}.book-word{border-radius:18px!important;padding:25px}.book-ko{font-size:clamp(33px,4vw,51px);color:#2b4d37;margin-top:18px}.book-mini{border-radius:8px}.book-rule{background:#eff5ed;border:0;border-radius:11px;color:#3e694d}.book-kotitle{color:#547b60}.book-lesson-head,.book-audio,.book-own{border-radius:19px}
.scan-drop{border-radius:19px;background:#f1f5ef;border:2px dashed #9fbdaa;min-height:260px}.scan-drop b{color:#2c5341}.scan-card{border-radius:16px!important}.scan-step strong{background:#e4efe6;color:#34634d}.scan-result button{border-radius:10px}
.v5-member{background:#223e36;color:#fff;border-radius:20px;box-shadow:none;padding:26px 29px}.v5-member>strong{font-size:39px}.v5-member>p{color:#ccdcd0}.v5-member .btn{border-radius:10px}
.v5-account-overview{border-radius:18px}.settings-card{border-radius:18px}.v5-share-options{background:#f0f4ef;border-radius:12px}.v5-share-options input[type=checkbox]{accent-color:#407854}
/* dense controls and real-world edge cases */
.empty-list,.review-empty{background:#fff;border:1px dashed #cbd8ca;border-radius:17px;color:#667e6e;padding:34px;text-align:center}
.word-cn,.book-cn,.book-rule,.book-roman,.lesson-desc,.page-subtitle,.profile-desc,.row small{overflow-wrap:anywhere}
:where(.btn,.nav-button,.mobile-nav button,.chip,.rating-btn,.book-chapter){touch-action:manipulation}
[disabled]{opacity:.52!important;cursor:not-allowed!important;box-shadow:none!important}
:where(.mobile-nav,.sidebar,.topbar){-webkit-backdrop-filter:none}
@media(min-width:761px){.mobile-nav{display:none}}
@media(max-width:1120px) and (min-width:761px){.home-columns{grid-template-columns:minmax(0,1fr)}.aside-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.aside-stack>.panel:last-child{grid-column:1/-1}.hero-v6 .hero-art{max-width:220px}}
@media(max-width:760px){
  .shell{display:block;min-height:100dvh}.sidebar{display:none}.workspace{padding:19px max(18px,env(safe-area-inset-left)) calc(110px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-right));min-width:0}.page-wrap{width:100%;max-width:none}
  .topbar{margin:0 0 20px;padding:1px 0 17px;min-height:46px;border-bottom:1px solid #e2e8df}.breadcrumbs{font-size:11px}.date-pill{font-size:10px;white-space:nowrap;padding:6px 3px}.top-avatar{height:33px;width:33px;min-width:33px;min-height:33px;border-radius:10px}
  .welcome-v4{padding:1px 0 2px}.welcome-label{font-size:10px;letter-spacing:1.5px}.welcome-v4 h1{font-size:clamp(29px,7.4vw,38px);line-height:1.25;letter-spacing:-1.1px;margin:10px 0 10px}.welcome-v4 p{font-size:12px;line-height:1.65;max-width:30ch}.only-mobile{display:inline}
  .home-columns{display:flex;flex-direction:column;gap:23px;margin-top:22px}.main-stack,.aside-stack{display:flex;flex-direction:column;gap:18px;min-width:0}.aside-stack>.panel{width:100%;min-width:0}
  .hero-v4.hero-v6{min-height:268px;border-radius:20px}.hero-v6 .hero-content{padding:23px 22px 25px}.hero-v6 .hero-kicker{font-size:9px;margin-bottom:20px;gap:12px}.hero-v6 .hero-time{font-size:9px;padding-left:11px}.hero-v6 h2{font-size:clamp(27px,7.8vw,35px);margin-bottom:8px;max-width:70%;letter-spacing:-1px}.hero-v6 p{font-size:11px;line-height:1.6;max-width:72%;margin-bottom:23px}.hero-v6 .hero-progress{width:74%;height:5px;margin-bottom:14px}.hero-v6 .hero-bottom{max-width:88%;gap:9px}.hero-v6 small{font-size:10px}.hero-v6 .hero-button{min-width:auto!important;padding:9px 11px!important;min-height:38px!important;font-size:11px!important}.hero-v6 .hero-art{width:28%;height:100%}.hero-v6 .hero-hangul{font-size:85px;right:-6px;top:95px}.hero-v6 .hero-vertical-label{font-size:7px}
  .v4-section-title{margin:3px 0 0}.v4-section-title h3,.section-heading h3{font-size:19px}.v4-section-title span{font-size:11px}
  .v4-task-grid{gap:10px}.v4-task{min-height:145px;border-radius:15px;padding:15px}.v4-task strong{font-size:14px}.v4-task small{font-size:11px}.v4-task-icon{margin-bottom:12px}.v4-task-progress{margin-top:12px}
  .v5-daily-phrase{border-radius:16px;min-height:91px;padding:13px;gap:11px}.v5-daily-symbol{flex-basis:45px;width:45px;height:49px;font-size:13px;border-radius:9px}.v5-daily-phrase b{font-size:12px}.v5-daily-phrase small{font-size:13px!important}.v5-daily-phrase em{font-size:11px}.v5-daily-play{width:33px;height:33px;flex:none}
  .book-promo.v4-promo{padding:14px;border-radius:15px;min-height:95px}.v4-promo .book-promo-icon{width:46px;height:48px;border-radius:12px}.v4-promo strong{font-size:14px}.v4-promo small{font-size:11px}
  .panel{padding:20px;border-radius:17px}.lesson-card{padding:15px}.page-title{font-size:28px}.page-subtitle{font-size:13px}.toolbar{flex-wrap:wrap}.course-grid,.words-grid{grid-template-columns:1fr!important}.word-ko{font-size:39px}.flash-ko{font-size:55px!important}.settings-grid{grid-template-columns:1fr}.book-layout{grid-template-columns:1fr}.book-index-grid{max-height:270px;overflow:auto}
  .mobile-nav{position:fixed;z-index:100;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;max-width:none;height:68px;min-height:68px;border:1px solid #e5ebe5;border-radius:16px;background:rgba(252,254,251,.95);-webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15);box-shadow:0 9px 26px rgba(23,45,34,.12);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:4px 5px;gap:1px}
  .mobile-nav-item{border:0;background:transparent;height:58px;min-height:58px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:12px;min-width:0;color:#718379;font-size:10px;font-weight:700}
  .mobile-nav-item.active{background:#e9f0e9;color:#295944;box-shadow:none}.mobile-nav-item .nav-icon{height:23px;width:24px}.mobile-nav-item .ui-icon{height:21px;width:21px}.mobile-nav-item .nav-label{white-space:nowrap;display:block;font-size:10px}
  .v5-member{padding:21px}.v5-member>strong{font-size:34px}
}
@media(max-width:370px){.hero-v6 .hero-art{width:23%}.hero-v6 .hero-bottom{max-width:93%}.hero-v6 h2{font-size:27px}.v4-task small{font-size:10px}.v5-daily-symbol{display:none}.date-pill{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-contrast:more){.panel,.lesson-card,.word-card,.book-word,.v4-task{border-color:#4d6755}.page-subtitle,.v5-daily-phrase em,.v4-task small{color:#384d3e}}
/* Reading comforts for account forms, high information density, and CJK text */
.settings-card p,.v5-account-overview p,.subtle-note{color:#667a6b;font-size:13px;line-height:1.8}
.field label{font-size:13px;color:#48624e}.field input,.field select,.field textarea{font-size:14px;line-height:1.45}
.settings-card .stat-label{font-size:11px}.v5-member-top{letter-spacing:.5px}
.dialog{background:#fff;border:1px solid #dce5dd;border-radius:17px;box-shadow:0 25px 80px #18352835}.dialog-example{background:#edf4ec;color:#365943;border-radius:12px}.dialog-meta{color:#637667;font-size:13px}.dialog-cn{color:#335b43}.dialog-ko{color:#1c422e}.dialog-head h3{color:#294a39}.record-btn{background:#f9efea;color:#aa6146;border-color:#f2ddd2}.record-btn.active{background:#b04b4b;color:#fff}
@media(max-width:760px){.field input,.field select,.field textarea{font-size:16px;min-height:45px}.settings-card p,.v5-account-overview p{font-size:13px}.settings-card h3{font-size:17px}}
