:root{--paper: #f6f7fb;--ink: #282e3e;--muted: #646f90;--card: #ffffff;--line: #edeff4;--accent: #4255ff;--accent-dark: #3b4bde;--pine: #18ae79;--gold: #ffcd1f;--wrong: #ff725b;--learn: #7c5cff;--test: #0a9c7d;--shadow: 0 16px 40px rgba(40, 46, 62, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:radial-gradient(900px 420px at 8% -10%,#e8ebff 0%,transparent 55%),radial-gradient(700px 360px at 100% 0%,#e7f8f2 0%,transparent 50%),var(--paper);font-family:DM Sans,system-ui,sans-serif}h1,h2,h3{font-family:DM Sans,system-ui,sans-serif;font-weight:700;letter-spacing:-.03em;margin:0}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.shell{max-width:1080px;margin:0 auto;padding:28px 20px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.brand{display:flex;align-items:baseline;gap:10px}.brand strong{font-size:28px;color:var(--accent)}.brand span{color:var(--muted);font-size:14px}.user-chip{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 14px}.ghost{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:8px 14px;cursor:pointer}.ghost:hover,.primary:hover,.pine:hover{transform:translateY(-1px)}.ghost.on{border-color:var(--accent);background:#eef0ff;color:var(--accent)}a.primary,a.ghost{display:inline-flex;align-items:center;justify-content:center}a.primary{color:#fff}.primary,.pine,.danger{border:0;border-radius:999px;padding:10px 16px;cursor:pointer;color:#fff}.primary{background:var(--accent)}.pine{background:var(--pine)}.danger{background:transparent;color:var(--wrong);border:1px solid #ffd4cc;border-radius:999px;padding:8px 12px;cursor:pointer}.welcome{min-height:100vh;display:grid;place-items:center;padding:24px}.welcome-card{width:min(520px,100%);background:var(--card);border:1px solid var(--line);border-radius:24px;padding:36px 32px;box-shadow:var(--shadow)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--accent);font-weight:700;margin-bottom:10px}.lede{color:var(--muted);line-height:1.5;margin:12px 0 24px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;outline:none}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4255ff26}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.home-split{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px}.stack-form{display:grid;gap:12px}.deck-card,.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 10px 30px #282e3e0a}.deck-card{padding:0;display:flex;flex-direction:column;overflow:hidden}.deck-card:hover{border-color:#cfd4ff;box-shadow:var(--shadow)}.deck-card-hit{display:block;padding:18px;color:inherit;text-decoration:none;text-align:left;background:none;border:0;cursor:pointer;width:100%;flex:1;font:inherit}.deck-card-hit h3{margin:0 0 6px}.deck-card-hit:hover h3{color:var(--accent)}.deck-card .card-actions{padding:0 18px 16px;margin-top:0}.deck-card-extra{padding:0 18px 16px}.deck-card .rename-title,.deck-card .rename-form{padding:18px}.pick-mark{display:block;width:20px;height:20px;border-radius:6px;border:1.5px solid #c9cee0;margin-bottom:12px}.pick-mark.on{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 3px #fff}.rename-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.rename-title h1,.rename-title h3{margin:0;min-width:0}.rename-title .ghost{flex-shrink:0;padding:6px 12px;font-size:13px}.rename-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.rename-form .field{flex:1;min-width:140px}.rename-form .error{flex-basis:100%;margin:0}.meta{color:var(--muted);font-size:13px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.grow{flex:1;min-width:180px}.tabs{display:flex;gap:8px;margin:8px 0 16px}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer}.tab.on{background:var(--ink);color:#fff;border-color:var(--ink)}.drop{border:1.5px dashed var(--line);border-radius:16px;padding:28px;text-align:center;background:#fafbff;cursor:pointer}.drop input{display:none}.drop.loading{cursor:wait;pointer-events:none;min-height:180px;display:grid;place-items:center}.photo-loader{display:grid;justify-items:center;gap:8px}.spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spinner.tiny{width:16px;height:16px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.preview{max-width:100%;max-height:220px;border-radius:14px;margin-top:12px}.import-stack{display:grid;gap:16px}.terms-heading{margin:28px 0 12px;font-size:18px}.card-list{display:flex;flex-direction:column;gap:12px;margin-top:18px}.study-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.word{font-size:28px;font-weight:700;letter-spacing:-.03em}.translation{font-size:18px;color:var(--accent);margin:4px 0 10px}.sentence{color:var(--muted);line-height:1.45}.note{margin-top:8px;font-size:13px;color:#9a7b00}.error{color:var(--wrong);margin:10px 0}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.mode-tile{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;min-height:108px;box-shadow:0 8px 24px #282e3e0a}.mode-tile:hover{border-color:#cfd4ff;transform:translateY(-1px)}.mode-tile.off{pointer-events:none;opacity:.45}.mode-tile p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4}.mode-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;flex-shrink:0;background:#eef0ff;color:var(--accent)}.mode-tile.learn .mode-icon{background:#f1ecff;color:var(--learn)}.mode-tile.test .mode-icon{background:#e7f8f2;color:var(--test)}.mode-nav{display:flex;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px}.mode-link{display:grid;padding:6px 14px;border-radius:999px;text-align:center}.mode-link small{color:var(--muted);font-size:11px}.mode-link.on{background:var(--accent);color:#fff}.mode-link.on small{color:#fffc}.stage{min-height:360px;display:grid;place-items:center;perspective:1200px}.flip{width:min(520px,100%);height:300px;position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.8,.2,1);cursor:pointer;border:0;background:transparent;padding:0;color:inherit}.flip.show-back{transform:rotateY(180deg)}.face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);display:grid;place-items:center;padding:28px;text-align:center}.back{transform:rotateY(180deg)}.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0 22px}.progress>div{height:100%;background:var(--accent)}.actions{display:flex;justify-content:center;gap:12px;margin-top:18px}.done{text-align:center;padding:40px 0}.write-panel{width:min(640px,100%);margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:28px;text-align:center}.write-field{font-size:22px;text-align:center;margin-top:4px}.write-field.correct{border-color:var(--pine);background:#eef8f3}.write-field.wrong{border-color:var(--wrong);background:#fff1ee}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.choice-grid.two{grid-template-columns:1fr 1fr}.choice{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 12px;cursor:pointer;text-align:left}.choice:hover:not(:disabled){border-color:var(--accent)}.choice.on{border-color:var(--accent);box-shadow:0 0 0 3px #4255ff1f}.choice.correct{border-color:var(--pine);background:#eef8f3}.choice.wrong{border-color:var(--wrong);background:#fff1ee}.choice.dim{opacity:.55}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;text-align:left}.match-grid .choice{width:100%;margin-bottom:8px}.score-ring{width:120px;height:120px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;font-size:32px;font-weight:700;color:var(--accent);background:conic-gradient(var(--accent) 0,#e8ebff 0);box-shadow:inset 0 0 0 12px #fff,0 0 0 1px var(--line)}.ok{color:var(--pine);font-weight:600;margin:10px 0 0}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}.toolbar-review{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-left:auto}.composer{margin-bottom:22px}.row-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pick{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:10px}.deck-card.picked{border-color:#cfd4ff;box-shadow:0 0 0 3px #4255ff1f}.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.icon-btn{border:1px solid var(--line);background:#fff;color:var(--accent);width:36px;height:36px;border-radius:999px;display:grid;place-items:center;cursor:pointer;padding:0}.icon-btn:hover{border-color:var(--accent);background:#eef0ff}.icon-btn:disabled{opacity:.7;cursor:wait}.word-row{display:flex;align-items:center;gap:8px}.word-row.center{justify-content:center}.linkish{border:0;background:none;color:var(--accent);cursor:pointer;padding:0;font:inherit}details summary{cursor:pointer;color:var(--muted);font-weight:600}.rule-panel{padding:28px}.rule-markup{line-height:1.6;font-size:16px}.rule-markup h2,.rule-markup h3{margin:22px 0 10px;letter-spacing:-.03em}.rule-markup p,.rule-markup ul,.rule-markup ol{margin:0 0 12px}.rule-markup ul,.rule-markup ol{padding-left:1.2em}.rule-markup .label{display:block;margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.rule-markup .ex{background:#eef0ff;color:var(--accent-dark);padding:1px 7px;border-radius:6px;font-weight:650}.rule-markup .rule-box{margin:0 0 16px;padding:18px 20px;border-radius:16px;background:linear-gradient(180deg,#f4f6ff,#eef1ff);border:1px solid #d9defc;box-shadow:inset 4px 0 0 var(--accent)}.rule-markup .rule-box p:last-child{margin-bottom:0;font-size:1.12em}.rule-markup .pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 16px}.rule-markup p.ok,.rule-markup div.ok,.rule-markup li.ok,.rule-markup p.no,.rule-markup div.no,.rule-markup li.no{margin:0 0 10px;padding:12px 14px;border-radius:12px;font-weight:650}.rule-markup span.ok,.rule-markup span.no{padding:1px 7px;border-radius:6px;font-weight:650}.rule-markup .ok{color:#0f7a54;background:#e9f8f1}.rule-markup .no{color:#c44732;background:#ffece8;text-decoration:none}.rule-markup p.ok:before,.rule-markup div.ok:before,.rule-markup li.ok:before{content:"✓ "}.rule-markup p.no:before,.rule-markup div.no:before,.rule-markup li.no:before{content:"✗ "}.rule-markup blockquote{margin:0 0 16px;padding:12px 16px;border-left:3px solid var(--accent);background:#f7f8ff;border-radius:0 12px 12px 0;color:var(--ink)}.rule-markup table{width:100%;border-collapse:separate;border-spacing:0;margin:8px 0 4px;overflow:hidden;border:1px solid var(--line);border-radius:12px}.rule-markup th,.rule-markup td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}.rule-markup th{background:#f6f7fb;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.rule-markup tr:last-child td{border-bottom:0}.check-preview{margin:0;padding:0;list-style:none;display:grid;gap:8px}.check-preview li{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:start;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:12px}.check-preview .meta{text-transform:uppercase;letter-spacing:.04em;margin:4px 0 0}@media(max-width:720px){.rule-markup .pair{grid-template-columns:1fr}}.share-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.share-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 4px 4px 12px;font-size:14px}.share-chip button{border:0;background:transparent;cursor:pointer;color:var(--muted);width:28px;height:28px;border-radius:999px}.share-chip button:hover{background:#eef0ff;color:var(--accent)}@media(max-width:860px){.home-split,.mode-grid{grid-template-columns:1fr}}@media(max-width:640px){.word{font-size:22px}.flip{height:280px}.choice-grid,.match-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch}}
