@font-face{font-family:Lato;src:url(/fonts/Lato.ttf) format("truetype");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Monomakh;src:url(/fonts/Monomakh.ttf) format("truetype");font-weight:400 800;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}:root{--color-bg: #c5c5c5;--color-surface: #ffffff;--color-surface-soft: #f8eacf;--color-text: #1a1a1a;--color-muted: #3d454d;--color-border: #a8a8a8;--color-primary: #565631;--color-primary-hover: #3f4024;--color-primary-soft: #e8e6d4;--color-earth: #8d905f;--color-green: #565631;--color-green-soft: #e4e6d2;--color-sand: #f8eacf;--color-danger: #8b3a3a;--color-danger-bg: #fdecea;--color-danger-border: #b00020;--color-danger-text: #7a0015;--color-ok-bg: #e8f5e9;--color-ok-border: #2e7d32;--color-ok-text: #1b5e20;--color-warn-bg: #fff4e5;--color-warn-border: #ed6c02;--font-sans: "Lato", Arial, Helvetica, sans-serif;--font-display: "Monomakh", "Lato", serif;--max-width: 980px;--radius: 5px;--focus: 0 0 0 3px rgba(86, 86, 49, .35);--text-base: clamp(1.05rem, .95rem + .35vw, 1.15rem);--text-h1: clamp(1.6rem, 1.35rem + .8vw, 2.1rem);--text-h2: clamp(1.2rem, 1.1rem + .4vw, 1.45rem);--s1: .25rem;--s2: .5rem;--s3: .75rem;--s4: 1rem;--s5: 1.5rem;--s6: 2rem;--r1: var(--radius);--r2: 8px;--bg: var(--color-bg);--bg-top: var(--color-sand);--panel: var(--color-surface);--panel2: var(--color-surface-soft);--text: var(--color-text);--muted: var(--color-muted);--accent: var(--color-primary);--danger: var(--color-danger);--warn: #ed6c02;--ok: #2e7d32;--glow: 0 1px 2px rgba(0, 0, 0, .06)}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.65;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--color-primary);text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{color:var(--color-primary-hover)}:focus-visible{outline:none;box-shadow:var(--focus)}.app{max-width:var(--max-width);margin:0 auto;padding:0 1rem 2.5rem;display:flex;flex-direction:column;gap:var(--s4)}.site-header{position:sticky;top:0;z-index:50;margin:0 -1rem;padding:0 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:0 1px #0000000f}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.25rem;max-width:var(--max-width);margin:0 auto;flex-wrap:wrap;padding:.5rem 0}.logo-brand{display:inline-flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--color-text);line-height:0;flex-shrink:0}.logo-wordmark{display:block;height:2.35rem;width:auto}.logo-mark{width:2.25rem;height:2.25rem;object-fit:contain}.app-title-block{flex:1;min-width:0}.app-title-block h1{margin:0;font-size:var(--text-h1);font-weight:700;line-height:1.15;color:var(--color-text);letter-spacing:.01em}.app-title-block .meta{margin:.15rem 0 0;color:var(--color-muted);font-size:.92rem}.app-hero{margin:0 -1rem;padding:1.25rem 1rem 1.5rem;background:linear-gradient(180deg,var(--color-surface-soft) 0%,var(--color-surface) 55%,var(--color-bg) 100%);border-bottom:1px solid rgba(0,0,0,.04)}.app-hero-inner{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.app-hero-mark{width:4.5rem;height:4.5rem;object-fit:contain;flex-shrink:0}.app-hero h1{margin:0 0 .35rem;font-size:var(--text-h1);font-weight:700;line-height:1.15}.app-hero .lead{margin:0;color:var(--color-muted);max-width:42ch;font-size:1.05rem}.auth-block{padding:0}.auth-bar{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;padding:.85rem 1.1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--glow)}.auth-user{font-size:.95rem;color:var(--color-muted);flex:1;min-width:12ch}.auth-user strong{color:var(--color-text);font-weight:700}.auth-form{display:flex;flex-direction:column;gap:var(--s3);max-width:380px;padding:1.25rem 1.35rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--glow)}.auth-form .input{width:100%}.auth-actions{display:flex;gap:var(--s2);flex-wrap:wrap}.auth-verify-box{margin-top:var(--s2);padding:.75rem .85rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-primary-soft)}.auth-info{color:var(--color-primary)!important;font-weight:600}.api-settings{padding-top:.35rem}.api-settings-toggle{width:100%;display:flex;align-items:center;gap:var(--s3);padding:.65rem .15rem;background:none;border:none;color:inherit;font:inherit;cursor:pointer;text-align:left}.api-settings-toggle:hover .api-settings-summary{color:var(--color-primary)}.api-settings-gear{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-primary-soft);color:var(--color-primary);font-size:.95rem;flex-shrink:0}.api-settings-summary{font-size:.9rem;color:var(--color-muted);line-height:1.4}.token-name{font-weight:700}.token-name--ok{color:var(--color-ok-text, #1b5e20)}.token-name--bad{color:var(--color-danger-text, #7a0015)}.api-settings-label.token-name{font-size:.9rem}.api-settings-form{display:flex;flex-direction:column;gap:var(--s3);margin-top:var(--s2);padding-top:var(--s3);border-top:1px solid var(--color-border)}.api-settings-row{display:flex;flex-direction:column;gap:var(--s1)}.api-settings-label{font-size:.9rem;font-weight:700;color:var(--color-muted)}.api-settings-intro{margin:0;font-size:.92rem;color:var(--color-muted);line-height:1.5}.api-link-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;width:fit-content;font-size:.85rem;min-height:2.25rem;padding:.35rem .85rem}.keys-required-banner{margin:var(--s2) 0;padding:.85rem 1rem;border-radius:var(--radius);border:1px solid var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger-text)}.keys-required-banner .status.error{color:var(--color-danger-text);margin:0}.keys-required-hint{margin:.4rem 0 0;font-size:.9rem;color:var(--color-danger-text);opacity:.9}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--glow);padding:1.25rem 1.35rem}.panel h2{margin:0 0 var(--s3);font-size:var(--text-h2);font-weight:700;color:var(--color-primary);display:flex;align-items:center;gap:.5rem;line-height:1.25}.panel h2:before{content:"";flex-shrink:0;width:1.45rem;height:1.55rem;background:url(/brand/mark-sm-40.png) center / contain no-repeat}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem 1.1rem;font-size:.95rem;font-family:inherit;font-weight:700;line-height:1.3;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease,transform .08s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff;opacity:1;filter:none}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-soft);color:var(--color-primary-hover);opacity:1}.btn-ghost{background:transparent;color:var(--color-muted);border-color:transparent}.btn-ghost:hover:not(:disabled){color:var(--color-primary);background:var(--color-primary-soft);opacity:1}.input{padding:.65rem .85rem;font-size:1rem;font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-height:48px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:#7a828a}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus)}.input:disabled{opacity:.6;cursor:not-allowed;background:#f0f0f0}.review-mode input[type=radio]{accent-color:var(--color-primary);width:1.05rem;height:1.05rem}.card-form{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:0;padding:1.25rem 1.35rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--glow)}.card-form .input{flex:1;min-width:8rem}.card-form .btn{flex-shrink:0}.card-list.panel{padding:1.25rem 1.35rem}.card-list ul{list-style:none;padding:0;margin:0}.card-list li{padding:.85rem 0;border-bottom:1px solid var(--color-border)}.card-list li:last-child{border-bottom:none}.card-list li.card-item{display:flex;flex-direction:column;align-items:stretch;gap:var(--s3)}.card-item .card-text{width:100%;line-height:1.5}.card-item .card-actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;justify-content:flex-start;width:100%;margin-top:var(--s1)}.card-item .card-actions .btn{min-height:2.35rem}.card-item .card-edit,.card-item .card-delete,.card-item .card-save,.card-item .card-cancel,.card-item .card-regenerate-audio,.card-item .card-review-now{padding:.4rem .75rem;font-size:.9rem}.card-item .card-edit-fields{display:flex;flex-direction:column;gap:var(--s2);flex:1;min-width:0}.card-item .card-edit-fields .input{padding:.55rem .75rem;font-size:.95rem;min-height:44px}.card-audio{display:block;width:100%;margin-top:var(--s2)}.card-list li .created{display:block;font-size:.875rem;color:var(--color-muted);margin-top:var(--s1)}.status{margin:var(--s2) 0;color:var(--color-muted);font-size:.92rem}.status.error{color:var(--color-danger-text)}.review.panel{margin:0;scroll-margin-top:5rem}.review-card-wrapper{max-width:720px;margin:0 auto;overflow:hidden}.review-card{padding:1.35rem 1.4rem;border-radius:var(--radius);background:linear-gradient(180deg,var(--color-surface-soft) 0%,var(--color-surface) 42%);border:1px solid var(--color-border);box-shadow:0 2px 10px #00000012}.review-pills{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s3)}.review-pill{display:inline-flex;align-items:center;padding:.2rem .6rem;font-size:.82rem;font-weight:700;color:var(--color-green);background:var(--color-green-soft);border-radius:999px;border:1px solid #b8bba0}.review-card .review-mode{margin-bottom:var(--s3)}.review-card .review-mode label{margin-right:var(--s3);color:var(--color-text);font-size:.95rem;font-weight:600}.review-card .review-text{font-size:1.15rem;margin:var(--s3) 0;line-height:1.5;color:var(--color-text)}.review-text--prompt{font-size:1.55rem;text-align:center;margin:var(--s5) 0;min-height:2.5em;display:flex;align-items:center;justify-content:center;color:var(--color-primary)}.review-mode--compact{margin-bottom:var(--s2)}.review-actions--prompt{justify-content:center;margin-top:var(--s4)}.review-actions--prompt .btn{min-height:3rem;padding:.75rem 1.5rem;font-size:1.05rem}.review-image-block{margin-bottom:var(--s3);display:flex;flex-direction:column;gap:var(--s2)}.review-image-frame{aspect-ratio:16 / 9;width:100%;border-radius:var(--radius);overflow:hidden;background:var(--color-primary-soft);border:1px solid var(--color-border)}.review-image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.review-image-placeholder{aspect-ratio:16 / 9;background:var(--color-primary-soft);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);color:var(--color-muted);font-size:.92rem;border:1px dashed var(--color-border);text-align:center;padding:var(--s3)}.review-image-controls{display:flex;flex-direction:column;gap:var(--s2)}.review-image-prompt{width:100%}.review-image-actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}.review-image-actions .btn{padding:.45rem .9rem;font-size:.9rem;min-height:2.35rem}.review-image-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0,0,0,0)}.review-actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-top:var(--s3)}.review-actions .btn{min-height:2.5rem}.review-score-badge{margin-top:var(--s4);padding:.65rem 1rem;border-radius:var(--radius);font-weight:700;font-size:1rem;display:inline-block;border:1px solid transparent}.review-score-red{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:var(--color-danger-border)}.review-score-yellow{background:var(--color-warn-bg);color:#8a4b00;border-color:var(--color-warn-border)}.review-score-green{background:var(--color-ok-bg);color:var(--color-ok-text);border-color:var(--color-ok-border)}@keyframes review-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.review-card-shake{animation:review-shake .5s ease-in-out}@keyframes review-slide-out{to{transform:translate(-100%);opacity:0}}.review-card-leaving{animation:review-slide-out .3s ease-in forwards}@keyframes review-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.review-card-entering{animation:review-slide-in .3s ease-out forwards}.review-card-wrapper.review-card--revealed .review-card{animation:review-reveal .25s ease-out}@keyframes review-reveal{0%{opacity:.92}to{opacity:1}}.review-manual-override{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2);font-size:.9rem;color:var(--color-muted)}.review-manual-override .btn{padding:.35rem .7rem;font-size:.9rem;min-height:2.15rem}.review-attempt-label{font-size:.9rem;color:var(--color-muted);font-weight:600}.deck-status{display:block;font-size:.82rem;color:var(--color-muted);margin-top:var(--s1)}.deck-auto-badge{display:inline-block;padding:.15rem .5rem;font-size:.78rem;font-weight:700;border-radius:999px;margin-left:.35rem}.practice.panel{padding:1.25rem 1.35rem}.practice-ask,.practice-fields,.practice-actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-bottom:var(--s3)}.practice-ask .input,.practice-fields .input{flex:1;min-width:10rem}.practice-actions .btn{min-height:2.5rem}.practice-audio{margin-top:var(--s2)}.app-footer{margin-top:var(--s3);padding:1rem 0 .25rem;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;color:var(--color-muted);font-size:.88rem}.app-footer a{text-decoration:none;font-weight:700;color:var(--color-primary)}.app-footer a:hover{color:var(--color-primary-hover)}.app-footer-mark{width:1.35rem;height:1.35rem;object-fit:contain;display:inline-block;vertical-align:middle;margin-right:.35rem}@media (max-width: 640px){.header-inner{min-height:3.75rem}.logo-wordmark{height:2rem}.app-title-block h1{font-size:1.35rem}.review-text--prompt{font-size:1.3rem}.btn{min-height:48px}}
