:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#16222d;background:#f7f9fb;font-size:16px;--ink:#172630;--muted:#7b8791;--line:#e5eaee;--mint:#14ae95;--mint-dark:#078774;--mint-soft:#e8f7f3;--surface:#fff;--radius:14px;--shadow:0 5px 18px #20354105}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #5ed8c4;outline-offset:3px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;padding:35px 22px 22px;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:750;white-space:nowrap}.brand-symbol{height:40px;width:40px;border-radius:12px;background:var(--mint);color:white;display:grid;place-items:center;flex-shrink:0}.brand-symbol svg{width:24px;height:24px}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#97a2a9;font-weight:500;margin-top:5px}.nav-label{font-size:11px;color:#a1acb3;margin:46px 12px 16px}.sidebar nav{display:grid;gap:7px}.nav-item{display:flex;gap:13px;align-items:center;width:100%;text-align:left;padding:15px 13px;border-radius:9px;font-size:14px;color:#6b7b86;background:none;font-weight:500}.nav-item.active{background:var(--mint-soft);color:#048975;font-weight:650}.sidebar-tip{margin-top:auto;border:1px solid #edf0f3;background:#fafcfd;border-radius:12px;padding:19px;margin-bottom:25px;color:#8e9b9f}.sidebar-tip>span{color:var(--mint)}.sidebar-tip p{font-size:15px;line-height:1.8;margin:11px 0;color:#63757c}.sidebar-tip small{font-size:11px;color:#a0aab1}.account-button{display:flex;align-items:center;gap:10px;background:none;padding:14px 4px 0;border-top:1px solid var(--line);width:100%;text-align:left}.avatar{width:35px;height:35px;border-radius:50%;background:#edf3f5;color:#82979e;display:grid;place-items:center}.account-button>span:nth-child(2){flex:1;min-width:0}.account-button strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-button small{display:block;font-size:11px;color:#97a5ac;margin-top:5px}.account-button>span:last-child{color:#a6b2b8}.account-button>span:last-child svg{width:14px}.main-shell{margin-left:240px;padding:0 46px;min-height:100vh;display:flex;flex-direction:column;max-width:1700px}.topbar{height:88px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:12px}.desktop-breadcrumb{font-size:13px;color:#98a4ae}.desktop-breadcrumb>span{margin:0 14px;color:#c0c9cf}.desktop-breadcrumb strong{font-weight:500;color:#63727e}.mobile-brand{display:none}.topbar-right{display:flex;align-items:center;gap:18px}.version-label{font-size:11px;color:#9ba5af}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:8px;padding:11px 17px;font-size:14px;line-height:1.5;font-weight:550;white-space:nowrap;transition:background .15s,box-shadow .15s}.button:hover:not(:disabled){box-shadow:0 3px 8px #1b35280b}.button-primary{background:var(--mint);color:white;border:1px solid var(--mint)}.button-primary:hover:not(:disabled){background:#0c9f88}.button-outline{border:1px solid #dbe3e8;background:white;color:#677a86}.button-quiet{background:#eff4f5;color:#657985}.button-danger{background:#e85a5a;color:white}.full-width{width:100%}.icon-button{height:34px;width:34px;border-radius:7px;background:transparent;color:#8a989f;display:inline-grid;place-items:center}.icon-button:hover{background:#f0f4f6}.text-button{font-size:13px;padding:7px 0;color:var(--mint-dark);background:transparent}.muted{color:var(--muted);font-size:14px;line-height:1.8}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:29px;letter-spacing:-.6px;margin:9px 0 12px;font-weight:720}h2{font-size:22px;font-weight:650;margin:9px 0 10px}h3{font-size:17px;margin:0;font-weight:650}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2px;color:var(--mint-dark)}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:38px 0 27px;gap:20px}.page-heading p{margin:0;color:var(--muted);font-size:14px;line-height:1.8}.heading-actions{display:flex;gap:9px}.filters{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.filter-chips{display:flex;gap:7px;flex-wrap:wrap}.chip{font-size:12px;color:#84929c;border-radius:6px;padding:9px 14px;background:transparent}.chip.active{background:#e8f2ef;color:#158674;font-weight:600}.search-box{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:white;padding:0 11px;gap:8px;max-width:260px}.search-box>span{color:#b0bbc3}.search-box input{background:none;border:0;width:200px;font-size:12px;padding:11px 0;outline-offset:4px}.search-box input::placeholder{color:#a7b2bc}.units-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:24px}.unit-tile{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:21px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:247px;transition:border-color .2s,transform .2s}.unit-tile:hover{border-color:#a8dace;transform:translateY(-2px)}.unit-tile-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:21px}.unit-code{border-radius:11px;width:51px;height:51px;display:grid;place-items:center;background:#eaf7f4;color:#159a84;font-size:22px;font-weight:700;letter-spacing:-1px}.unit-tile:nth-child(4n+2) .unit-code{background:#edf2ff;color:#637bc7}.unit-tile:nth-child(4n+3) .unit-code{background:#fff3e5;color:#be914a}.unit-tile:nth-child(4n+4) .unit-code{background:#f4edf9;color:#a281b3}.unit-tag{font-size:10px;border:1px solid #e5ecef;border-radius:5px;padding:4px 7px;color:#93a1aa}.unit-tile>p{font-size:12px;line-height:1.9;color:#91a0a9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:44px;margin:10px 0 18px}.unit-meta{display:flex;align-items:center;gap:15px;color:#9aa6af;font-size:11px;margin-top:auto;margin-bottom:17px}.unit-meta span{display:flex;align-items:center;gap:5px}.unit-meta svg{width:13px;height:13px}.unit-tile-actions{display:flex;gap:8px;border-top:1px solid #f0f3f5;padding-top:15px}.unit-tile-actions .button{font-size:12px;min-height:34px;padding:7px 13px;flex:1}.unit-tile-actions .button-primary{flex:1.3}.import-notice{display:flex;align-items:flex-start;gap:11px;padding:16px 18px;background:#edf7f4;border:1px solid #deeee9;border-radius:10px;color:#5c8b7e;font-size:12px;line-height:1.8;margin:23px 0 35px}.import-notice svg{width:16px;height:16px;margin-top:3px}.import-notice p{margin:0}.section-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0 18px}.section-title>span{font-size:12px;color:#a2acb5}.empty-state{padding:60px 25px;text-align:center;border:1px dashed #d8e1e6;border-radius:14px;background:#fff;grid-column:1/-1}.empty-state>.empty-icon{color:#aac7bf;width:60px;height:60px;background:#f0f8f5;border-radius:18px;margin:0 auto 18px;display:grid;place-items:center}.empty-icon svg{width:28px;height:28px}.empty-state h2{font-size:22px}.empty-state p{color:var(--muted);font-size:14px;line-height:1.8;margin:12px 0 24px}.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:25px}.stat{display:flex;align-items:center;gap:17px;background:white;border:1px solid var(--line);border-radius:12px;padding:20px}.stat>.stat-icon{background:#eef8f5;color:var(--mint);border-radius:10px;width:43px;height:43px;display:grid;place-items:center}.stat strong{font-size:24px;font-weight:650;display:block}.stat small{font-size:12px;color:#91a0aa;display:block;margin-top:6px}.back-button{display:flex;gap:7px;align-items:center;color:#7a8b96;font-size:12px;background:none;padding:0;margin-bottom:20px}.back-button svg{width:16px}.detail-banner{display:flex;align-items:flex-start;gap:20px;padding:24px;border:1px solid var(--line);background:white;border-radius:14px;margin-bottom:25px}.detail-banner>.unit-code{width:62px;height:62px;font-size:27px;flex-shrink:0}.detail-banner-content{flex:1}.detail-banner h1{font-size:24px;margin:0 0 9px}.detail-banner p{margin:0;font-size:13px;color:var(--muted);line-height:1.8}.detail-banner-actions{display:flex;gap:8px}.detail-view{margin-top:27px}.card-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:20px 0}.card-tools p{font-size:12px;color:#9aa5ad;margin:0}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:20px 0 30px}.memory-tile{border:1px solid var(--line);background:white;border-radius:12px;padding:14px;overflow:hidden}.memory-tile-heading{display:flex;align-items:center;justify-content:space-between;gap:7px}.memory-tile-heading strong{font-size:20px;color:#3d668e;font-weight:650}.memory-tile-actions{display:flex;gap:0}.memory-tile-actions .icon-button{width:26px;height:26px}.memory-tile-actions svg{width:14px;height:14px}.memory-image{height:140px;background:#fff;display:grid;place-items:center;border-radius:8px;margin:10px 0;overflow:hidden}.memory-image img{height:100%;width:100%;object-fit:contain}.memory-image .image-missing{font-size:11px;color:#a4afb8;text-align:center;padding:12px}.memory-tile p{font-size:12px;color:#8998a3;line-height:1.7;margin:5px 0;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:20px}.memory-tile .audio-control{font-size:11px;padding:6px 0;color:#309b86;background:transparent;display:flex;align-items:center;gap:5px}.audio-control svg{width:13px;height:13px}.pagination{display:flex;justify-content:center;gap:15px;align-items:center;color:#8b99a4;font-size:12px;margin:25px 0 35px}.pagination .button{font-size:12px;min-height:34px}.practice-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:18px 21px;background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:24px}.practice-controls label{font-size:13px;margin:0}.practice-controls input{width:75px;padding:8px;font-size:13px}.practice-controls select{font-size:13px;min-width:120px;padding:8px}.practice-controls .button{margin-left:auto}.practice-card{max-width:680px;margin:0 auto 25px;background:white;border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 40px #273e4807;min-height:480px;display:flex;flex-direction:column;overflow:hidden}.practice-top{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;font-size:12px;color:#93a1ab}.practice-top .type-label{color:#64a493;font-size:11px}.question-surface{flex:1;display:grid;place-items:center;min-height:260px;padding:30px;overflow-wrap:anywhere}.question-title{font-size:90px;color:#3658bc;font-weight:450;line-height:1.2;text-align:center}.question-title.word{font-size:clamp(34px,5vw,62px)}.answer-surface{padding:20px 30px 30px;border-top:1px solid #f0f3f4;text-align:center}.answer-image{display:block;height:auto;width:100%;max-width:560px;margin:0 auto 16px}.answer-image img{display:block;width:auto;height:auto;max-width:100%;max-height:480px;margin:0 auto;object-fit:contain}.answer-text{font-size:18px;line-height:1.8;color:#4c6471;white-space:pre-wrap;margin:15px 0}.answer-surface .button{font-size:12px;min-height:36px}.ratings{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:20px 24px 24px;margin-top:auto}.rating-button{border-radius:9px;padding:12px 3px;color:white;font-size:14px;min-height:63px;display:grid;gap:6px;place-items:center}.rating-button small{font-size:10px;opacity:.8}.rating-button.easy{background:#20b878}.rating-button.medium{background:#e8b842;color:#51401d}.rating-button.hard{background:#ef6767}.rating-button.again{background:#33424d}.rating-button:disabled{opacity:.38;cursor:not-allowed}.reveal-button{display:block;max-width:680px;width:100%;margin:0 auto 30px;background:var(--mint);color:white;border-radius:13px;min-height:54px;font-size:17px}.practice-hint{font-size:12px;color:#9cabb3;text-align:center;margin:15px 0 25px}.round-pills{display:flex;justify-content:center;gap:8px;margin:17px 0 22px}.round-pills span{width:26px;height:26px;display:grid;place-items:center;border:1px solid #dee8e7;border-radius:50%;font-size:11px;color:#9bada7}.round-pills .current{color:#08896f;background:#e0f5ec;border-color:#bbdfd3}.round-pills .done{background:#13b092;color:white;border-color:#13b092}.round-finished{max-width:680px;margin:40px auto;text-align:center;background:white;border:1px solid var(--line);padding:55px 25px;border-radius:18px}.round-finished .complete-icon{width:65px;height:65px;margin:0 auto 20px;border-radius:50%;background:#e8f8ef;color:#25b68a;display:grid;place-items:center}.round-finished .complete-icon svg{width:30px;height:30px}.round-finished h2{font-size:26px}.round-finished p{font-size:14px;line-height:1.8;color:#8a9a9f}.round-finished>.heading-actions{justify-content:center;margin-top:25px}footer{margin-top:auto;padding:23px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#b0b9bf;font-size:10px;gap:20px}.loading-panel{padding:80px 30px;text-align:center;color:#96a4ad;font-size:14px}.modal{border:1px solid #e4ebef;border-radius:18px;padding:28px;width:440px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 40px);box-shadow:0 20px 70px #0c1f3026;color:var(--ink);overflow:auto}.modal::backdrop{background:#142a3b66;backdrop-filter:blur(4px)}.modal.wide{width:600px}.modal.compact{width:390px}.modal-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.modal-top h2{font-size:19px}.modal h2{font-size:24px;margin-top:12px}.modal>.muted,.modal form>.muted{margin:8px 0 22px;font-size:13px}.modal label{display:block;font-size:13px;font-weight:600;margin:18px 0 8px}input,textarea,select{border:1px solid #dce4e9;border-radius:7px;background:#fcfdfe;color:#354b59;padding:11px 12px;line-height:1.6;font-size:14px;max-width:100%}.modal input:not([type=file]),.modal textarea,.modal select{width:100%}input::placeholder,textarea::placeholder{color:#b0bac2;font-size:12px}textarea{resize:vertical;min-height:70px}.tabs{background:#f1f5f6;border-radius:8px;padding:4px;display:flex;gap:5px;margin:23px 0}.tabs button{padding:9px 12px;flex:1;background:transparent;color:#8b99a0;font-size:13px;border-radius:6px}.tabs button.active{background:white;color:#258e78;box-shadow:0 1px 4px #354c4c0b}.form-error{font-size:12px;line-height:1.7;color:#d95e61;min-height:19px;margin:14px 0}.fine-print{font-size:11px;color:#a0aab2;line-height:1.8;margin:12px 0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.edit-media{display:grid;grid-template-columns:1fr 1fr;gap:20px}.edit-media input[type=file]{width:100%;font-size:11px;background:white;padding:7px}.image-preview{height:90px;display:grid;place-items:center;margin-top:10px;border:1px dashed #e1e9ed;border-radius:8px;overflow:hidden}.image-preview img{height:100%;max-width:100%;object-fit:contain}.image-preview span{color:#b2bec6;font-size:11px}.file-drop{padding:35px 20px;border:1px dashed #b9d7ce;border-radius:10px;background:#f4fbf8;text-align:center;cursor:pointer}.file-drop>span{display:block;color:#49a68c;margin-bottom:15px}.file-drop strong{font-size:14px;display:block;color:#648475}.file-drop small{font-size:11px;color:#97ada4;display:block;margin-top:9px;line-height:1.8}#import-file{width:100%;font-size:12px}.mobile-nav{display:none}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:12px 21px;border-radius:9px;background:#233b42;color:white;font-size:13px;box-shadow:0 6px 20px #183f2426;z-index:10;max-width:calc(100vw - 40px);text-align:center;line-height:1.7;display:none}#toast.visible{display:block}.error-panel{padding:40px;border:1px solid #edd7d7;border-radius:12px;background:#fff8f7;color:#b16461;font-size:14px;line-height:1.8}.mobile-nav .active{color:#159f87}.quiet-label{font-size:11px;color:#9aabb2}.public-info{background:#f6f9fa;border-radius:8px;padding:11px 15px;font-size:12px;color:#8da0a8;margin-top:16px;line-height:1.8}@media(min-width:1550px){.main-shell{padding:0 65px}.units-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.memory-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1150px){.sidebar{width:210px;padding:28px 16px}.brand{font-size:17px}.main-shell{margin-left:210px;padding:0 27px}.units-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-banner-actions{flex-direction:column}.filters{align-items:flex-start}.filter-chips{gap:3px}.chip{padding:9px 10px}}@media(max-width:760px){.sidebar{display:none}.main-shell{margin:0;padding:0 20px 85px}.topbar{height:75px}.mobile-brand{display:flex;gap:9px;align-items:center;font-size:16px}.mobile-brand .brand-symbol{width:32px;height:32px;border-radius:9px}.mobile-brand .brand-symbol svg{width:19px;height:19px}.desktop-breadcrumb,.version-label{display:none}.topbar-right .button{font-size:11px;min-height:32px;padding:7px 10px}.page-heading{margin:26px 0 22px;align-items:flex-start;gap:14px}.eyebrow{font-size:9px;letter-spacing:1.7px}h1{font-size:25px;margin-top:9px}.page-heading p{font-size:12px;line-height:1.8}.heading-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}.heading-actions .button{font-size:11px;min-height:34px;padding:8px 10px}.page-heading .heading-actions>button:first-child{display:none}.filters{flex-direction:column;gap:13px;margin-bottom:20px}.filter-chips{gap:2px;overflow:auto;flex-wrap:nowrap;width:100%;padding-bottom:2px}.chip{font-size:11px;padding:8px 10px;white-space:nowrap}.search-box{width:100%;max-width:none}.search-box input{width:100%;font-size:13px}.units-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.unit-tile{padding:15px;min-height:235px;border-radius:12px}.unit-code{width:41px;height:41px;font-size:18px;border-radius:10px}.unit-tile-top{margin-bottom:17px}.unit-tag{font-size:9px;padding:3px 5px}.unit-tile h3{font-size:14px;line-height:1.6}.unit-tile>p{font-size:11px;margin:8px 0 13px;line-height:1.7;min-height:36px}.unit-meta{font-size:10px;gap:8px;margin-bottom:14px}.unit-tile-actions{gap:5px;flex-wrap:wrap}.unit-tile-actions .button{font-size:11px;min-height:32px;padding:6px 9px;flex:1;white-space:nowrap}.unit-tile-actions .button-primary{flex:1}.import-notice{font-size:11px;padding:13px;gap:9px;margin-bottom:26px}.import-notice>span{flex-shrink:0}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:#fffffff5;backdrop-filter:blur(15px);border-top:1px solid var(--line);padding:10px 5px max(10px,env(safe-area-inset-bottom));z-index:3}.mobile-nav button{display:grid;gap:6px;place-items:center;background:none;color:#a1afb6;font-size:10px;min-height:44px}.mobile-nav svg{width:20px;height:20px}.stats-strip{gap:8px}.stat{padding:14px 10px;gap:0;text-align:center;justify-content:center}.stat>.stat-icon{display:none}.stat strong{font-size:23px}.stat small{font-size:10px;margin-top:5px}.detail-banner{padding:18px;gap:14px;flex-wrap:wrap}.detail-banner>.unit-code{width:43px;height:43px;font-size:20px}.detail-banner h1{font-size:21px}.detail-banner p{font-size:12px}.detail-banner-actions{flex-direction:row;flex-wrap:wrap;width:100%;gap:8px}.detail-banner-actions .button{font-size:12px;min-height:37px;flex:1}.card-tools{align-items:flex-start;gap:10px}.card-tools .button{font-size:11px;min-height:34px;padding:8px 11px}.card-tools p{font-size:10px;line-height:1.8}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.memory-tile{padding:12px}.memory-image{height:115px}.memory-tile-heading strong{font-size:20px}.practice-controls{padding:14px;gap:10px}.practice-controls label{font-size:12px}.practice-controls select{font-size:12px;padding:7px;min-width:110px}.practice-controls input{font-size:12px;width:60px;padding:7px}.practice-controls .button{font-size:12px;width:100%;margin:4px 0 0;min-height:39px}.practice-card{min-height:460px;border-radius:17px}.question-surface{min-height:280px;padding:25px 15px}.question-title{font-size:96px}.question-title.word{font-size:45px}.practice-top{padding:18px 20px;font-size:11px}.ratings{padding:18px 16px;gap:8px}.rating-button{font-size:13px;min-height:61px}.rating-button small{font-size:9px}.answer-surface{padding:15px 20px 25px}.answer-image{height:auto}.answer-image img{width:100%;height:auto;max-height:none}.answer-text{font-size:16px}.reveal-button{min-height:52px;font-size:16px;border-radius:12px}.practice-hint{font-size:10px}.round-pills{margin:15px 0 20px}.round-pills span{height:23px;width:23px;font-size:10px}.edit-media{grid-template-columns:1fr}.modal{padding:23px}.modal h2{font-size:22px}.modal input,.modal textarea{font-size:16px}.modal label{font-size:13px}footer{font-size:9px;margin-top:15px;padding:20px 0}#toast{bottom:85px}.empty-state{padding:45px 20px}.empty-state h2{font-size:22px}.empty-state p{font-size:13px}}@media(max-width:380px){.main-shell{padding-left:15px;padding-right:15px}.units-grid{grid-template-columns:1fr}.unit-tile{min-height:225px}.unit-tile-actions .button{font-size:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Readable controls and text on narrow screens. */
:root{--muted:#697985}.eyebrow,.version-label,.brand small,.nav-label,.sidebar-tip small,.account-button small,.unit-tag,.unit-meta,.fine-print,.quiet-label,.practice-hint,.rating-button small,footer,.import-notice,.public-info{font-size:12px}.unit-tile>p,.memory-tile p{font-size:14px;color:#6e7d87}.unit-meta{flex-wrap:wrap;row-gap:7px}.modal label,.chip,.search-box input,.text-button{font-size:14px}.unit-tile>p{min-height:52px}.memory-tile .audio-control{font-size:13px}.unit-tile-actions .button{font-size:14px}.form-error{font-size:14px}.brand small{letter-spacing:1.4px}@media(max-width:760px){.unit-tile-actions{flex-direction:column}.unit-tile-actions .button{font-size:14px;min-height:40px}.unit-tile h3{font-size:16px}.unit-tile>p{font-size:14px;min-height:48px;line-height:1.75}.unit-tag{font-size:11px}.unit-meta{font-size:12px}.page-heading p{font-size:14px}.chip,.search-box input,.modal label,.practice-controls label{font-size:14px}.heading-actions .button,.detail-banner-actions .button,.card-tools .button{font-size:14px;min-height:40px}.practice-top{font-size:12px}.rating-button small{font-size:11px}.mobile-nav button{font-size:12px}.question-title.word{font-size:clamp(24px,7vw,45px)}.question-title{overflow-wrap:anywhere}.modal input,.modal textarea{font-size:16px}.topbar-right .button{font-size:12px}}
@media(max-width:760px){#main:has(.practice-card) .page-heading{margin:18px 0 15px}#main:has(.practice-card) .page-heading h1{font-size:22px;margin:7px 0}#main:has(.practice-card) .page-heading p{display:none}.practice-controls{display:grid;grid-template-columns:auto 50px auto minmax(95px,1fr) 40px;padding:12px;gap:8px;margin-bottom:12px}.practice-controls input{width:100%;padding:5px}.practice-controls select{width:100%;min-width:0;padding:6px}.practice-controls .button{width:40px;min-height:35px;min-width:0;padding:8px;margin:0;font-size:0}.practice-controls .button svg{width:18px;height:18px}.round-pills{margin:12px 0 15px}.practice-card{min-height:340px;margin-bottom:15px}.question-surface{min-height:200px}.practice-top{padding:14px 18px}.ratings{padding:14px;gap:8px}.rating-button{min-height:56px}.reveal-button{margin-bottom:18px;min-height:48px}.practice-hint{margin:10px 0 20px}}
/* Use a fixed icon box instead of inline SVG baseline alignment. */
.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;flex:0 0 auto;box-sizing:border-box}.icon-button>span{display:flex;align-items:center;justify-content:center;width:20px;height:20px;line-height:0;flex:0 0 20px}.icon-button svg{display:block;width:20px;height:20px;margin:0;flex-shrink:0;vertical-align:initial}.memory-tile-actions .icon-button>span,.memory-tile-actions .icon-button svg{width:14px;height:14px;flex-basis:14px}

.modal-top .icon-button{width:44px;height:44px}.unit-tile-tools{display:flex;align-items:center;gap:4px;min-width:0}.unit-tile-tools .icon-button{width:32px;height:36px;color:#a08080}.unit-tile-actions{flex-wrap:wrap}.unit-tile-actions>.text-button{width:100%;text-align:center}.button:disabled{cursor:default}.phonetic{font-family:"Noto Sans","Arial",sans-serif;font-size:17px;line-height:1.7;color:#37598c;overflow-wrap:anywhere;margin:10px 0;white-space:pre-wrap}.phonetic>span{font-family:inherit;font-size:12px;color:#7b8d9a;margin-right:5px}.memory-tile .phonetic{font-size:14px}

/* Mobile touch sizes for shared card and dialog actions. */
@media(max-width:760px){.unit-tile-actions .button,.heading-actions .button,.detail-banner-actions .button,.card-tools .button,.modal .button{min-height:44px}}

.speech-caption{font-size:13px;line-height:1.7;color:#697985;margin:8px 0;overflow-wrap:anywhere}

.mnemonic-panel{margin-top:16px;padding:16px;border:1px solid #cde8df;border-radius:12px;background:#effaf5;color:#26483d}.mnemonic-panel h3,.mnemonic-panel summary{font-size:16px;font-weight:650;margin:0 0 10px}.mnemonic-panel summary{cursor:pointer}.mnemonic-text{white-space:pre-wrap;font-size:16px;line-height:1.9}.mnemonic-panel .audio-control{display:inline-flex;align-items:center;gap:6px;color:#087b69;background:transparent;padding:9px 0;font-size:14px}.mnemonic-panel small{display:block;font-size:12px;color:#6e7d78;line-height:1.7}.memory-tile .mnemonic-text{font-size:14px}.memory-tile .mnemonic-panel{padding:10px}

/* Answer copy stays below the image in normal flow, including on Safari grid layouts. */
.answer-copy{display:flex;flex-direction:column;gap:12px;min-width:0;padding:18px 16px;border:1px solid var(--line);border-radius:12px;background:#f7fafc;color:var(--ink)}.answer-copy>.phonetic{margin:0;color:#2b4166;line-height:1.8;overflow-wrap:anywhere;white-space:pre-wrap}.answer-copy>.phonetic>span{display:block;color:#536a7b;white-space:normal;margin:0 0 4px}.answer-copy>.answer-text{margin:0;color:var(--ink);line-height:1.8;overflow-wrap:anywhere}.answer-copy>.speech-caption{margin:0;color:#48606f}.answer-copy>.button{align-self:center;min-height:44px;max-width:100%;white-space:normal}

/* One original story and word family per Cai card. */
.word-group{min-width:0;text-align:left}.word-group table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:15px;color:var(--ink);line-height:1.6}.word-group caption{text-align:left;font-size:14px;font-weight:650;color:#38596b;margin-bottom:10px}.word-group th,.word-group td{padding:10px 7px;border-bottom:1px solid #dce5e9;vertical-align:top;overflow-wrap:anywhere}.word-group thead th{font-size:12px;color:#647986;background:#edf3f6}.word-group th[scope=row]{font-weight:650;color:#3658bc}.word-group .word-ipa{font-family:"Noto Sans",Arial,sans-serif;color:#324a6a}.word-group tr:last-child>*{border-bottom:0}.memory-tile .word-group table{font-size:12px}.memory-tile .word-group th,.memory-tile .word-group td{padding:7px 3px}.group-answer .answer-image img{width:100%;height:auto;max-height:none}.group-image-link{display:block;margin-bottom:18px}.group-image-link>span{display:block;font-size:12px;color:#557482}.group-answer .mnemonic-panel{text-align:left}@media(max-width:760px){.group-answer .answer-copy{padding:14px 8px}.group-answer .word-group table{font-size:14px}.group-answer .word-group th,.group-answer .word-group td{padding:9px 5px}.memory-tile .word-group table{font-size:11px}}

/* Image-first review: use the available width and keep story keywords prominent. */
.practice-card{max-width:1040px}
.answer-surface{padding:16px 0 24px}
.answer-image{max-width:none;width:100%;margin:0 auto 12px}
.answer-image img{width:100%;max-height:none;height:auto}
.answer-surface>.answer-copy,.answer-surface>.mnemonic-panel{margin-left:18px;margin-right:18px}
.group-image-link>span{padding:4px 12px}
.page-cropped{position:relative;overflow:hidden;height:auto}
.page-cropped>img{position:absolute;max-width:none!important;max-height:none!important;height:auto;margin:0;display:block}
.memory-image.page-cropped{height:auto}
.mnemonic-text .story-term{font-size:1.22em;font-weight:800;color:#124f42;line-height:1.9}
.story-term .story-word{font-size:.82em;font-weight:700;color:#3658bc;white-space:normal}
@media(max-width:760px){
 .practice-card{width:calc(100% + 40px);max-width:none;margin-left:-20px;margin-right:-20px;border-radius:0;border-left:0;border-right:0}
 .question-surface{min-height:120px;padding:20px 12px}
 .answer-surface{padding:10px 0 22px}
 .answer-surface>.answer-copy,.answer-surface>.mnemonic-panel{margin-left:12px;margin-right:12px}
 .mnemonic-panel .mnemonic-text{line-height:2}
}
@media(max-width:380px){.practice-card{width:calc(100% + 30px);margin-left:-15px;margin-right:-15px}}

.card-open-link{display:block;border-radius:8px;cursor:pointer}.card-open-link:hover .memory-image{box-shadow:0 0 0 2px #a8dace}.card-open-hint{display:block;text-align:center;color:#557482;font-size:12px;margin:-2px 0 12px}.browse-navigation{max-width:1040px;margin:16px auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.browse-navigation>span{color:#637986;font-size:14px}.card-browse .question-surface{min-height:120px}.card-browse .answer-surface{border-bottom:0}@media(max-width:760px){.browse-navigation .button{min-height:44px}.card-open-hint{font-size:11px}}
.browse-navigation [data-action="browse-next"] svg{transform:rotate(180deg)}
