:root{--bg: #0f0f1a;--bg-card: #1a1a2e;--bg-card-hover: #222240;--bg-input: #16162a;--primary: #6c63ff;--primary-hover: #5a52d5;--accent: #ff6b6b;--success: #4ecdc4;--warning: #ffe66d;--text: #e8e8f0;--text-muted: #8888a0;--text-dim: #555570;--border: #2a2a45;--radius: 12px;--shadow: 0 4px 20px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:var(--bg-card);border-radius:var(--radius);padding:2.5rem;width:100%;max-width:400px;box-shadow:var(--shadow)}.login-card h1{text-align:center;margin-bottom:2rem;font-size:2rem;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-card form{display:flex;flex-direction:column;gap:1rem}input{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:.875rem 1rem;color:var(--text);font-size:1rem;outline:none;transition:border-color .2s}input:focus{border-color:var(--primary)}input::placeholder{color:var(--text-dim)}.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:.875rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--primary-hover)}.btn-link{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.875rem;margin-top:1rem;text-align:center;width:100%}.btn-link:hover{color:var(--text)}.error{color:var(--accent);font-size:.875rem;text-align:center}.nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}.nav-brand{font-size:1.25rem;font-weight:700;color:var(--text);text-decoration:none;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.main{padding:1.5rem;max-width:800px;margin:0 auto}.dashboard{padding-bottom:2rem}.dashboard-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:1.5rem}.dashboard h2{font-size:1.5rem;margin-bottom:1rem}.deck-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:600px){.deck-grid{grid-template-columns:repeat(2,1fr)}}.deck-card{background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;cursor:pointer;transition:background .2s,transform .2s;box-shadow:var(--shadow)}.deck-card:hover{background:var(--bg-card-hover);transform:translateY(-2px)}.deck-card h3{margin-bottom:.5rem;font-size:1.25rem}.deck-description{color:var(--text-muted);font-size:.875rem;margin-bottom:1rem}.deck-stats{color:var(--text-dim);font-size:.875rem;margin-bottom:.75rem}.deck-actions{display:flex;gap:.75rem;margin-top:1rem}.btn-secondary{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.625rem 1rem;font-size:.875rem;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:var(--bg-card-hover)}.deck-actions .btn-primary{flex:1;padding:.625rem 1rem;font-size:.875rem}.deck-actions .btn-secondary{flex:1}.xp-bar{width:100%}.xp-bar-label{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:.25rem}.xp-level{color:var(--primary);font-weight:600}.xp-amount{color:var(--text-muted)}.xp-bar-track{height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden}.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:3px;transition:width .5s ease}.streak-counter{display:flex;align-items:center;gap:.5rem;background:var(--bg-card);border-radius:var(--radius);padding:.625rem 1rem}.streak-flame{font-size:1.25rem}.streak-number{font-size:1.25rem;font-weight:700;color:var(--warning)}.streak-label{color:var(--text-muted);font-size:.875rem}.streak-freezes{font-size:.75rem;margin-left:.25rem}.deck-settings h2{margin-bottom:.5rem}.settings-hint{color:var(--text-muted);margin-bottom:1.5rem;font-size:.875rem}.settings-actions{display:flex;gap:.75rem;margin-top:2rem;position:sticky;bottom:0;background:var(--bg);padding:1rem 0}.settings-actions .btn-primary,.settings-actions .btn-secondary{flex:1}.deck-selector{display:flex;flex-direction:column}.selector-section{list-style:none}.selector-section summary{list-style:none}.selector-section summary::-webkit-details-marker{display:none}.selector-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.selector-row input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.selector-all{background:var(--bg-card);margin-bottom:.5rem;font-weight:600}.selector-category-section{margin-bottom:.25rem}.selector-category-header{background:var(--bg-card)}.selector-category-name{font-weight:600;font-size:1.05rem}.selector-group-section{padding-left:1.5rem}.selector-group-header{background:var(--bg-card)}.selector-leaf{padding-left:3rem;display:flex}.selector-leaf:hover{background:var(--bg-card-hover)}.selector-desc{color:var(--text-dim);font-size:.8rem;margin-left:auto}.loading{text-align:center;color:var(--text-muted);padding:3rem}.study-page{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 80px);padding:1rem}.study-progress{width:100%;max-width:500px;display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.study-progress-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.study-progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .3s ease}.study-progress-text{color:var(--text-muted);font-size:.875rem;white-space:nowrap}.flashcard-container{width:100%;max-width:500px;height:320px;perspective:1000px;cursor:pointer;margin-bottom:2rem}.flashcard{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .4s ease}.flashcard-flipped{transform:rotateY(180deg)}.flashcard-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem}.flashcard-back{transform:rotateY(180deg)}.flashcard-hint{position:absolute;bottom:1rem;color:var(--text-dim);font-size:.8rem}.renderer-generic .renderer-text{font-size:2.5rem;font-weight:700;text-align:center}.renderer-kana{display:flex;flex-direction:column;align-items:center;gap:.5rem}.kana-character{font-size:6rem;line-height:1}.kana-original{font-size:2rem;color:var(--text-muted)}.kana-reading{font-size:3rem;font-weight:700;color:var(--primary)}.renderer-image{max-width:100%;max-height:200px;margin-bottom:1rem}.rating-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;width:100%;max-width:500px}.rating-btn{border:none;border-radius:8px;padding:1rem .5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:transform .1s,opacity .2s;color:#fff}.rating-btn:active{transform:scale(.95)}.rating-btn:disabled{opacity:.5;cursor:not-allowed}.rating-again{background:var(--accent)}.rating-hard{background:#e67e22}.rating-good{background:var(--success)}.rating-easy{background:var(--primary)}.rating-label{display:block}.study-summary{text-align:center;padding:3rem 1rem}.study-summary h2{font-size:1.75rem;margin-bottom:2rem;background:linear-gradient(135deg,var(--primary),var(--success));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.summary-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:400px;margin:0 auto 2rem}.summary-stat{background:var(--bg-card);border-radius:var(--radius);padding:1.5rem;display:flex;flex-direction:column}.summary-value{font-size:2rem;font-weight:700;color:var(--primary)}.summary-label{color:var(--text-muted);font-size:.8rem;margin-top:.25rem}.summary-actions{margin-top:1rem}.summary-actions .btn-primary{padding:.875rem 2rem}.stats-page{padding-bottom:2rem}.stats-page h2{margin-bottom:1.5rem}.stats-page h3{margin:2rem 0 1rem}.back-link{display:inline-block;margin-bottom:1rem;font-size:.875rem;text-align:left;width:auto}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--bg-card);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;align-items:center}.stat-value{font-size:2rem;font-weight:700;color:var(--primary)}.stat-label{color:var(--text-muted);font-size:.8rem;margin-top:.25rem}.srs-bar{display:flex;height:24px;border-radius:12px;overflow:hidden;background:var(--bg-input)}.srs-segment{transition:width .5s ease}.srs-segment.srs-new{background:var(--text-dim)}.srs-segment.srs-learning{background:var(--accent)}.srs-segment.srs-young{background:var(--warning)}.srs-segment.srs-mature{background:var(--success)}.srs-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.8rem;color:var(--text-muted)}.srs-legend-item{display:flex;align-items:center;gap:.375rem}.srs-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.srs-dot.srs-new{background:var(--text-dim)}.srs-dot.srs-learning{background:var(--accent)}.srs-dot.srs-young{background:var(--warning)}.srs-dot.srs-mature{background:var(--success)}.breakdown-tree{margin-top:.5rem}.breakdown-section{list-style:none;margin-bottom:.25rem}.breakdown-section summary{list-style:none;cursor:pointer}.breakdown-section summary::-webkit-details-marker{display:none}.breakdown-row{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem;border-radius:var(--radius-sm)}.breakdown-row:hover{background:var(--bg-card-hover)}.breakdown-category{font-weight:600;font-size:1.05rem}.breakdown-group-section{padding-left:1.25rem}.breakdown-group{font-size:.95rem;color:var(--text-muted)}.breakdown-leaf{padding-left:2.5rem}.breakdown-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breakdown-desc{display:inline;margin-left:.5rem;font-size:.75rem;color:var(--text-dim)}.srs-bar-mini{display:flex;height:8px;width:80px;flex-shrink:0;border-radius:4px;overflow:hidden;background:var(--bg-input)}.srs-bar-empty{background:var(--bg-input)}.breakdown-count{font-size:.8rem;font-weight:600;color:var(--text-muted);white-space:nowrap;min-width:2.5rem;text-align:right}.breakdown-count-total{font-weight:400;color:var(--text-dim)}
