@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Lora:ital,wght@0,400;0,500;1,400&display=swap');
:root{--bg:#f3f2f2;--surface:#eae9e9;--text:#201f1d;--muted:#77726f;--line:#201f1d29;--accent:#5b9565;--again:#b6553d;--hard:#b47a2f;--easy:#3f7d74;font-family:Lora,Georgia,serif;color:var(--text);background:var(--bg)}[data-theme=dark]{--bg:#232120;--surface:#3a3735;--text:#f3f1ee;--muted:#b8b1ac;--line:#ffffff2e;--accent:#9bc49e;--again:#d97a63;--hard:#dba05c;--easy:#6bbcae}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}.page{max-width:640px;margin:auto;padding:32px 20px 60px}.header{display:flex;align-items:center;justify-content:space-between;gap:8px}.header h1,.header h2,h3{font:600 32px/1.12 'Cormorant Garamond',Georgia,serif;margin:0}.header h2{font-size:28px}.icons{display:flex;gap:6px}.icon{border:0;background:transparent;font-size:20px;padding:7px;line-height:1}.due{border-block:1px solid var(--line);padding:20px 0 14px;margin-top:16px}.kicker{font:600 11px/1 'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.1em}.due-row,.actions{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:7px}.due-number{font:500 56px/1 'Cormorant Garamond',serif;font-variant-numeric:tabular-nums}.muted{color:var(--muted);font-size:13px}.section-title{margin:25px 0 4px}.deck{display:flex;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0}.deck-main{flex:1;min-width:0}.deck-name{font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.index{font:500 13px 'Cormorant Garamond',serif;color:var(--muted);width:20px}.tag{font-size:12px;color:var(--accent)}.tag.done{color:var(--muted)}.primary,.secondary,.ghost{border-radius:4px;padding:10px 13px;border:1px solid var(--accent);font-size:13px}.primary{background:var(--accent);color:#182018}.secondary{background:transparent;border-color:var(--line)}.ghost{padding:5px;border:0;background:transparent;color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}.review{min-height:calc(100vh - 32px);display:flex;flex-direction:column}.review-card{flex:1;display:flex;align-items:center;justify-content:center;text-align:center}.front{font:500 clamp(32px,8vw,40px)/1.15 'Cormorant Garamond',serif;max-width:90%;animation:in .25s ease}.back{font:italic 18px/1.5 Lora,serif;max-width:85%;margin:22px auto 0}.rule{width:56px;border-top:1px solid var(--line);margin:22px auto}.folio{margin-top:28px;font-size:11px;color:var(--muted);letter-spacing:.08em}.grades{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}.grade{padding:13px 4px 10px;background:transparent;border:0;border-right:1px solid var(--line);font:600 14px 'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid}.grade:last-child{border-right:0}.again{color:var(--again)}.hard{color:var(--hard)}.good{color:var(--accent)}.easy{color:var(--easy)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}td,th{padding:11px 5px;border-bottom:1px solid var(--line)}td:last-child,th:last-child{text-align:right}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.panel{border:1px solid var(--line);padding:16px}.number{font:500 36px 'Cormorant Garamond',serif;margin-top:4px}.chart{display:flex;align-items:end;height:70px;gap:8px;border-bottom:1px solid var(--line);padding:5px 4px}.bar{background:var(--accent);min-width:8px;flex:1}.field{display:grid;gap:7px;margin:15px 0;font-size:13px}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--text);padding:10px}.field textarea{min-height:100px;resize:vertical}.seg{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}.seg button{flex:1;border:0;border-right:1px solid var(--line);padding:8px;background:transparent;font-size:12px}.seg button.active{background:var(--surface)}dialog{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:7px;width:min(500px,calc(100vw - 32px));padding:22px;box-shadow:0 14px 40px #0005}dialog::backdrop{background:#0007}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.empty{text-align:center;margin:auto}.empty h3{margin:16px 0 4px}@keyframes in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(min-width:700px){.page{padding-inline:56px}.review{min-height:calc(100vh - 64px)}}
