.wx-scan{width:100%}.wx-title{margin:0 0 .4rem;font-size:1.15rem;font-weight:800;color:var(--dada-brown);text-align:center}.wx-sub{margin:0 0 1.4rem;font-size:.85rem;color:var(--dada-muted);text-align:center}.wx-qr{display:flex;flex-direction:column;align-items:center}.wx-qr-box{position:relative;display:grid;width:12.5rem;height:12.5rem;place-items:center;overflow:hidden;border:2px solid var(--dada-line);border-radius:1rem;background:#fff;box-shadow:0 6px #604a3614}.wx-qr-image{width:100%;height:100%;object-fit:contain}.wx-qr-hint{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;font-size:.85rem;color:var(--dada-muted);text-align:center}.wx-qr-retry{border:1px solid var(--dada-line);border-radius:.6rem;padding:.4rem 1rem;background:var(--dada-yellow);color:var(--dada-brown);font-size:.85rem;font-weight:700;cursor:pointer}.wx-qr-mask{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;background:#fffffff0}.wx-qr-mask-title{font-size:1.05rem;font-weight:800;color:#3d8a4f}.wx-qr-mask-sub{font-size:.8rem;color:var(--dada-muted)}.wx-qr-note{margin:.8rem 0 0;font-size:.75rem;color:var(--dada-muted)}.wx-divider{display:flex;align-items:center;gap:.8rem;width:100%;margin:1.6rem 0 1rem;color:var(--dada-line);font-size:.78rem}.wx-divider:before,.wx-divider:after{flex:1;border-top:1px solid var(--dada-line);content:""}.wx-alt-button,.wx-skip-button{border:1px solid var(--dada-line);border-radius:.7rem;padding:.6rem 1.4rem;background:transparent;color:var(--dada-muted);font-size:.88rem;cursor:pointer;transition:color .15s ease,border-color .15s ease}.wx-alt-button:hover,.wx-skip-button:hover{color:var(--dada-brown);border-color:var(--dada-brown)}.wx-bind .field{margin-bottom:.9rem}.wx-skip-button{width:100%;margin-top:.7rem}.beian-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 16px;margin:0;padding:22px 12px 10px;color:var(--dada-muted, #9b856c);font-size:11px;line-height:1.6;text-align:center}.beian-footer a{display:inline-flex;align-items:center;gap:4px;color:inherit;text-decoration:none}.beian-footer a:hover{text-decoration:underline}.beian-mps-icon{width:12px;height:auto}.login-page{--dada-cream: #fff8e8;--dada-paper: #f8eed8;--dada-yellow: #ffd43b;--dada-coral: #ff6b4a;--dada-cobalt: #3277e8;--dada-mint: #55cfaf;--dada-brown: #604a36;--dada-muted: #9b856c;--dada-line: #e9d9b9;position:relative;display:grid;grid-template-columns:minmax(21rem,.9fr) minmax(28rem,1.1fr);min-height:100dvh;overflow:hidden;isolation:isolate;color:var(--dada-brown);background:var(--dada-cream);font-family:Nunito,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}.login-page:before{position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.42;background-image:radial-gradient(circle at 12% 18%,rgba(255,212,59,.16) 0 1px,transparent 1.5px),radial-gradient(circle at 77% 66%,rgba(96,74,54,.08) 0 1px,transparent 1.5px),repeating-linear-gradient(0deg,rgba(96,74,54,.026) 0 1px,transparent 1px 5px);background-size:22px 22px,31px 31px,auto;content:""}.login-left,.login-right{position:relative;z-index:1}.login-left{display:flex;flex-direction:column;min-height:100dvh;overflow:hidden;padding:clamp(1.75rem,4vw,4rem);border-right:1px solid rgba(96,74,54,.12);background:radial-gradient(circle at 22% 8%,rgba(255,255,255,.72),transparent 25%),radial-gradient(circle at 86% 76%,rgba(85,207,175,.16),transparent 30%),#fff8e8ad}.login-left:before{position:absolute;top:-12rem;right:-11rem;width:29rem;height:29rem;border:1px solid rgba(50,119,232,.12);border-radius:50%;box-shadow:0 0 0 3rem #3277e80a,0 0 0 6rem #ff6b4a09;content:""}.login-left:after{position:absolute;bottom:-4rem;left:-5rem;width:14rem;height:14rem;border-radius:50%;background:#ffd43b2e;filter:blur(1px);content:""}.brand-lockup,.mobile-brand{position:relative;z-index:2;display:flex;align-items:center;gap:.72rem}.brand-logo{display:block;width:auto;height:3rem}.left-content{position:relative;z-index:2;max-width:33rem;margin-block:clamp(2.5rem,8vh,6.5rem) 1.8rem}.utility-label>span{display:inline-block;width:.46rem;height:.46rem;border-radius:50%;background:var(--dada-mint);box-shadow:0 0 0 .22rem #55cfaf24}.left-title{margin:0;color:var(--dada-brown);font-size:clamp(2.7rem,5.2vw,5.15rem);font-weight:900;letter-spacing:-.075em;line-height:1.02;text-wrap:balance}.left-title span{color:var(--dada-coral)}.left-desc{max-width:28rem;margin:1.3rem 0 0;color:#806c58;font-size:clamp(.9rem,1.2vw,1.02rem);line-height:1.85;text-wrap:pretty}.island-stage{position:relative;z-index:2;min-height:clamp(15rem,24vw,20rem);margin-top:auto;overflow:hidden;border:1px solid rgba(96,74,54,.14);border-radius:1.8rem 1.8rem 1.1rem;background:linear-gradient(160deg,#ffffffad,#f8eed833),#f5e6c7;box-shadow:0 1.5rem 2.5rem #604a361a,inset 0 1px #ffffffbd}.island-stage:before{position:absolute;inset:0;opacity:.42;background-image:radial-gradient(circle at 20% 30%,rgba(255,212,59,.26) 0 2px,transparent 2.5px),radial-gradient(circle at 68% 18%,rgba(50,119,232,.12) 0 1px,transparent 2px),repeating-linear-gradient(90deg,transparent 0 13px,rgba(96,74,54,.025) 13px 14px);background-size:36px 36px,28px 28px,auto;content:""}.stage-orbit{position:absolute;border:1px dashed rgba(50,119,232,.2);border-radius:50%;transform:rotate(-18deg)}.orbit-one{top:-4.8rem;left:22%;width:19rem;height:10rem}.orbit-two{right:8%;bottom:-5rem;width:16rem;height:9rem;border-color:#ff6b4a2e;transform:rotate(24deg)}.keycap{position:absolute;z-index:1;display:grid;width:clamp(3rem,5.3vw,4.25rem);height:clamp(2.55rem,4vw,3.35rem);place-items:center;border:1px solid rgba(96,74,54,.18);border-radius:.75rem;color:var(--dada-brown);background:#fff6df;box-shadow:0 .27rem #d4b77c,0 .8rem 1.3rem #604a361f,inset 0 1px #fffc;font-size:.76rem;font-weight:900;letter-spacing:.04em;transform:rotate(-8deg)}.keycap:after{position:absolute;inset:.28rem;border:1px solid rgba(96,74,54,.08);border-radius:.48rem;content:""}.keycap-a{top:1.35rem;left:1.5rem}.keycap-b{top:4.8rem;left:8.6rem;color:#a94b38;background:#ffe1d6;transform:rotate(8deg)}.keycap-space{bottom:1.35rem;left:18%;width:clamp(5.8rem,10vw,8rem);color:#367d6b;background:#e0f6ed;font-size:.62rem;transform:rotate(-3deg)}.paper-note{position:absolute;z-index:1;display:grid;place-items:center;width:3.6rem;height:2.45rem;color:#866b48;background:#fff0b9;box-shadow:0 .35rem #604a3614;font-size:.7rem;font-weight:800;transform:rotate(-10deg)}.note-one{top:1.1rem;left:38%}.note-two{right:34%;bottom:1rem;color:#397c69;background:#dcf3e9;transform:rotate(7deg)}.memory-progress{position:absolute;z-index:2;bottom:1.1rem;left:1.2rem;width:min(41%,12.5rem);padding:.78rem .88rem;border:1px solid rgba(255,255,255,.72);border-radius:.95rem;background:#fffaebc7;box-shadow:0 .7rem 1.5rem #604a3614,inset 0 1px #ffffffa6;-webkit-backdrop-filter:blur(.7rem);backdrop-filter:blur(.7rem)}.progress-label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:#806c58;font-size:.7rem;font-weight:700}.progress-label strong{color:var(--dada-coral);font-variant-numeric:tabular-nums}.login-progress-track{height:.38rem;margin-top:.65rem;overflow:hidden;border-radius:999px;background:#eedfc2}.login-progress-track span{display:block;width:70%;height:100%;border-radius:inherit;background:var(--dada-mint)}.memory-progress p{margin:.48rem 0 0;color:var(--dada-muted);font-size:.65rem}.mascot-window{position:absolute;right:1.15rem;bottom:.95rem;z-index:2;width:min(52%,16.5rem);aspect-ratio:1;overflow:hidden;border:.38rem solid rgba(255,250,235,.84);border-radius:1.35rem 1.35rem 3.4rem;box-shadow:0 .9rem 1.6rem #604a362b,0 0 0 1px #604a361f;transform:rotate(3deg);animation:mascot-float 6s ease-in-out infinite}.mascot-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center 49%}.left-footnote{position:relative;z-index:2;display:flex;align-items:center;gap:.45rem;margin:1.15rem 0 0;color:var(--dada-muted);font-size:.74rem;font-weight:700}.left-footnote span{color:var(--dada-yellow);text-shadow:0 1px 0 #d8a925}.login-right{display:flex;align-items:flex-start;justify-content:center;min-width:0;min-height:100dvh;max-height:100dvh;overflow-y:auto;padding:clamp(1.5rem,5vw,4.5rem);background:#fff8e875}.form-box{position:relative;width:min(100%,31rem);margin-block:auto;padding:clamp(1.45rem,3vw,2.35rem);border:1px solid rgba(96,74,54,.14);border-radius:1.9rem 1.2rem 1.4rem 2rem;background:#fffcf3d6;box-shadow:0 1.7rem 3rem #604a361c,0 .35rem #d8a9252e,inset 0 1px #ffffffc7}.form-box:before{position:absolute;top:-.55rem;left:16%;width:5.5rem;height:1.1rem;border:1px solid rgba(216,169,37,.15);background:#ffd43b7a;content:"";transform:rotate(-3deg)}.mobile-brand{display:none}.form-utility{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.35rem;color:var(--dada-muted);font-size:.66rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.utility-label{display:inline-flex;align-items:center;gap:.48rem;color:#397c69}.back-button{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 1.15rem;padding:.35rem 0;border:0;color:var(--dada-muted);background:transparent;font:inherit;font-size:.82rem;font-weight:800;cursor:pointer;transition:color .18s ease,transform .18s ease}.back-button:hover:not(:disabled){color:var(--dada-cobalt);transform:translate(-2px)}.form-heading{margin-bottom:1.7rem}.mode-label{margin:0 0 .65rem;color:var(--dada-coral);font-size:.72rem;font-weight:900;letter-spacing:.14em}.form-heading h2{margin:0;color:var(--dada-brown);font-size:clamp(2rem,3.5vw,2.8rem);font-weight:900;letter-spacing:-.065em;line-height:1.08;text-wrap:balance}.form-heading>p:last-child{max-width:26rem;margin:.75rem 0 0;color:var(--dada-muted);font-size:.9rem;line-height:1.7;text-wrap:pretty}.auth-form{display:flex;flex-direction:column;gap:1.08rem}.register-form{gap:.92rem}.field{display:flex;flex-direction:column;gap:.45rem}.field label,.label-row{color:var(--dada-brown);font-size:.82rem;font-weight:850}.label-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.label-row>span{color:var(--dada-muted);font-size:.69rem;font-weight:700}.field input,.field textarea{width:100%;border:1px solid var(--dada-line);border-radius:.78rem;outline:none;color:var(--dada-brown);background:#ffffff85;caret-color:var(--dada-cobalt);font:inherit;font-size:.9rem;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease}.field input{min-height:3.25rem;padding:.82rem .95rem}.field textarea{min-height:4.25rem;padding:.75rem .95rem;line-height:1.55;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#b7a58d}.field input:hover:not(:disabled),.field textarea:hover:not(:disabled){border-color:#3277e88c;background:#ffffffd1}.field input:focus,.field textarea:focus{border-color:var(--dada-cobalt);background:#fffdf7;box-shadow:0 0 0 .22rem #3277e824}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--dada-coral);background:#fff7f3;box-shadow:0 0 0 .22rem #ff6b4a24}.field input:disabled,.field textarea:disabled{cursor:not-allowed;opacity:.62;background:#f3ead8}.password-control{display:flex;align-items:stretch;min-width:0;overflow:hidden;border:1px solid var(--dada-line);border-radius:.78rem;background:#ffffff85;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.password-control:focus-within{border-color:var(--dada-cobalt);background:#fffdf7;box-shadow:0 0 0 .22rem #3277e824}.password-control:has(input[aria-invalid=true]){border-color:var(--dada-coral);background:#fff7f3;box-shadow:0 0 0 .22rem #ff6b4a24}.password-control input{flex:1 1 auto;min-width:0;border:0;border-radius:0;background:transparent;box-shadow:none}.password-control input:hover:not(:disabled),.password-control input:focus{border-color:transparent;background:transparent;box-shadow:none}.password-control button{flex:0 0 auto;min-width:3.45rem;padding:0 .78rem;border:0;border-left:1px solid rgba(96,74,54,.12);color:var(--dada-cobalt);background:transparent;font:inherit;font-size:.75rem;font-weight:900;cursor:pointer;transition:color .18s ease,background .18s ease}.password-control button:hover:not(:disabled){color:#245ebd;background:#3277e814}.password-control button:disabled{cursor:not-allowed;opacity:.5}.field-help{margin:0;color:var(--dada-muted);font-size:.7rem;line-height:1.55}.field-error{margin:0;color:#b34e39;font-size:.72rem;font-weight:700}.password-rules{display:grid;gap:.3rem;margin:.08rem 0 0;padding:0;color:var(--dada-muted);font-size:.69rem;line-height:1.45;list-style:none}.password-rules li{display:flex;align-items:flex-start;gap:.4rem}.rule-mark{display:inline-grid;flex:0 0 auto;width:1rem;height:1rem;place-items:center;border:1px solid #d8c5a3;border-radius:.32rem;color:#c3ad8c;font-size:.72rem;font-weight:900}.password-rules li.checked .rule-mark{color:var(--dada-coral);border-color:#ff6b4a52;background:#ff6b4a14}.password-rules li.met{color:#397c69}.password-rules li.met .rule-mark{color:#277c65;border-color:#55cfaf70;background:#55cfaf29}.message-area{display:flex;align-items:center;min-height:2.7rem}.error-message,.status-message{width:100%;margin:0;border-radius:.78rem;font-size:.76rem;line-height:1.5}.error-message{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.64rem .75rem;border:1px solid rgba(255,107,74,.28);color:#a94b38;background:#ff6b4a17;animation:message-in .18s ease-out both}.error-message>span{min-width:0}.error-message button{flex:0 0 auto;padding:0;border:0;color:#a94b38;background:transparent;font:inherit;font-size:.73rem;font-weight:900;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.status-message{display:flex;align-items:center;gap:.5rem;padding:.64rem .75rem;border:1px solid rgba(50,119,232,.2);color:#2d68c6;background:#3277e812}.status-message:before{width:.45rem;height:.45rem;border-radius:50%;background:var(--dada-cobalt);content:"";animation:status-pulse 1.1s ease-in-out infinite}.submit-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;width:100%;min-height:3.6rem;padding:.9rem 1.2rem;border:1px solid #255db8;border-radius:.9rem;color:#fffdf3;background:var(--dada-cobalt);box-shadow:0 4px #214e99,0 .8rem 1.4rem #3277e833;font:inherit;font-size:.92rem;font-weight:900;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,transform .18s ease,opacity .18s ease}.submit-button:hover:not(:disabled){background:#286ed4;transform:translateY(-1px)}.submit-button:active:not(:disabled){box-shadow:0 1px #214e99,0 .35rem .8rem #3277e829;transform:translateY(3px)}.submit-button:disabled{cursor:wait;opacity:.72}.button-loader{width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.mode-switch{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.3rem;padding-top:1.05rem;border-top:1px dashed rgba(96,74,54,.2);color:var(--dada-muted);font-size:.8rem}.mode-switch button{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem 0;border:0;color:var(--dada-cobalt);background:transparent;font:inherit;font-size:.8rem;font-weight:900;text-decoration:underline;text-decoration-color:#3277e861;text-underline-offset:.22em;cursor:pointer;transition:color .18s ease,transform .18s ease}.mode-switch button:hover:not(:disabled){color:#245ebd;transform:translate(2px)}.legal-note{margin-top:1.1rem;border-top:1px solid rgba(96,74,54,.1);color:var(--dada-muted);font-size:.69rem;line-height:1.65}.legal-note summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.82rem;color:#806c58;font-weight:800;cursor:pointer;list-style:none}.legal-note summary::-webkit-details-marker{display:none}.legal-note summary:after{flex:0 0 auto;color:var(--dada-coral);content:"+";font-size:1rem;font-weight:500;line-height:1}.legal-note[open] summary:after{content:"–"}.legal-note>div{padding-top:.45rem}.legal-note p{margin:.42rem 0 0}.legal-note strong{color:var(--dada-brown)}.login-page .beian-footer{margin-top:.9rem;padding:0;font-size:.68rem}.back-button:focus-visible,.password-control button:focus-visible,.submit-button:focus-visible,.mode-switch button:focus-visible,.legal-note summary:focus-visible{outline:3px solid rgba(50,119,232,.35);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes mascot-float{0%,to{transform:rotate(3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-.35rem)}}@keyframes status-pulse{0%,to{opacity:.42;transform:scale(.86)}50%{opacity:1;transform:scale(1)}}@keyframes message-in{0%{opacity:0;transform:translateY(-.2rem)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1080px){.login-page{grid-template-columns:minmax(19rem,.82fr) minmax(26rem,1.18fr)}.login-left{padding-inline:clamp(1.5rem,3vw,2.5rem)}.left-title{font-size:clamp(2.45rem,5vw,4.1rem)}.keycap-b,.note-one{display:none}}@media(max-width:820px){.login-page{display:block;overflow:visible}.login-left{min-height:auto;padding:1.5rem clamp(1.25rem,5vw,2.5rem) 1.35rem;border-right:0;border-bottom:1px solid rgba(96,74,54,.12)}.left-content{margin-block:2.2rem 1.25rem}.left-title{font-size:clamp(2.7rem,8vw,4.4rem)}.island-stage{min-height:16rem;margin-top:0}.login-right{min-height:auto;max-height:none;align-items:flex-start;overflow:visible;padding:1.5rem clamp(1.25rem,5vw,2.5rem) 2.8rem}}@media(max-width:520px){.login-page{overflow-x:clip}.login-left{padding:1.25rem 1rem 1rem}.brand-logo{height:2.6rem}.left-content{margin-block:1.75rem 1rem}.left-title{max-width:100%;font-size:clamp(2.15rem,10.6vw,2.8rem);letter-spacing:-.07em}.left-desc{max-width:100%;margin-top:1rem;font-size:.84rem;line-height:1.7;overflow-wrap:anywhere}.island-stage{min-height:13.5rem;border-radius:1.35rem 1.35rem .95rem}.keycap{width:2.9rem;height:2.45rem;border-radius:.62rem;font-size:.64rem}.keycap-a{top:1.05rem;left:.95rem}.keycap-space{bottom:.9rem;left:4.8rem;width:5rem;font-size:.5rem}.memory-progress{bottom:.85rem;left:.85rem;width:8.7rem;padding:.62rem .68rem}.progress-label{font-size:.61rem}.memory-progress p{font-size:.58rem}.mascot-window{right:.65rem;bottom:.65rem;width:9.8rem;border-width:.28rem;border-radius:1rem 1rem 2.5rem}.left-footnote{margin-top:.9rem;font-size:.68rem}.login-right{padding:1rem .8rem 2rem}.form-box{width:100%;padding:1.35rem 1rem 1.45rem;border-radius:1.35rem .95rem 1.1rem 1.45rem}.form-utility{margin-bottom:1.1rem}.form-heading{margin-bottom:1.35rem}.form-heading h2{font-size:2rem}.form-heading>p:last-child{margin-top:.62rem;font-size:.82rem}.auth-form{gap:.92rem}.register-form{gap:.82rem}.field input{min-height:3.35rem}.submit-button{min-height:3.55rem}.mode-switch{align-items:flex-start;flex-direction:column;gap:.35rem}}@media(prefers-reduced-motion:reduce){.login-page *,.login-page *:before,.login-page *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.settings-form{width:100%;min-width:0}.settings-panel{width:min(1080px,100%);min-height:620px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 72%,#fff);border-radius:24px;background:var(--dada-paper);color:var(--ink);box-shadow:0 24px 70px #3f2d1c40,0 4px #704e2514}.settings-panel.is-modal{height:min(86dvh,820px)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px 19px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--dada-paper) 92%,#fff)}.settings-eyebrow{margin:0 0 5px;color:var(--accent-strong);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.panel-head h2{margin:0;color:var(--ink);font-size:clamp(23px,3vw,30px);letter-spacing:-.035em}.head-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.reset-button{min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink-soft);background:transparent;font-size:12px;font-weight:700;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease,transform .2s ease}.reset-button:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft);transform:translateY(-1px)}.settings-close{display:inline-grid;width:48px;height:48px;place-items:center;padding:0 0 3px;border:0;border-radius:14px;color:var(--ink-soft);background:transparent;font-size:34px;font-weight:300;line-height:1;cursor:pointer}.settings-close:hover{color:var(--ink);background:color-mix(in srgb,var(--line) 30%,transparent)}.settings-body{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:0;height:calc(100% - 100px)}.category-nav{overflow-y:auto;padding:18px 12px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--dada-paper) 84%,#fff)}.category-button{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr) 13px;align-items:center;gap:10px;width:100%;min-height:62px;margin:3px 0;padding:9px 10px;border:1px solid transparent;border-radius:15px;color:var(--ink-soft);background:transparent;text-align:left;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}.category-button:hover{color:var(--ink);background:color-mix(in srgb,var(--accent-soft) 42%,transparent);transform:translate(2px)}.category-button.active{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));color:var(--accent-strong);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.category-icon{display:grid;width:30px;height:30px;place-items:center;border-radius:10px;color:currentColor}.category-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.category-copy{display:grid;gap:2px;min-width:0}.category-copy strong{font-size:14px;font-weight:800}.category-copy small{overflow:hidden;color:currentColor;font-size:10px;line-height:1.35;opacity:.7;text-overflow:ellipsis;white-space:nowrap}.category-chevron{color:currentColor;font-size:22px;line-height:1;opacity:.45}.settings-scroll{overflow-y:auto;min-width:0;padding:30px clamp(20px,4vw,54px) 42px;scroll-behavior:smooth}.setting-card{max-width:760px;margin:0 auto;padding:12px 24px 14px;border:1px solid color-mix(in srgb,var(--line) 80%,#fff);border-radius:19px;background:color-mix(in srgb,var(--dada-paper) 72%,#fff);box-shadow:0 3px color-mix(in srgb,var(--paper-shadow) 70%,transparent)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:72px;padding:12px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}.setting-row:last-child{border-bottom:0}.setting-copy{display:grid;gap:4px;min-width:0}.setting-copy strong{color:var(--ink);font-size:14px;font-weight:750}.setting-copy small{max-width:52ch;color:var(--ink-soft);font-size:11px;line-height:1.45}.preview-setting-row{display:grid;gap:13px;padding:17px 0 19px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}.preview-setting-row:last-child{border-bottom:0}.preview-choice-grid{display:grid;gap:10px}.background-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.font-choice-grid{grid-template-columns:1fr}.preview-choice{display:flex;min-width:0;border:1px solid var(--line);border-radius:14px;color:var(--ink-soft);background:color-mix(in srgb,var(--dada-paper) 75%,#fff);cursor:pointer;text-align:left;transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}.preview-choice:hover{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));color:var(--ink);background:color-mix(in srgb,var(--accent-soft) 34%,var(--dada-paper));transform:translateY(-1px)}.preview-choice:active{transform:translateY(1px) scale(.99)}.preview-choice:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.preview-choice.selected{border-color:var(--accent);color:var(--accent-strong);background:color-mix(in srgb,var(--accent-soft) 62%,var(--dada-paper));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 26%,transparent)}.background-choice{flex-direction:column;align-items:stretch;gap:8px;min-height:93px;padding:9px;font-size:11px;font-weight:750}.background-choice.muted{opacity:.62}.background-swatch{display:flex;flex:1 1 auto;min-height:53px;flex-direction:column;justify-content:center;gap:5px;padding:10px;overflow:hidden;border:1px solid rgba(88,67,45,.14);border-radius:9px}.background-swatch-line{display:block;width:78%;height:4px;border-radius:999px;background:#54402b40}.background-swatch-line.short{width:52%}.font-choice{align-items:center;gap:14px;min-height:72px;padding:12px 15px}.font-choice-label{flex:0 0 24px;color:var(--ink-soft);font-size:14px;font-weight:800}.font-choice.selected .font-choice-label{color:var(--accent-strong)}.prompt-preview,.phonetic-preview{color:var(--ink);white-space:nowrap}.prompt-preview{font-weight:750;line-height:1.2}.prompt-preview-s{font-size:20px}.prompt-preview-m{font-size:27px}.prompt-preview-l{font-size:34px}.phonetic-preview{line-height:1}.phonetic-preview-s{font-size:14px}.phonetic-preview-m{font-size:19px}.phonetic-preview-l{font-size:25px}.setting-row select,.number-control input{min-width:176px;min-height:44px;padding:8px 34px 8px 13px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--dada-cream);font-size:13px;cursor:pointer}.setting-row select:disabled{opacity:.52;cursor:not-allowed}.control-inline,.range-control,.number-control{display:flex;align-items:center;gap:10px;flex:0 0 auto}.control-inline select{min-width:205px}.icon-action{display:inline-grid;width:44px;height:44px;place-items:center;padding:0 0 1px 2px;border:1px solid var(--line);border-radius:12px;color:var(--accent-strong);background:var(--accent-soft);font-size:14px;cursor:pointer;transition:transform .2s ease,background .2s ease}.icon-action:hover{background:color-mix(in srgb,var(--accent-soft) 70%,var(--accent));transform:translateY(-1px)}.range-control input[type=range]{width:clamp(140px,22vw,290px);accent-color:var(--accent);cursor:pointer}.range-control output{min-width:48px;color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.number-control input{min-width:118px;padding-right:10px}.number-control span{margin-left:-2px;color:var(--ink-soft);font-size:12px}.switch-hit{display:inline-flex;align-items:center;justify-content:center;width:64px;min-width:64px;height:48px;margin:-4px -4px -4px 0;border-radius:14px;cursor:pointer}.switch-hit:hover{background:color-mix(in srgb,var(--accent-soft) 65%,transparent)}.switch-control{position:relative;width:52px;height:28px;margin:0;padding:0;border:2.5px solid #c4b89e;border-radius:50px;appearance:none;background:#d4c9b4;box-shadow:inset 0 2px 4px #725d4226;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.switch-control:after{position:absolute;top:50%;left:2px;width:21px;height:21px;border:2.5px solid #c4b89e;border-radius:50%;background:#f7f3df;box-shadow:0 1px 2px #3f2d1c1f;content:"";transform:translateY(-50%);transition:all .25s cubic-bezier(.4,0,.2,1)}.switch-control:hover:not(:disabled){border-color:#a89878}.switch-control:checked{border-color:#6fba2c;background:#86d67a;box-shadow:inset 0 2px 4px #5a9e1e33}.switch-control:checked:hover:not(:disabled){border-color:#5a9e1e;background:#7ccc70}.switch-control:checked:after{left:calc(100% - 24px);border-color:#6fba2c;transform:translateY(-50%)}.switch-control:disabled{opacity:.5;cursor:not-allowed}.switch-control:focus-visible{outline:2px solid #ffcc00;outline-offset:2px}.shortcut-row{min-height:64px}.key-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:128px;min-height:44px;padding:7px 12px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--dada-cream);font-size:12px;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease,transform .2s ease}.key-button:hover,.key-button.capturing{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft);transform:translateY(-1px)}.key-button kbd{padding:4px 7px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;color:var(--ink);background:var(--dada-paper);font-size:11px}.state-error,.settings-inline-error{color:var(--bad)}.settings-inline-error{max-width:760px;margin:10px auto 0;font-size:12px}.settings-state-card{display:grid;justify-items:center;gap:8px;max-width:520px;margin:24px auto;padding:58px 24px;border:1px dashed var(--line);border-radius:18px;color:var(--ink-soft);text-align:center}.settings-state-card strong{color:var(--ink);font-size:16px}.settings-state-card span{font-size:12px}.loading-dot{width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 7px var(--accent-soft);animation:settings-pulse 1.1s ease-in-out infinite}@keyframes settings-pulse{50%{transform:scale(.72);opacity:.55}}@media(max-width:720px){.settings-panel{min-height:0;border-radius:18px}.settings-panel.is-modal{height:min(92dvh,900px)}.panel-head{padding:18px 16px 15px}.panel-head h2{font-size:24px}.reset-button{display:none}.settings-close{width:44px;height:44px}.settings-body{display:flex;flex-direction:column;height:calc(100% - 91px)}.category-nav{display:flex;flex:0 0 auto;gap:6px;overflow-x:auto;padding:9px 10px;border-right:0;border-bottom:1px solid var(--line)}.category-button{grid-template-columns:25px auto;flex:0 0 auto;width:auto;min-width:92px;min-height:48px;padding:7px 10px;border-radius:12px}.category-button.active{box-shadow:inset 0 -3px 0 var(--accent)}.category-icon{width:25px;height:25px}.category-icon svg{width:18px;height:18px}.category-copy small,.category-chevron{display:none}.category-copy strong{font-size:12px;white-space:nowrap}.settings-scroll{padding:22px 14px 30px}.setting-card{padding-inline:16px;border-radius:16px}.setting-row{align-items:flex-start;gap:15px;min-height:68px}.setting-row select,.control-inline select{min-width:132px;max-width:46vw}.control-inline{align-items:flex-start}.range-control{width:46vw;flex-wrap:wrap;justify-content:flex-end}.range-control input[type=range]{width:100%}.range-control output{width:auto}.number-control input{min-width:98px}}@media(max-width:420px){.category-button{min-width:82px;padding-inline:8px}.category-copy strong{font-size:11px}.setting-row{flex-direction:column}.setting-row select,.control-inline,.control-inline select,.number-control,.range-control{width:100%;max-width:none}.switch-hit{align-self:flex-end;margin-top:-48px}.range-control{justify-content:flex-start}.range-control input[type=range]{width:100%}.background-choice-grid{gap:7px}.background-choice{padding:7px;font-size:10px}.font-choice{min-height:68px;padding-inline:11px}.prompt-preview-l{font-size:29px}}.font-style-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.font-style-choice{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:12px;min-height:100px;padding:12px 14px}.font-style-preview{color:var(--ink);font-size:19px;font-weight:750;line-height:1.2;white-space:nowrap}.font-style-rounded .font-style-preview{font-family:ui-rounded,Nunito,Trebuchet MS,Microsoft YaHei,system-ui,sans-serif}.font-style-serif .font-style-preview{font-family:Songti SC,STSong,SimSun,serif}@media(max-width:420px){.font-style-choice-grid{grid-template-columns:1fr}.font-style-choice{min-height:76px}}.mask{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:22px;background:#1f1c188c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:settings-mask-in .2s ease-out both}.dialog{width:min(1080px,100%);max-height:100%}@keyframes settings-mask-in{0%{opacity:0}to{opacity:1}}@media(max-width:720px){.mask{padding:8px}}.user-menu{position:relative;flex:0 0 auto}.user-menu-trigger{display:inline-flex;align-items:center;gap:8px;min-height:38px;max-width:180px;padding:4px 9px 4px 5px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--dada-cream);cursor:pointer;box-shadow:0 2px color-mix(in srgb,var(--paper-shadow) 75%,transparent);transition:border-color .2s ease,background-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.user-menu-trigger:hover{border-color:color-mix(in srgb,var(--line) 55%,var(--warm-strong));color:var(--warm-strong);background:var(--warm-hover);box-shadow:0 3px color-mix(in srgb,var(--paper-shadow) 85%,transparent);transform:translateY(-1px)}.user-avatar{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:50%;color:#fff;background:#c7833c;box-shadow:inset 0 -2px #603d1c2e;font-size:12px;font-weight:800}.user-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}.user-menu-chevron{color:var(--ink-soft);font-size:15px;line-height:1}.user-menu-popover{position:absolute;top:calc(100% + 9px);right:0;z-index:30;width:220px;padding:8px;border:1px solid var(--line);border-radius:16px;background:var(--dada-paper);box-shadow:0 9px 24px #604a3629,0 2px 0 var(--paper-shadow)}.user-menu-popover a,.user-menu-logout,.user-menu-popover button[role=menuitem]{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:8px 10px;border:0;border-radius:10px;color:var(--ink);background:transparent;font-size:13px;text-align:left;cursor:pointer;transition:color .18s ease,background-color .18s ease,transform .18s ease}.user-menu-popover a svg,.user-menu-popover button[role=menuitem] svg{flex:0 0 auto}.user-menu-popover a:hover,.user-menu-logout:hover,.user-menu-popover button[role=menuitem]:hover{color:var(--warm-strong);background:var(--warm-hover);transform:translate(2px)}.user-menu-divider{height:1px;margin:5px 4px;background:var(--line)}.user-menu-logout{color:var(--bad)}.user-menu-logout:hover{color:#b42318;background:#fff1ef}.user-menu-diamond-count{margin-left:auto;color:var(--accent-strong);font-weight:800;font-variant-numeric:tabular-nums}.user-menu-error{margin:5px 10px 3px;color:var(--bad);font-size:11px;line-height:1.5}@media(max-width:560px){.user-menu-trigger{max-width:142px}.user-menu-name{max-width:78px}}.standard-shell{min-height:100dvh}.skip-link{position:fixed;top:8px;left:12px;z-index:100;padding:8px 12px;border-radius:8px;color:#fff;background:var(--ink);transform:translateY(-160%);transition:transform .15s ease}.skip-link:focus{transform:translateY(0)}.standard-header{display:flex;align-items:center;gap:16px;width:min(calc(100% - 32px),1240px);min-height:62px;margin:14px auto 0;padding:8px 12px 8px 16px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--dada-paper) 92%,transparent);box-shadow:0 3px 0 var(--paper-shadow);position:sticky;top:14px;z-index:var(--z-nav);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand-link{display:inline-flex;flex:0 0 auto;align-items:center;padding:2px;background:transparent}.brand-link img{display:block;width:auto;height:38px;object-fit:contain}.shell-page-title{display:none;color:var(--ink-soft);font-size:13px;font-weight:700}.desktop-primary-nav{display:flex;align-items:center;gap:4px;margin-left:auto;color:var(--ink-soft);font-size:14px}.desktop-primary-nav a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;white-space:nowrap;transition:background-color .2s ease,color .2s ease,transform .2s ease}.desktop-primary-nav a svg{flex:0 0 auto}.desktop-primary-nav a:hover{color:var(--warm-strong);background:var(--warm-hover);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 72%,transparent);transform:translateY(-1px)}.desktop-primary-nav a.active{color:var(--ink);background:var(--warm-active);box-shadow:inset 0 0 0 1px color-mix(in srgb,#d5a936 35%,transparent);font-weight:700}.desktop-primary-nav a.active:hover{color:var(--ink);background:color-mix(in srgb,var(--warm-active) 86%,var(--dada-yellow))}.standard-main{min-height:calc(100dvh - 92px);padding-bottom:28px}.standard-main:focus{outline:none}.mobile-bottom-nav{display:none}@media(max-width:760px){.standard-header{width:min(calc(100% - 20px),620px);margin-top:10px;padding:8px 10px 7px;gap:9px}.brand-link img{height:34px}.shell-page-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desktop-primary-nav{display:none}.standard-main{min-height:calc(100dvh - 76px);padding-bottom:92px}.mobile-bottom-nav{position:fixed;right:10px;bottom:max(10px,env(safe-area-inset-bottom));left:10px;z-index:var(--z-nav);display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:7px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--dada-paper) 94%,transparent);box-shadow:0 4px 0 var(--paper-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-bottom-nav a{display:grid;justify-items:center;gap:3px;padding:6px 3px;border-radius:12px;color:var(--ink-soft);font-size:11px;font-weight:700}.mobile-bottom-nav a svg{width:20px;height:20px}.mobile-bottom-nav a.active{color:var(--warm-strong);background:var(--warm-active)}}.immersive-shell{min-height:100dvh;background:var(--bg)}.immersive-header{display:flex;align-items:center;justify-content:space-between;width:min(calc(100% - 28px),1320px);min-height:50px;margin:0 auto;padding-top:max(8px,env(safe-area-inset-top))}.immersive-brand{display:inline-flex;align-items:center;padding:3px 6px 3px 3px;border-radius:12px;background:var(--dada-cream)}.immersive-brand img{display:block;width:auto;height:30px}.immersive-back{padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:var(--dada-paper);font-size:13px;font-weight:700}.immersive-back:hover{color:var(--accent-strong);border-color:var(--accent)}.immersive-main{min-height:calc(100dvh - 50px)}.admin-shell{min-height:100dvh;background:var(--bg)}.admin-shell-header{display:flex;align-items:center;gap:14px;width:min(calc(100% - 32px),1320px);min-height:64px;margin:0 auto;padding-top:max(10px,env(safe-area-inset-top))}.admin-brand{display:inline-flex;padding:3px 6px 3px 3px;border-radius:12px;background:var(--dada-cream)}.admin-brand img{display:block;height:34px;width:auto}.admin-context{display:grid;gap:2px;color:var(--ink)}.admin-context span{font-size:15px;font-weight:800}.admin-context small{color:var(--ink-soft);font-size:11px}.admin-return{margin-left:auto;padding:8px 13px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:var(--dada-paper);font-size:13px;font-weight:700}.admin-return:hover{color:var(--accent-strong);border-color:var(--accent)}.admin-shell-main{min-height:calc(100dvh - 64px)}@media(max-width:560px){.admin-shell-header{width:min(calc(100% - 20px),1320px);gap:9px}.admin-brand img{height:30px}.admin-context small{display:none}.admin-return{padding-inline:10px;font-size:12px}}.kanban-migrate-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px;background:#281c0c73}.kanban-migrate-dialog{width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:var(--radius-card);background:var(--bg);color:var(--ink);box-shadow:0 12px 40px #704e2547}.kanban-migrate-dialog.wide{max-width:560px}.kanban-migrate-dialog h2{margin:0;font-size:17px}.kanban-migrate-dialog p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}.kanban-migrate-error{color:var(--bad)!important}.kanban-migrate-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:560px){.kanban-migrate-compare{grid-template-columns:1fr}}.kanban-migrate-side{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-control)}.kanban-migrate-side.recommended{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.kanban-migrate-side h3{margin:0;font-size:13px;font-weight:600;color:var(--ink-soft);display:flex;align-items:center;justify-content:space-between;gap:8px}.kanban-migrate-rec{padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent-strong)}.kanban-migrate-side-title{margin:0;font-size:14px;font-weight:600;color:var(--ink)!important}.kanban-migrate-stats{font-size:13px!important}.kanban-migrate-badge{margin:0;padding:4px 8px;border-radius:var(--radius-control);font-size:12px!important;background:var(--accent-soft);color:var(--accent-strong)!important}.kanban-migrate-warn{color:var(--bad)!important}.kanban-migrate-actions{display:flex;justify-content:flex-end;gap:8px}.kanban-migrate-actions button{padding:8px 14px;border:none;border-radius:var(--radius-control);font-size:14px;cursor:pointer;background:var(--accent-soft);color:var(--accent-strong)}.kanban-migrate-actions button:disabled{opacity:.5;cursor:default}.kanban-migrate-actions .primary{background:var(--accent);color:#fff}.kanban-migrate-actions .danger{background:var(--dada-coral-soft);color:var(--bad)}.loading-root{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--ink-soft);font-size:14px}.loading-spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:app-shell-spin 1s linear infinite}@keyframes app-shell-spin{to{transform:rotate(360deg)}}.home-page{width:min(calc(100% - 48px),1160px);margin:0 auto;padding:26px 0 64px}.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 322px;gap:20px;align-items:start}.home-main{display:flex;min-width:0;flex-direction:column;gap:22px}.home-side{display:flex;min-width:0;flex-direction:column;gap:18px}.hero-card{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:322px;overflow:hidden;padding:24px 24px 24px 40px;border-radius:26px;background:#fdf6dc;box-shadow:0 10px 30px #b48e2c1a}.hero-copy{min-width:0}.hero-copy h1{margin:0;color:#54401f;font-size:clamp(28px,3.4vw,38px);font-weight:900;letter-spacing:-.02em;line-height:1.15}.hero-wave{display:inline-block;margin-left:6px;font-size:.8em}.hero-sub{margin:12px 0 0;color:#8d745a;font-size:14px}.hero-streak{margin:26px 0 0;color:#6b5136;font-size:17px;font-weight:800}.hero-streak strong{margin:0 2px;color:#ff7a1a;font-family:Nunito,Trebuchet MS,sans-serif;font-size:30px;line-height:1;vertical-align:-3px}.hero-note{margin:12px 0 0;color:#a08b6e;font-size:12.5px}.hero-visual{position:relative;flex:0 0 auto;width:min(48%,440px)}.hero-art{display:block;width:100%;height:auto}.hero-bubble{position:absolute;top:22%;left:-4%;padding:10px 14px;border-radius:14px;background:#fff;color:#8d745a;font-size:12px;font-weight:700;line-height:1.55;box-shadow:0 4px 12px #b48e2c24}.hero-bubble:after{content:"";position:absolute;right:-7px;bottom:12px;border:8px solid transparent;border-left-color:#fff;border-right:0}.home-section-head h2{margin:0;color:#54401f;font-size:21px;font-weight:900}.home-section-head p{margin:6px 0 14px;color:#a08b6e;font-size:12.5px}.study-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.study-card{display:flex;flex-direction:column;align-items:center;padding:24px 18px 20px;border:1px solid #f6ecd4;border-radius:22px;background:#fff;box-shadow:0 6px 18px #b48e2c14;transition:transform .2s ease,box-shadow .2s ease}.study-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px #b48e2c24}.study-card h3{margin:0;color:#54401f;font-size:18px;font-weight:900}.study-tagline{margin:6px 0 4px;color:#a08b6e;font-size:12px}.study-icon{width:132px;height:122px;object-fit:contain}.study-stats{display:grid;grid-template-columns:1fr 1fr;width:100%;margin:8px 0 16px}.study-stats>div{display:grid;justify-items:center;gap:4px}.study-stats span{color:#a08b6e;font-size:11.5px}.study-stats strong{color:#54401f;font-family:Nunito,Trebuchet MS,sans-serif;font-size:22px;font-weight:800}.study-stats i{margin-left:3px;font-family:inherit;font-size:12px;font-style:normal;font-weight:700}.study-btn{display:block;width:100%;padding:12px 0;border-radius:999px;color:#fff;font-size:14px;font-weight:800;text-align:center;text-decoration:none;transition:filter .15s ease,transform .15s ease}.study-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.study-btn-green{background:#82c94c;box-shadow:0 4px 12px #78bd4047}.study-btn-blue{background:#63a6f3;box-shadow:0 4px 12px #589bf047}.study-btn-purple{background:#b395f1;box-shadow:0 4px 12px #a988ef47}.goal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.goal-head h2{margin:0;color:#54401f;font-size:17px;font-weight:900}.goal-hint{margin-left:8px;color:#a08b6e;font-size:12px;font-weight:400}.goal-setting{flex:0 0 auto;padding:7px 14px;border:0;border-radius:999px;background:#ffe9a3;color:#8a6d1f;font-family:inherit;font-size:12px;font-weight:800;text-decoration:none;cursor:pointer}.goal-setting:hover{background:#ffe18a}.goal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.goal-card{display:flex;align-items:center;gap:10px;padding:16px;border:1px solid #f6ecd4;border-radius:18px;background:#fff;box-shadow:0 4px 14px #b48e2c12}.goal-info{display:grid;min-width:0;flex:1;gap:3px}.goal-info strong{color:#54401f;font-size:14px;font-weight:800}.goal-info>span{overflow:hidden;color:#a08b6e;font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.goal-count{margin-top:4px;font-family:Nunito,Trebuchet MS,sans-serif;font-size:13px;font-style:normal;font-weight:800}.goal-green{color:#78bd40}.goal-blue{color:#589bf0}.goal-purple{color:#a988ef}.goal-bar{height:7px;margin-top:5px;overflow:hidden;border-radius:999px;background:#f3ecd9}.goal-fill{display:block;height:100%;border-radius:inherit;background:currentColor;transition:width .4s ease}.goal-icon{flex:0 0 auto;width:52px;height:52px;object-fit:contain}.goal-modal-overlay{position:fixed;z-index:var(--z-modal);inset:0;display:grid;place-items:center;padding:20px;background:#604a3661}.goal-modal{width:min(100%,400px);padding:24px 24px 20px;border:1px solid #f6ecd4;border-radius:22px;background:#fffdf6;box-shadow:0 24px 60px #604a3647}.goal-modal h3{margin:0;color:#54401f;font-size:17px;font-weight:900}.goal-modal-hint{margin:8px 0 16px;color:#a08b6e;font-size:12.5px}.goal-modal-row{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid #f6ecd4;border-radius:14px;background:#fff;cursor:text}.goal-modal-row+.goal-modal-row{margin-top:10px}.goal-modal-row img{flex:0 0 auto;width:34px;height:34px;object-fit:contain}.goal-modal-name{color:#54401f;font-size:13.5px;font-weight:800}.goal-modal-desc{margin-left:auto;color:#a08b6e;font-size:12px}.goal-modal-row input{width:56px;padding:7px 6px;border:1px solid #eadfc6;border-radius:10px;background:#fffdf6;color:#54401f;font-family:Nunito,Trebuchet MS,sans-serif;font-size:15px;font-weight:800;text-align:center}.goal-modal-row input:focus{border-color:#ffd43b;outline:2px solid rgba(255,212,59,.35)}.goal-modal-unit{color:#a08b6e;font-size:12px}.goal-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.goal-modal-actions button{padding:10px 22px;border:0;border-radius:999px;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer}.goal-modal-cancel{background:#f3ecd9;color:#8d745a}.goal-modal-cancel:hover{background:#eadfc6}.goal-modal-save{background:linear-gradient(180deg,#93d258,#78bd40);color:#fff;box-shadow:0 4px 10px #78bd4059}.goal-modal-save:hover{filter:brightness(1.05)}.cheer-banner{display:flex;align-items:center;gap:30px;padding:12px 40px;border-radius:22px;background:linear-gradient(90deg,#fff3c4,#ffe9a8);box-shadow:0 6px 18px #b48e2c1a}.cheer-banner img{width:108px;height:100px;object-fit:contain}.cheer-banner p{margin:0;color:#8a6d1f;font-size:15.5px;font-weight:800;line-height:1.75}.side-card{padding:20px;border:1px solid #f1e6cd;border-radius:20px;background:#fffdf6;box-shadow:0 6px 18px #b48e2c14}.side-card h2{margin:0 0 14px;color:#54401f;font-size:16px;font-weight:900}.growth-level{display:flex;align-items:center;gap:12px}.growth-badge{width:44px;height:48px;object-fit:contain}.growth-level-info{min-width:0;flex:1}.growth-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.growth-title-row strong{color:#54401f;font-size:14px;font-weight:800}.growth-lv{color:#c9a227;font-size:12px;font-weight:800}.growth-bar{height:9px;overflow:hidden;border-radius:999px;background:#f3ecd9}.growth-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5fd4b4,#8fe6cd);transition:width .4s ease}.growth-next{margin:12px 0 0;color:#a08b6e;font-size:12px}.growth-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:16px;padding-top:16px;border-top:1px solid #f6ecd4}.growth-stats>div{display:grid;justify-items:center;gap:3px}.growth-emoji{font-size:17px}.growth-stats strong{color:#54401f;font-family:Nunito,Trebuchet MS,sans-serif;font-size:17px;font-weight:800}.growth-stats>div>span:last-child{color:#a08b6e;font-size:11px}.home-calendar{padding:2px 6px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-weekdays{margin-bottom:5px}.calendar-weekdays span{color:#c0ae8d;font-size:10.5px;font-weight:700;text-align:center}.calendar-day{display:grid;place-items:center;aspect-ratio:1;border-radius:9px;color:#a08b6e;font-family:Nunito,Trebuchet MS,sans-serif;font-size:12px;font-weight:700}.calendar-day.active{background:#82c94c;color:#fff;box-shadow:0 3px 8px #78bd4052}.calendar-day.today:not(.active){box-shadow:inset 0 0 0 1.5px #ffd43b;color:#54401f}.calendar-blank{aspect-ratio:1}.recent-head{margin-bottom:6px}.recent-head h2{margin:0}.recent-list{display:flex;flex-direction:column}.recent-row{display:flex;align-items:center;gap:12px;padding:12px 0}.recent-row+.recent-row{border-top:1px solid #f8f0dd}.recent-icon{flex:0 0 auto;width:42px;height:42px;padding:6px;border-radius:12px;object-fit:contain}.recent-word{background:#e9f7e1}.recent-sentence{background:#e8f1fe}.recent-poetry{background:#f1eafd}.recent-copy{min-width:0;flex:1}.recent-copy h3{overflow:hidden;margin:0;color:#54401f;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.recent-copy p{margin:4px 0 0;color:#a08b6e;font-size:11.5px}.recent-score{flex:0 0 auto;color:#f5a623;font-size:12.5px;font-weight:800}.recent-empty{margin:4px 0 10px;color:#a08b6e;font-size:12.5px;line-height:1.7}.recent-all{display:block;margin-top:10px;padding-top:14px;border-top:1px solid #f6ecd4;color:#2f9e8f;font-size:12.5px;font-weight:800;text-align:center;text-decoration:none}.recent-all:hover{text-decoration:underline}.home-loading{display:flex;flex-direction:column;gap:20px;padding:32px 0}.loading-heading{display:grid;gap:9px}.skeleton-line{display:block;height:15px;border-radius:999px;background:var(--line)}.skeleton-line.short{width:90px}.skeleton-line.wide{width:min(320px,70%);height:34px}.skeleton-block{position:relative;overflow:hidden;min-height:150px;border:1px solid var(--line);border-radius:22px;background:var(--dada-paper)}.main-skeleton{min-height:300px}.loading-secondary{display:grid;grid-template-columns:1fr 1fr;gap:20px}.skeleton-block:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.42) 50%,transparent 80%);transform:translate(-100%);animation:shimmer 1.3s ease-in-out infinite}.home-error{width:min(100%,620px);margin:12vh auto 0;padding:30px;border:1px solid #f0b8aa;border-radius:22px;background:var(--dada-coral-soft)}.home-error h1{margin:0;color:var(--dada-brown);font-size:27px;letter-spacing:-.05em}.home-error p{margin:12px 0 20px;color:var(--ink-soft);font-size:14px;line-height:1.75}@keyframes shimmer{to{transform:translate(100%)}}@media(max-width:1080px){.home-layout{grid-template-columns:1fr}.home-side{flex-direction:row;flex-wrap:wrap}.home-side>*{flex:1 1 260px}}@media(max-width:680px){.home-page{width:min(calc(100% - 24px),1160px);padding-top:18px}.hero-card{flex-direction:column;align-items:stretch;min-height:0;padding:22px 20px 16px}.hero-visual{width:88%;margin:10px auto 0}.hero-bubble{left:auto;right:0;top:8%}.study-grid,.goal-grid{grid-template-columns:1fr}.cheer-banner{gap:14px;padding:12px 20px}.cheer-banner img{width:72px;height:68px}.cheer-banner p{font-size:13.5px}}.category-manager{display:grid;gap:18px;padding:22px}.category-manager-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px}.category-manager-head h2{margin:0;font-size:22px;letter-spacing:-.03em}.category-manager-head>div>p:last-child{max-width:560px;margin:7px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.6}.domain-switch{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:5px;min-width:min(100%,430px);padding:4px;border:1px solid var(--line);border-radius:14px;background:#fbfbfd}.domain-switch button{display:grid;gap:2px;padding:9px 10px;border:0;border-radius:10px;color:var(--ink-soft);background:transparent;font:inherit;text-align:left;cursor:pointer}.domain-switch button.active{color:var(--accent-strong);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,var(--line))}.domain-switch strong{font-size:12px}.domain-switch small{font-size:10px;opacity:.75}.manager-notice{margin:0;padding:10px 12px;border:1px solid #b7ebcd;border-radius:10px;color:#18794e;background:#ecfdf3;font-size:13px}.manager-state{display:grid;justify-items:center;gap:8px;padding:44px 20px;border:1px dashed var(--line);border-radius:14px;color:var(--ink-soft);text-align:center}.manager-state strong{color:var(--ink)}.manager-state button{padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.manager-error{color:#b42318;background:#fff8f7}.category-layout{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.55fr);min-height:360px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}.root-list{padding:14px;border-right:1px solid var(--line);background:#fbfbfd}.list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.list-head div{display:flex;align-items:center;gap:7px}.list-head span{color:var(--ink-soft);font-size:12px;font-weight:700}.list-head strong{display:inline-grid;min-width:21px;height:21px;place-items:center;border-radius:7px;color:var(--accent-strong);background:var(--accent-soft);font-size:11px}.list-head button,.detail-actions button,.acm-row-actions button,.form-head button{padding:6px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink-soft);background:#fff;font:inherit;font-size:11px;cursor:pointer}.list-head button:hover,.detail-actions button:hover,.acm-row-actions button:hover{color:var(--accent-strong);border-color:var(--accent)}.root-item{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:5px;padding:10px;border:1px solid transparent;border-radius:10px;color:var(--ink);background:transparent;font:inherit;text-align:left;cursor:pointer}.root-item:hover{background:#fff}.root-item.active{border-color:color-mix(in srgb,var(--accent) 28%,var(--line));color:var(--accent-strong);background:var(--accent-soft)}.root-item span{display:grid;gap:4px}.root-item strong{font-size:13px}.root-item small{color:var(--ink-soft);font-size:10px}.root-item em{min-width:22px;color:var(--ink-soft);font-size:11px;font-style:normal;text-align:right}.list-empty{padding:24px 8px;color:var(--ink-soft);font-size:12px;line-height:1.6;text-align:center}.category-detail{display:grid;align-content:start;gap:16px;padding:18px 20px}.detail-head{display:flex;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.detail-eyebrow{color:var(--accent-strong);font-size:10px;font-weight:800;letter-spacing:.08em}.detail-head h3{margin:5px 0 0;font-size:20px}.detail-head p{margin:5px 0 0;color:var(--ink-soft);font-size:12px}.detail-actions{display:flex;align-items:flex-start;gap:5px;flex-wrap:wrap;justify-content:flex-end}.danger-link{color:#b42318!important}.child-list{display:grid;gap:7px}.child-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}.child-row>div:first-child{display:grid;gap:4px}.child-row strong{font-size:13px}.child-row span{color:var(--ink-soft);font-size:11px}.acm-row-actions{display:flex;flex:0 0 auto;gap:5px}.detail-empty{display:grid;justify-items:center;gap:8px;padding:34px 14px;border:1px dashed var(--line);border-radius:11px;color:var(--ink-soft);text-align:center}.detail-empty strong{color:var(--ink);font-size:13px}.detail-empty button{padding:7px 11px;border:1px solid var(--accent);border-radius:8px;color:#fff;background:var(--accent);font:inherit;font-size:12px;cursor:pointer}.category-form{display:grid;gap:11px;padding:15px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent-soft) 30%,#fff)}.form-head{display:flex;align-items:center;justify-content:space-between}.form-head div{display:grid;gap:3px}.form-head span{color:var(--accent-strong);font-size:11px;font-weight:700}.form-head strong{font-size:16px}.category-form label{display:grid;gap:6px;color:var(--ink-soft);font-size:11px;font-weight:700}.category-form label small{font-weight:400}.category-form input,.category-form select{width:100%;padding:9px 10px;border:1px solid #cfd4dc;border-radius:8px;color:var(--ink);background:#fff;font:inherit;font-size:13px;outline:none}.category-form input:focus,.category-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.form-error{margin:0;color:#b42318;font-size:12px;line-height:1.5}.primary-action-button{justify-self:start;padding:9px 14px;border:1px solid var(--accent);border-radius:9px;color:#fff;background:var(--accent);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.primary-action-button:disabled{cursor:not-allowed;opacity:.55}.delete-strip{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #f3b7b2;border-radius:10px;color:#8f241c;background:#fff8f7;font-size:12px}.delete-strip span{flex:1;line-height:1.5}.delete-strip button{padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:11px;cursor:pointer}.delete-strip .danger-fill{border-color:#b42318;color:#fff;background:#b42318}@media(max-width:780px){.category-manager{padding:16px}.category-manager-head{align-items:stretch;flex-direction:column}.domain-switch{min-width:0}.category-layout{grid-template-columns:1fr}.root-list{border-right:0;border-bottom:1px solid var(--line)}.root-list .root-item{display:inline-flex;width:auto;min-width:150px;margin-right:5px}.root-list{overflow-x:auto;white-space:nowrap}.list-head{white-space:normal}.category-detail{padding:16px}.detail-head{align-items:flex-start;flex-direction:column}.detail-actions{justify-content:flex-start}.delete-strip{align-items:stretch;flex-wrap:wrap}.delete-strip span{flex-basis:100%}}.pack-editor{display:grid;gap:18px;padding:22px;background:color-mix(in srgb,var(--dada-paper) 88%,#fff)}.editor-state{display:grid;justify-items:center;gap:8px;padding:52px 20px;border:1px dashed var(--line);border-radius:14px;color:var(--ink-soft);text-align:center}.editor-state strong{color:var(--ink)}.editor-state button{padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.editor-state.admin-error-state{color:#b42318;background:#fff8f7}.editor-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}.ape-back-link{padding:0;border:0;color:var(--accent-strong);background:transparent;font:inherit;font-size:12px;cursor:pointer}.editor-header .admin-kicker{margin:16px 0 5px}.editor-header h2{margin:0;font-size:25px;letter-spacing:-.04em}.editor-header p:last-child{margin:6px 0 0;color:var(--ink-soft);font-size:12px}.editor-header-actions{display:flex;align-items:center;gap:8px}.editor-header-actions>button{padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:12px;cursor:pointer}.ape-status-badge{display:inline-flex;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:800}.ape-status-ready{color:#18794e;background:#e7f8ef}.ape-status-draft{color:#245c9c;background:#e7f0ff}.ape-status-invalid{color:#b42318;background:#feeceb}.ape-status-empty{color:#934e0b;background:#fff1dc}.ape-status-archived{color:#667085;background:#eef1f5}.editor-notice{margin:0;padding:10px 12px;border:1px solid #b7ebcd;border-radius:9px;color:#18794e;background:#ecfdf3;font-size:12px}.editor-error{margin:0;padding:10px 12px;border:1px solid #f3b7b2;border-radius:9px;color:#b42318;background:#fff8f7;font-size:12px;line-height:1.5}.pack-meta-card,.course-editor{display:grid;gap:16px;padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff}.ape-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.ape-section-title>div:first-child{display:grid;gap:4px}.ape-section-title span{color:var(--accent-strong);font-size:10px;font-weight:800;letter-spacing:.08em}.ape-section-title h3{margin:0;font-size:18px}.primary-button{padding:8px 12px;border:1px solid var(--accent);border-radius:9px;color:#fff;background:var(--accent);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.primary-button:disabled,.save-row:disabled,.save-course:disabled{cursor:not-allowed;opacity:.55}.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.meta-grid label{display:grid;gap:6px;color:var(--ink-soft);font-size:11px;font-weight:700}.meta-grid label.wide{grid-column:1 / -1}.meta-grid input,.meta-grid textarea,.meta-grid select{width:100%;padding:9px 10px;border:1px solid #cfd4dc;border-radius:8px;color:var(--ink);background:#fff;font:inherit;font-size:13px;outline:none}.meta-grid input:focus,.meta-grid textarea:focus,.meta-grid select:focus,.course-title-input:focus,.statement-row input:focus,.new-statement-row input:focus,.add-course input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.meta-grid textarea{resize:vertical}.pack-stats{display:flex;flex-wrap:wrap;gap:7px 14px;color:var(--ink-soft);font-size:11px}.pack-stats span+span{padding-left:14px;border-left:1px solid var(--line)}.add-course{display:flex;gap:6px}.add-course input{min-width:180px;padding:8px 10px;border:1px solid #cfd4dc;border-radius:8px;font:inherit;font-size:12px;outline:none}.add-course button,.course-editor-head>button,.save-course,.add-statement-link,.new-statement-row>button:last-child{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink-soft);background:#fff;font:inherit;font-size:11px;cursor:pointer}.add-course button{color:var(--accent-strong);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.course-editor-card{display:grid;gap:10px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fbfbfd}.course-editor-head{display:flex;align-items:center;gap:6px}.course-index{display:grid;flex:0 0 auto;width:27px;height:27px;place-items:center;border-radius:8px;color:var(--accent-strong);background:var(--accent-soft);font-size:11px;font-weight:800}.course-title-input{min-width:0;flex:1 1 auto;padding:7px 9px;border:1px solid #cfd4dc;border-radius:7px;font:inherit;font-size:13px;outline:none}.course-editor-head>span{flex:0 0 auto;color:var(--ink-soft);font-size:10px}.course-editor-head>button{padding:6px 7px}.save-course{color:var(--accent-strong)}.statement-list{display:grid;gap:6px}.statement-row{display:grid;grid-template-columns:28px minmax(0,1.25fr) minmax(0,1fr) minmax(90px,.65fr) auto auto;gap:6px;align-items:center}.statement-index{color:var(--ink-soft);font-size:10px;text-align:center}.statement-row input,.new-statement-row input{min-width:0;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;font:inherit;font-size:12px;outline:none}.save-row,.delete-row{padding:6px 7px;border:1px solid var(--line);border-radius:7px;color:var(--accent-strong);background:#fff;font:inherit;font-size:10px;cursor:pointer;white-space:nowrap}.delete-row{color:#b42318}.row-confirm{grid-column:2 / -1;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #f3b7b2;border-radius:7px;color:#8f241c;background:#fff8f7;font-size:10px}.row-confirm span{flex:1}.row-confirm button{padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit;font-size:10px;cursor:pointer}.ape-danger-fill{border-color:#b42318!important;color:#fff!important;background:#b42318!important}.add-statement-link{justify-self:start;border-style:dashed;color:var(--accent-strong)}.new-statement-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(90px,.65fr) auto auto;gap:6px;align-items:center;padding-top:2px}.new-statement-row>button:last-child{color:var(--ink-soft)}.editor-empty{padding:28px 14px;border:1px dashed var(--line);border-radius:10px;color:var(--ink-soft);font-size:12px;text-align:center}@media(max-width:900px){.statement-row{grid-template-columns:24px minmax(0,1fr) minmax(0,1fr)}.statement-row input:nth-of-type(3){grid-column:2}.statement-row .save-row,.statement-row .delete-row{grid-row:2}.row-confirm{grid-column:2 / -1}.new-statement-row{grid-template-columns:1fr 1fr}.new-statement-row .primary-button{grid-column:1}.new-statement-row>button:last-child{grid-column:2}}@media(max-width:620px){.pack-editor{padding:15px}.editor-header{align-items:flex-start;flex-direction:column}.editor-header-actions{width:100%;justify-content:space-between}.meta-grid{grid-template-columns:1fr}.meta-grid label.wide{grid-column:auto}.ape-section-title{align-items:flex-start;flex-direction:column}.add-course{width:100%}.add-course input{min-width:0;flex:1}.course-editor-head{flex-wrap:wrap}.course-title-input{flex-basis:calc(100% - 39px)}.statement-row{grid-template-columns:24px 1fr 1fr}.statement-row input:nth-of-type(3){grid-column:2 / -1}.statement-row .save-row,.statement-row .delete-row{grid-row:auto}.row-confirm{grid-column:1 / -1;flex-wrap:wrap}.row-confirm span{flex-basis:100%}.new-statement-row{grid-template-columns:1fr}.new-statement-row .primary-button,.new-statement-row>button:last-child{grid-column:auto}}.tts-cache-panel{display:grid;gap:24px}.tts-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tts-summary>div{padding:18px;border:1px solid var(--line, #dfe7e3);border-radius:16px;background:#fbfdfc}.tts-summary strong,.tts-summary span{display:block}.tts-summary strong{font-size:1.2rem;color:#153d38}.tts-summary span,.cache-meta,.cleanup-box p,.cleanup-preview span{color:#6b7c77;font-size:.88rem}.cache-meta{display:flex;flex-wrap:wrap;gap:8px 18px}.cache-warning{padding:14px 16px;border-radius:12px;background:#fff6df;color:#76551c}.cleanup-box{display:grid;gap:16px;padding:20px;border:1px solid var(--line, #dfe7e3);border-radius:18px}.cleanup-box h3{margin:0 0 5px;color:#153d38}.cleanup-box p{margin:0}.cleanup-controls,.cleanup-preview{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.cleanup-controls label{display:grid;gap:6px;color:#536862;font-size:.9rem}.cleanup-controls input{width:120px;padding:9px 10px;border:1px solid #cbd9d4;border-radius:9px;font:inherit}.secondary-button,.tts-danger-button{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;font:inherit}.secondary-button{background:#e4f0ec;color:#20574f}.tts-danger-button{background:#a84535;color:#fff}.secondary-button:disabled,.tts-danger-button:disabled{opacity:.55;cursor:not-allowed}.cleanup-preview{align-items:center;padding-top:14px;border-top:1px solid var(--line, #dfe7e3)}.cleanup-preview strong{color:#7d3b2e}.cleanup-preview .tts-danger-button{margin-left:auto}.tts-action-error{color:#a43f32}@media(max-width:760px){.tts-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cleanup-preview .tts-danger-button{margin-left:0}}.ana-panel{display:grid;gap:24px;padding-bottom:26px}.ana-section{display:grid;gap:12px}.ana-section h3{margin:0;padding:0 26px;color:#153d38}.ana-funnel{display:grid;gap:8px;padding:0 26px}.ana-funnel-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto 48px;align-items:center;gap:12px}.ana-funnel-label{color:#536862;font-size:.9rem}.ana-funnel-track{height:18px;border-radius:9px;background:#eef4f1;overflow:hidden}.ana-funnel-bar{height:100%;border-radius:9px;background:#2c7a68}.ana-funnel-value{color:#153d38;font-size:.88rem;white-space:nowrap}.ana-funnel-conv{color:#6b7c77;font-size:.88rem;text-align:right;white-space:nowrap}@media(max-width:760px){.ana-section h3,.ana-funnel{padding-left:18px;padding-right:18px}.ana-funnel-row{grid-template-columns:84px minmax(0,1fr)}.ana-funnel-value,.ana-funnel-conv{grid-column:2;text-align:left}}.env-config-panel{display:grid;gap:16px}.config-hint{margin:0;color:#6b7c77;font-size:.88rem}.config-notice{margin:0;padding:12px 16px;border-radius:12px;background:#e8f5ee;color:#1c5c43}.config-error{margin:0;color:#a43f32;font-size:.88rem}.config-row{display:grid;gap:10px;padding:18px;border:1px solid var(--line, #dfe7e3);border-radius:16px;background:#fbfdfc}.config-row-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.config-row-head strong{color:#153d38}.config-row-head code{color:#6b7c77;font-size:.82rem}.config-source{margin-left:auto;padding:3px 10px;border-radius:999px;font-size:.78rem;background:#eef3f1;color:#536862}.config-source-db{background:#e4f0ec;color:#20574f}.config-source-none{background:#fdeae6;color:#a43f32}.config-row-body{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.config-row-body input{flex:1;min-width:240px;padding:9px 12px;border:1px solid #cbd9d4;border-radius:9px;font:inherit}.config-row-body .secondary-button{border:0;border-radius:9px;padding:10px 14px;cursor:pointer;font:inherit;background:#e4f0ec;color:#20574f}.config-row-body .secondary-button:disabled{opacity:.55;cursor:not-allowed}.admin-page{display:flex;align-items:flex-start;gap:22px;width:min(1440px,calc(100% - 40px));margin:0 auto;padding:26px 0 72px}.admin-sidebar{flex:0 0 200px;position:sticky;top:20px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px 10px}.admin-sidebar-title{margin:2px 10px 10px;color:var(--ink-soft);font-size:11px;font-weight:700;letter-spacing:.08em}.admin-menu{display:grid;gap:2px}.admin-menu button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px 12px;border:0;border-radius:9px;background:transparent;color:var(--ink-soft);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease}.admin-menu button:hover{background:#f4f5f7;color:var(--ink)}.admin-menu button[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong);font-weight:700}.admin-main{flex:1;min-width:0}.admin-kicker,.danger-kicker{margin:0 0 7px;color:var(--accent-strong);font-size:12px;font-weight:700;letter-spacing:.08em}.panel-heading p{max-width:680px;margin:9px 0 0;color:var(--ink-soft);font-size:14px;line-height:1.65}.refresh-button,.delete-button,.wallet-adjust-button,.pack-actions button,.load-state button,.cancel-button,.confirm-delete,.save-button{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.refresh-button{flex:0 0 auto;padding:9px 15px;font-size:13px}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.55}.tab-count{display:inline-grid;min-width:18px;height:18px;padding:0 5px;place-items:center;border-radius:999px;background:#b42318;color:#fff;font-size:10px;line-height:1}.panel-heading{padding:24px 26px 20px}.panel-heading h2{margin:0;font-size:19px}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fbfbfd}.summary-strip>div{display:flex;align-items:baseline;gap:8px;padding:15px 22px;border-right:1px solid var(--line)}.summary-strip>div:last-child{border-right:0}.summary-strip strong{font-size:20px;font-variant-numeric:tabular-nums}.summary-strip span{color:var(--ink-soft);font-size:12px}.feedback-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fbfbfd}.feedback-summary>div{display:flex;align-items:baseline;gap:8px;padding:15px 22px;border-right:1px solid var(--line)}.feedback-summary>div:last-child{border-right:0}.feedback-summary strong{font-size:20px;font-variant-numeric:tabular-nums}.feedback-summary span{color:var(--ink-soft);font-size:12px}.review-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fbfbfd}.review-summary>div{display:flex;align-items:baseline;gap:8px;padding:15px 18px;border-right:1px solid var(--line)}.review-summary>div:last-child{border-right:0}.review-summary strong{font-size:20px;font-variant-numeric:tabular-nums}.review-summary span{color:var(--ink-soft);font-size:12px}.user-toolbar{display:grid;grid-template-columns:minmax(260px,520px) auto;align-items:end;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line)}.search-field{display:grid;gap:7px;color:var(--ink-soft);font-size:12px;font-weight:600}.search-field input,.confirmation-field input,.edit-field input,.edit-field textarea,.edit-field select{width:100%;border:1px solid #cfd4dc;border-radius:10px;background:#fff;color:var(--ink);font:inherit;outline:none}.search-field input{padding:10px 12px;font-size:14px}.search-field input:focus,.confirmation-field input:focus,.edit-field input:focus,.edit-field textarea:focus,.edit-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.review-filter{display:inline-flex;align-items:center;gap:8px;padding-bottom:10px;color:var(--ink-soft);font-size:13px;cursor:pointer}.review-filter input{width:16px;height:16px;accent-color:var(--accent)}.feedback-toolbar{display:grid;grid-template-columns:minmax(260px,520px) 150px;align-items:end;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line)}.feedback-status-filter{display:grid;gap:7px;color:var(--ink-soft);font-size:12px;font-weight:600}.feedback-status-filter select{padding:10px 12px;border:1px solid #cfd4dc;border-radius:10px;background:#fff;color:var(--ink);font:inherit;outline:none}.feedback-status-filter select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.review-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 150px 150px auto;align-items:end;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line)}.review-filter-select{display:grid;gap:7px;color:var(--ink-soft);font-size:12px;font-weight:600}.review-filter-select select{padding:10px 12px;border:1px solid #cfd4dc;border-radius:10px;background:#fff;color:var(--ink);font:inherit;outline:none}.review-filter-select select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.review-refresh{align-self:end;white-space:nowrap}.user-table-shell,.pack-table-shell{overflow-x:auto}.user-table,.pack-table{width:100%;border-collapse:collapse;font-size:13px}th{padding:11px 14px;color:var(--ink-soft);background:#fbfbfd;font-size:11px;font-weight:700;letter-spacing:.04em;text-align:left;white-space:nowrap}td{padding:15px 14px;border-top:1px solid var(--line);vertical-align:top}tbody tr:hover{background:#fcfcfe}.current-row{background:color-mix(in srgb,var(--accent-soft) 42%,#fff)}.account-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.account-line strong{font-size:14px}.account-name,.account-contact,.type-label,.date-data span,.learning-data span{display:block;margin-top:4px;color:var(--ink-soft);font-size:12px}code{display:block;max-width:210px;margin-top:7px;color:#667085;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relationship{display:block;max-width:260px;line-height:1.55}.admin-missing{display:block;margin-top:5px;color:#a15c12;font-size:12px}.learning-data strong{display:block;font-variant-numeric:tabular-nums}.date-data{min-width:178px}.badge{display:inline-flex;width:fit-content;align-items:center;border-radius:999px;padding:3px 8px;background:#eef1f5;color:#4b5563;font-size:10px;font-weight:700;white-space:nowrap}.admin-badge{background:var(--accent-soft);color:var(--accent-strong)}.badge.neutral{background:#e8edf5;color:#344054}.admin-status-active{background:#e7f8ef;color:#18794e}.admin-status-blocked{background:#feeceb;color:#b42318}.admin-status-profile_only,.admin-status-unknown{background:#fff1dc;color:#934e0b}.actions-cell{text-align:right}.delete-button{padding:7px 10px;color:#b42318;font-size:12px;white-space:nowrap}.delete-button:hover{border-color:#d92d20;background:#fff4f3}.wallet-adjust-button{margin-right:8px;padding:7px 10px;color:var(--accent-strong);font-size:12px;white-space:nowrap}.wallet-adjust-button:hover{border-color:var(--accent);background:var(--accent-soft)}.protected-label{color:#98a2b3;font-size:12px}.notice{margin:0;padding:11px 22px;border-bottom:1px solid #b7ebcd;background:#ecfdf3;color:#18794e;font-size:13px}.load-state{display:grid;justify-items:center;gap:8px;padding:64px 24px;color:var(--ink-soft);text-align:center}.load-state strong{color:var(--ink)}.load-state button{margin-top:4px;padding:8px 13px}.admin-error-state{color:#b42318;background:#fff8f7}.user-skeleton{padding:8px 22px 18px}.user-skeleton span{display:block;height:62px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,transparent,rgba(139,92,246,.06),transparent)}.pack-table td:first-child{min-width:360px}.pack-table td:first-child span{display:block;margin-top:4px;color:var(--ink-soft);font-size:12px}.pack-toolbar{display:grid;grid-template-columns:minmax(260px,520px) 170px auto;align-items:end;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line)}.pack-type-filter{display:grid;gap:7px;color:var(--ink-soft);font-size:12px;font-weight:600}.pack-type-filter select{padding:10px 12px;border:1px solid #cfd4dc;border-radius:10px;background:#fff;color:var(--ink);font:inherit;outline:none}.pack-result-count{justify-self:end;padding-bottom:10px;color:var(--ink-soft);font-size:11px;font-variant-numeric:tabular-nums}.pack-type-label,.pack-category-label,.pack-status-label{display:block;margin-top:3px;font-size:12px}.pack-type-label{color:var(--accent-strong);font-weight:700}.pack-category-label,.pack-status-label{color:var(--ink-soft)}.pack-status-label{font-size:10px}.number-cell{text-align:right;font-variant-numeric:tabular-nums}.pack-actions{text-align:right;white-space:nowrap}.pack-actions button{padding:6px 10px;margin-left:6px;font-size:12px}.pack-actions .danger-text{color:#b42318}.review-table-shell{overflow-x:auto}.review-table{width:100%;border-collapse:collapse;font-size:13px}.review-table th{padding:11px 14px}.review-table td{padding:15px 14px;border-top:1px solid var(--line);vertical-align:top}.review-table tbody tr:hover{background:#fcfcfe}.review-table td:first-child{min-width:260px}.review-table td:first-child>span{display:block;margin-top:4px;color:var(--ink-soft);font-size:12px}.review-status-pending{background:#fff1dc;color:#934e0b}.review-status-approved{background:#e7f8ef;color:#18794e}.review-status-changes_requested{background:#feeceb;color:#b42318}.quality-ready{background:#e7f8ef;color:#18794e}.quality-blocked{background:#feeceb;color:#b42318}.quality-detail,.revision-cell span{display:block;margin-top:5px;color:var(--ink-soft);font-size:11px;white-space:nowrap}.revision-cell{font-variant-numeric:tabular-nums;white-space:nowrap}.review-table .pack-actions button{border-color:var(--accent);color:var(--accent-strong)}.feedback-table-shell{overflow-x:auto}.feedback-table{width:100%;border-collapse:collapse;font-size:13px}.feedback-table th{padding:11px 14px}.feedback-table td{padding:15px 14px;border-top:1px solid var(--line);vertical-align:top}.feedback-table tbody tr:hover{background:#fcfcfe}.feedback-table td:first-child{min-width:420px}.feedback-table td:first-child>span{display:block;margin-top:5px}.feedback-content-en{color:var(--accent-strong);font-size:12px}.feedback-detail{max-width:520px;color:var(--ink-soft);line-height:1.55;overflow-wrap:anywhere}.feedback-meta-cell{min-width:170px}.feedback-meta-cell span{display:block;margin-top:4px;color:var(--ink-soft);font-size:12px}.feedback-status-pending{background:#fff1dc;color:#934e0b}.feedback-status-processing{background:#e8edf5;color:#344054}.feedback-status-resolved{background:#e7f8ef;color:#18794e}.feedback-status-ignored{background:#eef1f5;color:#667085}.feedback-handle-button{padding:7px 12px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:#fff;font:inherit;font-size:12px;cursor:pointer}.feedback-handle-button:hover{filter:brightness(.96)}.no-perm{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink-soft);text-align:center}.no-perm strong{color:var(--ink);font-size:18px}.no-perm p{margin:0 0 6px}.modal-mask{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#181d2794}.danger-modal,.edit-modal,.feedback-modal,.review-modal,.wallet-modal{width:min(500px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;border-radius:16px;background:#fff;padding:26px;box-shadow:0 24px 70px #23163338}.danger-modal h2,.edit-modal h2,.feedback-modal h2,.review-modal h2,.wallet-modal h2{margin:0;font-size:20px}.danger-modal>p:not(.danger-kicker):not(.modal-error){margin:10px 0 18px;color:var(--ink-soft);line-height:1.6}.danger-modal dl{margin:0 0 20px;padding:14px 16px;border-radius:12px;background:#f7f8fa}.danger-modal dl div{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:5px 0}.danger-modal dt{color:var(--ink-soft)}.danger-modal dd{margin:0;text-align:right;overflow-wrap:anywhere}.confirmation-field,.edit-field{display:grid;gap:8px;margin-top:14px;font-size:13px}.confirmation-field input,.edit-field input,.edit-field textarea,.edit-field select{padding:10px 12px}.edit-field textarea{resize:vertical}.edit-field select{appearance:auto}.modal-error{margin:12px 0 0;color:#b42318;font-size:13px;line-height:1.5}.feedback-modal{width:min(620px,100%)}.feedback-modal .admin-kicker,.wallet-modal .admin-kicker{margin-top:0}.feedback-modal-context{display:grid;gap:10px;margin-top:18px;padding:15px 16px;border-radius:12px;background:#f7f8fa}.feedback-modal-context div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;align-items:start}.feedback-modal-context span{color:var(--ink-soft);font-size:12px}.feedback-modal-context strong{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.review-modal{width:min(660px,100%)}.review-modal .admin-kicker{margin-top:0}.review-modal-intro{margin:9px 0 18px;color:var(--ink-soft);font-size:13px;line-height:1.5}.review-quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.review-quality-grid>div{display:grid;gap:3px;padding:12px 14px;border-radius:11px;background:#f7f8fa}.review-quality-grid strong{font-size:20px;font-variant-numeric:tabular-nums}.review-quality-grid span{color:var(--ink-soft);font-size:11px}.review-issues{display:grid;gap:5px;margin:0;padding:0 0 0 18px;color:var(--ink-soft);font-size:12px;line-height:1.5}.review-warning{margin:14px 0 0;color:#934e0b;font-size:12px}.review-return-button{padding:9px 14px;border:1px solid #b42318;border-radius:10px;background:#fff;color:#b42318;font:inherit;cursor:pointer}.review-return-button:hover:not(:disabled){background:#fff4f3}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.cancel-button,.confirm-delete,.save-button{padding:9px 14px}.confirm-delete{border-color:#b42318;background:#b42318;color:#fff}.confirm-delete:hover:not(:disabled){background:#912018}.save-button{border-color:var(--accent);background:var(--accent);color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.admin-page{flex-direction:column}.admin-sidebar{position:static;flex:none;width:100%;padding:8px}.admin-sidebar-title{display:none}.admin-menu{display:flex;gap:4px;overflow-x:auto}.admin-menu button{width:auto;white-space:nowrap}.admin-main{width:100%}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-strip>div:nth-child(2){border-right:0}.summary-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.review-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.review-summary>div:nth-child(3){border-right:0}.review-summary>div:nth-child(-n+3){border-bottom:1px solid var(--line)}}@media(max-width:760px){.admin-page{width:min(100% - 24px,1440px);padding-top:16px}.refresh-button{margin-top:2px}.panel-heading{padding:20px 18px 16px}.summary-strip>div{padding:13px 16px}.user-toolbar,.feedback-toolbar,.pack-toolbar,.review-toolbar{grid-template-columns:1fr;align-items:start;padding:16px 18px}.pack-result-count{justify-self:start;padding-bottom:0}.review-filter{padding-bottom:0}.review-refresh{justify-self:start}.user-table thead{display:none}.user-table,.user-table tbody,.user-table tr,.user-table td{display:block;width:100%}.user-table tr{padding:16px 18px;border-top:1px solid var(--line)}.user-table td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:7px 0;border:0}.user-table td:before{content:attr(data-label);color:var(--ink-soft);font-size:11px;font-weight:700}.user-table td>*{grid-column:2}.user-table td[data-label=账号] .account-line{grid-row:1}.actions-cell{text-align:left}.delete-button{width:fit-content}code{max-width:100%}.feedback-table thead{display:none}.feedback-table,.feedback-table tbody,.feedback-table tr,.feedback-table td{display:block;width:100%}.feedback-table tr{padding:16px 18px;border-top:1px solid var(--line)}.feedback-table td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:7px 0;border:0}.feedback-table td:before{content:attr(data-label);color:var(--ink-soft);font-size:11px;font-weight:700}.feedback-table td>*{grid-column:2}.feedback-table td:first-child{min-width:0}.feedback-table td:first-child>span{margin-top:0}.feedback-detail{max-width:none}.review-table thead{display:none}.review-table,.review-table tbody,.review-table tr,.review-table td{display:block;width:100%}.review-table tr{padding:16px 18px;border-top:1px solid var(--line)}.review-table td{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;padding:7px 0;border:0}.review-table td:before{content:attr(data-label);color:var(--ink-soft);font-size:11px;font-weight:700}.review-table td>*{grid-column:2}.review-table td:first-child{min-width:0}.review-table .pack-actions{text-align:left}}@media(max-width:520px){.refresh-button{width:fit-content}.summary-strip strong{font-size:18px}.summary-strip span{display:block}.user-table td,.feedback-table td,.review-table td{grid-template-columns:82px minmax(0,1fr)}.review-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.review-summary>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.review-summary>div:nth-child(2n){border-right:0}.danger-modal,.edit-modal,.feedback-modal,.review-modal{padding:22px 18px}.modal-actions{display:grid;grid-template-columns:1fr}.modal-actions button{width:100%}}.pkd-page{max-width:1180px;margin:0 auto;padding:36px 24px 80px;color:var(--ink)}.pkd-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:18px}.pkd-head small{letter-spacing:.16em;color:var(--ink-soft)}.pkd-head h1{font-size:42px;margin:7px 0}.pkd-head p{color:var(--ink-soft);margin:0}.pkd-stats{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:var(--ink-soft);font-size:14px}.pkd-stats b{color:var(--ink);font-size:16px}.pkd-stats i{font-style:normal;opacity:.5}.pkd-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}.pkd-filter-group{display:inline-flex;gap:4px;padding:4px;border:1px solid #dce2df;border-radius:999px;background:#fff}.pkd-filter-group button{border:0;border-radius:999px;padding:7px 14px;background:transparent;color:var(--ink-soft);font-size:13px;cursor:pointer}.pkd-filter-group button.on{background:var(--dada-cobalt);color:#fff;font-weight:700}.pkd-state{min-height:260px;border:1px dashed #cbd4cf;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--ink-soft)}.pkd-state.error{color:#a44236}.pkd-state button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cad2ce;border-radius:999px;padding:10px 16px;background:#fff;color:inherit;cursor:pointer}.pkd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.pkd-card{border:1px solid #dce2df;border-radius:22px;padding:22px;background:#fff;box-shadow:0 14px 40px #20372d0f;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.pkd-card:hover,.pkd-card:focus-visible{transform:translateY(-2px);box-shadow:0 18px 46px #20372d1f;outline:none}.pkd-chip-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.type-line .type-chip,.pkd-chip-row .type-chip,.pkd-chip{display:inline-flex;min-height:23px;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800}.pkd-chip-row .type-chip.type-word{color:#8a5a00;background:var(--dada-yellow-soft)}.pkd-chip-row .type-chip.type-sentence{color:#20684f;background:var(--dada-mint-soft)}.pkd-chip-published{color:#166534;background:#ecfdf3}.pkd-chip-draft{color:#92400e;background:#fef3c7}.pkd-chip-visibility{color:var(--ink-soft);background:#efe5d3}.pkd-card h2{font-size:22px;margin:8px 0}.pkd-card>p{color:var(--ink-soft);margin:0 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}.pkd-card dl{display:flex;gap:28px;margin:18px 0 14px}.pkd-card dl div{display:flex;flex-direction:column}.pkd-card dt{font-size:12px;color:var(--ink-soft)}.pkd-card dd{margin:3px 0 0;font-size:22px;font-weight:700}.pkd-card footer{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft);border-top:1px dashed #e3e8e5;padding-top:12px}.pkd-mask{position:fixed;inset:0;z-index:var(--z-modal, 60);display:flex;align-items:center;justify-content:center;padding:22px;background:#1f1c188c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.pkd-dialog{width:min(560px,100%);max-height:100%;overflow:auto;background:var(--bg);border-radius:22px;padding:26px;box-shadow:0 30px 80px #20372d47}.pkd-dialog h2{margin:0 0 18px;font-size:22px}.pkd-kind-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pkd-kind-card{display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-align:left;padding:20px;border:1px solid #dce2df;border-radius:18px;background:#fff;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease}.pkd-kind-card:hover{border-color:var(--dada-cobalt);box-shadow:0 12px 30px #20372d1a}.pkd-kind-card b{font-size:17px}.pkd-kind-card span{font-size:13px;color:var(--ink-soft);line-height:1.6}.pkd-form{display:flex;flex-direction:column;gap:14px}.pkd-field{display:flex;flex-direction:column;gap:6px;flex:1}.pkd-field label{font-size:13px;font-weight:700}.pkd-field label em,.pkd-field label i{font-style:normal;font-size:11px;font-weight:400;margin-left:6px}.pkd-field label em{color:var(--bad)}.pkd-field label i{color:var(--ink-soft)}.pkd-field input,.pkd-field select{border:1px solid #cad2ce;border-radius:12px;padding:10px 12px;font-size:14px;background:#fff;color:var(--ink)}.pkd-field input:focus-visible,.pkd-field select:focus-visible{outline:3px solid var(--dada-cobalt);outline-offset:-1px}.pkd-field-row{display:flex;gap:12px}.pkd-form-error{margin:0;padding:10px 12px;border-radius:10px;background:var(--dada-coral-soft);color:#a44236;font-size:13px}.pkd-dialog-actions{display:flex;justify-content:space-between;gap:10px;margin-top:4px}@media(max-width:700px){.pkd-head{align-items:flex-start;flex-direction:column}.pkd-head h1{font-size:34px}.pkd-kind-row{grid-template-columns:1fr}.pkd-field-row{flex-direction:column}}.poetry-page{width:min(calc(100% - 32px),900px);margin:0 auto;padding:34px 0 72px}.poetry-status-badge{display:inline-flex;margin-bottom:8px;padding:4px 8px;border-radius:7px;color:#76591e;background:var(--dada-yellow-soft);font-size:11px;font-weight:800}.poetry-head h1{margin:0 0 8px;font-size:34px;letter-spacing:-.05em}.poetry-head>p:last-child{margin:0;color:var(--ink-soft);font-size:14px}.poetry-preview.card{margin-top:20px;padding:22px 24px;border:1px solid var(--line);border-radius:22px;background:var(--dada-paper);box-shadow:0 3px 0 var(--paper-shadow)}.preview-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:Kaiti SC,STKaiti,KaiTi,serif;font-size:22px;color:var(--dada-brown)}.preview-prompt{padding:6px 10px;border-radius:10px;background:var(--dada-yellow-soft)}.preview-input{color:var(--dada-green, #3f8f5f)}.preview-mark{color:var(--dada-green, #3f8f5f);font-weight:900}.preview-note{margin:14px 0 0;color:var(--ink-soft);font-size:13px}.poetry-roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.roadmap-item{display:grid;gap:5px;padding:16px;border:1px dashed var(--line);border-radius:16px;background:var(--dada-cream)}.roadmap-item strong{color:var(--dada-brown);font-size:15px}.roadmap-item span{color:var(--ink-soft);font-size:12px}@media(max-width:640px){.poetry-page{width:min(calc(100% - 22px),900px);padding-top:22px}.poetry-roadmap{grid-template-columns:1fr}.preview-line{font-size:19px}}.claim-toast{position:fixed;top:16px;left:50%;transform:translate(-50%);padding:10px 22px;border-radius:999px;background:var(--dada-mint);color:var(--dada-brown);font-size:14px;font-weight:700;white-space:nowrap;pointer-events:none;z-index:1000;box-shadow:0 8px 24px #704e2538;animation:claimToastIn .2s ease-out}.claim-toast-leave{transition:opacity .2s ease,transform .2s ease;opacity:0;transform:translate(-50%) translateY(-8px)}@keyframes claimToastIn{0%{opacity:0;transform:translate(-50%) translateY(-100%)}to{opacity:1;transform:translate(-50%) translateY(0)}}.spc{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.spc:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 10%,transparent);transform:translateY(-2px)}.spc:focus-visible{outline:3px solid var(--dada-cobalt);outline-offset:2px}.spc-cover{position:relative;display:flex;min-height:132px;flex-direction:column;justify-content:flex-end;gap:5px;padding:16px;color:#123e63;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.9) 0 7%,transparent 8%),linear-gradient(145deg,#fff6e6,#d8f0ee 55%,#9ed4e8);background-position:center;background-size:cover}.spc-cover-kicker{font-size:10px;font-weight:800;letter-spacing:.12em}.spc-cover strong{max-width:14ch;font-size:20px;line-height:1.12;letter-spacing:-.035em}.spc-badge{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:14px;background:var(--dada-mint);color:var(--dada-brown);font-size:12px;font-weight:800}.spc-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-strong)}.spc-body{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;padding:14px 16px 16px}.spc-body h3{margin:0;font-size:16px}.spc-meta{margin:0;color:var(--ink-soft);font-size:13px;font-variant-numeric:tabular-nums}.spc-progress{display:flex;flex-direction:column;gap:5px}.spc-track{height:8px;overflow:hidden;border-radius:999px;background:var(--dada-mint-soft)}.spc-track span{display:block;height:100%;border-radius:999px;background:var(--dada-mint)}.spc-progress-label{color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}.spc-cta{justify-content:center;width:100%;min-height:44px;margin-top:auto;font-size:15px}.spc-cta:disabled{opacity:.75;cursor:default;transform:none}.spc-cta-secondary{border-color:var(--dada-cobalt);color:var(--accent-strong);background:transparent;box-shadow:0 3px 0 var(--paper-shadow)}.spc-cta-secondary:hover{background:var(--accent-soft)}.spc-error{margin:0;color:var(--dada-coral);font-size:14px}@media(max-width:768px){.spc-percent{display:none}}.shelf-view{display:flex;flex-direction:column;gap:28px}.shelf{display:flex;flex-direction:column;gap:12px}.shelf-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.shelf-head h2{margin:0;color:var(--dada-brown);font-size:20px;font-weight:800}.shelf-chip{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:0;border-radius:999px;color:var(--dada-cobalt);background:transparent;font-size:14px;cursor:pointer}.shelf-chip:hover{background:var(--accent-soft)}.shelf-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}@media(max-width:768px){.shelf-row{display:flex;overflow-x:auto;padding-bottom:6px;scroll-padding-inline:2px}.shelf-row>.spc{flex:0 0 75vw}.shelf-row>.skeleton-card{flex:0 0 75vw}}.shelf-skeleton-block{border-radius:var(--radius-card);background:var(--dada-paper);animation:shelf-breathe .8s ease-in-out infinite alternate}.skeleton-title{width:180px;height:24px;border-radius:10px}.skeleton-card{min-height:240px}@keyframes shelf-breathe{0%{opacity:1}to{opacity:.5}}.shelf-empty{display:grid;justify-items:center;gap:12px;padding:56px 20px;border:1px dashed var(--line);border-radius:var(--radius-card);color:var(--ink-soft);text-align:center}.shelf-empty img{width:96px;height:96px;object-fit:contain}.shelf-empty strong{color:var(--ink);font-size:16px}.shelf-empty .btn{min-height:44px}.repo-browser{display:flex;flex-direction:column;gap:16px}.repo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.search-box{display:flex;width:min(100%,460px);min-height:46px;align-items:center;gap:10px;padding:0 15px;border:1px solid var(--line);border-radius:14px;color:var(--ink-soft);background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow)}.search-box span{font-size:22px;transform:rotate(-20deg)}.search-box input{width:100%;border:0;outline:0;color:var(--ink);background:transparent;font:inherit;font-size:14px}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}.result-count{color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}.category-row{display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;padding-bottom:2px}.category-row button{display:inline-flex;min-height:44px;flex:0 0 auto;align-items:center;padding:7px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:var(--dada-paper);font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease}.category-row button:hover{border-color:color-mix(in srgb,var(--line) 55%,var(--warm-strong));color:var(--warm-strong);background:var(--warm-hover);transform:translateY(-1px)}.category-row button.selected{border-color:color-mix(in srgb,#d5a936 45%,var(--line));color:var(--ink);background:var(--warm-active)}.sub-row button{font-size:12px;padding:6px 12px}.repo-pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.repo-card{display:flex;min-height:310px;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card, 16px);color:var(--ink);background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.repo-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 10%,transparent);transform:translateY(-2px)}.repo-card:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:3px}.course-cover{min-height:164px;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.9) 0 7%,transparent 8%),linear-gradient(145deg,#fff6e6,#d8f0ee 55%,#9ed4e8);background-position:center;background-size:cover}.card-body{display:flex;flex:1 1 auto;flex-direction:column;gap:9px;padding:15px 17px 17px}.repo-chip-line{display:flex;flex-wrap:wrap;gap:6px}.cat-chip,.sub-chip{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800}.cat-chip{color:var(--accent-strong);background:var(--accent-soft)}.sub-chip{color:#20684f;background:var(--dada-mint-soft)}.repo-card h3{margin:0;font-size:16px}.meta{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--ink-soft);font-size:12px}.actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:auto}.repo-primary-action,.repo-plan-btn,.joined-action{font-size:13px;font-weight:800}.repo-primary-action{padding:0;border:0;color:var(--ink-soft);background:transparent;cursor:pointer}.repo-plan-btn{min-height:34px;padding:6px 15px;border:0;border-radius:999px;color:#fff;background:var(--accent);box-shadow:0 2px 0 var(--paper-shadow);cursor:pointer;transition:background-color .18s ease,transform .18s ease}.repo-plan-btn:hover{background:var(--accent-strong);transform:translateY(-1px)}.joined-action{color:var(--accent-strong)}.repo-primary-action:hover,.joined-action:hover{color:var(--accent)}.repo-primary-action:disabled{color:var(--ink-soft);cursor:default}.empty-mascot{width:96px;height:96px;object-fit:contain}.repo-browser .repo-pack-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.repo-browser .repo-card{min-height:0}.repo-browser .course-cover{min-height:96px}.repo-browser .card-body{gap:7px;padding:11px 13px 13px}.repo-browser .desc{min-height:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sentence-library{display:grid;gap:22px}.library-console,.course-browser,.continue-panel{border:1px solid var(--line);background:color-mix(in srgb,var(--dada-paper) 92%,var(--dada-cream));box-shadow:0 3px 0 var(--paper-shadow)}.library-console{overflow:hidden;border-radius:24px}.console-head{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.35fr) auto;align-items:center;gap:24px;padding:24px 26px 21px}.scv-eyebrow{margin:0 0 5px;color:var(--warm-strong);font-size:10px;font-weight:900;letter-spacing:.12em}.console-head h1{margin:0;color:var(--dada-brown);font-size:clamp(27px,3vw,38px);line-height:1.05;letter-spacing:-.05em;text-wrap:balance}.console-head>div>p:last-child{max-width:36ch;margin:8px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.6}.scv-search-box{display:flex;min-height:48px;align-items:center;gap:10px;padding:0 16px;border:1px solid var(--line);border-radius:14px;color:var(--ink-soft);background:var(--dada-cream);box-shadow:inset 0 1px #ffffffb3;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.scv-search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);transform:translateY(-1px)}.scv-search-box>span{font-size:23px;line-height:1;transform:rotate(-18deg)}.scv-search-box input{width:100%;border:0;outline:0;color:var(--ink);background:transparent;font:inherit;font-size:14px}.discover-button{min-height:45px;padding-inline:17px;white-space:nowrap}.stats-strip{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);background:color-mix(in srgb,var(--dada-cream) 60%,transparent)}.stats-strip>div{display:grid;min-width:0;gap:4px;padding:16px 18px 18px;border-right:1px dashed var(--line)}.stats-strip>div:last-child{border-right:0}.stats-strip span{overflow:hidden;color:var(--ink-soft);font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.stats-strip strong{color:var(--dada-brown);font-size:clamp(20px,2.4vw,28px);font-variant-numeric:tabular-nums;letter-spacing:-.04em}.course-browser{padding:20px 22px 18px;border-radius:20px}.browser-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px dashed var(--line)}.browser-title-row h2,.continue-heading h2{margin:0;color:var(--dada-brown);font-size:20px;letter-spacing:-.035em}.browser-title-row>span{color:var(--ink-soft);font-size:11px;font-variant-numeric:tabular-nums}.filter-stack{display:grid;gap:10px;padding-top:14px}.filter-line{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px}.filter-label{color:var(--ink-soft);font-size:11px;font-weight:900;letter-spacing:.08em}.filter-options{display:flex;flex-wrap:wrap;gap:6px}.filter-options button{min-height:32px;padding:6px 12px;border:1px solid transparent;border-radius:9px;color:var(--ink-soft);background:transparent;font:inherit;font-size:12px;font-weight:750;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.filter-options button:hover{color:var(--warm-strong);background:var(--warm-hover);transform:translateY(-1px)}.filter-options button:active{transform:translateY(0)}.filter-options button:focus-visible,.text-action:focus-visible,.primary-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-options button.selected{border-color:color-mix(in srgb,var(--warm-strong) 30%,var(--line));color:var(--dada-brown);background:var(--warm-active);box-shadow:0 2px 0 var(--paper-shadow)}.subcategory-line{padding:9px 0 1px;border-top:1px dashed color-mix(in srgb,var(--line) 70%,transparent)}.utility-line{grid-template-columns:48px minmax(0,1fr) auto;padding-top:9px;border-top:1px dashed var(--line)}.compact-options button{font-size:11px}.sort-select{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:11px;font-weight:800}.sort-select select{min-height:33px;padding:5px 28px 5px 10px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:var(--dada-cream);font:inherit;font-size:11px;cursor:pointer}.continue-panel{padding:19px 21px 21px;border-radius:20px}.continue-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;margin-bottom:13px}.play-key{display:grid;width:34px;height:34px;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:10px;color:#fff;background:var(--accent);box-shadow:0 3px 0 var(--accent-strong);font-size:11px}.recent-time{color:var(--ink-soft);font-size:11px}.continue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.continue-course{display:grid;min-width:0;grid-template-columns:96px minmax(0,1fr);grid-template-areas:"cover copy" "cover action";align-items:start;gap:10px 13px;padding:12px;border-radius:15px;background:var(--dada-cream);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 72%,transparent);transition:box-shadow .2s ease,transform .2s ease}.continue-course:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 38%,var(--line)),0 6px 16px #6f521e14;transform:translateY(-2px)}.continue-cover,.scv-course-cover{background:radial-gradient(circle at 77% 20%,rgba(255,255,255,.8) 0 7%,transparent 8%),linear-gradient(145deg,#fff1d5,#d5efe8 58%,#9bd4e5);background-position:center;background-size:cover}.continue-cover{grid-area:cover;display:flex;min-height:128px;align-self:stretch;flex-direction:column;justify-content:flex-end;gap:4px;padding:11px;border-radius:11px;color:#123e63}.continue-cover span{font-size:9px;font-weight:900;letter-spacing:.1em}.continue-cover strong{max-width:12ch;font-size:14px;line-height:1.15;text-wrap:balance}.continue-copy{grid-area:copy;min-width:0}.continue-tags{display:flex;gap:6px;margin-bottom:6px}.continue-tags span,.level-chip{padding:3px 8px;border-radius:7px;color:#20684f;background:var(--dada-mint-soft);font-size:10px;font-weight:850}.continue-title-line{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.continue-copy h3{min-width:0;margin:0 0 5px;overflow:hidden;color:var(--dada-brown);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.continue-title-line small{flex:0 0 auto;color:var(--ink-soft);font-size:9px}.continue-copy>p{margin:0 0 11px;overflow:hidden;color:var(--ink-soft);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.progress-copy,.card-meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink-soft);font-size:10px}.progress-copy strong{color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums}.scv-progress-track{height:6px;margin-top:6px;overflow:hidden;border-radius:999px;background:var(--line)}.scv-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-strong))}.continue-action{grid-area:action;min-width:0;min-height:34px;align-self:end;justify-content:center;padding:7px 10px;font-size:11px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.scv-course-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:17px;background:var(--dada-paper);box-shadow:0 3px 0 var(--paper-shadow);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.scv-course-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:0 9px 24px #6f521e1a;transform:translateY(-3px)}.scv-course-card:active{transform:translateY(-1px)}.scv-course-card.is-current{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.scv-course-card.is-archived{opacity:.72}.card-link{color:inherit}.scv-course-cover{position:relative;display:flex;min-height:162px;flex-direction:column;justify-content:flex-end;gap:5px;padding:17px;color:#123e63}.scv-course-cover>span:not(.current-flag){font-size:9px;font-weight:900;letter-spacing:.1em}.scv-course-cover>strong{max-width:15ch;font-size:20px;line-height:1.12;letter-spacing:-.03em;text-wrap:balance}.scv-course-cover>small{font-size:10px;font-weight:800}.current-flag{position:absolute;top:11px;left:11px;padding:5px 8px;border-radius:7px;color:#fff;background:var(--accent);box-shadow:0 2px 0 var(--accent-strong);font-size:9px;font-weight:900;letter-spacing:.04em}.scv-card-body{display:flex;flex:1 1 auto;flex-direction:column;gap:9px;padding:13px 15px 15px}.card-meta-row{font-variant-numeric:tabular-nums}.small-track{height:5px;margin-top:-2px}.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.card-title-row>div{min-width:0}.card-title-row h3{margin:0 0 4px;overflow:hidden;color:var(--dada-brown);font-size:16px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.card-title-row p{margin:0;color:var(--ink-soft);font-size:10px;font-variant-numeric:tabular-nums}.level-chip{flex:0 0 auto;max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scv-card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:4px}.text-action,.primary-link{border:0;font:inherit;font-size:11px;font-weight:850;cursor:pointer;transition:color .18s ease,transform .18s ease}.text-action{padding:0;color:var(--ink-soft);background:transparent}.text-action:hover{color:var(--warm-strong)}.text-action:disabled{cursor:wait;opacity:.58}.primary-link{color:var(--accent-strong)}.primary-link:hover{color:var(--accent);transform:translate(2px)}.discover-card{display:grid;min-height:280px;place-content:center;justify-items:center;gap:9px;border:1px dashed color-mix(in srgb,var(--warm-strong) 40%,var(--line));border-radius:17px;color:var(--ink-soft);background:color-mix(in srgb,var(--dada-cream) 42%,transparent);transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .2s ease}.discover-card>span{display:grid;width:54px;height:54px;place-items:center;border:1px solid var(--line);border-radius:14px;color:var(--warm-strong);background:var(--dada-paper);box-shadow:0 3px 0 var(--paper-shadow);font-size:27px}.discover-card strong{color:var(--dada-brown);font-size:14px}.discover-card small{font-size:11px}.discover-card:hover{border-color:var(--warm-strong);color:var(--warm-strong);background:var(--warm-hover);transform:translateY(-3px)}.scv-state-card{display:grid;justify-items:center;gap:10px;padding:46px 20px;border:1px dashed var(--line);border-radius:18px;color:var(--ink-soft);background:color-mix(in srgb,var(--dada-paper) 75%,transparent);text-align:center}.scv-state-card strong{color:var(--ink);font-size:15px}.scv-state-card>span{font-size:12px}.error-state strong,.scv-action-error{color:var(--bad)}.empty-key{display:grid;width:48px;height:48px;place-items:center;border-radius:13px;color:var(--warm-strong);background:var(--warm-active);font-size:25px!important;box-shadow:0 3px 0 var(--paper-shadow)}.skeleton-state{grid-template-columns:repeat(3,minmax(0,1fr))}.skeleton-state span{width:100%;height:110px;border-radius:13px;background:linear-gradient(100deg,var(--dada-cream) 20%,var(--dada-paper) 38%,var(--dada-cream) 56%);background-size:200% 100%;animation:shimmer 1.5s infinite linear}.skeleton-state strong{grid-column:1 / -1}.scv-action-error{margin:0;font-size:12px;font-weight:750}@keyframes shimmer{to{background-position-x:-200%}}@media(max-width:980px){.console-head{grid-template-columns:1fr auto}.scv-search-box{grid-column:1 / -1;grid-row:2}.stats-strip{grid-template-columns:repeat(3,1fr)}.stats-strip>div:nth-child(3){border-right:0}.stats-strip>div:nth-child(-n+3){border-bottom:1px dashed var(--line)}.continue-grid,.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.sentence-library{gap:16px}.library-console{border-radius:18px}.console-head{grid-template-columns:1fr;gap:15px;padding:20px 18px 17px}.scv-search-box{grid-column:auto;grid-row:auto}.discover-button{width:100%;justify-content:center}.stats-strip{grid-template-columns:repeat(2,1fr)}.stats-strip>div:nth-child(3){border-right:1px dashed var(--line)}.stats-strip>div:nth-child(2n){border-right:0}.stats-strip>div:nth-child(-n+4){border-bottom:1px dashed var(--line)}.course-browser{padding:17px 15px 15px}.filter-line,.utility-line{grid-template-columns:1fr;gap:6px}.filter-options{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.filter-options::-webkit-scrollbar{display:none}.filter-options button{flex:0 0 auto}.sort-select{justify-self:stretch;justify-content:space-between}.continue-heading{grid-template-columns:auto 1fr}.recent-time{grid-column:2}.continue-grid{grid-template-columns:1fr}.continue-course{grid-template-columns:86px minmax(0,1fr)}.continue-cover{min-height:124px}.course-grid{grid-template-columns:1fr}.scv-course-cover{min-height:178px}.discover-card{min-height:190px}}@media(prefers-reduced-motion:reduce){.scv-course-card,.discover-card,.filter-options button,.scv-search-box,.primary-link{transition:none}.skeleton-state span{animation:none}}.sentence-library .course-grid{gap:12px}.sentence-library .scv-course-cover{min-height:96px;padding:13px 14px}.sentence-library .scv-course-cover>strong{font-size:16px}.sentence-library .scv-card-body{gap:7px;padding:11px 13px 13px}.sentences-content-page{width:min(calc(100% - 40px),1220px);margin:0 auto;padding:28px 0 64px}.sentences-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.sentences-page-head h1{margin:0 0 7px;font-size:26px}.sentences-page-head p{max-width:620px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.7}@media(max-width:640px){.sentences-content-page{width:min(calc(100% - 24px),1220px);padding-top:18px}.sentences-page-head{align-items:flex-start;flex-direction:column}.sentences-page-head .btn{width:100%;justify-content:center}}.srepo-content-page{width:min(calc(100% - 40px),1120px);margin:0 auto;padding:28px 0 60px}@media(max-width:640px){.srepo-content-page{width:min(calc(100% - 24px),1120px);padding-top:20px}.page-head{align-items:flex-start;flex-direction:column}.page-head .btn{width:100%;justify-content:center}}.settings-route-fallback{min-height:calc(100dvh - 100px);display:grid;place-items:center;color:var(--ink-soft);font-size:13px}.route-placeholder{position:absolute;width:1px;height:1px;overflow:hidden}.account-page{width:min(calc(100% - 40px),1080px);margin:0 auto;padding:28px 0 60px}.account-intro{margin-bottom:16px}.account-intro h1{margin:0 0 7px;font-size:25px}.account-intro>p:last-child{margin:0;color:var(--ink-soft);font-size:13px;line-height:1.7}.security-grid{display:grid;gap:14px;grid-template-columns:1fr;margin-bottom:14px}.security-grid>.card{margin-bottom:0}@media(min-width:900px){.security-grid{grid-template-columns:repeat(3,1fr);align-items:start}}.identity-card{margin-bottom:14px}.account-group-title{margin:22px 4px 10px;color:var(--ink-soft);font-size:13px;font-weight:800;letter-spacing:.04em}.account-page h3{margin:0 0 12px;font-size:16px}.identity-card dl{display:grid;gap:10px;margin:0}.identity-card dl>div{display:flex;justify-content:space-between;gap:16px;font-size:13px}.identity-card dt{color:var(--ink-soft)}.identity-card dd{margin:0;font-weight:700;text-align:right;overflow-wrap:anywhere}.display-name-row>dd{flex:1 1 auto;min-width:0}.display-name-value{display:flex;align-items:center;justify-content:flex-end;gap:10px}.display-name-value strong{overflow:hidden;text-overflow:ellipsis}.inline-edit-button,.inline-save-button,.inline-cancel-button{min-height:36px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--dada-paper);font:inherit;font-size:13px;font-weight:750;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.inline-edit-button:hover,.inline-cancel-button:hover{border-color:var(--warm-strong);color:var(--warm-strong);background:var(--warm-hover);transform:translateY(-1px)}.display-name-editor{display:grid;justify-items:end;gap:5px}.display-name-editor-line{display:flex;align-items:center;justify-content:flex-end;gap:7px}.display-name-editor input{width:min(260px,100%);min-height:34px;padding:7px 10px;border:1px solid var(--accent);border-radius:9px;color:var(--ink);background:var(--dada-paper);font:inherit;font-weight:650;outline:none}.display-name-editor input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.inline-save-button{border-color:var(--accent);color:#fff;background:var(--accent)}.inline-save-button:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px)}.inline-cancel-button{color:var(--ink-soft)}.inline-edit-button:disabled,.inline-save-button:disabled,.inline-cancel-button:disabled,.display-name-editor input:disabled{cursor:not-allowed;opacity:.55}.display-name-editor small{color:var(--ink-soft);font-size:11px;font-weight:500}.display-name-error{color:var(--bad);font-size:11px;font-weight:700}.password-card{margin-bottom:14px}.password-summary p{margin:0 0 12px;color:var(--ink-soft);font-size:13px}.password-success{color:#277c65!important;font-weight:700}.password-form{display:grid;gap:12px}.password-field{display:grid;gap:6px}.password-field label{color:var(--ink-soft);font-size:13px;font-weight:700}.password-field input{width:min(100%,360px);min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--dada-paper);font:inherit;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.password-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.password-field input:disabled{cursor:not-allowed;opacity:.55}.acct-password-rules{display:grid;gap:4px;margin:2px 0 0;padding:0;color:var(--ink-soft);font-size:11px;line-height:1.45;list-style:none}.acct-password-rules li{display:flex;align-items:flex-start;gap:6px}.acct-rule-mark{display:inline-grid;flex:0 0 auto;width:15px;height:15px;place-items:center;border:1px solid #d8c5a3;border-radius:50%;font-size:10px}.acct-password-rules li.checked .acct-rule-mark{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 32%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.acct-password-rules li.met{color:#397c69}.acct-password-rules li.met .acct-rule-mark{color:#277c65;border-color:#55cfaf70;background:#55cfaf29}.acct-field-error{margin:0;color:#b34e39;font-size:11px;font-weight:700}.password-actions{display:flex;gap:8px}.account-page .sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.danger-zone{margin-bottom:14px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow)}.danger-zone.expanded{padding:20px;border-color:#f1b8af}.danger-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:16px 18px;border:0;border-radius:inherit;color:var(--ink);background:none;font:inherit;text-align:left;cursor:pointer}.danger-toggle:hover{background:var(--warm-hover)}.danger-toggle-copy{display:grid;gap:3px}.danger-toggle-copy strong{font-size:15px}.danger-toggle-copy small{color:var(--ink-soft);font-size:12px}.danger-toggle-chevron{color:#b42318;font-size:22px;font-weight:700}.acct-danger-kicker{margin:0 0 5px;color:#b42318;font-size:11px;font-weight:800;letter-spacing:.08em}.danger-zone h3{color:#8f241b}.danger-zone>p:not(.acct-danger-kicker):not(.confirm-hint):not(.acct-inline-error){margin:0 0 16px;color:#875e59;font-size:13px;line-height:1.7}.danger-zone label{display:block;margin-bottom:6px;color:#783d37;font-size:13px;font-weight:700}.danger-zone input{width:min(100%,360px);padding:10px 12px;border:1px solid #e4aaa2;border-radius:10px;color:var(--ink);background:#fff;outline:none}.danger-zone input:focus{border-color:#b42318;box-shadow:0 0 0 3px #b423181f}.confirm-hint{margin:7px 0 10px;color:#986b65;font-size:12px}.acct-inline-error{margin:0 0 10px;color:#b42318;font-size:13px;font-weight:700}.deletion-status{display:grid;gap:4px;margin:0 0 16px;padding:11px 12px;border-radius:10px;color:#875e59;background:#ffffffb3;font-size:12px;line-height:1.55}.deletion-status strong{color:#8f241b}.deletion-data_deleted strong{color:#8a5a00}.deletion-completed strong{color:#166534}.deletion-failed{border:1px solid #e4aaa2}.danger-button{padding:9px 15px;border:1px solid #b42318;border-radius:999px;color:#fff;background:#b42318;font-size:13px;font-weight:800;cursor:pointer}.danger-button:hover:not(:disabled){background:#8f241b}.danger-button:disabled{cursor:not-allowed;opacity:.45}.wechat-card{margin-bottom:14px}.wallet-card{margin-bottom:14px;scroll-margin-top:84px}.wallet-balance-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.wallet-balance{font-size:34px;font-weight:900;color:var(--accent-strong);font-variant-numeric:tabular-nums;line-height:1.1}.wallet-balance-row p{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.6}.wallet-tx-list{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:4px}.wallet-tx-list li{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--dada-paper) 55%,transparent);font-size:12.5px}.wallet-tx-time{flex:0 0 auto;color:var(--ink-soft);font-variant-numeric:tabular-nums}.wallet-tx-action{flex:1 1 auto;font-weight:700}.wallet-tx-delta{flex:0 0 auto;font-weight:800;font-variant-numeric:tabular-nums}.wallet-tx-delta.plus{color:var(--ok)}.wallet-tx-delta.minus{color:var(--ink-soft)}.wallet-tx-after{flex:0 0 auto;color:var(--ink-soft);font-size:11.5px}.wallet-tx-empty{margin:12px 0 0;color:var(--ink-soft);font-size:12.5px}.wallet-tx-toggle{margin:10px 0 0;padding:0;border:0;color:var(--accent-strong);background:none;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}.wallet-tx-toggle:hover{text-decoration:underline}@media(max-width:560px){.account-page{width:min(calc(100% - 24px),1080px);padding-top:20px}.identity-card dl>div{align-items:flex-start;flex-direction:column;gap:3px}.identity-card dd{text-align:left}.inline-edit-button,.inline-save-button,.inline-cancel-button{min-height:44px}.display-name-value{justify-content:flex-start}.display-name-editor{width:100%;justify-items:stretch}.display-name-editor-line{justify-content:flex-start;flex-wrap:wrap}.display-name-editor input{flex:1 1 180px;width:auto}.display-name-editor small{line-height:1.5}.password-field input{width:100%}.danger-zone.expanded{padding:16px}.danger-zone input{width:100%}}.learn-migration-page{display:grid;min-height:calc(100dvh - 50px);place-items:center;padding:30px 20px 60px}.migration-card{width:min(100%,620px);padding:28px}.migration-card h1{margin:0 0 10px;font-size:25px}.learn-lead{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.8}.migration-note{display:grid;gap:4px;margin:20px 0;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--dada-cream)}.migration-note strong{font-size:13px}.migration-note span{color:var(--ink-soft);font-size:12px}.migration-actions{display:flex;gap:9px;flex-wrap:wrap}@media(max-width:560px){.learn-migration-page{padding-inline:12px}.migration-card{padding:20px}.migration-actions .btn{width:100%;justify-content:center}}.grammar-card{display:flex;flex-wrap:wrap;justify-content:center;gap:30px 18px;max-width:900px;margin:18px auto 0;padding:10px 4px 2px}.g-span{position:relative;border:1.5px solid var(--rc);border-color:color-mix(in srgb,var(--rc) 55%,#ffffff);border-radius:16px;padding:14px 18px 10px;background:#ffffffe6;box-shadow:0 6px 18px #1f29370f}.g-role{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--rc);color:#fff;font-size:12px;font-weight:600;line-height:1;padding:4px 12px;border-radius:99px;white-space:nowrap}.g-words{display:flex;gap:18px}.g-word{display:flex;flex-direction:column;align-items:center;min-width:44px}.g-phon{font-size:13px;font-style:italic;color:var(--ink-soft);min-height:16px}.g-w{font-size:26px;font-weight:700;color:var(--ink);line-height:1.25;white-space:nowrap}.g-line{width:100%;height:4px;border-radius:2px;background:var(--pc, var(--rc));margin:4px 0 5px}.g-gloss{font-size:13px;color:var(--ink);line-height:1.3}.g-pos{font-size:11px;color:var(--ink-soft);line-height:1.3;margin-top:1px}.theme-dark .g-span{background:#181c26e6;border-color:color-mix(in srgb,var(--rc) 65%,#1f2430);box-shadow:0 6px 18px #00000059}.gqa{position:absolute;top:70px;right:22px;z-index:40;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.gqa-bar{display:flex;align-items:center;gap:2px;padding:5px;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:999px;box-shadow:0 6px 20px #0000001a}.gqa-btn{width:36px;height:36px;border:none;background:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:background .15s,color .15s}.gqa-btn:hover{background:#0000000d;color:#374151}.gqa-btn.active{background:#ede9fe;color:#7c3aed}.gqa-btn.on{color:#8b5cf6}.gqa-btn.on:hover{background:#ede9fe}.gqa-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.gqa-pop{width:240px;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:16px;box-shadow:0 12px 32px #00000024}.gqa-pop-title{font-size:15px;font-weight:700;color:#1f2937;margin-bottom:12px}.gqa-stepper{display:flex;align-items:stretch;gap:4px;padding:4px;background:#f4f4f5;border-radius:12px}.gqa-stepper button{flex:1;border:none;background:none;cursor:pointer;font-size:20px;font-weight:600;color:#6b7280;border-radius:9px;padding:8px 0;line-height:1;transition:background .15s,color .15s}.gqa-stepper button:hover:not(:disabled){background:#0000000d;color:#1f2937}.gqa-stepper button:disabled{opacity:.35;cursor:default}.gqa-stepper .gqa-value{flex:1.2;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:9px;box-shadow:0 1px 3px #00000014;font-size:17px;font-weight:800;color:#111827;font-variant-numeric:tabular-nums}.theme-dark .gqa-bar{background:#1c212c;border-color:var(--line)}.theme-dark .gqa-btn{color:var(--ink-soft)}.theme-dark .gqa-btn:hover{background:#ffffff14;color:var(--ink)}.theme-dark .gqa-btn.active{background:#8b5cf638;color:#c4b5fd}.theme-dark .gqa-btn.on{color:#a78bfa}.theme-dark .gqa-pop{background:#1c212c;border-color:var(--line)}.theme-dark .gqa-pop-title{color:var(--ink)}.theme-dark .gqa-stepper{background:#14171f}.theme-dark .gqa-stepper button{color:var(--ink-soft)}.theme-dark .gqa-stepper button:hover:not(:disabled){background:#ffffff14;color:var(--ink)}.theme-dark .gqa-stepper .gqa-value{background:#262c3a;color:var(--ink);box-shadow:none}.lc-mask{position:fixed;inset:0;background:#0f0f1473;display:flex;align-items:center;justify-content:center;z-index:120}.lc-modal{width:min(1120px,94vw);height:min(760px,88vh);background:#fff;border-radius:18px;box-shadow:0 24px 64px #00000040;display:flex;flex-direction:column;overflow:hidden}.lc-head{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid rgba(0,0,0,.07)}.lc-head h3{margin:0;font-size:17px;font-weight:800}.lc-close{border:none;background:none;cursor:pointer;font-size:16px;color:#6b7280;padding:6px;border-radius:8px;line-height:1}.lc-close:hover{background:#0000000f;color:#111827}.lc-body{flex:1;display:flex;min-height:0}.lc-list{width:44%;border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fafafa}.lc-item{display:flex;align-items:center;gap:10px;border:none;background:#f1f2f4;border-radius:12px;padding:14px 16px;cursor:pointer;text-align:left;font:inherit;color:#1f2937;transition:background .15s}.lc-item:hover{background:#e9eaee}.lc-item.selected{background:#ede9fe;color:#5b21b6}.lc-item-en{flex:1;font-size:16px;line-height:1.5}.lc-item-arrow{color:#9ca3af;flex:none}.lc-item.selected .lc-item-arrow{color:#7c3aed}.lc-detail{flex:1;overflow-y:auto;padding:20px 26px 30px}.lc-detail-head{font-size:17px;font-weight:800;margin-bottom:14px}.lc-sentence{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:700;color:#111827}.lc-soundmark{color:#6b7280;font-size:14px;margin-top:6px}.lc-speaker{border:none;background:none;cursor:pointer;color:#9ca3af;padding:4px;border-radius:8px;display:inline-flex;flex:none}.lc-speaker:hover{background:#0000000f;color:#374151}.lc-speaker svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.lc-section{margin-top:22px}.lc-section h4{margin:0 0 10px;font-size:15px;font-weight:800;color:#1f2937;padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.07)}.lc-p{margin:0;font-size:15px;line-height:1.8;color:#374151}.lc-row{display:flex;gap:10px;margin-top:8px;font-size:14px;line-height:1.7}.lc-row-label{flex:none;color:#6b7280;font-weight:600}.lc-row-value{color:#374151}.lc-chips{display:flex;flex-wrap:wrap;gap:6px}.lc-chip{background:#f1f2f4;color:#374151;border-radius:999px;padding:2px 12px;font-size:13px;line-height:1.7}.lc-chip-green{background:#dcfce7;color:#15803d}.lc-chip-red{background:#fee2e2;color:#b91c1c}.lc-component{display:flex;flex-direction:column;gap:2px;margin-top:10px;padding:10px 14px;background:#f8fafc;border-radius:10px;font-size:14px}.lc-component-name{font-weight:700;color:#1f2937}.lc-component-meaning{color:#374151}.lc-component-note{color:#6b7280;font-size:13px}.lc-vocab{border:1px solid rgba(0,0,0,.07);border-radius:12px;padding:14px 16px;margin-top:12px}.lc-vocab-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lc-vocab-word{font-size:17px;font-weight:700;color:#111827}.lc-vocab-phonetic{color:#6b7280;font-size:13px}.lc-vocab-zh{color:#374151;font-size:14px}.lc-vocab-pos{margin-left:auto;color:#8b5cf6;font-size:13px;font-weight:700}.lc-example{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:#f8fafc;border-radius:10px;margin-top:8px;font-size:14px;color:#1f2937}.lc-example-note{color:#6b7280;font-size:13px}.lc-empty{margin-top:24px;color:#9ca3af;font-size:14px}.lc-grammar{margin-top:6px}.theme-dark .lc-modal{background:#1c212c;color:var(--ink)}.theme-dark .lc-head{border-color:var(--line)}.theme-dark .lc-head h3,.theme-dark .lc-detail-head,.theme-dark .lc-section h4{color:var(--ink)}.theme-dark .lc-section h4{border-color:var(--line)}.theme-dark .lc-close{color:var(--ink-soft)}.theme-dark .lc-close:hover{background:#ffffff14;color:var(--ink)}.theme-dark .lc-list{background:#181c26;border-color:var(--line)}.theme-dark .lc-item{background:#232936;color:var(--ink)}.theme-dark .lc-item:hover{background:#2a3140}.theme-dark .lc-item.selected{background:#8b5cf638;color:#c4b5fd}.theme-dark .lc-sentence,.theme-dark .lc-p,.theme-dark .lc-row-value,.theme-dark .lc-component-meaning,.theme-dark .lc-vocab-zh,.theme-dark .lc-example{color:var(--ink)}.theme-dark .lc-soundmark,.theme-dark .lc-row-label,.theme-dark .lc-component-note,.theme-dark .lc-vocab-phonetic,.theme-dark .lc-example-note{color:var(--ink-soft)}.theme-dark .lc-component,.theme-dark .lc-example{background:#14171f}.theme-dark .lc-component-name,.theme-dark .lc-vocab-word{color:var(--ink)}.theme-dark .lc-vocab{border-color:var(--line)}.theme-dark .lc-chip{background:#2a3140;color:var(--ink)}.theme-dark .lc-chip-green{background:#22c55e2e;color:#86efac}.theme-dark .lc-chip-red{background:#ef44442e;color:#fca5a5}.theme-dark .lc-speaker{color:var(--ink-soft)}.theme-dark .lc-speaker:hover{background:#ffffff14;color:var(--ink)}@media(max-width:720px){.lc-body{flex-direction:column}.lc-list{width:100%;max-height:34%;border-right:none;border-bottom:1px solid rgba(0,0,0,.07)}.theme-dark .lc-list{border-color:var(--line)}}.game-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none;position:relative}.theme-dark .hint,.theme-dark .pause-card,.theme-dark .share-card,.theme-dark .start-card,.theme-dark .feedback-card{background:#1c212c;border-color:var(--line);color:var(--ink)}.theme-dark .summary-card{background:#1c212c;border-color:var(--line);color:var(--ink)}.theme-dark .cell{border-bottom-color:#4b5563;color:#e5e7eb8c}.theme-dark .cell.active{color:#c084fc;border-bottom-color:#c084fc}.theme-dark .cell.filled{color:var(--ink)}button.title-btn{background:none;border:none;font:inherit;color:inherit;cursor:pointer;padding:2px 8px;border-radius:8px}.title-btn:hover{background:#0000000d}.theme-dark .title-btn:hover{background:#ffffff14}.sg-progress-track{height:4px;background:var(--line);margin:0 22px;border-radius:999px;overflow:hidden}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;padding:24px}.stage.blurred{filter:blur(14px);pointer-events:none}.prompt{font-weight:700;letter-spacing:.02em}.prompt-s{font-size:26px}.prompt-m{font-size:34px}.prompt-l{font-size:44px}.prompt-row{display:flex;align-items:center;gap:10px}.tag{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;line-height:1.4}.result-tags{display:flex;justify-content:center;gap:8px;margin-top:10px}.word-cells{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;max-width:86vw}.word-cells.wrong{animation:shake .45s ease}.cell-wrap{display:inline-flex;align-items:baseline}.cell{display:inline-flex;align-items:baseline;justify-content:center;min-height:52px;padding:0 2px 6px;border-bottom:3px solid #d1d5db;font-size:36px;font-weight:700;letter-spacing:.04em;color:#1f293773;transition:color .12s,border-color .12s}.cell.filled{color:var(--ink)}.cell.active{border-bottom-color:var(--accent);color:var(--accent-strong)}.cell.active.filled{color:var(--ink)}.cell.wrongCell{border-bottom-color:var(--bad);color:var(--bad)}.cell.flash{border-bottom-color:var(--bad);animation:cellShake .4s ease}.input-fixed .cell{text-align:center}.input-line .cell{border-bottom-width:1px;min-height:44px;font-size:30px}.punct{font-size:36px;font-weight:700;color:var(--ink);margin-left:-6px}.caret{display:inline-block;width:3px;height:32px;background:var(--accent);vertical-align:-4px;margin-left:2px;animation:blink 1s steps(1) infinite}.hint{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 22px;text-align:center;box-shadow:0 8px 24px #1f293714}.hint-en{font-size:22px;font-weight:700}.hint-mark,.result-mark{color:var(--ink-soft);margin-top:4px}.result-card,.result-inline{text-align:center}.result-card .result-grammar{margin-top:0}.result-en{font-size:44px;font-weight:800;letter-spacing:.02em}.tree{font-size:26px;vertical-align:8px}.result-zh{color:var(--ink-soft);font-size:15px;margin-top:10px}.result-inline{display:flex;flex-direction:column;align-items:center;gap:18px}.answer-area{min-width:320px;max-width:80vw;text-align:center;border-bottom:3px solid var(--accent);padding:6px 12px 10px;min-height:58px}.answer-area.done{border-bottom-color:var(--ok)}.typed{font-size:38px;font-weight:700;letter-spacing:.04em;word-break:break-all}.hint-en.prompt-s,.result-en.prompt-s,.typed.prompt-s{font-size:26px}.hint-en.prompt-m,.result-en.prompt-m,.typed.prompt-m{font-size:34px}.hint-en.prompt-l,.result-en.prompt-l,.typed.prompt-l{font-size:44px}.overlay{position:fixed;inset:0;background:#0f0f1473;display:flex;align-items:center;justify-content:center;z-index:120}.start-card,.pause-card,.share-card{background:#fff;border-radius:18px;padding:30px 34px;width:620px;max-width:94vw;text-align:center}.start-card h2,.pause-card h2,.share-card h2,.feedback-card h2{margin:0 0 8px;font-size:20px}.start-desc{color:var(--ink-soft);font-size:13px;margin:0 0 20px}.diff-row{display:flex;gap:12px;margin-bottom:18px}.diff-card{flex:1;border:2px solid var(--line);border-radius:12px;background:#fff;padding:14px 10px;cursor:pointer;transition:border-color .15s,background .15s}.diff-card:hover{border-color:var(--accent)}.diff-card.active{border-color:var(--accent);background:var(--accent-soft)}.diff-card.disabled{opacity:.4;pointer-events:none}.diff-name{font-weight:700;font-size:15px}.diff-desc{color:var(--ink-soft);font-size:11px;margin:6px 0;line-height:1.5}.diff-count{color:var(--accent-strong);font-size:12px;font-weight:700}.shuffle-row{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin-bottom:18px;cursor:pointer}.shuffle-row input{accent-color:var(--accent)}.start-btn{padding:10px 34px;font-size:15px}.pause-card p{color:var(--ink-soft);margin:0 0 20px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:36px 44px;text-align:center;min-width:400px;box-shadow:0 24px 64px #1f29371f;animation:pop .35s cubic-bezier(.16,1,.3,1)}.summary-rating{display:inline-block;font-size:54px;font-weight:900;font-style:italic;padding:6px 26px;border-radius:16px}.summary-title{margin:14px 0 20px;color:var(--ink-soft);font-size:14px}.cell .num{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}.cell .label{color:var(--ink-soft);font-size:12px;margin-top:2px}.summary-actions{display:flex;justify-content:center;gap:12px}.summary-actions .btn-outline{background:transparent;border-color:var(--dada-cobalt);color:var(--dada-cobalt);box-shadow:none}.summary-actions .btn-outline:hover{background:var(--dada-mint-soft);color:var(--accent-strong);transform:none}.summary-actions .btn-outline:active{transform:translateY(3px);box-shadow:none}.summary-cta-skeleton{display:inline-block;min-width:152px;height:37px;border-radius:999px;background:var(--dada-paper);animation:summaryCtaBreath .8s ease-in-out infinite alternate}@keyframes summaryCtaBreath{0%{opacity:1}to{opacity:.45}}.sg-load-error{display:grid;justify-items:center;gap:10px;padding:40px;text-align:center;color:var(--bad)}.sg-load-error span{color:var(--ink-soft)}.sg-load-error-actions{display:flex;gap:10px;margin-top:6px}.pack-card{display:flex;min-height:250px;flex-direction:column;gap:10px;padding:17px;border:1px solid var(--line);border-radius:var(--radius-card, 16px);background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow)}.pack-card h3{margin:0;font-size:16px}.desc{min-height:34px;margin:0;color:var(--ink-soft);font-size:12px;line-height:1.6}.card-topline,.chip-line,.progress-head,.card-meta,.card-actions{display:flex;align-items:center}.card-topline{justify-content:space-between;gap:8px}.pk-type-chip,.pk-current-chip,.saved-chip{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800}.pk-current-chip{color:#245c9c;background:#e7f0ff}.saved-chip{color:#6b4f8a;background:#f1e9fb}.status-text{color:var(--ink-soft);font-size:11px;font-weight:800}.card-actions{justify-content:flex-end;gap:12px;margin-top:auto}.primary-action,.secondary-action{font-size:13px;font-weight:800}.secondary-action{padding:0;border:0;color:var(--ink-soft);background:transparent;cursor:pointer}.primary-action:hover,.secondary-action:hover{color:var(--accent)}.pack-card{min-height:0;gap:7px;padding:13px}.pack-card .desc{min-height:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-view{display:flex;flex-direction:column;gap:26px}.section-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.section-head h2{margin:0;color:var(--dada-brown);font-size:19px;letter-spacing:-.03em}.section-count{display:inline-flex;align-items:center;min-width:22px;min-height:22px;justify-content:center;padding:0 7px;border-radius:999px;color:var(--ink-soft);background:var(--dada-cream);font-size:12px;font-weight:800}.fold-head{padding:0;border:0;background:transparent;cursor:pointer}.fold-arrow{margin-left:auto;color:var(--ink-soft)}.pcv-pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.empty-copy{margin:0;padding:18px 20px;border:1px dashed var(--line);border-radius:16px;color:var(--ink-soft);font-size:13px}.action-error{margin:0;color:var(--bad);font-size:12px}.state-card>.recommend-wrap{display:block;width:100%;margin-top:8px}.recommend-title{margin:0 0 10px;color:var(--ink-soft);font-size:12px;font-weight:800}.recommend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;text-align:left}.recommend-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.recommend-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 10%,transparent);transform:translateY(-2px)}.recommend-mark{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border-radius:10px;color:var(--accent-strong);background:var(--accent-soft);font-size:15px;font-weight:900}.recommend-copy{display:grid;gap:4px;flex:1 1 auto;min-width:0}.recommend-copy strong{color:var(--ink);font-size:13px;line-height:1.45}.recommend-copy span{color:var(--ink-soft);font-size:11px}.recommend-card .btn{flex:0 0 auto;padding:7px 12px;font-size:12px;white-space:nowrap}.pcv-mascot{display:grid;width:54px;height:54px;place-items:center;border:1px solid var(--line);border-radius:14px;color:var(--accent-strong);background:var(--accent-soft);box-shadow:0 3px 0 var(--paper-shadow)}.discover-tile{display:grid;min-height:100%;place-content:center;justify-items:center;gap:9px;padding:22px 16px;border:1px dashed color-mix(in srgb,var(--warm-strong) 40%,var(--line));border-radius:17px;color:var(--ink-soft);background:color-mix(in srgb,var(--dada-cream) 42%,transparent);text-decoration:none;transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .2s ease}.discover-tile>span{display:grid;width:54px;height:54px;place-items:center;border:1px solid var(--line);border-radius:14px;color:var(--warm-strong);background:var(--dada-paper);box-shadow:0 3px 0 var(--paper-shadow);font-size:27px}.discover-tile strong{color:var(--dada-brown);font-size:14px}.discover-tile small{font-size:11px}.discover-tile:hover{border-color:var(--warm-strong);color:var(--warm-strong);background:var(--warm-hover);transform:translateY(-3px)}.plan-modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px;background:#40342a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.plan-modal{width:min(100%,520px);padding:22px 24px}.plan-modal{border:1px solid var(--line);border-radius:20px;background:var(--dada-paper);box-shadow:0 6px 0 var(--paper-shadow)}.plan-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.plan-modal-head h2{margin:0;color:var(--dada-brown);font-size:21px;letter-spacing:-.03em}.sub{margin:6px 0 0;color:var(--ink-soft);font-size:13px}.close-btn{padding:2px 8px;border:0;border-radius:8px;color:var(--ink-soft);background:transparent;font-size:22px;line-height:1;cursor:pointer}.close-btn:hover{color:var(--ink);background:var(--dada-cream)}.book-summary{display:grid;gap:4px;margin-top:18px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--dada-cream)}.book-summary strong{color:var(--dada-brown);font-size:15px}.book-summary span{color:var(--ink-soft);font-size:12px}.goal-block{margin-top:18px}.block-label{margin:0 0 9px;color:var(--ink-soft);font-size:13px;font-weight:800}.goal-chips{display:flex;flex-wrap:wrap;gap:9px}.goal-chips button{min-width:62px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--dada-paper);font-size:16px;font-weight:800;cursor:pointer}.goal-chips button:hover,.goal-chips button.selected{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.custom-goal{display:flex;align-items:center;gap:6px;min-height:42px;padding:0 10px 0 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:var(--dada-paper);font-size:13px;font-weight:800;cursor:text}.custom-goal.selected{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.custom-goal span{white-space:nowrap}.custom-goal input{width:58px;padding:6px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--dada-cream);font:inherit;font-size:14px;text-align:center}.custom-goal input:focus{outline:2px solid color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:1px;border-color:var(--accent)}.custom-goal input::placeholder{color:var(--ink-soft);font-size:12px}.start-block{margin-top:20px;padding:14px 15px 12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--dada-cream) 72%,var(--dada-paper))}.start-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.start-head .block-label{margin:0}.start-head strong{color:var(--accent-strong);font-size:14px;font-variant-numeric:tabular-nums}.start-slider{display:block;width:100%;margin:14px 0 4px;accent-color:var(--accent);cursor:pointer}.start-slider:disabled{cursor:not-allowed;opacity:.5}.start-scale{display:flex;justify-content:space-between;color:var(--ink-soft);font-size:11px}.start-help{margin:8px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.5}.estimate{margin:16px 0 0;color:var(--ink-soft);font-size:13px}.plan-error{margin:14px 0 0;padding:9px 11px;border-radius:10px;color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--dada-paper));font-size:12px}.plan-status{margin:14px 0 0;color:var(--accent-strong);font-size:12px}.plan-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}.delete-zone{min-width:0}.delete-plan-button{padding:4px 0;border:0;color:color-mix(in srgb,var(--ink-soft) 72%,var(--bad));background:transparent;font:inherit;font-size:11px;cursor:pointer;opacity:.72}.delete-plan-button:hover{color:var(--bad);opacity:1;text-decoration:underline}.delete-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:var(--bad);font-size:11px}.delete-confirm button{padding:3px 6px;border:0;border-radius:6px;color:var(--bad);background:transparent;font:inherit;font-weight:800;cursor:pointer}.delete-confirm button:hover{background:color-mix(in srgb,var(--bad) 10%,transparent)}.delete-confirm button:last-child{color:var(--ink-soft)}.plan-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:0}@media(max-width:520px){.plan-modal-foot{align-items:flex-end}.delete-confirm{max-width:150px}.plan-modal-actions{flex-shrink:0}}.plans-pending{display:flex;align-items:center;justify-content:center;gap:10px;padding:22px;border:1px dashed var(--line);border-radius:16px;color:var(--ink-soft);font-size:13px}.text-button{padding:2px 0;border:0;color:var(--accent-strong);background:transparent;font-size:12px;font-weight:800;cursor:pointer}.plans-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;margin-bottom:26px}.plans-empty{display:flex;align-items:center;gap:16px;padding:22px 24px;border-color:var(--line);background:var(--dada-paper)}.empty-mark{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:14px;color:var(--accent-strong);background:var(--accent-soft);font-size:27px;font-weight:300}.plans-empty strong{color:var(--dada-brown);font-size:15px}.plans-empty p{margin:5px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.55}.plans-empty .btn{margin-left:auto;flex:0 0 auto}.plan-card{padding:18px 20px;border-color:#e6c36d;background:linear-gradient(120deg,var(--dada-paper),var(--dada-yellow-soft))}.plan-card,.plans-empty{border:1px solid var(--line);border-radius:18px;box-shadow:0 2px 0 var(--paper-shadow)}.plan-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.plan-kicker{display:block;margin-bottom:4px;color:var(--accent-strong);font-size:10px;font-weight:900;letter-spacing:.12em}.plan-head h2{margin:0;color:var(--dada-brown);font-size:18px;letter-spacing:-.03em}.plan-head-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--ink-soft);font-size:12px}.progress-block{margin-top:12px}.progress-line{display:flex;justify-content:space-between;color:var(--ink-soft);font-size:12px}.progress-line strong{color:var(--ink);font-variant-numeric:tabular-nums}.plans-progress-track{height:8px;overflow:hidden;margin-top:6px;border-radius:999px;background:var(--line)}.plans-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-strong))}.plan-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.stat{display:grid;justify-items:center;gap:3px;padding:11px 8px;border:1px solid var(--line);border-radius:12px;background:var(--dada-paper)}.stat strong{color:var(--dada-brown);font-size:22px;line-height:1;font-variant-numeric:tabular-nums}.stat span{color:var(--ink-soft);font-size:11px}.plan-scope{margin:12px 0 0;color:var(--ink-soft);font-size:11px}.plan-actions{display:flex;gap:10px;margin-top:16px}.plan-actions .btn-primary{flex:1;justify-content:center}@media(max-width:560px){.plans-list{grid-template-columns:1fr}.plan-head{align-items:flex-start;flex-direction:column;gap:5px}.plans-empty{align-items:flex-start;flex-direction:column}.plans-empty .btn{width:100%;justify-content:center;margin-left:0}.plan-actions{flex-direction:column}.plan-actions .btn{width:100%;justify-content:center}}.wh-content-page{width:min(calc(100% - 40px),1120px);margin:0 auto;padding:34px 0 72px}.word-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:30px;padding:28px 30px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(115deg,color-mix(in srgb,var(--dada-paper) 92%,white),var(--dada-yellow-soft));box-shadow:0 4px 0 var(--paper-shadow)}.wh-hero-copy{max-width:720px}h1{margin:0 0 9px;color:var(--dada-brown);font-size:clamp(27px,4vw,38px);letter-spacing:-.055em;line-height:1.08}.wh-hero-copy p{max-width:650px;margin:0;color:var(--ink-soft);font-size:14px;line-height:1.75}.hero-action{flex:0 0 auto;white-space:nowrap}.hero-actions{display:flex;gap:10px;flex:0 0 auto}.routine-section{margin-bottom:36px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:15px}.section-heading h2{margin:0;color:var(--dada-brown);font-size:24px;letter-spacing:-.045em}.text-link{color:var(--accent-strong);font-size:13px;font-weight:800;text-decoration:none}.text-link:hover{color:var(--accent)}@media(max-width:640px){.wh-content-page{width:min(calc(100% - 24px),1120px);padding-top:20px}.word-hero{align-items:flex-start;flex-direction:column;padding:22px 20px}.hero-action{width:100%;justify-content:center}.hero-actions{width:100%}.hero-actions .btn{flex:1;justify-content:center}.section-heading{align-items:flex-start}}.wrepo-content-page{width:min(calc(100% - 40px),1120px);margin:0 auto;padding:28px 0 60px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head p:last-child{max-width:620px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.7}@media(max-width:640px){.wrepo-content-page{width:min(calc(100% - 24px),1120px);padding-top:20px}.page-head{align-items:flex-start;flex-direction:column}.page-head .btn{width:100%;justify-content:center}}.game-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none}.theme-warm{--bg: #fdf8ef}.theme-green{--bg: #f2f8f0}.theme-dark{--bg: #14171f;--ink: #e5e7eb;--ink-soft: #9ca3af;--line: #2d3342}.theme-dark .tool,.theme-dark .back{color:var(--ink-soft)}.theme-dark .tool:hover{background:#ffffff14}.theme-dark .wg-hint,.theme-dark .wg-pause-card,.theme-dark .wg-share-card,.theme-dark .wg-start-card,.theme-dark .feedback-card{background:#1c212c;border-color:var(--line);color:var(--ink)}.theme-dark .content-row{color:var(--ink)}.theme-dark .content-row:hover{background:#ffffff0f}.theme-dark .drawer{background:#1c212c;color:var(--ink);border-color:var(--line)}.theme-dark .shortcuts kbd{background:#1c212c;border-color:var(--line);color:var(--ink-soft)}.theme-dark .wg-summary-card{background-color:#1c212c;background-image:linear-gradient(#14171f9e,#14171f9e),url(/branding/word-victory-card-bg.png);border-color:var(--line);color:var(--ink)}.theme-dark .summary-context,.theme-dark .summary-grid .wg-cell .label{color:#d5b993}.theme-dark .wg-summary-title,.theme-dark .summary-grid .wg-cell .num{color:#fff1d6}.theme-dark .summary-mask{background:#14171ff0}.theme-dark .letter{color:#e5e7eb66}.theme-dark .dictate .letter{border-bottom-color:#4b5563}.theme-dark .letter.typed{color:var(--ink)}.theme-dark .letter.current{color:#c084fc}.theme-dark .dictate .letter.current{border-bottom-color:#c084fc}.theme-dark .letter.wrongNow{color:var(--bad)}.game-top{display:flex;align-items:center;gap:14px;padding:12px 22px 8px}.back{font-size:26px;color:var(--ink-soft);line-height:1;padding:0 6px}.back:hover{color:var(--ink)}button.back{background:none;border:none;cursor:pointer;font:inherit}.title{font-weight:700;font-size:15px}.stage-chip{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:999px;color:var(--accent-strong);background:var(--accent-soft);font-size:11px;font-weight:800;vertical-align:1px}.stats{display:flex;align-items:center;gap:14px;position:relative;margin-left:auto}.timer{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:14px}.score{font-weight:800;font-size:18px;color:var(--accent-strong);font-variant-numeric:tabular-nums}.score-float{position:absolute;right:0;top:-22px;color:var(--ok);font-weight:800;font-size:15px}.toolbar{display:flex;align-items:center;gap:4px;margin-left:18px}.tool{width:34px;height:34px;border:none;background:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);transition:background .15s,color .15s}.tool:hover{background:#0000000f;color:var(--ink)}.tool.on{color:var(--accent-strong);background:var(--accent-soft)}.tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.feedback-tool{min-width:58px;height:34px;padding:0 10px;border:1px solid #b9b3a8;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;background:#ffffff57;color:#78512e;font:inherit;font-size:12px;font-weight:700;transition:background .15s,border-color .15s,transform .15s}.feedback-tool>span:first-child{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:50%;font-size:11px;line-height:1}.feedback-tool:hover{border-color:#78512e;background:#f5eee4}.feedback-tool:active{transform:translateY(1px) scale(.98)}.wg-progress-track{height:4px;background:var(--line);margin:0 22px;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--ok);border-radius:999px;transition:width .35s ease}.combo-popup{position:fixed;top:64px;left:50%;transform:translate(-50%);font-size:44px;font-weight:900;font-style:italic;color:var(--combo);text-shadow:0 2px 0 rgba(255,255,255,.6);z-index:60;pointer-events:none}.combo-enter-active{animation:comboDrop .9s cubic-bezier(.16,1,.3,1) forwards}.combo-leave-active{transition:opacity .2s}@keyframes comboDrop{0%{opacity:0;transform:translate(-50%) translateY(-28px) scale(.7)}35%{opacity:1;transform:translate(-50%) translateY(6px) scale(1.12)}55%{transform:translate(-50%) translateY(0) scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-6px) scale(1.02)}}.float-enter-active{animation:floatUp .9s ease-out forwards}.float-leave-active{transition:opacity .15s}@keyframes floatUp{0%{opacity:0;transform:translateY(6px)}25%{opacity:1}to{opacity:0;transform:translateY(-16px)}}.wg-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:24px}.wg-stage.blurred{filter:blur(14px);pointer-events:none}.wg-prompt-row{display:flex;align-items:center;gap:10px;max-width:86vw}.wg-prompt{font-weight:700;letter-spacing:.02em;text-align:center}.wg-prompt-s{font-size:24px}.wg-prompt-m{font-size:30px}.wg-prompt-l{font-size:40px}.wg-tag{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;line-height:1.4;flex-shrink:0}.tag-mastered{background:#10b98124;color:var(--ok)}.tag-vocab{background:var(--accent-soft);color:var(--accent-strong)}.phonetic-row{display:flex;align-items:center;gap:8px;min-height:28px}.phonetic{color:var(--ink-soft)}.phonetic-s{font-size:12px}.phonetic-m{font-size:16px}.phonetic-l{font-size:20px}.speak{width:30px;height:30px;border:none;background:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);transition:background .15s,color .15s}.speak:hover{background:#0000000f;color:var(--accent-strong)}.speak svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.letters-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;row-gap:14px;max-width:88vw}.letters-row.wrong{animation:shake .45s ease}.gap{width:.55em}.fixed-char{padding:0 1px 2px;font-size:54px;font-weight:800;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif;color:#1f293773}.theme-dark .fixed-char{color:#e5e7eb66}.letter{position:relative;display:inline-flex;align-items:baseline;justify-content:center;min-width:.72em;min-height:1.35em;padding:0 1px 2px;font-size:54px;font-weight:800;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif;color:#1f293747;transition:color .12s,border-color .12s,transform .12s}.dictate .letter{border-bottom:3px solid #d1d5db;margin:0 2px}.spell .letter{border-bottom:3px solid transparent;margin:0 1px}.letter.typed{color:var(--ink)}.letter.current{color:var(--accent-strong)}.dictate .letter.current{border-bottom-color:var(--accent)}.letter.wrongNow{color:var(--bad);animation:cellShake .3s ease}.dictate .letter.wrongNow{border-bottom-color:var(--bad)}.letters-row.done .letter{color:var(--ok);border-bottom-color:var(--ok);animation:letterPop .4s cubic-bezier(.16,1,.3,1);animation-delay:calc(var(--i) * 45ms)}.identify-panel{width:min(680px,90vw);margin-top:6px}.identify-help{margin:0 0 14px;color:var(--ink-soft);font-size:13px;text-align:center}.identify-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.identify-option{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;color:var(--ink);background:var(--dada-paper, #fff);cursor:pointer;font:inherit;text-align:left;transition:border-color .15s,background .15s,transform .12s}.identify-option:hover{border-color:var(--accent);transform:translateY(-1px)}.identify-option kbd{display:grid;width:26px;height:26px;place-items:center;border:1px solid var(--line);border-radius:7px;color:var(--ink-soft);background:var(--bg);font-size:11px;font-weight:800}.identify-option.selected{border-color:var(--accent);background:var(--accent-soft)}.identify-option.correct{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.identify-option.wrong{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent)}.identify-option:disabled{cursor:default}.identify-answer{margin-top:11px;color:var(--ok);font-size:12px;font-weight:700;text-align:center}@keyframes letterPop{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-7px) scale(1.12)}to{transform:translateY(0) scale(1)}}.wg-caret{position:absolute;left:1px;right:1px;bottom:2px;width:auto;height:3px;background:var(--accent);animation:blink 1s steps(1) infinite}.dictate .wg-caret{display:none}@keyframes blink{50%{opacity:0}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes cellShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.wg-hint{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 22px;text-align:center;box-shadow:0 8px 24px #1f293714}.wg-hint-en{font-size:24px;font-weight:700}.wg-hint-en.wg-prompt-s{font-size:24px}.wg-hint-en.wg-prompt-m{font-size:30px}.wg-hint-en.wg-prompt-l{font-size:40px}.toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%);background:#1f2937eb;color:#fff;font-size:14px;font-weight:600;padding:10px 20px;border-radius:999px;z-index:130;pointer-events:none;box-shadow:0 10px 28px #0003;white-space:nowrap}.toast-enter-active{animation:toastIn .22s ease-out}.toast-leave-active{transition:opacity .18s}.toast-leave-to{opacity:0}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(12px)}}.shortcuts{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 22px;padding:16px;color:var(--ink-soft);font-size:13px}.shortcuts kbd{display:inline-block;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 7px;background:#fff;font-size:12px;font-family:inherit;margin-right:3px}.key-action{color:var(--accent-strong);font-weight:600}.wg-overlay{position:fixed;inset:0;background:#392b1f75;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;z-index:120}.wg-start-card,.wg-pause-card,.wg-share-card{background:#fff;border-radius:18px;padding:30px 34px;width:560px;max-width:94vw;text-align:center}.wg-start-card{width:min(548px,calc(100vw - 32px));padding:30px 32px 28px;border:1px solid #e5d5bc;border-radius:24px;background:#fffaf1;box-shadow:0 26px 72px #4e372033,0 2px #77542b1f;text-align:left;animation:startCardIn .35s cubic-bezier(.16,1,.3,1)}@keyframes startCardIn{0%{opacity:0;transform:translateY(12px) scale(.98)}}.start-kicker{display:flex;align-items:center;gap:8px;color:#a07a4e;font-size:10px;font-weight:900;letter-spacing:.16em}.kicker-mark{display:grid;width:22px;height:22px;place-items:center;border-radius:8px;color:#fff;background:#2f887e;font-size:12px;letter-spacing:0}.wg-start-card h2,.wg-pause-card h2,.wg-share-card h2,.feedback-card h2{margin:0 0 8px;font-size:20px}.wg-start-card h2{margin:18px 0 7px;font-size:clamp(25px,4vw,32px);letter-spacing:-.04em}.wg-start-desc{max-width:44em;color:var(--ink-soft);font-size:13px;line-height:1.65;margin:0}.start-meta{display:flex;align-items:center;gap:9px;margin:16px 0 18px;color:#9a7c5b;font-size:12px}.start-meta b{color:#5f4632;font-size:16px;font-variant-numeric:tabular-nums}.meta-divider{color:#d5b991}.modal-desc{color:var(--ink-soft);font-size:13px;line-height:1.6;margin:0 0 16px}.smart-plan{margin:0 0 16px;padding:15px 16px;border:1px solid #e4d0ad;border-radius:16px;background:#f5ead8;text-align:left}.smart-plan-title{display:flex;align-items:center;gap:8px;color:#2f756e;font-size:13px;font-weight:800}.plan-pulse{width:7px;height:7px;border-radius:50%;background:#2f887e;box-shadow:0 0 0 4px #2f887e1f}.smart-plan-flow{margin-top:9px;color:#604a36;font-size:14px;font-weight:850;line-height:1.6}.smart-plan-note{margin-top:6px;color:var(--ink-soft);font-size:11px;line-height:1.6}.wg-shuffle-row{display:flex;align-items:center;gap:10px;min-height:42px;margin:0 0 16px;color:var(--ink-soft);cursor:pointer}.wg-shuffle-row input{accent-color:var(--accent)}.shuffle-copy{display:grid;gap:2px}.shuffle-copy b{color:#604a36;font-size:13px}.shuffle-copy small{color:#a0876a;font-size:11px}.wg-start-btn{display:flex;justify-content:space-between;width:100%;padding:12px 16px 12px 20px;border-radius:13px;font-size:15px}.start-arrow{font-size:20px;line-height:1;transition:transform .2s ease}.wg-start-btn:hover .start-arrow{transform:translate(2px,-2px)}.theme-dark .wg-start-card{background:#1c212c;border-color:var(--line);box-shadow:0 26px 72px #00000057,0 2px #00000038}.theme-dark .start-kicker{color:#d5b993}.theme-dark .start-meta,.theme-dark .shuffle-copy small{color:#b9aa96}.theme-dark .start-meta b,.theme-dark .shuffle-copy b,.theme-dark .smart-plan-flow{color:var(--ink)}.theme-dark .smart-plan{background:#263834;border-color:#3d5d57}.theme-dark .smart-plan-title{color:#91d7cc}.wg-pause-card p{color:var(--ink-soft);margin:0 0 20px}.row-actions{display:flex;justify-content:center;gap:12px}.exit-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.exit-continue{padding:10px 42px;font-size:15px}.exit-row{display:flex;gap:10px}.exit-row .btn{padding:9px 18px}.drawer-mask{position:fixed;inset:0;background:#0f0f144d;z-index:110}.drawer{position:absolute;top:0;right:0;bottom:0;width:380px;max-width:88vw;background:#fff;border-left:1px solid var(--line);display:flex;flex-direction:column;animation:slideIn .25s ease}@keyframes slideIn{0%{transform:translate(40px);opacity:0}}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.drawer-head h3{margin:0;font-size:15px}.close{border:none;background:none;cursor:pointer;color:var(--ink-soft);font-size:15px}.drawer-body{overflow-y:auto;padding:8px}.content-row{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;border:none;background:none;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:13px}.content-row:hover{background:#0000000d}.content-row.current{background:var(--accent-soft)}.content-row.done{color:var(--ink-soft)}.content-row.started{color:var(--ink)}.c-idx{width:24px;flex-shrink:0;color:var(--ink-soft);font-size:12px}.c-zh{flex-shrink:0}.c-en{color:var(--ok);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-text{background:var(--accent-soft);border-radius:12px;padding:18px;font-size:14px;line-height:1.9;white-space:pre-wrap;text-align:left;margin:6px 0 20px;font-family:inherit}.feedback-card{width:min(560px,94vw);max-height:min(720px,92dvh);overflow-y:auto;background:#fff;border-radius:18px;padding:28px 30px;text-align:left}.feedback-kicker{margin:0 0 7px;color:#78512e;font-size:12px;font-weight:700;letter-spacing:.08em}.feedback-context{margin:18px 0;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#78512e0f}.feedback-context-label{display:block;margin-bottom:7px;color:var(--ink-soft);font-size:11px;font-weight:700}.feedback-context pre{margin:0;color:var(--ink);font:inherit;font-size:13px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-field{display:grid;gap:7px;color:var(--ink);font-size:13px;font-weight:700}.feedback-field em{color:var(--bad);font-size:11px;font-style:normal;font-weight:500}.feedback-field textarea{width:100%;resize:vertical;border:1px solid #cfd4dc;border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink);font:inherit;font-size:14px;line-height:1.6;outline:none}.feedback-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.feedback-field small{justify-self:end;color:var(--ink-soft);font-size:11px;font-weight:400}.feedback-error{margin:10px 0 0;color:var(--bad);font-size:13px}.feedback-success-icon{width:46px;height:46px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:#e7f8ef;color:#18794e;font-size:25px;font-weight:800}.summary-mask{position:fixed;inset:0;background:#fbfbfdeb;display:flex;align-items:center;justify-content:center;z-index:80}.wg-summary-card{position:relative;width:min(680px,calc(100vw - 32px));min-height:438px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background-color:#fff7e7;background-image:url(/branding/word-victory-card-bg.png);background-size:cover;background-position:center;border:1px solid #ead0a2;border-radius:28px;padding:48px 54px 34px;text-align:center;box-shadow:0 28px 80px #4e372033,0 2px #77542b1f;animation:pop .35s cubic-bezier(.16,1,.3,1)}.wg-summary-card:before{position:absolute;inset:0;background:#fffcf24d;content:"";pointer-events:none}.wg-summary-card>*{position:relative;z-index:1}@keyframes pop{0%{opacity:0;transform:scale(.92) translateY(12px)}}.wg-summary-rating{display:inline-block;min-width:86px;font-size:54px;font-weight:900;font-style:italic;padding:4px 20px 8px;border-radius:20px;box-shadow:0 10px 24px #4e37201a}.summary-context{max-width:100%;margin-top:15px;overflow:hidden;color:#987450;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.wg-summary-title{margin:5px 0 20px;color:#5f4632;font-size:25px;font-weight:900;letter-spacing:-.04em}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 30px;margin-bottom:26px}.summary-grid .wg-cell .num{color:#5f4632;font-size:27px;font-weight:900;font-variant-numeric:tabular-nums}.summary-grid .wg-cell .label{color:#987450;font-size:12px;margin-top:2px}.summary-sync{min-height:18px;margin:-8px 0 17px;font-size:12px;font-weight:700}.sync-saving{color:#a07a4e}.sync-saved{color:#28735e}.sync-error{color:#b34d3d}.wg-summary-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}@media(max-width:560px){.identify-options{grid-template-columns:1fr}.stage-chip{font-size:10px}}.empty{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;font-size:18px;font-weight:700}.load-error{padding:40px;text-align:center;color:var(--bad)}.task-page{max-width:720px;margin:0 auto;padding:26px 20px 60px}.top-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:14px}.wtask-back-link,.free-link{color:var(--ink-soft)}.wtask-back-link:hover,.free-link:hover{color:var(--accent-strong)}.pack-title{font-size:24px;margin:0 0 16px}.overview{padding:16px 20px;margin-bottom:16px}.ov-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.ov-label{color:var(--ink-soft)}.ov-value{font-weight:600;font-variant-numeric:tabular-nums}.ov-bar{height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin-top:4px}.ov-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-strong));border-radius:999px;transition:width .4s ease}.task-card{padding:22px 24px}.task-head{display:flex;align-items:baseline;gap:8px;margin-bottom:18px}.star{color:#f59e0b;font-size:18px}.task-head h2{font-size:18px;margin:0}.today-sub{margin-left:auto;color:var(--ink-soft);font-size:12px}.task-nums{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.num-cell{border:1px solid var(--line);border-radius:12px;padding:16px;text-align:center}.num-cell .big{font-size:40px;font-weight:800;color:var(--accent-strong);font-variant-numeric:tabular-nums;line-height:1.1}.num-cell .cap{color:var(--ink-soft);font-size:13px;margin-top:4px}.settings-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;font-size:13px;color:var(--ink-soft);margin-bottom:20px}.set-item{display:inline-flex;align-items:center;gap:6px}.set-item input{width:64px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:14px;font-weight:700;text-align:center;color:var(--accent-strong);outline:none}.set-item input:focus{border-color:var(--accent)}.set-toggle{cursor:pointer}.set-toggle input{width:17px;height:17px;margin:0;accent-color:var(--accent)}.set-toggle span{white-space:nowrap}.set-item select{border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:13px;background:#fff;outline:none}.plan-link{color:var(--accent-strong);font-size:12px;font-weight:800;text-decoration:none}.plan-link:hover{color:var(--accent);text-decoration:underline}.save-btn{padding:6px 16px;font-size:13px}.saved-tip{color:var(--ok);font-weight:600;font-size:13px}.wtask-start-btn{display:block;text-align:center;background:var(--accent);color:#fff;font-size:16px;font-weight:700;padding:14px;border-radius:12px;transition:background .15s,transform .15s}.wtask-start-btn:hover{background:var(--accent-strong);transform:translateY(-1px)}.done-tip{text-align:center;padding:14px;background:#10b9811a;color:var(--ok);font-weight:600;border-radius:12px}.done-tip a{text-decoration:underline}.hint-text{color:var(--ink-soft);font-size:12px;margin-top:14px;line-height:1.7}.flow-card{margin-top:14px;padding:18px 20px 17px;background:#fbf1df;border-color:#e4cda5;box-shadow:0 3px #7e582b1f}.flow-title{margin-bottom:13px;color:#5f4632;font-size:13px;font-weight:800;letter-spacing:.01em}.flow-steps{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#604a36;font-size:12px;font-weight:700}.flow-step{display:inline-flex;align-items:center;gap:7px;padding:6px 10px 6px 7px;border:1px solid #e6cfaa;border-radius:11px;background:#f7e8cf;color:#604a36}.flow-step b{display:inline-grid;width:23px;height:23px;place-items:center;border-radius:8px;color:#fff;background:#2f887e;font-size:10px;letter-spacing:.02em}.flow-steps i{color:#b28b61;font-style:normal;font-weight:500}.flow-note{margin:11px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.6}@media(max-width:560px){.flow-steps i{display:none}}.book-page{width:min(calc(100% - 40px),960px);margin:0 auto;padding:28px 0 72px}.book-topbar{display:flex;justify-content:space-between;gap:16px;margin-bottom:24px;color:var(--ink-soft);font-size:13px}.wb-back-link,.library-link{color:var(--ink-soft);text-decoration:none}.wb-back-link:hover,.library-link:hover{color:var(--accent-strong)}.book-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:30px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(120deg,var(--dada-paper),var(--dada-yellow-soft));box-shadow:0 4px 0 var(--paper-shadow)}.book-heading{max-width:700px}h1{margin:0 0 10px;color:var(--dada-brown);font-size:clamp(28px,4vw,42px);letter-spacing:-.06em;line-height:1.08}.book-heading p,.today-copy p,.setup-zone p,.units-intro{margin:0;color:var(--ink-soft);font-size:13px;line-height:1.75}.book-facts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:20px;color:var(--ink-soft);font-size:12px}.book-facts strong{margin-right:4px;color:var(--ink);font-size:18px}.favorite-button{flex:0 0 auto;padding:9px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:color-mix(in srgb,var(--dada-paper) 78%,transparent);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.favorite-button span{margin-right:5px;color:#d69520;font-size:17px;vertical-align:-1px}.favorite-button:hover{border-color:var(--accent);color:var(--accent-strong)}.progress-zone,.units-zone{margin-top:18px;padding:22px 24px;border:1px solid var(--line);border-radius:20px;background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow)}.zone-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}h2{margin:0;color:var(--dada-brown);font-size:21px;letter-spacing:-.04em}.progress-number{color:var(--accent-strong);font-size:22px;font-variant-numeric:tabular-nums}.wb-progress-track{height:11px;overflow:hidden;margin-top:18px;border-radius:999px;background:var(--line)}.wb-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#d8a43b);transition:width .35s ease}.progress-meta{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:var(--ink-soft);font-size:12px}.today-zone,.setup-zone{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;margin-top:18px;padding:24px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:20px;background:linear-gradient(110deg,color-mix(in srgb,var(--dada-mint-soft) 72%,var(--dada-paper)),var(--dada-paper))}.today-copy h2,.setup-zone h2{margin-bottom:6px}.today-stats{display:flex;gap:24px}.today-stats div{display:grid;gap:3px;min-width:76px;text-align:center}.today-stats strong{color:var(--accent-strong);font-size:21px;font-variant-numeric:tabular-nums}.today-stats span{color:var(--ink-soft);font-size:11px}.today-actions{display:grid;justify-items:end;gap:8px}.start-button{white-space:nowrap}.quiet-button{padding:3px 0;border:0;color:var(--ink-soft);background:transparent;font:inherit;font-size:12px;cursor:pointer}.quiet-button:hover{color:var(--accent-strong);text-decoration:underline}.setup-zone{grid-template-columns:minmax(0,1fr) auto}.units-zone{margin-top:26px}.units-heading{align-items:center}.units-note{color:var(--ink-soft);font-size:12px}.units-intro{margin-top:9px}.unit-list{display:grid;gap:8px;margin-top:16px}.unit-row{display:flex;align-items:center;gap:14px;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--dada-cream) 55%,var(--dada-paper))}.unit-index{display:grid;width:30px;height:30px;flex:0 0 auto;place-items:center;border-radius:9px;color:#fff;background:var(--accent);font-size:10px;font-weight:900}.unit-copy{display:grid;gap:3px;min-width:0;flex:1 1 auto}.unit-copy strong{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.unit-copy span{color:var(--ink-soft);font-size:11px}.unit-link{flex:0 0 auto;color:var(--accent-strong);font-size:12px;font-weight:800;text-decoration:none}.unit-link:hover{color:var(--accent)}.wb-empty-copy,.wb-state-card{padding:28px 18px;border:1px dashed var(--line);border-radius:14px;color:var(--ink-soft);text-align:center;font-size:13px}.wb-empty-copy{margin:16px 0 0}.wb-state-card{display:grid;justify-items:center;gap:10px;margin-top:20px}.wb-state-card strong{color:var(--ink);font-size:16px}.wb-state-card span{font-size:13px}.wb-action-error{margin:14px 0 0;color:var(--bad);font-size:12px}@media(max-width:720px){.book-page{width:min(calc(100% - 24px),960px);padding-top:20px}.book-header{flex-direction:column;padding:23px 20px}.favorite-button{align-self:flex-start}.today-zone,.setup-zone{grid-template-columns:1fr;align-items:start;padding:20px}.today-stats{justify-content:flex-start}.today-actions{justify-items:stretch}.today-actions .start-button,.setup-zone .btn{justify-content:center}}@media(max-width:520px){.progress-zone,.units-zone{padding:19px 16px}.progress-meta{align-items:flex-start;flex-direction:column;gap:4px}.units-heading{align-items:flex-start;flex-direction:column;gap:5px}.unit-row{gap:10px}.unit-link{font-size:11px}}.editor-page{max-width:1400px;margin:auto;padding:28px 22px 80px;color:#17221d}.editor-page>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.editor-page header a{color:#557064;text-decoration:none}.editor-page header small{display:block;margin-top:16px;letter-spacing:.16em;color:#78877f}.editor-page h1{font-size:38px;margin:5px 0}.review{padding:8px 13px;border-radius:999px;background:#eef4f1;color:#3e6555}.wmg-panel{background:#fff;border:1px solid #dce3df;border-radius:20px;padding:20px;box-shadow:0 12px 36px #1e372c0d}.wmg-meta{display:grid;grid-template-columns:1.2fr 1.8fr 1fr 1fr auto;gap:14px;align-items:end;margin-bottom:18px}.wmg-meta h2{margin:4px 0}.wmg-meta label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#617169}.wmg-meta input,.wmg-meta textarea,.wmg-meta select,.content input,.wmg-add-course input{border:1px solid #ccd5d0;border-radius:10px;padding:10px;background:#fbfcfb;color:inherit}.editor-page button{border:1px solid #cbd4cf;border-radius:9px;padding:9px 12px;background:#fff;color:inherit;cursor:pointer}.wmg-primary{background:#173f32!important;color:#fff!important}.workspace{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px}.workspace aside{display:flex;flex-direction:column;gap:6px;align-self:start;position:sticky;top:18px}.workspace aside>button{text-align:left;display:flex;gap:10px}.workspace aside>button.active{background:#e8f0ec}.aside-head,.content footer{display:flex;justify-content:space-between}.wmg-add-course{display:flex;gap:6px;margin-top:10px}.wmg-add-course input{min-width:0;flex:1}.content{overflow:hidden}.wmg-course-title{display:grid;grid-template-columns:1fr 90px auto;gap:8px;margin-bottom:16px}.row{display:grid;grid-template-columns:68px 1.1fr 1.5fr 1fr .8fr 126px;gap:7px;align-items:center;padding:7px 0;border-top:1px solid #edf1ef}.row.head{font-size:12px;color:#7a8982}.row input{min-width:0;width:100%;box-sizing:border-box}.row>div{display:flex;gap:5px}.wmg-danger{color:#a0443a!important}.row.add{background:#f6f9f7;margin-top:10px;padding:12px;border-radius:12px}.content footer{align-items:center;margin-top:16px;color:#68766f}.wmg-notice,.error-line{padding:11px 14px;border-radius:10px}.wmg-notice{background:#ebf6f0;color:#2f6a50}.error-line,.wmg-state.error{background:#fff0ed;color:#a0443a}.wmg-state{min-height:260px;display:grid;place-items:center}@media(max-width:1050px){.wmg-meta{grid-template-columns:1fr 1fr}.workspace{grid-template-columns:1fr}.workspace aside{position:static}.row{grid-template-columns:60px 1fr 1fr}.row.head{display:none}.row>input:nth-of-type(4),.row>input:nth-of-type(5){display:none}.row>div{grid-column:3}}.courses-page{width:min(calc(100% - 40px),1120px);margin:0 auto;padding:28px 0 60px}.courses-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}h1{margin:0 0 7px;font-size:26px}.courses-page-head p:last-child{max-width:620px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.7}.filter-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}.filter-row button{padding:8px 16px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:var(--dada-paper);font-size:13px;font-weight:700;cursor:pointer;transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease}.filter-row button:hover{border-color:color-mix(in srgb,var(--line) 55%,var(--warm-strong));color:var(--warm-strong);background:var(--warm-hover);transform:translateY(-1px)}.filter-row button.selected{border-color:color-mix(in srgb,#d5a936 45%,var(--line));color:var(--ink);background:var(--warm-active)}.courses-pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.course-card{display:flex;min-height:276px;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow)}.course-card h2{margin:0;font-size:17px}.course-card>p:not(.recent-line){min-height:38px;margin:0;color:var(--ink-soft);font-size:12px;line-height:1.6}.courses-card-topline,.chip-line,.progress-head,.card-meta,.courses-card-actions{display:flex;align-items:center}.courses-card-topline{justify-content:space-between;gap:8px}.chip-line{flex-wrap:wrap;gap:6px}.type-chip,.status-chip,.current-chip{display:inline-flex;align-items:center;min-height:23px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800}.courses-archive-chip{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:800;min-height:23px;padding:2px 9px;background:#f1e9fb;color:#6b4f8a}.status-archived,.status-unknown{color:var(--ink-soft);background:#efe5d3}.progress-head{justify-content:space-between;color:var(--ink-soft);font-size:12px}.progress-head strong{color:var(--ink);font-size:15px}.progress-track{height:8px;overflow:hidden;border-radius:999px;background:var(--line)}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-strong))}.card-meta{flex-wrap:wrap;gap:8px 12px;color:var(--ink-soft);font-size:12px}.due-meta{color:#9b2c22;font-weight:800}.recent-line{margin:0;color:var(--ink-soft);font-size:12px}.recent-line strong{color:var(--ink)}.courses-card-actions{justify-content:flex-end;gap:12px;margin-top:auto}.primary-action,.courses-secondary-action{font-size:13px;font-weight:800}.primary-action{color:var(--accent-strong)}.courses-secondary-action{color:var(--ink-soft)}.primary-action:hover,.courses-secondary-action:hover{color:var(--accent)}.action-view{color:var(--ink-soft)}.state-card>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}@media(max-width:640px){.courses-page{width:min(calc(100% - 24px),1120px);padding-top:20px}.courses-page-head{align-items:flex-start;flex-direction:column}.courses-page-head .btn{width:100%;justify-content:center}.courses-card-topline{align-items:flex-start;flex-direction:column}.courses-card-actions{justify-content:space-between}}.import-page{max-width:860px;margin:0 auto;padding:26px 20px 60px}h1{font-size:22px;margin:0 0 8px}.tip{color:var(--ink-soft);font-size:13px;line-height:1.8;margin:0 0 18px}.steps{display:flex;gap:18px;margin-bottom:16px;font-size:13px;color:var(--ink-soft)}.steps span{padding-bottom:4px;border-bottom:2px solid transparent}.steps .on{color:var(--accent-strong);font-weight:700;border-bottom-color:var(--accent)}.wif-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.mode-row{display:flex;gap:12px;margin-bottom:14px}.mode-card{flex:1;border:2px solid var(--line);border-radius:12px;background:#fff;padding:14px 16px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.mode-card:hover{border-color:var(--accent)}.mode-card.active{border-color:var(--accent);background:var(--accent-soft)}.mode-name{font-weight:700;font-size:15px}.mode-desc{color:var(--ink-soft);font-size:12px;margin-top:4px}.templates{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tpl-label{font-size:12px;color:var(--ink-soft)}.tpl{border:1px dashed var(--accent);background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer}.tpl:hover{background:#e2d8fd}textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:13px;font-family:Consolas,PingFang SC,monospace;line-height:1.7;outline:none;resize:vertical}textarea:focus{border-color:var(--accent)}.row-bar{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.file-btn{font-size:13px;color:var(--accent-strong);cursor:pointer}.file-btn input{display:none}.wif-error{color:var(--bad);font-size:13px;margin-top:10px}.wif-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}.wif-toolbar .spacer{flex:1}.chip.warn{background:#fef3c7;color:#92400e}.chip.valid{background:#ecfdf3;color:#166534}.validation-report{display:grid;gap:6px;margin:0 0 14px;padding:10px 12px;border:1px solid #f2c98b;border-radius:10px;background:#fffaf0;color:#7c4a03;font-size:12px;line-height:1.6}.validation-report ul{margin:0;padding-left:20px;max-height:180px;overflow:auto}.validation-report small{color:#9a6700}.chunk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}.chunk input{width:64px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:13px}.meta-row{display:flex;gap:10px;margin-bottom:16px}.pack-input{flex:1;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;outline:none}.pack-input:focus{border-color:var(--accent)}.course-block{border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden}.course-head{display:flex;align-items:center;gap:10px;background:var(--accent-soft);padding:8px 12px}.wif-badge{font-size:12px;color:var(--accent-strong);font-weight:700}.course-title{border:none;background:transparent;font-size:14px;font-weight:700;outline:none;flex:1}.edit-row{display:flex;align-items:center;gap:8px;padding:5px 10px;border-top:1px solid #f3f4f6}.edit-row:hover{background:#fafafa}.edit-row.invalid{background:#fff8f7}.r-idx{width:26px;flex-shrink:0;color:var(--ink-soft);font-size:12px;text-align:right}.edit-row input{border:1px solid transparent;border-radius:6px;padding:5px 8px;font-size:13px;outline:none;background:transparent}.edit-row input:focus{border-color:var(--accent);background:#fff}.r-en{flex:3}.r-zh{flex:2}.r-mark{flex:1.2;color:var(--ink-soft)}.r-btn{border:none;background:none;cursor:pointer;color:var(--ink-soft);font-size:13px;padding:2px 5px;border-radius:5px}.r-btn:hover{background:var(--accent-soft);color:var(--accent-strong)}.r-btn.del:hover{background:#fee2e2;color:var(--bad)}.wif-big{margin-top:4px;padding:10px 26px;font-size:15px}.import-page .done{text-align:center;padding:44px 20px}.ok-icon{width:52px;height:52px;border-radius:50%;background:var(--ok);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.import-page .done h2{margin:0 0 6px}.import-page .done p{color:var(--ink-soft);margin:0 0 22px}.import-page .done-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.word-import-flow{max-width:960px;margin:0 auto;padding:40px 24px 80px;color:var(--ink)}.flow-head{display:flex;align-items:center;gap:18px;margin-bottom:22px}.flow-head img{width:64px;height:64px;object-fit:contain}.word-import-flow .flow-head h1{font-size:26px;letter-spacing:-.01em;margin:0}.flow-head p{color:var(--ink-soft);font-size:13px;margin:6px 0 0}.flow-type-tabs{display:inline-flex;gap:4px;padding:4px;background:#efe3cb;border-radius:999px;margin-bottom:20px}.flow-type-tabs button{border:0;border-radius:999px;padding:7px 18px;min-height:44px;font-size:13px;font-weight:700;color:var(--ink-soft);background:transparent;cursor:pointer}.flow-type-tabs button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px var(--paper-shadow)}.wif-steps{display:flex;align-items:center;gap:10px;margin-bottom:20px}.wif-step{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}.wif-step b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff;border:1.5px solid var(--line);font-size:12px;font-weight:700;color:var(--ink-soft)}.wif-step.active{color:var(--ink);font-weight:700}.wif-step.active b{background:var(--dada-cobalt);border-color:var(--dada-cobalt);color:#fff}.wif-step.done{color:#286e5d;font-weight:700}.wif-step.done b{background:var(--dada-mint);border-color:var(--dada-mint);color:#fff}.wif-step-line{flex:1;max-width:70px;height:2px;border-radius:2px;background:var(--line)}.wif-step-line.done{background:var(--dada-mint)}.wif-card{padding:24px;margin-bottom:18px}.flow-sec-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:14px}.flow-sec-title h2{font-size:17px;margin:0}.flow-sec-title>span{color:var(--ink-soft);font-size:12px}.flow-field{margin-bottom:14px;min-width:0}.flow-field>label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.flow-field>label em{color:var(--dada-coral);font-style:normal;font-size:11px;font-weight:600;margin-left:4px}.flow-field>label i{color:var(--ink-soft);font-style:normal;font-size:11px;font-weight:400;margin-left:4px}.flow-field input,.flow-field select{width:100%;height:44px;border:1.5px solid var(--line);border-radius:var(--radius-control);background:#fff;padding:0 14px;font-size:14px;outline:none;color:var(--ink);font-family:inherit}.flow-field input:focus,.flow-field select:focus{border-color:var(--dada-cobalt);box-shadow:0 0 0 3px #2f887e1f}.flow-field select:disabled{color:var(--ink-soft);background:var(--dada-paper)}.flow-field small{display:block;margin-top:5px;font-size:11.5px;color:var(--ink-soft)}.flow-field small a{color:var(--dada-cobalt);font-weight:700;text-decoration:underline}.flow-field small.hint-available{color:#286e5d}.flow-field small.hint-taken{color:var(--dada-coral)}.flow-field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.flow-name-wrap{position:relative}.flow-name-wrap input{padding-right:96px}.flow-name-status{position:absolute;top:50%;right:14px;transform:translateY(-50%);font-size:11px;font-weight:700}.flow-name-status.available{color:#286e5d}.flow-name-status.taken{color:var(--dada-coral)}.flow-name-status.checking,.flow-name-status.unavailable{color:var(--ink-soft)}.flow-warn-bar{margin:4px 0 0;background:#fff3d6;border:1px solid #eed9a8;border-radius:var(--radius-control);padding:10px 14px;color:#8a5a13;font-size:12.5px;line-height:1.6}.word-import-flow textarea.flow-raw{display:block;width:100%;border:1.5px solid var(--line);border-radius:var(--radius-control);background:#fff;padding:14px 16px;font-size:14px;line-height:1.9;resize:vertical;outline:none;font-family:Nunito,Noto Sans SC,monospace;color:var(--ink)}.word-import-flow textarea.flow-raw:focus{border-color:var(--dada-cobalt);box-shadow:0 0 0 3px #2f887e1f}.word-import-flow textarea.flow-raw::placeholder{color:#c4b096}.flow-tpl-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}.flow-tpl-row>span{font-size:12px;color:var(--ink-soft)}.flow-tpl{border:1.5px dashed var(--dada-cobalt);background:#fff;color:var(--dada-cobalt);border-radius:999px;padding:5px 14px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}.flow-tpl:hover{background:var(--dada-mint-soft)}.flow-source-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-top:18px}.flow-source-actions>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.flow-upload-btn{min-height:44px}.flow-upload-btn input{display:none}.flow-file-note{font-size:11.5px;color:var(--ink-soft)}.flow-parse-btn{padding:12px 28px;font-size:15px;min-height:48px}.flow-mapping-panel{display:grid;gap:14px;margin-top:14px;padding:16px;border:1px solid #eed9a8;border-radius:var(--radius-control);background:#fffaf0}.flow-mapping-panel strong{font-size:13px}.flow-mapping-panel p{margin:4px 0 0;color:#8a5a13;font-size:12px;line-height:1.6}.flow-mapping-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.flow-mapping-grid label{display:grid;gap:5px;min-width:0;font-size:11px;font-weight:700}.flow-mapping-grid em{color:var(--dada-coral);font-style:normal}.flow-mapping-grid select{width:100%;min-width:0;height:36px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:12px;padding:0 8px}.flow-mapping-panel .btn{justify-self:start}.flow-error{margin:12px 0 0;color:var(--dada-coral);font-size:13px;font-weight:600}.flow-notice{margin:0 0 14px;padding:9px 14px;border-radius:var(--radius-control);background:var(--dada-mint-soft);color:#286e5d;font-size:12.5px;line-height:1.6}.flow-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.flow-topbar .flow-sec-title{margin-bottom:0}.flow-back-link{border:none;background:none;color:var(--dada-cobalt);font-size:13px;font-weight:700;cursor:pointer;padding:6px 0;min-height:44px;white-space:nowrap}.flow-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.flow-todo-banner{margin:14px 0 16px;background:#fff3d6;border:1px solid #eed9a8;border-radius:var(--radius-control);padding:12px 16px;color:#8a5a13;font-size:13px;line-height:1.6}.flow-todo-banner.neutral{background:var(--dada-mint-soft);border-color:var(--dada-mint);color:#286e5d}.flow-todo-banner b{font-size:14px}.flow-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}.flow-filters{display:inline-flex;gap:4px;padding:4px;background:#efe3cb;border-radius:999px}.flow-filters button{border:0;border-radius:999px;padding:6px 14px;min-height:44px;font-size:12.5px;color:var(--ink-soft);background:transparent;cursor:pointer;font-weight:600;font-family:inherit}.flow-filters button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px var(--paper-shadow)}.flow-filters b{margin-left:4px}.flow-tools-right{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--ink-soft)}.flow-tools-right input{width:56px;height:36px;border:1.5px solid var(--line);border-radius:10px;text-align:center;font-size:13px;background:#fff;outline:none;color:var(--ink)}.flow-tools-right .flow-search{width:150px;text-align:left;padding:0 12px;font-family:inherit}.flow-batch-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:9px 14px;background:#fff;border:1.5px dashed var(--dada-cobalt);border-radius:var(--radius-control);font-size:12.5px;color:var(--ink-soft)}.flow-batch-bar>b{color:var(--dada-cobalt)}.flow-batch-bar select{height:36px;max-width:200px;border:1.5px solid var(--line);border-radius:10px;background:#fff;padding:0 8px;font-size:12.5px;color:var(--ink)}.flow-mini-btn{border:1px solid var(--line);background:var(--dada-paper);border-radius:999px;padding:5px 16px;min-height:44px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--ink);font-family:inherit}.flow-mini-btn.danger{color:var(--dada-coral)}.flow-mini-btn:disabled{opacity:.45;cursor:not-allowed}.flow-courses-scroll{overflow-x:auto}.flow-courses{display:grid;gap:14px}.flow-course-card{border:1.5px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.flow-course-head{display:flex;align-items:center;gap:10px;padding:6px 14px;background:var(--dada-paper);border-bottom:1px solid var(--line)}.flow-course-head input{border:none;background:transparent;font-size:14px;font-weight:800;color:var(--ink);outline:none;flex:1;height:40px;min-width:0;font-family:inherit}.flow-course-count{font-size:11.5px;color:var(--ink-soft);white-space:nowrap}.flow-row{display:grid;grid-template-columns:26px 34px 1.1fr 1fr 110px 90px 60px;gap:10px;align-items:center;padding:4px 14px}.flow-row.needs{background:#fffaf0}.flow-row input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--dada-cobalt);justify-self:center}.flow-row-idx{color:var(--ink-soft);font-size:12px;text-align:right}.flow-row input[type=text]{width:100%;min-width:0;height:32px;border:1.5px solid transparent;border-radius:10px;padding:0 10px;font-size:13.5px;background:transparent;outline:none;color:var(--ink);font-family:inherit}.flow-row input[type=text]:focus{border-color:var(--dada-cobalt);background:#fff}.flow-row input.en{font-weight:700;font-family:Nunito,Noto Sans SC,sans-serif}.flow-row input.missing{border-color:#eed9a8;background:#fff3d6}.flow-row input.missing::placeholder{color:#8a5a13}.flow-zh-cell{min-width:0}.flow-need-tag{display:inline-block;font-size:10.5px;color:#8a5a13;background:#ffedc4;border-radius:999px;padding:1px 8px;margin:3px 4px 0 0}.flow-warn-tag{display:inline-block;font-size:10.5px;color:var(--ink-soft);background:#efe3cb;border-radius:999px;padding:1px 8px;margin:3px 4px 0 0}.flow-row-ops{display:flex;gap:2px;justify-content:flex-end}.flow-row-ops button{border:none;background:none;cursor:pointer;color:var(--ink-soft);font-size:12px;min-width:44px;min-height:44px;border-radius:10px;font-family:inherit}.flow-row-ops button:hover{background:var(--dada-paper);color:var(--dada-coral)}.flow-row-enter{animation:flow-row-in .2s ease-out}@keyframes flow-row-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.flow-course-enter{animation:flow-course-in .26s ease-out}@keyframes flow-course-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.flow-split-line{position:relative;display:flex;align-items:center;height:14px;margin:0 14px}.flow-split-zone{position:relative;flex:1;display:flex;align-items:center;justify-content:center;height:14px;border:0;background:none;padding:0;cursor:pointer;transition:height .15s ease,margin .15s ease}.flow-split-zone:before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;border-radius:2px;background:var(--line);transform:translateY(-50%);transition:background .15s}.flow-split-zone span{position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.flow-split-zone.add span{background:var(--dada-mint);color:#fff;box-shadow:0 3px #2f8a6d;transform:translate(10px)}.flow-split-zone.cut span{background:var(--dada-cobalt);color:#fff;box-shadow:0 3px #17534e;transform:translate(-10px)}.flow-split-line:hover .flow-split-zone,.flow-split-line:focus-within .flow-split-zone{height:44px;margin:-15px 0}.flow-split-line:hover .flow-split-zone span,.flow-split-line:focus-within .flow-split-zone span{opacity:1;transform:translate(0)}.flow-split-zone.add:hover:before,.flow-split-zone.add:focus-visible:before{background:var(--dada-mint)}.flow-split-zone.cut:hover:before,.flow-split-zone.cut:focus-visible:before{background:var(--dada-cobalt)}.flow-split-line.flow-split-flash .flow-split-zone:before{animation:flow-split-flash .18s ease-out}@keyframes flow-split-flash{0%{background:var(--line)}40%{background:var(--dada-mint)}to{background:var(--line)}}@media(pointer:coarse){.flow-split-zone{height:44px;margin:-15px 0}.flow-split-zone span{opacity:1;transform:none}.flow-split-zone.add:before{background:var(--dada-mint)}.flow-split-zone.cut:before{background:var(--dada-cobalt)}}.flow-empty{padding:36px 20px;text-align:center;color:var(--ink-soft);font-size:13px}.flow-empty svg{display:block;margin:0 auto 10px}.flow-pager{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:12.5px;color:var(--ink-soft)}.flow-pager-nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.flow-pager-nav .flow-mini-btn{min-height:36px;padding:4px 14px}.flow-page-num{min-width:36px;min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--dada-paper);color:var(--ink);font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer}.flow-page-num.current{background:var(--dada-mint);border-color:var(--dada-mint);color:#fff;cursor:default}.flow-page-gap{padding:0 2px;color:var(--ink-soft);font-size:12.5px}.flow-import-progress{display:grid;gap:9px;margin-top:18px;padding:15px 16px;border:1px solid var(--dada-mint);border-radius:var(--radius-control);background:var(--dada-mint-soft);color:#286e5d}.flow-import-progress-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 16px}.flow-import-progress-head strong{font-size:13px}.flow-import-progress-head span{color:var(--ink-soft);font-size:12px}.flow-import-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#fff}.flow-import-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--dada-mint);transition:width .35s ease}.flow-import-progress p{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.65}.flow-submit-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.flow-submit-status b{display:block;font-size:14px}.flow-submit-status span{font-size:12px;color:var(--ink-soft)}.flow-submit-btn{padding:12px 28px;font-size:15px;min-height:48px}.word-import-flow .btn-primary:disabled{background:#cbbfa8;border-color:#cbbfa8;box-shadow:0 4px #b3a78f;color:#fff;cursor:not-allowed}.flow-complete{display:flex;align-items:center;justify-content:center;gap:44px;padding:44px 32px}.flow-complete img{width:160px;height:160px;object-fit:contain;flex:none}.flow-complete-body{flex:0 1 auto;min-width:0}.flow-complete h2{font-size:22px;margin:0}.flow-complete-name{margin:8px 0 0;font-size:13px;color:var(--ink-soft)}.flow-complete-name b{color:var(--ink)}.flow-complete-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.flow-stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius-control);padding:8px 18px}.flow-stat b{display:block;font-size:18px;color:var(--accent-strong)}.flow-stat span{font-size:11.5px;color:var(--ink-soft)}.flow-complete-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.flow-complete-actions .btn{padding:11px 22px;min-height:46px}@media(max-width:560px){.flow-complete{flex-direction:column;text-align:center;padding:32px 20px}.flow-complete-stats,.flow-complete-actions{justify-content:center}}.flow-row.sentence{grid-template-columns:26px 34px 1.2fr 1fr 60px}.flow-en-cell{min-width:0}.flow-src-line{display:block;margin:2px 0 0;padding-left:10px;font-size:10.5px;color:var(--ink-soft)}.flow-format-chips{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:12px;color:var(--ink-soft)}.wif-source-tabs{display:inline-flex;gap:4px;margin-bottom:14px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--dada-cream)}.wif-source-tabs button{border:0;border-radius:999px;padding:7px 20px;background:transparent;color:var(--ink-soft);font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:background-color .18s ease,color .18s ease}.wif-source-tabs button.on{background:var(--accent);color:#fff;box-shadow:0 2px 0 var(--accent-strong)}.wif-generate-panel{display:grid;gap:14px;padding:16px;border:1.5px dashed var(--dada-cobalt);border-radius:var(--radius-control);background:var(--dada-mint-soft)}.wif-ai-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:12px}.wif-generate-panel .wif-ai-row{margin-top:0}.wif-ai-format-btn,.wif-generate-panel .btn-primary{display:inline-flex;align-items:center;gap:6px}.wif-ai-note{font-size:11.5px;color:var(--ink-soft);line-height:1.6}.wif-ai-status{margin:12px 0 0;font-size:12px;color:var(--accent-strong)}.wif-diamond-chip{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.wif-ai-dialog{max-width:430px;padding:26px;border-radius:20px;background:var(--dada-paper);box-shadow:0 12px 32px #604a3633}.wif-ai-dialog h2{margin:0;font-size:18px}.wif-ai-dialog p{margin:12px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.7}.wif-ai-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.wif-toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%);z-index:var(--z-modal);padding:10px 20px;border-radius:999px;background:var(--ink);color:var(--dada-paper);font-size:13px;box-shadow:0 6px 20px #1f1c1847;animation:wif-toast-in .22s ease-out}@keyframes wif-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:820px){.word-import-flow{padding:24px 15px 50px}.wif-card{padding:18px}.flow-field-row{grid-template-columns:1fr}.wif-steps{gap:7px}.wif-step{font-size:0;gap:0}.wif-step b{font-size:12px}.flow-courses{min-width:780px}.flow-topbar{flex-direction:column}.flow-source-actions{flex-direction:column;align-items:stretch}.flow-parse-btn{width:100%;justify-content:center}.flow-submit-bar{flex-direction:column;align-items:stretch}.flow-submit-btn{width:100%;justify-content:center}.flow-mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.course-overview-page{width:min(calc(100% - 40px),1180px);margin:0 auto;padding:24px 0 60px}.overview-head{margin-bottom:10px}.back-link{display:inline-block;margin-bottom:10px;color:var(--ink-soft);font-size:13px}.back-link:hover{color:var(--accent-strong)}.type-line{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.type-chip,.status-chip,.current-chip,.archive-chip{display:inline-flex;min-height:23px;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800}.current-chip{color:#245c9c;background:#e7f0ff}.archive-chip{color:#6b4f8a;background:#f1e9fb}h1{margin:0 0 7px;font-size:27px}.overview-head p:last-child{max-width:620px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.7}.repo-hero{display:grid;grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr);gap:clamp(24px,5vw,52px);align-items:stretch;margin-bottom:28px;padding:clamp(18px,3vw,30px);overflow:hidden}.repo-cover{position:relative;display:flex;min-height:290px;flex-direction:column;justify-content:flex-end;gap:8px;padding:25px;overflow:hidden;border-radius:13px;color:#123e63;background:radial-gradient(circle at 78% 24%,rgba(255,255,255,.92) 0 8%,transparent 9%),radial-gradient(circle at 18% 18%,rgba(108,188,220,.22),transparent 24%),linear-gradient(145deg,#fff9ed 4%,#eaf6f7 54%,#aed9e8);background-position:center;background-size:cover}.repo-cover:after{position:absolute;right:-38px;bottom:-52px;width:220px;height:150px;border:24px solid rgba(14,102,160,.16);border-radius:55% 45% 0 0;content:"";transform:rotate(-13deg)}.cover-kicker{position:relative;z-index:1;font-size:11px;font-weight:800;letter-spacing:.12em}.repo-cover strong{position:relative;z-index:1;max-width:12ch;font-size:clamp(25px,3vw,38px);line-height:1.08;letter-spacing:-.04em;text-wrap:balance}.repo-cover>span:last-child{position:relative;z-index:1;font-size:12px;font-weight:700}.repo-intro{display:flex;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center}.repo-eyebrow{margin-bottom:10px;color:var(--accent-strong);font-size:12px;font-weight:800;letter-spacing:.06em}.repo-intro h2{margin:0;font-size:clamp(25px,3.2vw,38px);line-height:1.16;letter-spacing:-.045em;text-wrap:balance}.repo-intro>p:not(.inline-error){max-width:62ch;margin:14px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.8}.repo-facts{display:flex;flex-wrap:wrap;gap:8px 18px;margin:20px 0;color:var(--ink-soft);font-size:12px}.repo-facts strong{color:var(--ink);font-size:15px;font-variant-numeric:tabular-nums}.start-learning{min-height:44px;padding-inline:22px}.repo-intro>small{margin-top:8px;color:var(--ink-soft);font-size:11px}.pack-summary{display:grid;grid-template-columns:minmax(220px,285px) minmax(0,1fr);gap:clamp(22px,3vw,36px);margin-bottom:20px;padding:20px;overflow:hidden}.learning-cover{display:flex;min-height:238px;flex-direction:column;justify-content:flex-end;gap:6px;padding:21px;border-radius:13px;color:#123e63;background:radial-gradient(circle at 82% 18%,rgba(255,255,255,.72),transparent 24%),linear-gradient(145deg,#fff6e6,#d8f0ee 55%,#9ed4e8);background-position:center;background-size:cover}.learning-cover span{font-size:10px;font-weight:800;letter-spacing:.12em}.learning-cover strong{max-width:14ch;font-size:23px;line-height:1.12;letter-spacing:-.035em;text-wrap:balance}.summary-content{display:flex;min-width:0;flex-direction:column}.summary-type-line{margin-bottom:8px}.summary-heading h1{margin:0 0 6px;font-size:clamp(25px,3vw,34px);line-height:1.13;letter-spacing:-.035em;text-wrap:balance}.summary-heading p{max-width:68ch;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.65;text-wrap:pretty}.progress-row{display:grid;grid-template-columns:minmax(190px,1fr) auto;align-items:end;gap:28px;margin-top:auto;padding-top:22px}.progress-summary{min-width:0}.pack-progress-head{display:flex;justify-content:space-between;margin-bottom:7px;color:var(--ink-soft);font-size:12px}.pack-progress-head strong{color:var(--ink);font-size:19px}.pack-progress-track{height:8px;overflow:hidden;border-radius:999px;background:var(--line)}.pack-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-strong))}.summary-metrics{display:flex;gap:22px}.summary-metrics>div{display:grid;gap:2px;min-width:72px}.summary-metrics strong{font-size:17px;font-variant-numeric:tabular-nums}.summary-metrics span,.summary-notes p{color:var(--ink-soft);font-size:11px}.summary-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.summary-notes{display:flex;min-width:0;flex-wrap:wrap;gap:6px 16px}.summary-notes p{margin:0}.summary-notes strong{color:var(--ink)}.overview-actions{display:flex;flex:0 0 auto;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.overview-actions .btn{min-height:37px;padding:8px 14px}.archive-action{min-height:34px;padding:6px 4px;border:0;color:var(--ink-soft);background:transparent;font:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:color .2s ease,transform .2s ease}.archive-action:hover{color:var(--accent-strong)}.archive-action:active{transform:translateY(1px)}.archive-action:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.archive-action:disabled{cursor:wait;opacity:.6}.unavailable-note{color:var(--ink-soft);font-size:12px}.inline-error{margin:0 0 16px;color:var(--bad);font-size:13px;font-weight:700}.summary-feedback{margin:10px 0 0}.manage-hint{margin:10px 0 0;color:var(--ink-soft);font-size:12px}.manage-hint a{color:var(--accent);font-weight:700}.state-explanation{margin:12px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.6}.section-title{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 12px}.section-title h2{margin:0;font-size:20px;letter-spacing:-.02em}.section-title>span{color:var(--ink-soft);font-size:12px}.lesson-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lesson-card{display:grid;min-height:104px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"number main state" "number main action";align-items:start;gap:6px 13px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:var(--dada-paper);box-shadow:0 2px 0 var(--paper-shadow);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.lesson-card:hover{border-color:var(--accent);box-shadow:0 6px 16px #6f521e14;transform:translateY(-2px)}.lesson-card:active{transform:translateY(0)}.lesson-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.current-lesson{border-color:var(--accent);box-shadow:0 0 0 2px #7b5bd624,0 2px 0 var(--paper-shadow)}.lesson-number{grid-area:number;display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:var(--accent-strong);background:var(--accent-soft);font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.current-lesson .lesson-number{color:#fff;background:var(--accent)}.lesson-main{grid-area:main;display:grid;align-self:stretch;gap:5px;min-width:0}.lesson-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.35}.lesson-main small{color:var(--ink-soft);font-size:11px}.lesson-progress-track{display:block;align-self:end;height:4px;overflow:hidden;border-radius:999px;background:var(--line)}.lesson-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.lesson-state{grid-area:state;justify-self:end;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.lesson-not_started{color:var(--ink-soft);background:#efe5d3}.lesson-in_progress{color:#245c9c;background:#e7f0ff}.lesson-due{color:#9b2c22;background:#fff0ed}.lesson-completed{color:#166534;background:#ecfdf3}.lesson-unavailable{color:var(--ink-soft);background:#efe5d3}.lesson-action{grid-area:action;align-self:end;justify-self:end;color:var(--accent-strong);font-size:11px;font-weight:800}.disabled-lesson{opacity:.62}.empty-lessons,.pack-state-card{padding:30px;border:1px dashed var(--line);border-radius:14px;color:var(--ink-soft);text-align:center}.pack-state-card{display:grid;justify-items:center;gap:10px;padding:48px 20px}.pack-state-card strong{color:var(--ink);font-size:16px}.pack-state-card>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}@media(max-width:860px){.lesson-list{grid-template-columns:1fr}}@media(max-width:720px){.course-overview-page{width:min(calc(100% - 24px),1180px);padding-top:18px}.repo-hero{grid-template-columns:1fr}.repo-cover{min-height:230px}.pack-summary{grid-template-columns:1fr;gap:16px;padding:14px}.learning-cover{min-height:190px}.progress-row{grid-template-columns:1fr;gap:14px;padding-top:18px}.summary-metrics{justify-content:space-between}.summary-bottom{align-items:flex-start;flex-direction:column}.overview-actions{width:100%;justify-content:flex-start}.lesson-card{min-height:98px}}.pm-page{width:min(calc(100% - 48px),960px);margin:0 auto;padding:26px 0 60px}.pm-state{display:grid;justify-items:center;gap:12px;padding:48px 20px;text-align:center;color:var(--ink-soft)}.pm-state strong{color:var(--ink);font-size:16px}.pm-state>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.pm-head{display:grid;gap:8px;margin-bottom:18px}.pm-back{justify-self:start;color:var(--ink-soft);font-size:13px;font-weight:700}.pm-back:hover{color:var(--accent-strong)}.pm-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.pm-title-row h1{margin:0;font-size:24px;letter-spacing:-.02em}.pm-status{display:inline-flex;min-height:23px;align-items:center;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800}.pm-status-draft{color:#92400e;background:#fef3c7}.pm-status-pending{color:#245c9c;background:#e7f0ff}.pm-status-approved{color:#166534;background:#ecfdf3}.pm-status-changes{color:#9b2c22;background:var(--dada-coral-soft)}.pm-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.pm-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.pm-card-head h2{margin:0;font-size:17px;letter-spacing:-.01em}.pm-issues{margin-bottom:16px;border-color:var(--dada-coral)}.pm-issues h2{margin:0 0 10px;color:#9b2c22;font-size:15px}.pm-issues ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.pm-issues li{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);font-size:13px}.pm-issues li strong{font-size:13px}.pm-issues li span{flex:1 1 220px;color:var(--ink-soft)}.pm-issue-fix{color:var(--accent-strong);font-size:12px;font-weight:800;white-space:nowrap}.pm-issue-fix:hover{text-decoration:underline}.pm-info{margin-bottom:16px}.pm-info-view{display:grid;gap:10px;margin:0}.pm-info-view>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:start}.pm-info-view dt{color:var(--ink-soft);font-size:12px;font-weight:700;line-height:1.8}.pm-info-view dd{margin:0;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.pm-info-form{display:grid;gap:12px}.pm-info-form label{display:grid;gap:6px}.pm-info-form label>span,.pm-category-selects label>span{color:var(--ink-soft);font-size:12px;font-weight:700}.pm-info-form input,.pm-info-form textarea,.pm-category-selects select,.pm-rename input{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-control);color:var(--ink);background:var(--bg);font-size:14px}.pm-info-form input:focus,.pm-info-form textarea:focus,.pm-category-selects select:focus,.pm-rename input:focus{border-color:var(--accent);outline:none}.pm-info-form textarea{resize:vertical}.pm-category-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pm-category-selects label{display:grid;gap:6px}.pm-inline-error{margin:0;color:var(--bad);font-size:13px;font-weight:700}.pm-form-actions{display:flex;gap:8px}.pm-course-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.pm-course-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.pm-course-num{display:grid;width:30px;height:30px;place-items:center;flex:0 0 auto;border-radius:9px;color:var(--accent-strong);background:var(--accent-soft);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.pm-course-main{display:grid;gap:2px;min-width:0;flex:1 1 auto}.pm-course-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.pm-course-main small{color:var(--ink-soft);font-size:11px}.pm-course-ops{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:6px}.pm-course-ops .btn{min-height:32px;padding:5px 12px;font-size:12px}.pm-danger{color:#9b2c22}.pm-danger:hover{border-color:var(--dada-coral);color:#9b2c22}.pm-rename{display:flex;flex:1 1 auto;align-items:center;gap:6px;min-width:0}.pm-rename input{flex:1 1 auto;min-width:0}.pm-rename .btn{min-height:32px;padding:5px 12px;font-size:12px;white-space:nowrap}.pm-empty{padding:34px 12px;color:var(--ink-soft);font-size:13px;text-align:center}.pm-toast{position:fixed;left:50%;bottom:32px;z-index:var(--z-modal);padding:10px 18px;border-radius:999px;color:#fff;background:#281c0ee0;font-size:13px;font-weight:700;box-shadow:0 8px 24px #281c0e40;transform:translate(-50%)}@media(max-width:720px){.pm-page{width:min(calc(100% - 24px),960px);padding-top:18px}.pm-actions{justify-content:flex-start}.pm-category-selects{grid-template-columns:1fr}.pm-course-row{flex-wrap:wrap}.pm-course-ops{width:100%;justify-content:flex-end}}.cst-workspace{padding:16px;min-height:300px}.cst-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.cst-select-all{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:13px;font-weight:700;cursor:pointer}.cst-select-all input{width:17px;height:17px;accent-color:var(--accent)}.cst-scope-hint{color:var(--ink-soft);font-size:12px}.cst-batch{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.cst-batch-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px}.cst-batch-btn small{color:inherit;opacity:.72;font-size:11px;font-weight:700}.cst-status{margin:12px 0 0;padding:10px 14px;border-radius:10px;color:var(--accent-strong);background:var(--accent-soft);font-size:13px;font-weight:700}.cst-report{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--dada-blue-soft)}.cst-report-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.cst-report-close{border:0;color:var(--accent-strong);background:transparent;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.cst-failed{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}.cst-failed li{display:grid;gap:2px;padding:8px 10px;border-radius:8px;background:var(--dada-paper);font-size:13px}.cst-failed-reason{color:var(--bad);font-size:12px}.cst-rows{display:grid;margin-top:6px}.cst-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 4px;border-bottom:1px dashed var(--line)}.cst-row:last-child{border-bottom:0}.cst-row.processing{margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:10px;background:var(--accent-soft);border-bottom-color:transparent;animation:cst-row-pulse 1.4s ease-in-out infinite}@keyframes cst-row-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 35%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}}.cst-row>input{width:17px;height:17px;flex:0 0 auto;accent-color:var(--accent)}.cst-idx{width:26px;flex:0 0 auto;color:var(--ink-soft);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right}.cst-row-main{display:grid;gap:2px;flex:1 1 260px;min-width:0}.cst-en{font-size:14px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.cst-zh{color:var(--ink-soft);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.cst-sm{color:var(--ink-soft);font-size:11px}.cst-chips{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.cst-chip-done{padding:1px 7px;border-radius:999px;color:var(--accent-strong);background:var(--accent-soft);font-size:10px;font-weight:800;line-height:1.5;white-space:nowrap}.cst-row-actions{display:flex;gap:6px;margin-left:auto}.cst-act{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--line);border-radius:12px;color:var(--ink-soft);background:var(--dada-paper);cursor:pointer;transition:color .2s ease,border-color .2s ease,transform .2s ease}.cst-act:hover{color:var(--accent-strong);border-color:var(--accent)}.cst-act:active{transform:translateY(1px)}.cst-act:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cst-act:disabled{cursor:wait;opacity:.55}.cst-act.done{color:var(--accent-strong);background:var(--accent-soft);border-color:transparent}.cst-empty{margin:0;padding:26px 10px;color:var(--ink-soft);font-size:13px;text-align:center}.cst-dialog{padding:24px;border-radius:20px;background:var(--dada-paper);box-shadow:0 12px 32px #604a3633;overflow:auto}.cst-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.cst-dialog-head h2{margin:0;font-size:18px}.cst-dialog-close{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:12px;color:var(--ink-soft);background:transparent;cursor:pointer}.cst-dialog-close:hover{color:var(--bad);background:var(--dada-coral-soft)}.cst-dialog-sentence{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--dada-cream);font-size:15px;font-weight:700;line-height:1.5}.cst-split-list{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px}.cst-split-list li{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--dada-cream)}.cst-type{padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.cst-type-word{color:var(--accent-strong);background:var(--dada-blue-soft)}.cst-type-phrase{color:#9b2c22;background:var(--dada-coral-soft)}.cst-type-sentence{color:#166534;background:var(--dada-mint-soft)}.cst-split-en{font-weight:700}.cst-split-ph{color:var(--ink-soft);font-size:12px}.cst-split-zh{color:var(--ink-soft);font-size:13px}.cst-split-pos{margin-left:auto;color:var(--ink-soft);font-size:11px;font-weight:800}.cst-structure{margin-top:14px;display:grid;gap:14px}.cst-span-strip{margin:0;display:flex;flex-wrap:wrap;gap:8px;line-height:1.6}.cst-span-part{padding:5px 10px;border-radius:10px;color:var(--rc, var(--ink));background:color-mix(in srgb,var(--rc, var(--ink-soft)) 12%,transparent);font-weight:700}.cst-span-part em{margin-left:6px;font-style:normal;font-size:11px;opacity:.8}.cst-learning{margin-top:14px;display:grid;gap:16px}.cst-section{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--dada-cream)}.cst-section h3{margin:0 0 10px;font-size:14px;letter-spacing:.02em}.cst-field{display:grid;gap:3px;padding:7px 0}.cst-field+.cst-field{border-top:1px dashed var(--line)}.cst-field>span{color:var(--ink-soft);font-size:11px;font-weight:800}.cst-field>p{margin:0;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.cst-components{width:100%;margin-top:6px;border-collapse:collapse;font-size:13px}.cst-components th,.cst-components td{padding:7px 9px;border:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.6}.cst-components th{color:var(--ink-soft);background:var(--dada-paper);font-size:12px}.cst-examples{margin:0;padding:0;list-style:none;display:grid;gap:8px}.cst-examples li{padding:10px 12px;border-radius:10px;background:var(--dada-paper)}.cst-examples span{font-weight:700;font-size:14px}.cst-examples p{margin:4px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.6}.cst-vocab{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.cst-vocab-card{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--dada-paper)}.cst-vocab-card>header{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--line)}.cst-vocab-card>header strong{font-size:16px}.cst-vocab-card>header span{color:var(--ink-soft);font-size:12px}.cst-vocab-pos{padding:2px 7px;border-radius:999px;color:var(--accent-strong)!important;background:var(--accent-soft);font-weight:800}.cst-vocab-card .cst-field{padding:6px 0}.cst-toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%);z-index:var(--z-modal);max-width:min(92vw,560px);padding:10px 20px;border-radius:999px;background:var(--ink);color:var(--dada-paper);font-size:13px;text-align:center;box-shadow:0 6px 20px #1f1c1847;animation:cst-toast-in .22s ease-out}@keyframes cst-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:720px){.cst-batch{width:100%;margin-left:0}.cst-batch-btn{flex:1 1 calc(50% - 8px);justify-content:center}.cst-row-actions{width:100%;margin-left:0;justify-content:flex-end}.cst-dialog{padding:18px}}.scw-page{width:min(calc(100% - 48px),960px);margin:0 auto;padding:26px 0 60px}.scw-state{display:grid;justify-items:center;gap:12px;padding:48px 20px;text-align:center;color:var(--ink-soft)}.scw-state strong{color:var(--ink);font-size:16px}.scw-state>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.scw-head{margin-bottom:18px}.scw-back{color:var(--ink-soft);font-size:13px;font-weight:700}.scw-back:hover{color:var(--accent-strong)}.scw-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:8px}.scw-title-row h1{margin:0;font-size:24px;letter-spacing:-.02em}.scw-diamond{display:inline-flex;align-items:center;gap:6px}.scw-pack-name{margin:6px 0 0;color:var(--ink-soft);font-size:13px}.scw-title-edit{display:flex;gap:8px;margin-top:12px;max-width:480px}.scw-title-edit input{flex:1 1 auto;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-control);color:var(--ink);background:var(--dada-paper);font-size:14px}.scw-title-edit input:focus{border-color:var(--accent);outline:none}.scw-steps{display:flex;gap:8px;margin:14px 0 0;padding:0;list-style:none}.scw-steps li{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 6px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:var(--dada-paper);font-size:12px;font-weight:700}.scw-steps li span{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--line);color:var(--ink);font-size:11px;font-weight:800}.scw-steps li.active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.scw-steps li.active span{color:#fff;background:var(--accent)}.scw-steps li.done span{color:#fff;background:var(--ok)}.scw-tabs{display:flex;gap:6px;margin-top:14px}.scw-tab{padding:8px 16px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--dada-paper);font-size:13px;font-weight:700;cursor:pointer;transition:border-color .2s ease,background .2s ease}.scw-tab:hover{border-color:var(--accent)}.scw-tab.active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.scw-source{display:grid;gap:14px}.scw-field{display:grid;gap:6px}.scw-field>span{color:var(--ink-soft);font-size:12px;font-weight:700}.scw-field input,.scw-field textarea,.scw-generate select,.scw-generate input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-control);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.6}.scw-field input:focus,.scw-field textarea:focus,.scw-generate select:focus,.scw-generate input:focus{border-color:var(--accent);outline:none}.scw-field textarea{resize:vertical;font-family:inherit}.scw-source-tools{display:grid;gap:14px;padding-top:12px;border-top:1px dashed var(--line)}.scw-tool{display:grid;gap:6px;justify-items:start}.scw-tool-label{color:var(--ink);font-size:13px;font-weight:700}.scw-generate{display:flex;gap:6px;width:100%;min-width:0}.scw-generate select{flex:0 0 auto;width:auto}.scw-generate input{flex:1 1 auto;min-width:0}.scw-generate .btn{white-space:nowrap}.scw-hint{margin:0;color:var(--ink-soft);font-size:12px}.scw-ai-status{margin:0;color:var(--accent-strong);font-size:12px;font-weight:700}.scw-inline-error{margin:0;color:var(--bad);font-size:13px;font-weight:700}.scw-step-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.scw-step-actions .btn{min-height:40px;padding-inline:20px}.scw-notice{margin:0 0 12px;color:var(--ink-soft);font-size:12px}.scw-table{display:grid;gap:6px}.scw-table-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.6fr) 96px;gap:8px;padding:0 4px;color:var(--ink-soft);font-size:11px;font-weight:800}.scw-table-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.6fr) 96px;gap:8px;align-items:start;padding:6px;border:1px solid transparent;border-radius:12px}.scw-table-row.scw-missing{border-color:var(--dada-yellow);background:var(--dada-yellow-soft)}.scw-table-row input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--bg);font-size:13px}.scw-table-row input:focus{border-color:var(--accent);outline:none}.scw-cell-zh{display:grid;gap:3px;min-width:0}.scw-missing-tag{color:#8a5a00;font-size:10px;font-weight:800}.scw-row-side{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:34px}.scw-row-state{font-size:10px;font-weight:800;white-space:nowrap;color:var(--ink-soft)}.scw-row-state.st-saving{color:#245c9c}.scw-row-state.st-saved{color:#286e5d}.scw-row-state.st-error{color:#9b2c22}.scw-row-delete{padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:#9b2c22;background:var(--dada-paper);font-size:11px;font-weight:700;cursor:pointer}.scw-row-delete:hover{border-color:var(--dada-coral)}.scw-table-foot{margin-top:12px}.scw-empty{padding:30px 10px;color:var(--ink-soft);font-size:13px;text-align:center}.scw-studio-intro{margin:0 0 14px;color:var(--ink-soft);font-size:13px;line-height:1.7}.scw-toast{position:fixed;left:50%;bottom:32px;z-index:var(--z-modal);padding:10px 18px;border-radius:999px;color:#fff;background:#281c0ee0;font-size:13px;font-weight:700;box-shadow:0 8px 24px #281c0e40;transform:translate(-50%)}@media(max-width:720px){.scw-page{width:min(calc(100% - 24px),960px);padding-top:18px}.scw-table-head{display:none}.scw-table-row{grid-template-columns:1fr;border-color:var(--line);padding:10px}.scw-row-side{justify-content:space-between}.scw-generate{flex-wrap:wrap}}.lesson-confirm-page{width:min(calc(100% - 40px),720px);margin:0 auto;padding:28px 0 60px}.lc-back-link{display:inline-block;margin-bottom:14px;color:var(--ink-soft);font-size:13px}.lc-back-link:hover{color:var(--accent-strong)}.confirm-card{padding:24px}.lc-type-line{display:flex;gap:7px;margin-bottom:10px}.type-chip,.status-chip{display:inline-flex;align-items:center;min-height:23px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800}.type-word{color:#8a5a00;background:var(--dada-yellow-soft)}.type-sentence{color:#20684f;background:var(--dada-mint-soft)}.type-unknown{color:#7b5d57;background:#efe5d3}.status-ready{color:#166534;background:#ecfdf3}.status-draft{color:#92400e;background:#fef3c7}.status-empty,.status-invalid{color:#9b2c22;background:#fff0ed}.status-archived{color:var(--ink-soft);background:#efe5d3}h1{margin:0 0 8px;font-size:25px}.lead{margin:0;color:var(--ink-soft);font-size:13px;line-height:1.75}.lesson-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.lesson-facts>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px}.lesson-facts span{color:var(--ink-soft);font-size:11px}.lesson-facts strong{overflow-wrap:anywhere;font-size:14px}.ready-check{display:flex;align-items:flex-start;gap:8px;color:var(--ink);font-size:13px;line-height:1.6}.ready-check input{margin-top:3px;accent-color:var(--accent)}.confirm-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.blocked-notice{margin-top:18px;padding:12px;border:1px solid #f1b8af;border-radius:10px;color:#8f241b;background:#fff7f5;font-size:13px;line-height:1.6}.state-card{display:grid;justify-items:center;gap:10px;padding:48px 20px;border:1px dashed var(--line);border-radius:var(--radius-card, 16px);color:var(--ink-soft);text-align:center}.state-card strong{color:var(--ink);font-size:16px}.state-card span{font-size:13px}.error-state strong{color:var(--bad)}@media(max-width:560px){.lesson-confirm-page{width:min(calc(100% - 24px),720px);padding-top:20px}.confirm-card{padding:18px}.lesson-facts{grid-template-columns:1fr}.confirm-actions .btn{width:100%;justify-content:center}}.records-page{width:min(calc(100% - 32px),720px);margin:0 auto;padding:28px 0 64px}.records-head{margin-bottom:18px}.records-head h1{margin:0;color:#54401f;font-size:26px;letter-spacing:-.02em}.records-head p{margin:8px 0 0;color:#a08b6e;font-size:13px;line-height:1.7}.records-group{margin-top:22px}.records-group h2{margin:0 0 6px;color:#a08b6e;font-size:13px;font-weight:800}.records-list{border:1px solid #f6ecd4;border-radius:20px;background:var(--dada-paper, #fffdf7);overflow:hidden}.records-row{display:flex;align-items:center;gap:12px;padding:14px 16px;text-decoration:none}.records-row+.records-row{border-top:1px solid #f8f0dd}.records-row:hover{background:#fdf7e7}.records-icon{flex:0 0 auto;width:42px;height:42px;padding:6px;border-radius:12px;object-fit:contain}.records-word{background:#e9f7e1}.records-sentence{background:#e8f1fe}.records-poetry{background:#f1eafd}.records-copy{min-width:0;flex:1}.records-copy h3{overflow:hidden;margin:0;color:#54401f;font-size:13.5px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.records-copy p{margin:4px 0 0;color:#a08b6e;font-size:11.5px}.records-score{flex:0 0 auto;color:#f5a623;font-size:12.5px;font-weight:800}.records-arrow{flex:0 0 auto;color:#d8c9a8;font-size:18px;font-weight:700}.records-loading{display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid #f6ecd4;border-radius:20px;background:var(--dada-paper, #fffdf7)}.records-loading .skeleton-line{display:block;height:15px;border-radius:999px;background:var(--line, #f0e6cf)}.records-loading .skeleton-line.wide{width:60%}.records-empty,.records-error{padding:40px 24px;border:1px solid #f6ecd4;border-radius:20px;background:var(--dada-paper, #fffdf7);text-align:center}.records-empty p,.records-error p{margin:0;color:#a08b6e;font-size:13.5px;line-height:1.7}.records-empty-cta{display:inline-block;margin-top:14px;color:#2f9e8f;font-size:13px;font-weight:800;text-decoration:none}.records-empty-cta:hover{text-decoration:underline}.records-error{border-color:#f0b8aa}.records-error button{margin-top:14px;padding:8px 22px;border:0;border-radius:999px;background:#2f9e8f;color:#fff;font-size:13px;font-weight:800;cursor:pointer}@media(max-width:680px){.records-page{width:min(calc(100% - 24px),720px);padding-top:18px}.records-head h1{font-size:22px}}:root{--dada-cream: #fff8e8;--dada-paper: #f8eed8;--dada-yellow: #ffd43b;--dada-coral: #ff6b4a;--dada-cobalt: #2f887e;--dada-mint: #55cfaf;--dada-brown: #604a36;--dada-muted: #9b856c;--dada-blue-soft: #e5f1ee;--dada-mint-soft: #e2f6ed;--dada-coral-soft: #ffebe5;--dada-yellow-soft: #fff1b8;--warm-hover: #f3e5cd;--warm-active: #ffe8a3;--warm-strong: #765433;--accent: var(--dada-cobalt);--accent-strong: #216c65;--accent-soft: var(--dada-blue-soft);--ok: var(--dada-mint);--bad: var(--dada-coral);--ink: var(--dada-brown);--ink-soft: var(--dada-muted);--line: #e8d6b7;--bg: var(--dada-cream);--combo: var(--dada-coral);--paper-shadow: rgba(112, 78, 37, .14);--radius-card: 22px;--radius-control: 14px;--z-nav: 10;--z-modal: 100}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif;min-width:320px;scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}.font-en{font-family:Nunito,Trebuchet MS,Segoe UI,system-ui,sans-serif}.prompt-font-system{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif}.prompt-font-rounded{font-family:ui-rounded,Nunito,Trebuchet MS,Microsoft YaHei,system-ui,sans-serif}.prompt-font-serif{font-family:Songti SC,STSong,SimSun,serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}:focus-visible{outline:3px solid var(--dada-cobalt);outline-offset:3px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--dada-paper);color:var(--ink);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 3px 0 var(--paper-shadow);transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.btn:hover{border-color:var(--accent);color:var(--accent-strong);transform:translateY(-1px)}.btn:active{transform:translateY(2px) scale(.99);box-shadow:0 1px 0 var(--paper-shadow)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px #17534e}.btn-primary:hover{background:var(--accent-strong);color:#fff}.btn-primary:active{box-shadow:0 1px #17534e}.card{background:var(--dada-paper);border:1px solid var(--line);border-radius:var(--radius-card);padding:18px;box-shadow:0 2px 0 var(--paper-shadow)}.chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;background:var(--dada-blue-soft);color:var(--accent-strong);font-weight:600}.rating-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 8px;border-radius:var(--radius-control);font-weight:800;font-size:13px;font-style:italic;background:#efe5d3;color:var(--ink-soft)}.rating-SSS,.rating-SS{background:var(--dada-yellow);color:#6d4d12}.rating-S,.rating-A{background:var(--dada-blue-soft);color:#216c65}.rating-B{background:var(--dada-mint-soft);color:#286e5d}@media(prefers-color-scheme:dark){:root{--dada-cream: #2d261f;--dada-paper: #3c3025;--dada-brown: #fff1d6;--dada-muted: #d5b993;--dada-blue-soft: #244b49;--dada-mint-soft: #21483e;--dada-coral-soft: #5a3028;--dada-yellow-soft: #5c4a1c;--warm-hover: #493a2d;--warm-active: #5b481f;--warm-strong: #f2d8b5;--line: #604b37;--bg: var(--dada-cream);--paper-shadow: rgba(0, 0, 0, .24)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
