:root{--ink:#17352c;--muted:#64736d;--paper:#fcfaf4;--line:#d8e4dc;--accent:#13795b;--accent-dark:#0b573f;--orange:#e78046;--shadow:0 18px 42px rgba(31,70,53,.12)}
*{box-sizing:border-box} body{position:relative;margin:0;min-width:320px;overflow-x:hidden;color:var(--ink);font-family:"Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;background:radial-gradient(circle at 92% 2%,#cce8da 0,transparent 24rem),var(--paper)}body::before,body::after{position:fixed;z-index:0;width:220px;height:220px;content:"";pointer-events:none;filter:blur(1px);opacity:.42}body::before{top:42%;left:-105px;border-radius:46% 54% 67% 33%;background:#d3f2df;animation:ambient-float 12s ease-in-out infinite}body::after{right:-94px;bottom:6%;border-radius:58% 42% 35% 65%;background:#fae5bf;animation:ambient-float 14s ease-in-out -5s infinite}button,input,select{font:inherit}button{cursor:pointer}.app-shell{position:relative;z-index:1;width:min(1180px,calc(100% - 36px));margin:0 auto;padding:42px 0 64px}.topbar,.controls,.progress-copy,.study-area,.card-meta,.card-nav,.quiz-heading,.list-heading{display:flex;align-items:center}.topbar{justify-content:space-between;margin-bottom:28px;animation:rise-in .5s ease both}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:.03em;background:linear-gradient(105deg,#17352c,#13795b 48%,#e78046);background-clip:text;-webkit-background-clip:text;color:transparent}h2{margin-bottom:8px;font-size:1.06rem}.eyebrow{margin-bottom:7px;color:var(--accent);font-size:.71rem;font-weight:800;letter-spacing:.12em}.today-stat{display:grid;grid-template-columns:auto auto auto;align-items:baseline;gap:6px;padding:12px 17px;border-radius:14px;background:#fff;box-shadow:0 5px 20px rgba(38,78,59,.08);color:var(--muted);font-size:.83rem;animation:soft-pop .7s ease both}.today-stat strong{color:var(--accent);font-size:1.5rem}.today-stat small{font-size:.78rem}
.study-nav{padding:18px 20px 19px;border:1px solid rgba(162,203,180,.55);border-radius:22px;background:rgba(255,255,255,.67);box-shadow:0 10px 26px rgba(35,82,58,.06);animation:rise-in .6s .08s ease both}.nav-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.nav-intro h2{margin-bottom:4px;font-size:1.14rem}.nav-intro p:not(.eyebrow){max-width:620px;margin:0;color:var(--muted);font-size:.81rem;line-height:1.55}.reset-button{padding:7px 10px;border:1px solid #edc7b8;border-radius:9px;background:#fffaf8;color:#ae5a39;font-size:.75rem;transition:transform .2s ease,background .2s ease}.reset-button:hover{transform:translateY(-2px);background:#fff0eb}.mode-switch{display:flex;gap:9px;margin-top:15px}.mode-button{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:7px;align-items:center;flex:1;padding:11px 14px;border:1px solid #d4e4db;border-radius:14px;background:#fff;color:var(--ink);text-align:left;transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.mode-button:hover{transform:translateY(-2px);border-color:#8fc9a7}.mode-button span{grid-row:1/3;display:grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#eff6f1;color:var(--accent);font-size:1rem}.mode-button strong{font-size:.9rem}.mode-button small{color:var(--muted);font-size:.69rem}.mode-button.is-active{border-color:#62b789;background:linear-gradient(110deg,#e4f6e9,#fcfff9);box-shadow:0 6px 14px rgba(29,119,79,.1)}.mode-button.is-active span{background:var(--accent);color:#fff}.setting-row{display:grid;grid-template-columns:1fr 1fr minmax(230px,1.6fr);gap:10px;margin-top:12px}.setting-card{display:grid;gap:4px;padding:8px 9px 9px;border:1px solid #dce9e1;border-radius:12px;background:rgba(255,255,255,.78);transition:border-color .2s ease,transform .2s ease}.setting-card:focus-within{border-color:#78bd98;transform:translateY(-1px)}.setting-card.is-paused{opacity:.52}.setting-label{color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.04em}select,input{min-height:36px;padding:7px 9px;border:1px solid #cbd9d1;border-radius:8px;outline-color:var(--accent);background:#fff;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease}select:focus,input:focus{border-color:#53ae80;box-shadow:0 0 0 3px rgba(67,165,113,.13)}select:disabled{cursor:not-allowed;background:#f0f4f1;color:#91a198}.search-control{min-width:0}.search-control input{width:100%}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.progress-panel{margin:18px 0 30px;padding:0 3px;animation:rise-in .6s .14s ease both}.progress-copy{justify-content:space-between;margin-bottom:8px;color:var(--muted);font-size:.84rem}.progress-track{height:9px;overflow:hidden;border-radius:99px;background:#dce8e1}.progress-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#60b28d);transition:width .4s ease}
.daily-goal{margin:0 0 30px;padding:19px 22px;border:1px solid #c8e4d5;border-radius:18px;background:linear-gradient(118deg,#eef9f1,#fff8e9);box-shadow:0 9px 22px rgba(48,112,74,.06);animation:rise-in .6s .2s ease both}.goal-copy{display:flex;align-items:center;justify-content:space-between;gap:16px}.goal-copy h2{margin-bottom:0}.goal-copy h2 span{color:var(--accent);font-family:Georgia,serif}.goal-copy strong{color:#9a6531;font-size:.86rem}.goal-track{position:relative;height:18px;margin-top:17px;overflow:visible;border-radius:99px;background:rgba(139,190,160,.24)}.goal-fill{position:relative;height:100%;width:0;overflow:visible;border-radius:inherit;background:linear-gradient(90deg,#75ce9d,#22946c);transition:width .65s cubic-bezier(.18,.9,.28,1.2)}.goal-fill::after{position:absolute;inset:0;content:"";overflow:hidden;border-radius:inherit;background:repeating-linear-gradient(135deg,rgba(255,255,255,.22) 0 7px,transparent 7px 14px);animation:stripe-slide 1.2s linear infinite}.goal-buddy{position:absolute;z-index:2;right:-12px;top:-20px;font-size:2rem;filter:drop-shadow(0 4px 2px rgba(37,101,69,.2));transition:right .65s cubic-bezier(.18,.9,.28,1.2);animation:bob 1.6s ease-in-out infinite}.sparkle{position:absolute;z-index:1;color:#f2b856;font-size:1rem;opacity:0;animation:twinkle 1.8s ease-in-out infinite}.sparkle.one{right:6px;top:-25px}.sparkle.two{right:24px;top:8px;animation-delay:.65s}@keyframes bob{50%{transform:translateY(-5px) rotate(-4deg)}}@keyframes twinkle{50%{opacity:1;transform:scale(1.25)}}@keyframes stripe-slide{to{background-position:28px 0}}@keyframes ambient-float{50%{transform:translate(24px,-30px) rotate(15deg)}}@keyframes rise-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes soft-pop{0%{opacity:0;transform:scale(.88)}70%{transform:scale(1.04)}100%{opacity:1;transform:scale(1)}}@keyframes dialog-in{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.study-area{align-items:stretch;justify-content:center;gap:24px;animation:rise-in .65s .26s ease both}.side-card{flex:0 1 252px;align-self:center;padding:22px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.7);transition:transform .3s ease,box-shadow .3s ease}.side-card:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(30,86,59,.1)}.side-card p:not(.eyebrow){margin-bottom:0;color:var(--muted);line-height:1.75;font-size:.88rem}.keyboard-hint{margin-top:18px;color:var(--muted);font-size:.75rem}kbd{padding:2px 5px;border:1px solid #b9cec1;border-radius:4px;background:#fff;color:var(--accent-dark)}.card-wrap{flex:0 1 480px;min-width:0}.card-meta{justify-content:space-between;margin:0 3px 9px;color:var(--muted);font-size:.79rem}.badge{padding:4px 9px;border-radius:999px;background:#dff0e6;color:var(--accent-dark);font-size:.72rem;font-weight:700}.flashcard{position:relative;display:grid;width:100%;min-height:375px;border:0;border-radius:22px;background:transparent;text-align:center;perspective:1000px;box-shadow:var(--shadow);transition:transform .3s ease,box-shadow .3s ease}.flashcard:hover{transform:translateY(-4px);box-shadow:0 23px 48px rgba(31,70,53,.18)}.card-side{grid-area:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:26px 30px;border-radius:22px;backface-visibility:hidden;transition:transform .5s ease}.front{background:linear-gradient(145deg,#fff,#f3f8f3);transform:rotateY(0)}.back{background:linear-gradient(145deg,#176e56,#0b513d);color:#fff;transform:rotateY(180deg)}.flashcard.is-back .front{transform:rotateY(-180deg)}.flashcard.is-back .back{transform:rotateY(0)}.card-prompt,.flip-note{font-size:.8rem;opacity:.72}.front .card-prompt{color:var(--muted)}.flashcard strong{max-width:100%;overflow-wrap:anywhere;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.1rem,6vw,3.75rem);letter-spacing:.02em}.meaning{font-family:"Microsoft YaHei",sans-serif!important;font-size:clamp(1.35rem,3vw,1.85rem)!important;line-height:1.55}.phonetic,.frequency{min-height:1.2em;font-family:Georgia,serif;opacity:.78}.word-notes{width:100%;margin-top:2px;padding:11px 13px;border:1px solid rgba(255,255,255,.23);border-radius:12px;background:rgba(0,0,0,.11);text-align:left;font-family:"Microsoft YaHei","Noto Sans SC",system-ui,sans-serif}.notes-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#d8f2e4;font-size:.72rem;font-weight:800;letter-spacing:.04em}.notes-top button{padding:5px 8px;border:1px solid rgba(255,255,255,.42);border-radius:7px;background:rgba(255,255,255,.1);color:#fff;font-size:.7rem;transition:background .2s ease}.notes-top button:hover{background:rgba(255,255,255,.22)}.notes-top button:disabled{cursor:wait;opacity:.7}.notes-content{display:grid;gap:7px;margin-top:9px;color:#f7fffa;font-size:.78rem;line-height:1.55}.note-row{display:grid;grid-template-columns:56px 1fr;gap:7px}.note-row b{color:#aee7c5;font-size:.71rem}.note-example{padding:7px 9px;border-left:3px solid #91d6ab;border-radius:0 7px 7px 0;background:rgba(255,255,255,.08);color:#f7fffa;font-family:inherit;font-size:.79rem;line-height:1.62}.note-examples{display:grid;gap:6px;padding-top:2px}.note-muted{color:#d2e6db;font-size:.74rem}.rating-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:13px}.rating{padding:10px 5px;border:1px solid;border-radius:12px;background:#fff;line-height:1.13;font-weight:800;transition:transform .18s ease,box-shadow .18s ease}.rating:hover{transform:translateY(-3px);box-shadow:0 6px 12px rgba(23,89,57,.12)}.rating small{font-size:.68rem;font-weight:500}.hard{border-color:#e7bd9e;color:#a85125}.known{border-color:#a9c7bb;color:#1a7056}.mastered{border-color:#94c6a7;background:#e8f5ed;color:#0c6144}.card-nav{justify-content:space-between;margin-top:13px}.card-nav button,.icon-button{border:0;background:transparent;color:var(--muted);font-size:.82rem}
.correction-launch-wrap{display:flex;justify-content:center;margin-top:25px}.correction-launch{display:flex;align-items:center;gap:11px;padding:10px 15px;border:1px solid #b9dcc7;border-radius:999px;background:linear-gradient(100deg,#f6fff8,#fff9ed);box-shadow:0 7px 18px rgba(30,101,61,.08);color:var(--ink);transition:transform .25s ease,box-shadow .25s ease}.correction-launch:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 12px 24px rgba(30,101,61,.14)}.correction-launch>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#d6f1df;color:var(--accent-dark);font-size:1.08rem}.correction-launch span small,.correction-launch span:not(:first-child){display:block;text-align:left}.correction-launch small{margin-bottom:2px;color:var(--accent);font-size:.58rem;font-weight:900;letter-spacing:.09em}.correction-launch b{margin-left:7px;color:var(--accent-dark);font-size:.73rem}.correction-dialog{width:min(620px,calc(100% - 30px));border:0;border-radius:22px;padding:0;box-shadow:0 24px 70px rgba(22,62,45,.28);background:linear-gradient(145deg,#fffdf7,#f5fbf6);color:var(--ink)}.correction-dialog::backdrop{background:rgba(15,47,34,.42);backdrop-filter:blur(4px)}.correction-dialog[open]{animation:dialog-in .28s ease both}.dialog-top{display:flex;justify-content:space-between;gap:18px;padding:24px 25px 16px;background:linear-gradient(120deg,#e9f7ed,transparent)}.dialog-top h2{margin-bottom:6px}.dialog-top p:not(.eyebrow){margin-bottom:0;color:var(--muted);font-size:.82rem;line-height:1.65}.dialog-close{display:grid;place-items:center;width:32px;height:32px;flex:none;border:0;border-radius:50%;background:#fff;color:var(--accent-dark);font-size:1.45rem;line-height:1;box-shadow:0 4px 10px rgba(26,83,56,.1)}.correction-form{display:grid;grid-template-columns:1fr 1.35fr auto;gap:9px;padding:0 25px 15px}.correction-form label{display:grid;gap:5px;color:var(--muted);font-size:.7rem;font-weight:700}.correction-form button{align-self:end;min-height:39px;padding:0 14px;border:0;border-radius:9px;background:var(--accent);color:#fff;font-weight:700}.correction-status{min-height:1.1em;margin:0;padding:0 25px 21px;color:var(--accent-dark)!important;font-size:.8rem!important}
.quiz-card{min-height:225px}.quiz-heading{justify-content:space-between;align-items:flex-start}.icon-button{padding:4px;color:var(--accent);font-size:1.25rem}.quiz-meaning{min-height:48px;color:var(--ink)!important;font-size:1.1rem!important;font-weight:700}#quizForm{display:flex;gap:7px}.quiz-card input{min-width:0;width:100%}.quiz-card form button{border:0;border-radius:9px;background:var(--accent);color:#fff;padding:0 11px;font-weight:700}.quiz-result{min-height:24px;margin:10px 0 0!important;font-size:.8rem!important}.quiz-result.correct{color:var(--accent-dark)}.quiz-result.wrong{color:#a84e30}.fold-section{position:relative;overflow:hidden;margin-top:24px;border:1px solid rgba(93,163,126,.32);border-radius:20px;background:rgba(255,255,255,.76);box-shadow:0 10px 28px rgba(28,82,56,.07);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.fold-section::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.62) 45%,transparent 63%);transform:translateX(-120%);pointer-events:none}.fold-section:hover{transform:translateY(-3px);border-color:rgba(45,143,95,.64);box-shadow:0 16px 35px rgba(28,82,56,.13)}.fold-section:hover::before{animation:card-shine 1.1s ease}.fold-section summary{position:relative;z-index:1;display:flex;align-items:center;gap:14px;padding:17px 20px;cursor:pointer;list-style:none}.fold-section summary::-webkit-details-marker{display:none}.vocab-fold summary{background:linear-gradient(105deg,rgba(221,244,229,.92),rgba(255,255,255,.86) 68%,rgba(249,242,215,.68))}.calendar-fold summary{background:linear-gradient(105deg,rgba(230,246,223,.92),rgba(255,255,255,.86) 68%,rgba(226,241,252,.78))}.fold-orb{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:16px;background:#fff;box-shadow:0 7px 16px rgba(41,111,75,.14);font-size:1.55rem;animation:float-orb 3.2s ease-in-out infinite}.calendar-fold .fold-orb{animation-delay:-1.2s}.fold-title{min-width:0;flex:1}.fold-title small,.fold-title strong,.fold-title em{display:block}.fold-title small{margin-bottom:3px;color:var(--accent);font-size:.62rem;font-weight:900;letter-spacing:.13em}.fold-title strong{overflow:hidden;font-size:1.03rem;text-overflow:ellipsis;white-space:nowrap}.fold-title em{margin-top:3px;color:var(--muted);font-size:.74rem;font-style:normal}.fold-meta{flex:none;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.78);color:var(--accent-dark);font-size:.74rem;font-weight:800}.fold-arrow{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:rgba(21,121,91,.11);color:var(--accent-dark);font-size:1.35rem;line-height:1;transition:transform .3s ease,background .3s ease}.fold-section[open]{border-color:#8ac8a2;box-shadow:0 16px 36px rgba(28,82,56,.11)}.fold-section[open] .fold-arrow{background:var(--accent);color:#fff;transform:rotate(180deg)}.fold-section[open] summary{border-bottom:1px dashed rgba(83,149,112,.35)}.fold-section[open] .word-list-section,.fold-section[open] .calendar-section{animation:unfold .38s ease both}.word-list-section,.calendar-section{margin:0;padding:18px 20px 21px}.list-heading{justify-content:space-between}.list-heading h2{margin-bottom:0}.muted{color:var(--muted);font-size:.81rem}.word-list{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:0}.word-row{display:flex;justify-content:space-between;align-items:center;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.68)}.word-row button{overflow:hidden;border:0;background:transparent;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,serif;font-weight:700}.status-dot{width:8px;height:8px;flex:none;margin-left:6px;border-radius:50%;background:#c7d7ce}.status-dot.mastered{background:#2b9b6f}.status-dot.learning{background:var(--orange)}@keyframes card-shine{to{transform:translateX(120%)}}@keyframes float-orb{50%{transform:translateY(-5px) rotate(4deg)}}@keyframes unfold{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.test-status{margin:6px 0 0!important;color:var(--muted)!important;font-size:.74rem!important}.calendar-section{margin-top:34px;padding-top:29px;border-top:1px solid var(--line)}.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:17px}.calendar-month{padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.7)}.calendar-month h3{margin:0 0 8px;font-size:.84rem}.month-weekdays,.month-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.month-weekdays span{color:var(--muted);font-size:.58rem;text-align:center}.calendar-day{display:grid;place-items:center;min-width:0;aspect-ratio:1;border:1px solid transparent;border-radius:5px;background:#f0f4f1;color:#9aac9f;font-size:.62rem}.calendar-day.is-today{border-color:#39a66f;box-shadow:0 0 0 1px rgba(57,166,111,.16)}.calendar-day.is-done{background:#9bdab3;color:#0c5639}.calendar-day.is-complete{background:#188059;color:#fff;font-weight:800}.calendar-day.is-empty{visibility:hidden}
.study-area{gap:18px}.card-wrap{flex:1 1 560px;max-width:580px}.side-card{flex:0 1 220px}.flashcard{min-height:545px}.card-side.back{justify-content:flex-start;padding:34px 34px 30px}.back .card-prompt{font-size:.94rem}.back .meaning{font-size:clamp(1.6rem,3.25vw,2.15rem)!important;line-height:1.62}.back .frequency{font-size:.94rem}.word-notes{margin-top:9px;padding:16px 17px}.notes-top{padding-bottom:3px;font-size:.84rem}.notes-content{gap:11px;margin-top:12px;font-size:.94rem;line-height:1.65}.note-row{grid-template-columns:68px 1fr;gap:9px}.note-row b{font-size:.82rem}.note-example{padding:11px 12px;font-size:.96rem;line-height:1.75}.note-muted{font-size:.83rem}
@media(max-width:960px){.study-area{flex-wrap:wrap}.card-wrap{flex-basis:min(600px,100%);order:-1}.side-card{flex:1 1 280px}.word-list{grid-template-columns:repeat(3,1fr)}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setting-row{grid-template-columns:1fr 1fr}.setting-row .search-control{grid-column:1/-1}}@media(max-width:580px){.app-shell{width:min(100% - 24px,1180px);padding-top:26px}.topbar{align-items:flex-start;gap:12px}.today-stat{padding:8px 10px}.study-nav{padding:15px}.nav-intro{gap:10px}.nav-intro p:not(.eyebrow){font-size:.75rem}.reset-button{font-size:.68rem;white-space:nowrap}.mode-switch{gap:6px}.mode-button{padding:10px 8px}.mode-button small{font-size:.62rem}.setting-row{grid-template-columns:1fr;gap:7px}.setting-row .search-control{grid-column:auto}.flashcard{min-height:500px}.card-side{padding:25px 20px}.back .meaning{font-size:1.5rem!important}.notes-content{font-size:.82rem}.note-example{font-size:.84rem}.word-list{grid-template-columns:repeat(2,1fr)}.side-card{padding:18px}.goal-copy{align-items:flex-start;flex-direction:column;gap:7px}.calendar-grid{grid-template-columns:1fr;gap:9px}.correction-form{grid-template-columns:1fr;padding:0 19px 14px}.dialog-top{padding:20px 19px 14px}.correction-status{padding:0 19px 18px}.correction-launch{width:100%;justify-content:center}.correction-launch b{display:none}}
