/* Shared dark palette and a quieter practice workspace. */
:root{color-scheme:dark;--green:#b4d4b8;--muted:#9aa69f;--border:#2c3631;--surface:#19211d;--canvas:#101613;color:#e4eae5;background:var(--canvas)}
body{background:var(--canvas)}aside,nav{background:#141b17}nav button{color:#a1ada5}nav button.active{background:#26392c;color:#d4e7d3}nav .badge{background:#354b38;color:#d2e2ca}.brand{color:#d4e4d7}.brand-dot{color:#afc68b}.eyebrow{color:#a2b09c}.sidebar-note h3{color:#bfccc0}.local-label{color:var(--muted);border-color:var(--border)}
.button,input,textarea,select,dialog,.panel,.deck,.stats article,.study-filters,.flashcard{background:var(--surface);border-color:var(--border);color:#e4eae5}.primary,.study-controls #reveal{background:#b8d6a6;border-color:#b8d6a6;color:#152114}.button:hover{filter:brightness(1.1)}label{color:#becac1}input::placeholder,textarea::placeholder{color:#87958c}input:focus,select:focus,textarea:focus{outline-color:#b8d6a6}.text-button{color:#b7cda8}.danger,.form-error{color:#eca69b}.pill,.tag{background:#28352b;color:#becfb3;border-color:#3a4937}th{background:#202a23;color:#aebfae}td,.deck-bottom,.activity-panel>p{border-color:var(--border)}.stats article>span,.stats small,.activity small,.activity .count{color:var(--muted)}.activity .bar{background:#3f5945}.activity>div:last-child .bar{background:#a1c08a}.deck-icon,.deck:nth-child(3n+2) .deck-icon,.deck:nth-child(3n) .deck-icon{background:#2c3b2f;color:#b7caa6}.empty{border-color:#37473b;color:var(--muted)}.empty h2{color:#d1e2c8}.practice-banner{background:#203b2b}.cream{background:#bfd3a3;color:#1b291a}.icon-button{color:#b1c0ae}dialog::backdrop{background:#050b08bf}.study-controls{background:var(--canvas)}.ratings button{background:#202b23;border-color:#354339;color:#d5dfd4}.ratings button:first-child{background:#322622;border-color:#584039;color:#efb6a7}.ratings button[data-rating=Good]{background:#b8d6a6;border-color:#b8d6a6;color:#152114}.ratings button small{opacity:1}.bury-button{color:#a8b5ab}.study-filters summary .filter-title{color:#b8c6bb}footer{color:#91a08f}#message,#offline{background:#342c20;color:#e6cda0}button:focus-visible,a:focus-visible{outline-color:#c4dcaf}
/* During practice, a compact top rail replaces the full sidebar. */
body[data-view=practice] .shell{display:block}
body[data-view=practice] aside{position:static;width:100%;height:auto;flex-direction:row;align-items:center;justify-content:space-between;gap:24px;padding:18px 32px;border-right:0;border-bottom:1px solid #232e27;background:var(--canvas)}
body[data-view=practice] .brand{font-size:23px;letter-spacing:-1px}
body[data-view=practice] aside>.eyebrow,body[data-view=practice] .sidebar-note,body[data-view=practice] .local-label,body[data-view=practice] header,body[data-view=practice] footer{display:none}
body[data-view=practice] nav{display:flex;gap:4px;margin:0;background:transparent}
body[data-view=practice] nav button{font-size:12px;padding:10px 13px;min-height:42px}
body[data-view=practice] main{margin:0 auto;width:100%;max-width:980px;padding:24px 32px}
#practice .page-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0;padding:0}
.study-filters{background:transparent;border-color:transparent;padding:0 4px;max-width:800px}
.study-filters summary{font-size:12px}.study-filters summary .filter-title{font-weight:400}.study-filters[open]{padding:12px;border-color:var(--border);background:var(--surface)}
.session-summary{margin:8px auto 18px;font-size:10px}.session-summary>span:last-child{display:none}
.flashcard{min-height:clamp(320px,52dvh,620px);border-radius:18px;box-shadow:0 18px 60px #00000020;padding:30px 38px;background:#1b241e;border-color:#364339}
.flashcard .eyebrow{color:#a8b5a9;font-size:10px;letter-spacing:1.6px}
.flashcard .content{font-size:clamp(28px,3.2vw,42px);line-height:1.55;letter-spacing:-.5px;padding:40px 0}
.study-controls{padding-top:20px}.study-controls #reveal{min-height:58px}.study-controls #reveal+.rating-prompt,.study-tip{display:none}.ratings button{min-height:64px}.rating-prompt{font-size:11px;margin-bottom:10px}.bury-button{font-size:11px;margin-top:6px}
@media(max-width:650px){
 aside{background:#141b17}nav{background:#141b17}tbody tr{background:var(--surface)}.table-wrap{background:transparent}
 body[data-view=practice] aside{padding:14px 18px;min-height:58px}
 body[data-view=practice] nav{position:fixed;display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#141b17}
 body[data-view=practice] nav button{font-size:10px;padding:8px 3px;min-height:44px;gap:4px}
 body[data-view=practice] main{padding:14px 16px calc(84px + env(safe-area-inset-bottom))}
 .session-summary{margin:4px auto 13px}.study-filters summary{min-height:30px}.flashcard{min-height:clamp(220px,46dvh,500px);padding:22px 20px;border-radius:14px}.flashcard .content{font-size:28px;padding:26px 0}.study-controls{padding-top:14px;bottom:calc(64px + env(safe-area-inset-bottom));background:var(--canvas)}.ratings{gap:6px}.ratings button{min-height:60px}.rating-prompt{font-size:10px}.bury-button{margin:2px 0 0;min-height:44px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
#conflict-banner{background:#352a19;color:#ecca9a;border-color:#5c4827;box-shadow:0 2px 8px #00000026}
.passkey-list li{border-color:var(--border)}
.ai-turn.assistant{background:#1c2620;color:#d9e2d8}.ai-turn.assistant a{color:#9fd0b2}.ai-turn.assistant code{background:#ffffff14}.ai-turn.assistant pre{background:#0a0f0c}
/* Keep layout stable when toggling focus, so card and rating targets never jump. */
body.practice-focus[data-view=practice] aside,
body.practice-focus[data-view=practice] .study-filters,
body.practice-focus[data-view=practice] .session-summary,
body.practice-focus[data-view=practice] .flashcard>.eyebrow,
body.practice-focus[data-view=practice] .flashcard .flip-hint,
body.practice-focus[data-view=practice] .rating-prompt{visibility:hidden;pointer-events:none}
body.practice-focus[data-view=practice] aside nav{visibility:hidden;pointer-events:none}
.auth-gate{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-panel{width:100%;max-width:390px}.auth-panel .brand{font-size:28px;margin-bottom:42px}.auth-panel h1{font-size:28px}.auth-panel p{font-size:13px;color:var(--muted);line-height:1.6}.auth-panel label{margin-top:20px}.auth-panel input{min-height:46px}.auth-panel .primary{width:100%;min-height:48px}#auth-message{color:#e8b9a8}#auth-secondary{display:flex;justify-content:space-between;margin-top:16px}#sign-out{min-height:44px}body[data-view=practice] #sign-out{font-size:11px}@media(max-width:650px){body[data-view=practice] #sign-out{margin-left:auto}}
