.home-page{display:grid;gap:var(--space-5)}.home-hero{display:grid;grid-template-columns:minmax(320px,1fr) minmax(232px,.72fr);gap:var(--space-4);align-items:stretch}.home-hero-copy,.home-progress-card,.home-panel,.home-stat-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card)}.home-hero-copy{display:grid;align-content:center;min-height:112px;padding:clamp(var(--space-4),3vw,var(--space-6));border-radius:var(--radius-lg)}.home-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:0}.home-primary-action,.home-secondary-action,.home-text-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:46px;padding:0 var(--space-4);border-radius:999px;font-weight:800;text-decoration:none}.home-primary-action{color:#fff;background:var(--color-primary)}.home-secondary-action,.home-text-link{color:var(--color-primary);background:var(--color-primary-soft)}.home-progress-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-items:start;gap:var(--space-4);min-height:112px;padding:var(--space-4);border-radius:var(--radius-lg);text-align:left}.home-progress-ring{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:radial-gradient(circle at center,var(--color-surface) 58%,transparent 60%),conic-gradient(var(--color-known) 0 30%,var(--color-primary-soft) 30% 100%)}.home-progress-ring span{color:var(--color-text);font-size:1.45rem;font-weight:850}.home-progress-card strong{display:block;margin-bottom:var(--space-1);font-size:1.08rem}.home-muted{margin:0;color:var(--color-text-muted)}.home-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.home-stat-card{display:grid;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-md)}.home-stat-card span{color:var(--color-text-muted);font-weight:700}.home-stat-card strong{font-size:clamp(2rem,4vw,3.25rem);line-height:1}.home-stat-primary strong{color:var(--color-primary)}.home-stat-known strong{color:var(--color-known)}.home-stat-learning strong{color:var(--color-learning)}.home-stat-neutral strong{color:var(--color-text)}.home-content-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}.home-panel{padding:var(--space-5);border-radius:var(--radius-lg)}.home-panel h3{margin:0;font-size:1.5rem;letter-spacing:0}.home-panel p:not(.eyebrow){color:var(--color-text-muted);line-height:1.7}.home-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.home-word-list{display:grid;gap:var(--space-3)}.home-word-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:64px;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fbfcff}.home-word-row div{display:grid;gap:var(--space-1);min-width:0}.home-word-row strong,.home-word-row span{overflow-wrap:anywhere}.home-word-row div span{color:var(--color-text-muted)}.home-status{flex:0 0 auto;padding:var(--space-1) var(--space-3);border-radius:999px;font-size:.82rem;font-weight:800}.home-status-new{color:var(--color-primary);background:var(--color-primary-soft)}.home-status-learning{color:var(--color-learning);background:#fff1e8}.home-status-known{color:var(--color-known);background:#e8fff4}.home-empty{display:grid;justify-items:start;gap:var(--space-3);padding:var(--space-5);color:var(--color-text-muted);border:1px dashed var(--color-border);border-radius:var(--radius-md)}@media(max-width:1060px){.home-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.home-hero{grid-template-columns:1fr}}@media(max-width:560px){.home-page,.home-hero,.home-content-grid{gap:var(--space-3)}.home-hero-copy,.home-progress-card,.home-panel,.home-stat-card{border-radius:18px}.home-actions{display:grid;grid-template-columns:1fr;width:100%}.home-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.home-stat-card{padding:var(--space-4)}.home-stat-card strong{font-size:2rem}.home-panel-header,.home-word-row{align-items:flex-start;flex-direction:column}.home-primary-action,.home-secondary-action{width:100%}.home-hero-copy,.home-progress-card{min-height:0}.home-hero-copy{padding:var(--space-4)}.home-progress-card{grid-template-columns:auto minmax(0,1fr);justify-items:start;padding:var(--space-3);text-align:left}.home-progress-ring{width:70px;height:70px}.home-progress-ring span{font-size:1.2rem}.home-panel{padding:var(--space-4)}.home-word-row{min-height:0;padding:var(--space-3)}}.review-page{display:grid;gap:var(--space-3)}.review-score-row,.review-actions,.review-display-toggle,.review-display-options{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.review-complete h2,.review-empty h2{margin:0;letter-spacing:0}.review-progress{display:grid;justify-items:center;gap:var(--space-1);color:var(--color-text);text-align:center}.review-progress strong{font-size:1.35rem}.review-progress span{color:var(--color-text-muted);font-weight:700}.review-score{display:inline-flex;align-items:center;gap:var(--space-3);font-weight:850}.review-display-toggle{justify-content:flex-end;color:var(--color-text-muted);font-weight:800}.review-display-options{gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-border);border-radius:999px;background:#ffffffc2}.review-display-option{min-height:36px;min-width:64px;padding:0 var(--space-3);color:var(--color-text-muted);font-weight:850;border:0;border-radius:999px;background:transparent;cursor:pointer}.review-display-option-active{color:var(--color-primary);background:var(--color-primary-soft)}.review-display-option:focus-visible{outline:3px solid rgba(67,87,255,.25);outline-offset:2px}.review-score span{display:inline-grid;place-items:center;min-width:56px;min-height:36px;padding:0 var(--space-3);border-radius:999px;background:#fff}.review-score-learning{color:var(--color-learning)}.review-score-learning span{border:1px solid #ffb074;background:#fff4eb}.review-score-known{color:var(--color-known)}.review-score-known span{border:1px solid #8ee7c2;background:#e9fff5}.flashcard{position:relative;--flashcard-word-offset-y: 30px;display:grid;align-items:center;justify-items:center;min-height:clamp(340px,47vh,500px);padding:clamp(var(--space-5),5vw,64px);overflow:hidden;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 30px 80px #303a5d1f;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease}.flashcard:hover{border-color:#4657ff38;box-shadow:0 34px 90px #303a5d24}.flashcard:focus-visible{outline:3px solid rgba(67,87,255,.35);outline-offset:4px}.flashcard-side-label{position:absolute;top:var(--space-5);right:var(--space-5);color:var(--color-text-muted);font-size:.86rem;font-weight:800}.flashcard-word{max-width:min(760px,90%);font-size:clamp(3.4rem,7vw,6.25rem);font-weight:400;line-height:1.08;text-align:center;transform:translateY(calc(-1 * var(--flashcard-word-offset-y)));overflow-wrap:anywhere}.flashcard-flipped .flashcard-word{font-size:clamp(2.4rem,6vw,4.6rem)}.flashcard-shortcut{position:absolute;right:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:56px;padding:var(--space-3);color:var(--color-text);background:#dfe4ff}.flashcard-shortcut kbd{min-width:70px;padding:0 var(--space-2);color:var(--color-text);font-weight:850;line-height:32px;border:3px solid #697087;border-radius:8px;background:#fff}.review-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:center;gap:var(--space-3);width:min(100%,500px);margin:0 auto}.review-sync-error{width:min(100%,640px);margin:0 auto;color:#b42318;font-weight:760;text-align:center}.review-answer,.review-primary-link,.review-secondary-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:52px;padding:0 var(--space-5);font-weight:850;border:0;border-radius:999px;text-decoration:none;cursor:pointer}.review-answer{width:100%;min-width:0;background:#f7f8fc;box-shadow:var(--shadow-soft);transition:background-color .16s ease,transform .16s ease}.review-answer:hover,.review-primary-link:hover,.review-secondary-link:hover{transform:translateY(-1px)}.review-answer-learning{color:var(--color-learning)}.review-answer-known{color:var(--color-known)}.review-secondary-link{color:var(--color-primary);background:var(--color-primary-soft)}.review-primary-link{color:#fff;background:var(--color-primary)}.review-complete,.review-empty{display:grid;justify-items:center;gap:var(--space-4);min-height:58vh;padding:clamp(var(--space-5),6vw,80px);text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.review-complete h2,.review-empty h2{font-size:clamp(2.25rem,6vw,5rem);font-weight:500}.review-complete p:not(.eyebrow),.review-empty p:not(.eyebrow){max-width:620px;margin:0;color:var(--color-text-muted);font-size:1.08rem;line-height:1.7}.review-complete-icon{display:grid;place-items:center;width:88px;height:88px;color:var(--color-known);border-radius:50%;background:#e9fff5}.review-empty-icon,.review-complete-icon-muted{display:grid;place-items:center;width:88px;height:88px;color:var(--color-primary);border-radius:50%;background:var(--color-primary-soft)}.review-complete-actions,.review-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3)}@media(max-width:720px){.review-page{gap:var(--space-2)}.review-display-toggle{align-items:center;flex-direction:row;gap:var(--space-2)}.review-display-options{width:auto}.review-display-option{min-height:34px;min-width:58px}.review-score-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--space-2);width:100%}.review-score,.review-progress{justify-content:center;justify-items:center;margin-left:0}.review-score{gap:var(--space-2);font-size:.82rem}.review-score span{min-width:42px;min-height:30px;padding:0 var(--space-2)}.review-progress strong{font-size:1.05rem}.review-progress span{font-size:.78rem;white-space:nowrap}.flashcard{--flashcard-word-offset-y: 34px;min-height:clamp(260px,43vh,360px);padding:var(--space-4);border-radius:18px}.flashcard-word{font-size:clamp(2.8rem,15vw,4.5rem)}.flashcard-shortcut{flex-wrap:wrap;gap:var(--space-2);min-height:52px;padding:var(--space-2);font-size:.86rem;text-align:center}.flashcard-shortcut kbd{min-width:58px;line-height:28px}.flashcard-side-label{top:var(--space-4);right:var(--space-4)}.review-primary-link,.review-secondary-link{width:100%}.review-answer{min-width:0;width:100%;padding:0 var(--space-3)}.review-actions{width:100%;gap:var(--space-2)}}@media(max-width:380px){.review-score-row{grid-template-columns:1fr}.review-score{width:100%}}.words-page,.word-form-page{display:grid;gap:var(--space-4)}.words-header,.word-form-header,.words-toolbar,.word-row,.word-form-actions,.words-success{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.words-sync-error{color:#b42318;background:#fff1f0}.words-toolbar,.words-empty,.word-form-shell,.word-form-missing,.word-row,.words-stat,.words-success{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-soft)}.words-empty,.word-form-shell,.word-form-missing{border-radius:var(--radius-lg)}.words-header{align-items:flex-end;padding:0 0 var(--space-2)}.words-header h2,.words-empty h3,.word-form-header h2,.word-form-missing h2{margin:0;letter-spacing:0}.words-header h2,.word-form-header h2,.word-form-missing h2{font-size:var(--page-title-size);font-weight:var(--page-title-weight);line-height:var(--page-title-line-height)}.words-header p:not(.eyebrow),.word-form-header p:not(.eyebrow),.word-form-missing p:not(.eyebrow),.words-empty p:not(.eyebrow){max-width:640px;margin:var(--space-3) 0 0;color:var(--color-text-muted);line-height:1.7}.words-primary-action,.words-secondary-action,.word-edit-link,.word-delete-button,.word-delete-confirm,.words-filter-button,.word-success-pill{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:46px;padding:0 var(--space-4);font-weight:850;border-radius:999px;text-decoration:none;transition:background-color .16s ease,color .16s ease,transform .16s ease}.words-primary-action{color:#fff;border:0;background:var(--color-primary);cursor:pointer}.words-primary-action:hover,.words-secondary-action:hover,.word-edit-link:hover,.word-delete-button:hover,.word-delete-confirm:hover,.words-filter-button:hover{transform:translateY(-1px)}.words-secondary-action,.word-edit-link{color:var(--color-primary);background:var(--color-primary-soft)}.word-delete-button{color:var(--color-learning);border:0;background:#fff1e8;cursor:pointer}.word-delete-confirm{color:#fff;border:0;background:var(--color-learning);cursor:pointer}.words-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.words-stat{display:grid;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);box-shadow:none}.words-stat span{color:var(--color-text-muted);font-weight:760}.words-stat strong{font-size:clamp(1.9rem,4vw,3.1rem);line-height:1}.words-stat-primary strong,.words-stat-neutral strong{color:var(--color-primary)}.words-stat-learning strong{color:var(--color-learning)}.words-stat-known strong{color:var(--color-known)}.words-toolbar{padding:var(--space-4);border-radius:var(--radius-md);box-shadow:none}.words-success{justify-content:flex-start;min-height:52px;padding:0 var(--space-4);color:var(--color-known);font-weight:850;border-radius:var(--radius-md);background:#e8fff4;box-shadow:none}.words-success span,.words-success button{display:inline-flex;align-items:center;gap:var(--space-2)}.words-success button{width:34px;height:34px;margin-left:auto;padding:0;color:var(--color-known);border:0;border-radius:50%;background:#ffffffb8;cursor:pointer}.words-search{display:flex;align-items:center;gap:var(--space-2);flex:1 1 280px;min-height:48px;padding:0 var(--space-4);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:999px;background:#fbfcff}.words-search input{width:100%;min-width:0;color:var(--color-text);border:0;outline:0;background:transparent}.words-filter{display:flex;flex-wrap:wrap;gap:var(--space-2)}.words-filter-button{min-height:42px;color:var(--color-text-muted);border:1px solid var(--color-border);background:#fff;cursor:pointer}.words-filter-button-active{color:var(--color-primary);border-color:transparent;background:var(--color-primary-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.word-list{display:grid;gap:var(--space-3)}.word-row{min-height:78px;padding:var(--space-4);border-radius:var(--radius-md);box-shadow:none;transition:border-color .16s ease,transform .16s ease,background-color .16s ease}.word-row:hover{border-color:#4657ff2e;background:#fcfdff;transform:translateY(-1px)}.word-copy{display:grid;gap:var(--space-1);min-width:0}.word-copy strong{font-size:1.22rem}.word-copy strong,.word-copy span{overflow-wrap:anywhere}.word-copy span,.word-review-count{color:var(--color-text-muted)}.word-meta{display:flex;align-items:center;justify-content:flex-end;flex:1 1 auto;gap:var(--space-2);min-width:180px}.word-status,.word-review-count{display:inline-flex;align-items:center;min-height:30px;padding:0 var(--space-3);border-radius:999px;font-size:.82rem;font-weight:800}.word-status-new{color:var(--color-primary);background:var(--color-primary-soft)}.word-status-learning{color:var(--color-learning);background:#fff1e8}.word-status-known{color:var(--color-known);background:#e8fff4}.word-review-count{color:var(--color-text-muted);background:var(--color-surface-muted)}.word-edit-link{flex:0 0 auto;min-height:40px}.word-actions{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.word-delete-button{min-height:40px}.word-delete-overlay{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--space-5);background:#252b3a42}.word-delete-dialog{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-4);width:min(100%,460px);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.word-delete-icon{display:grid;place-items:center;width:46px;height:46px;color:var(--color-learning);border-radius:50%;background:#fff1e8}.word-delete-content{min-width:0}.word-delete-content h3{margin:0;font-size:1.24rem;line-height:1.2}.word-delete-content p{margin:var(--space-2) 0 0;color:var(--color-text-muted);line-height:1.6}.word-delete-preview{display:grid;gap:var(--space-1);margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fbfcff}.word-delete-preview strong,.word-delete-preview span{overflow-wrap:anywhere}.word-delete-preview span{color:var(--color-text-muted)}.word-delete-actions{display:flex;justify-content:flex-end;gap:var(--space-2);grid-column:1 / -1}.words-empty,.word-form-missing{display:grid;justify-items:center;gap:var(--space-3);min-height:360px;padding:clamp(var(--space-5),5vw,72px);text-align:center}.words-empty h3{font-size:clamp(2rem,5vw,4rem);font-weight:500}.word-form-shell{padding:clamp(var(--space-5),5vw,56px)}.word-form-header{align-items:flex-start;margin-bottom:var(--space-6)}.word-form{display:grid;gap:var(--space-5);max-width:720px}.word-form-error-summary{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);color:var(--color-learning);border:1px solid #ffb074;border-radius:var(--radius-sm);background:#fff4eb}.word-form-error-summary:focus{outline:3px solid rgba(225,90,18,.18);outline-offset:2px}.word-form-error-summary div{display:grid;gap:var(--space-1)}.word-form-error-summary span{color:var(--color-text);font-weight:650}.word-batch-panel{display:grid;gap:var(--space-4);max-width:720px;margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.word-batch-header,.word-batch-actions{display:flex;align-items:center;gap:var(--space-3)}.word-batch-header{justify-content:space-between}.word-batch-header h3{margin:0;font-size:clamp(1.35rem,2.4vw,1.9rem)}.word-batch-header span,.word-batch-actions p{margin:0;color:var(--color-text-muted);font-weight:760}.word-batch-form{display:grid;gap:var(--space-4)}.word-batch-field textarea{min-height:156px;padding:var(--space-4);color:var(--color-text);line-height:1.6;resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fbfcff;outline:0}.word-batch-field textarea:focus{border-color:#4357ff80;box-shadow:0 0 0 4px #4357ff1f}.word-batch-field textarea[aria-invalid=true]{border-color:var(--color-learning);box-shadow:0 0 0 4px #e15a121f}.word-batch-actions{justify-content:flex-start;flex-wrap:wrap}.word-field{display:grid;gap:var(--space-2);font-weight:850}.word-field input{min-height:58px;padding:0 var(--space-4);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fbfcff;outline:0}.word-field input:focus{border-color:#4357ff80;box-shadow:0 0 0 4px #4357ff1f}.word-field input[aria-invalid=true]{border-color:var(--color-learning);box-shadow:0 0 0 4px #e15a121f}.word-field small,.word-form-error{margin:0;color:var(--color-learning);font-weight:760}.word-form-actions{justify-content:flex-start;flex-wrap:wrap}@media(max-width:1020px){.words-header,.words-toolbar,.word-row,.word-form-header{align-items:flex-start;flex-direction:column}.words-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.word-meta{justify-content:flex-start;flex-wrap:wrap;min-width:0}.words-toolbar{align-items:stretch}.words-search{flex:none;width:100%}}@media(max-width:560px){.words-page,.word-form-page{gap:var(--space-3)}.words-header,.word-form-shell,.words-empty,.word-form-missing{border-radius:18px}.word-form-shell{padding:var(--space-4)}.word-form-header{margin-bottom:var(--space-4)}.word-form,.word-batch-panel,.word-batch-form{gap:var(--space-3)}.word-batch-panel{margin-top:var(--space-4);padding-top:var(--space-4)}.word-batch-header h3{font-size:1.15rem;line-height:1.25}.words-header{padding:0 0 var(--space-1)}.words-header h2,.word-form-header h2,.word-form-missing h2{font-size:var(--page-title-size-mobile)}.words-stat-grid{grid-template-columns:1fr;gap:var(--space-3)}.words-stat{padding:var(--space-4)}.words-primary-action,.words-secondary-action,.word-edit-link,.word-delete-button,.word-delete-confirm{width:100%}.word-form-actions,.word-batch-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.word-batch-header,.word-batch-actions{align-items:flex-start}.words-toolbar{padding:var(--space-3)}.words-filter{display:grid;grid-template-columns:1fr 1fr;width:100%}.words-filter-button{width:100%;min-height:40px}.words-search{min-height:48px;flex:none;width:100%;border-radius:var(--radius-sm)}.word-row{gap:var(--space-3);min-height:0;padding:var(--space-3)}.word-meta{width:100%}.word-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.word-status,.word-review-count{min-height:28px}.word-delete-dialog{grid-template-columns:1fr;padding:var(--space-4);border-radius:18px}.word-delete-actions{display:grid;grid-template-columns:1fr 1fr}.word-field input{min-height:52px}.word-batch-field textarea{min-height:130px}}@media(max-width:380px){.word-form-actions,.word-batch-actions,.word-actions,.word-delete-actions,.words-filter{grid-template-columns:1fr}}:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--page-title-size: clamp(1.65rem, 2.5vw, 2.5rem);--page-title-size-mobile: 1.5rem;--page-title-weight: 800;--page-title-line-height: 1.12;--color-bg: #f8f9fd;--color-surface: #ffffff;--color-surface-muted: #f3f5fb;--color-text: #252b3a;--color-text-muted: #66708a;--color-border: #e9ecf5;--color-primary: #4657ff;--color-primary-soft: #eef1ff;--color-learning: #e15a12;--color-known: #19ad72;--shadow-card: 0 22px 70px rgba(48, 58, 93, .1);--shadow-soft: 0 12px 34px rgba(48, 58, 93, .07);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px}*{box-sizing:border-box}html{min-width:320px;background:var(--color-bg)}body{margin:0;color:var(--color-text);background:var(--color-bg)}button,input,textarea,select{font:inherit}a{color:inherit}.app-shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-width:0;min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6) var(--space-4);border-right:1px solid var(--color-border);background:#ffffffe6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:var(--space-3);padding:0 var(--space-2);min-width:0;font-size:.98rem;font-weight:800;line-height:1.25}.brand-name{display:grid;gap:1px;min-width:0}.brand-name span{display:block;white-space:nowrap}.brand-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#4357ff,#43c7ff);box-shadow:8px 8px #43c7ff40}.nav-list{display:grid;gap:var(--space-2)}.nav-link{display:flex;align-items:center;gap:var(--space-3);min-height:44px;padding:0 var(--space-3);color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-sm);transition:background-color .16s ease,color .16s ease,transform .16s ease}.nav-link-active{color:var(--color-primary);background:var(--color-primary-soft);font-weight:700}.nav-link:hover{color:var(--color-primary);transform:translate(2px)}.auth-panel{display:grid;gap:var(--space-3);min-width:0}.auth-panel-sidebar{margin-top:auto;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f8f9fdd1}.auth-panel-mobile{display:none}.auth-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-width:0;color:var(--color-text-muted);font-size:.76rem;font-weight:800}.auth-heading strong{color:var(--color-text);font-size:.9rem}.auth-buttons{display:grid;gap:var(--space-2)}.auth-button,.auth-logout{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:0;min-height:38px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-weight:800;line-height:1;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.auth-button:disabled{cursor:not-allowed;opacity:.62;transform:none}.auth-button:hover,.auth-logout:hover{border-color:#4657ff52;box-shadow:0 10px 22px #303a5d14;transform:translateY(-1px)}.auth-button:focus-visible,.auth-logout:focus-visible{outline:3px solid rgba(70,87,255,.18);outline-offset:2px}.auth-button-apple{background:#111827;border-color:#111827;color:#fff}.auth-button-apple:hover{border-color:#111827}.auth-google-mark{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;color:#1a73e8;font-size:.92rem;font-weight:900;line-height:1}.auth-user{display:flex;align-items:center;gap:var(--space-2);min-width:0}.auth-avatar{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:34px;height:34px;color:#fff;border-radius:11px;background:var(--color-primary);font-weight:900}.auth-user-copy{display:grid;gap:2px;min-width:0}.auth-user-copy strong,.auth-user-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-user-copy strong{color:var(--color-text);font-size:.88rem}.auth-user-copy span{color:var(--color-text-muted);font-size:.74rem;font-weight:800}.auth-logout{min-height:34px;color:var(--color-text-muted);background:transparent}.login-page{display:grid;min-height:100vh;min-width:0;overflow:hidden;padding:clamp(var(--space-4),5vw,64px);background:radial-gradient(circle at 18% 18%,rgba(67,199,255,.18) 0 14%,transparent 35%),radial-gradient(circle at 88% 8%,rgba(70,87,255,.12) 0 16%,transparent 38%),linear-gradient(180deg,#f4f7ff,#fbfcff 70%,#f8f9fd),var(--color-bg)}.login-shell{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(320px,420px);align-items:center;gap:clamp(var(--space-6),7vw,96px);width:min(1040px,100%);margin:0 auto}.login-brand{position:relative;z-index:1;display:inline-flex;align-items:flex-start;gap:var(--space-4);min-width:0}.login-brand-mark{flex:0 0 auto;width:clamp(52px,7vw,68px);height:clamp(52px,7vw,68px);margin-top:clamp(4px,1vw,10px);border-radius:22px;background:linear-gradient(135deg,#4357ff,#43c7ff);box-shadow:14px 14px #43c7ff29,0 18px 36px #4357ff3d}.login-brand-copy{display:grid;gap:2px;color:var(--color-text);font-size:clamp(2.1rem,6vw,4.5rem);font-weight:900;letter-spacing:0;line-height:1.02}.login-brand-copy span{display:block}.login-card{position:relative;z-index:1;display:grid;gap:var(--space-4);padding:clamp(var(--space-5),4vw,40px);border:1px solid rgba(255,255,255,.88);border-radius:28px;background:#ffffffdb;box-shadow:0 30px 90px #303a5d24,inset 0 1px #fffffff5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-kicker{margin:0;color:var(--color-primary);font-size:.78rem;font-weight:900;letter-spacing:0}.auth-feedback{margin:0;color:var(--color-text-muted);font-size:.92rem;font-weight:720;line-height:1.55}.auth-feedback-error{color:#b42318}.login-actions{display:grid;gap:var(--space-3)}.login-actions .auth-button{min-height:52px;font-size:.96rem}.login-actions .auth-button-google{background:#ffffffdb}.login-actions .auth-button-apple{background:#142b47;border-color:#142b47;box-shadow:0 16px 32px #142b472e}.main-panel{min-width:0;padding:var(--space-6) clamp(var(--space-5),4vw,56px)}.main-panel-no-topbar{padding-top:clamp(var(--space-5),3vw,40px)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6)}.topbar h1,.placeholder-card h2{margin:0;letter-spacing:0}.topbar h1{font-size:var(--page-title-size);font-weight:var(--page-title-weight);line-height:var(--page-title-line-height)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-text-muted);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.placeholder-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-5);min-height:58vh;padding:clamp(var(--space-5),5vw,72px);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.placeholder-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;color:var(--color-primary);border-radius:20px;background:var(--color-primary-soft)}.placeholder-copy{align-self:center;max-width:620px}.placeholder-copy h2{font-size:clamp(2rem,5vw,4.5rem);font-weight:500}.placeholder-copy p:last-child{margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:1.05rem;line-height:1.7}.route-frame{grid-column:1 / -1;align-self:end;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.route-frame-bar{height:12px;background:linear-gradient(90deg,var(--color-primary) 0 24%,var(--color-known) 24% 48%,var(--color-learning) 48% 72%,#ffca32 72% 100%);opacity:.72}.route-frame-content{padding:var(--space-4);color:var(--color-text-muted);font-weight:700}@media(max-width:760px){.app-shell{grid-template-columns:1fr;max-width:100vw;overflow-x:clip}.sidebar{position:fixed;right:0;bottom:0;left:0;z-index:20;gap:0;padding:var(--space-2) max(var(--space-2),env(safe-area-inset-left)) calc(var(--space-2) + env(safe-area-inset-bottom)) max(var(--space-2),env(safe-area-inset-right));width:100%;min-width:0;max-width:100vw;border-right:0;border-top:1px solid rgba(233,236,245,.96);border-bottom:0;box-shadow:0 -14px 44px #303a5d14}.brand,.auth-panel-sidebar{display:none}.auth-panel-mobile{display:none;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);min-height:52px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffffdb;box-shadow:var(--shadow-soft)}.auth-panel-mobile .auth-heading{flex:0 0 auto;display:grid;gap:1px}.auth-panel-mobile .auth-buttons{display:flex;flex:1 1 auto;justify-content:flex-end;gap:var(--space-2);min-width:0}.auth-panel-mobile .auth-button{min-height:34px;padding:0 var(--space-2);font-size:.78rem;white-space:nowrap}.auth-panel-mobile .auth-user{min-width:0}.auth-panel-mobile .auth-logout{flex:0 0 auto;min-height:32px;padding:0 var(--space-2)}.nav-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-1);width:100%;min-width:0;max-width:100%;overflow:visible;padding-bottom:0}.nav-link{flex-direction:column;justify-content:center;gap:var(--space-1);min-height:58px;padding:var(--space-1);font-size:.74rem;line-height:1.15;text-align:center;border-radius:16px}.nav-link:hover{transform:none}.nav-link span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-panel{width:100%;min-width:0;max-width:100vw;padding:var(--space-4) var(--space-3) calc(88px + var(--space-4) + env(safe-area-inset-bottom))}.main-panel-no-topbar{padding-top:var(--space-3)}.topbar{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}.topbar h1{font-size:var(--page-title-size-mobile)}.placeholder-card{grid-template-columns:1fr;min-height:52vh}.login-page{padding:var(--space-4)}.login-shell{grid-template-columns:1fr;align-content:center;gap:var(--space-5)}.login-brand{width:100%;align-items:center;gap:var(--space-3)}.login-card{padding:var(--space-5);border-radius:24px}}@media(max-width:340px){.auth-panel-mobile{align-items:stretch;display:grid}.auth-panel-mobile .auth-buttons{width:100%}.auth-panel-mobile .auth-button{flex:1 1 0}}
