:root{--brand: #c54b6c;--brand-light: #fdf2f4;--brand-hover: #a83d5a;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--success: #059669;--success-light: #ecfdf5;--danger: #dc2626;--danger-light: #fef2f2;--warning: #ca8a04;--warning-light: #fefce8;--info: #2563eb;--info-light: #eff6ff;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--color-primary: var(--brand);--color-primary-hover: var(--brand-hover);--color-primary-subtle: var(--brand-light);--color-surface: #ffffff;--color-surface-secondary: var(--gray-50);--color-surface-tertiary: var(--gray-100);--text-primary: var(--gray-900);--text-secondary: var(--gray-600);--text-tertiary: var(--gray-400);--text-on-primary: #ffffff;--border-default: var(--gray-200);--border-subtle: var(--gray-100);--border-strong: var(--gray-300);--color-accent: #2563eb;--color-accent-subtle: #eff6ff;--color-accent-hover: #1d4ed8;--container-xs: 440px;--container-sm: 520px;--container-md: 640px;--container-lg: 800px;--container-xl: 1200px;--z-dropdown: 100;--z-modal-backdrop: 200;--z-modal: 210;--z-toast: 300;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 8px rgba(15, 23, 42, .06), 0 2px 4px rgba(15, 23, 42, .04);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .08), 0 4px 8px rgba(15, 23, 42, .04);--shadow-card-hover: 0 8px 20px rgba(15, 23, 42, .08);--focus-ring: 0 0 0 2px var(--color-accent-subtle), 0 0 0 4px var(--color-accent);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--nav-height: 52px;--bottom-bar-height: 0px}@keyframes spin{to{transform:rotate(360deg)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--gray-900);background:var(--gray-50);overflow-x:hidden}h1,h2,h3,h4,h5,h6{line-height:var(--leading-tight);font-weight:600;color:var(--gray-900)}a{color:inherit;text-decoration:none}input,button,textarea{font-family:inherit;font-size:inherit}table{border-collapse:collapse;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px var(--space-4);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-tight);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 1px 3px #c54b6c33}.btn-primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover);transform:translateY(-1px);box-shadow:0 2px 6px #c54b6c40}.btn-secondary{background:#fff;color:var(--gray-700);border-color:var(--gray-300)}.btn-secondary:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-400)}.btn-ghost{background:transparent;color:var(--gray-600);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover:not(:disabled){background:#047857;border-color:#047857}.btn-apple{background:#000;color:#fff;border-color:#000}.btn-apple:hover:not(:disabled){background:#1a1a1a;border-color:#1a1a1a}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.btn-lg{padding:14px var(--space-6);font-size:var(--text-lg)}.btn-full{width:100%}.card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-xs)}.card-interactive{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-base);cursor:pointer}.card-interactive:hover{border-color:var(--gray-300);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card-elevated{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);background:#f8fafcd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--gray-200)}.app-main{padding-top:var(--nav-height)}.nav-brand{font-size:var(--text-lg);font-weight:700;color:var(--brand);letter-spacing:-.01em}.nav-left{display:flex;align-items:center;gap:var(--space-6);min-width:0;flex:1;overflow:hidden}.nav-links{display:flex;align-items:center;gap:var(--space-1);min-width:0;flex-shrink:1}.nav-link{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--gray-500);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap}.nav-link:hover,.nav-link-active{color:var(--gray-900);background:var(--gray-100)}.nav-actions{display:flex;align-items:center;gap:var(--space-3)}.tab-bar{display:flex;border-bottom:1px solid var(--gray-200)}.tab-button{flex:1;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--gray-500);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.tab-button:hover{color:var(--gray-700);background:var(--gray-50)}.tab-button-active{color:var(--gray-900);border-bottom-color:var(--gray-900)}.chat-container{display:flex;flex-direction:column;height:100%;position:relative}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);border:1px solid var(--gray-200);margin-bottom:var(--space-3)}.chat-msg{margin-bottom:var(--space-3)}.chat-msg-user{text-align:right}.chat-msg-ai{text-align:left}.chat-bubble{display:inline-block;max-width:80%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);line-height:var(--leading-relaxed);font-size:var(--text-base);text-align:left}.chat-bubble-user{background:var(--brand);color:#fff;border-bottom-right-radius:var(--radius-sm)}.chat-bubble-ai{background:var(--gray-100);color:var(--gray-800);border-bottom-left-radius:var(--radius-sm);white-space:pre-line}.chat-inline-image{display:block;max-width:240px;max-height:180px;border-radius:var(--radius-md);margin-bottom:var(--space-2);object-fit:cover;border:1px solid rgba(255,255,255,.3)}.chat-file-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:#fff3;border-radius:var(--radius-sm);font-size:var(--text-xs);margin-bottom:var(--space-2)}.chat-file-chip-icon{display:inline-flex;align-items:center;justify-content:center;padding:1px var(--space-1);background:#ffffff4d;border-radius:2px;font-size:10px;font-weight:700;letter-spacing:.02em}.chat-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#c54b6c14;border:2px dashed var(--brand);border-radius:var(--radius-lg);pointer-events:none}.chat-drop-overlay-content{padding:var(--space-4) var(--space-8);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);font-weight:600;color:var(--brand);font-size:var(--text-base)}.chat-composer{display:flex;flex-direction:column;background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius-xl);overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.chat-composer:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.composer-preview{padding:var(--space-3) var(--space-3) 0}.composer-preview-thumb{position:relative;display:inline-block}.composer-preview-thumb img{display:block;max-height:100px;max-width:160px;border-radius:var(--radius-md);object-fit:cover;border:1px solid var(--gray-200)}.composer-preview-file{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--gray-100);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--gray-700)}.composer-preview-file-icon{display:inline-flex;align-items:center;justify-content:center;padding:2px var(--space-2);background:var(--danger);color:#fff;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700}.composer-preview-file-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-preview-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;position:absolute;top:-6px;right:-6px;background:var(--gray-700);color:#fff;border:2px solid white;border-radius:50%;font-size:10px;cursor:pointer;line-height:1;padding:0;transition:background var(--transition-fast)}.composer-preview-file .composer-preview-remove{position:static;background:none;border:none;color:var(--gray-400);width:auto;height:auto;font-size:var(--text-base)}.composer-preview-file .composer-preview-remove:hover{color:var(--gray-700)}.composer-preview-remove:hover{background:var(--gray-900)}.composer-input-row{display:flex;align-items:flex-end;gap:var(--space-1);padding:var(--space-2) var(--space-3)}.composer-textarea{flex:1;resize:none;border:none;outline:none;background:transparent;font-family:inherit;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--gray-900);padding:var(--space-1) var(--space-1);max-height:150px;overflow-y:auto}.composer-textarea::placeholder{color:var(--gray-400)}.composer-textarea:disabled{opacity:.5}.composer-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--gray-400);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);flex-shrink:0}.composer-icon-btn:hover:not(:disabled){color:var(--gray-700);background:var(--gray-100)}.composer-icon-btn:disabled{opacity:.4;cursor:not-allowed}.composer-send-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--gray-200);border:none;border-radius:var(--radius-md);color:#fff;cursor:not-allowed;transition:all var(--transition-fast);flex-shrink:0}.composer-send-btn-active{background:var(--brand);cursor:pointer}.composer-send-btn-active:hover{background:var(--brand-hover)}.deck-select-card{padding:var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-weight:600;font-size:var(--text-base);color:var(--gray-800);transition:all var(--transition-base)}.deck-select-card:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}.deck-select-card-selected{border-color:var(--color-accent);background:var(--color-accent-subtle);color:var(--color-accent)}.deck-combobox-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;margin-top:var(--space-1);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-height:300px;overflow-y:auto}.deck-combobox-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;font-size:var(--text-sm);color:var(--gray-800);text-align:left;transition:background var(--transition-fast)}.deck-combobox-option:last-child{border-bottom:none}.deck-combobox-option:hover{background:var(--gray-50)}.deck-combobox-count{font-size:var(--text-xs);color:var(--gray-400)}.deck-combobox-create{color:var(--brand);font-weight:500}.deck-combobox-create:hover{background:var(--brand-light)}.deck-select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.deck-select-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-align:left}.deck-select-card:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-2px)}.deck-select-card-name{font-weight:600;font-size:var(--text-base);color:var(--gray-900)}.deck-select-card-count{font-size:var(--text-sm);color:var(--gray-500)}.deck-select-card-flags{display:flex;gap:var(--space-1);font-size:var(--text-xs);margin-top:var(--space-1)}.flag-badge{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:var(--radius-full);font-weight:600;font-size:.65rem}.flag-badge-important{background:#fef3c7;color:#92400e}.flag-badge-weak{background:#fce7f3;color:#9d174d}.flag-badge-review{background:#dbeafe;color:#1e40af}.deck-select-card-create{border-style:dashed;align-items:center;justify-content:center;color:var(--brand)}.deck-select-card-create:hover{background:var(--brand-light)}.deck-checklist{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);max-height:360px;overflow-y:auto}.deck-checklist-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background var(--transition-fast);font-size:var(--text-sm);border-bottom:1px solid var(--gray-100)}.deck-checklist-item:last-child{border-bottom:none}.deck-checklist-item:hover{background:var(--gray-50)}.deck-checklist-all{font-weight:600;color:var(--gray-600);border-bottom-color:var(--gray-200)}.deck-checklist-name{flex:1}.deck-checklist-count{font-size:var(--text-xs);color:var(--gray-400)}.deck-checklist-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);flex-shrink:0}.flashcard{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:var(--shadow-md);text-align:center;width:100%;max-width:600px}.draft-banner{background:var(--warning-light);border:1px solid var(--warning);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.lang-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);line-height:1;background:transparent;border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.lang-btn-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.05em}.lang-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.lang-btn-active{background:var(--gray-100);border-color:var(--gray-900)}.lang-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:160;min-width:100px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-1) 0}.lang-dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--gray-700);background:none;border:none;cursor:pointer;transition:background var(--transition-fast)}.lang-dropdown-item:hover{background:var(--gray-50)}.lang-dropdown-item-active{color:var(--gray-900);background:var(--gray-100);font-weight:600}.nav-avatar{width:28px;height:28px;border-radius:var(--radius-full);flex-shrink:0}.nav-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--gray-200);color:var(--gray-600);font-size:var(--text-xs);font-weight:600}.progress-bar{width:100%;height:6px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--brand);border-radius:var(--radius-full);transition:width var(--transition-slow)}.data-table{width:100%;border-collapse:collapse}.data-table thead th{padding:var(--space-3);text-align:left;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);border-bottom:1px solid var(--gray-200)}.data-table tbody td{padding:var(--space-3);border-bottom:1px solid var(--gray-100)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--gray-50)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center;color:var(--gray-400);border:1px dashed var(--gray-300);border-radius:var(--radius-lg)}.typing-dots{display:inline-flex;align-items:center;gap:4px;padding:var(--space-3) var(--space-4);background:var(--gray-100);border-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-sm)}.typing-dot{width:6px;height:6px;background:var(--gray-400);border-radius:50%;animation:typing-bounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.input{width:100%;padding:var(--space-3);font-size:var(--text-sm);color:var(--gray-900);background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.input::placeholder{color:var(--gray-400)}.generate-panel{background:var(--brand-light);border:1px solid var(--brand);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2)}.text-danger{color:var(--danger)}.text-danger:hover{color:#b91c1c}.flashcard-scene{perspective:1000px;width:100%;max-width:600px;height:350px;position:relative}.flashcard-card{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s;cursor:pointer}.flashcard-card-flipped{transform:rotateY(180deg)}.flashcard-face,.flashcard-face-back{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:var(--shadow-md);text-align:center;font-size:var(--text-2xl);font-weight:700;color:var(--gray-900);line-height:var(--leading-relaxed);overflow-y:auto;word-break:break-word}.flashcard-face-back{transform:rotateY(180deg);font-weight:500;font-size:var(--text-xl);color:var(--gray-700)}.star-btn{position:absolute;top:var(--space-3);right:var(--space-3);z-index:2;background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:var(--gray-300);transition:color var(--transition-fast),transform var(--transition-fast);line-height:1;padding:var(--space-1)}.star-btn:hover{color:var(--warning);transform:scale(1.15)}.star-btn-active{color:var(--warning)}.tts-btn{position:absolute;top:var(--space-3);right:calc(var(--space-3) + 36px);z-index:3;background:none;border:none;cursor:pointer;color:var(--gray-400);transition:all var(--transition-base);padding:var(--space-1);line-height:1;display:inline-flex;align-items:center;justify-content:center}.tts-btn:hover{color:var(--brand);transform:scale(1.15)}.tts-btn-active{color:var(--brand);animation:tts-pulse 1s ease-in-out infinite}@keyframes tts-pulse{0%,to{opacity:1}50%{opacity:.5}}.tts-settings-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;cursor:pointer;color:var(--gray-400);font-size:1rem;transition:all var(--transition-base);padding:0;margin-left:var(--space-2)}.tts-settings-btn:hover{color:var(--brand)}.tts-settings-panel{display:flex;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--gray-200);background:var(--gray-50);align-items:center}.tts-settings-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.tts-settings-row select{padding:var(--space-1) var(--space-2);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--text-sm);background:#fff}.mode-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8);background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-base);text-align:center;min-width:220px;flex:1 1 0;max-width:220px}.mode-card:hover{border-color:var(--brand);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.mode-card-icon{font-size:var(--text-4xl);line-height:1}.mode-card-title{font-size:var(--text-lg);font-weight:600;color:var(--gray-900)}.mode-card-desc{font-size:var(--text-sm);color:var(--gray-500);line-height:var(--leading-relaxed)}.toggle-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--gray-500);background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.toggle-btn:hover{background:var(--gray-200);color:var(--gray-700)}.toggle-btn-active{background:var(--gray-900);color:#fff;border-color:var(--gray-900)}.toggle-btn-active:hover{background:var(--gray-800);color:#fff}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--gray-500);background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--gray-300);line-height:1}.stat-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);min-width:140px}.stat-card-value{font-size:var(--text-3xl);font-weight:700;line-height:1}.stat-card-label{font-size:var(--text-sm);color:var(--gray-500);font-weight:500}.tag-pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--gray-100);color:var(--gray-700);font-size:var(--text-xs);border-radius:var(--radius-full);line-height:var(--leading-normal);white-space:nowrap}.tag-pill-remove{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;font-size:10px;line-height:1;color:var(--gray-400);background:none;border:none;border-radius:50%;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.tag-pill-remove:hover{color:var(--danger);background:var(--danger-light)}.tag-input-wrapper{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-2);background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:38px}.tag-input-wrapper:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.tag-input-wrapper input{flex:1;min-width:80px;padding:2px var(--space-1);font-size:var(--text-sm);border:none;outline:none;background:transparent}.cell-input{width:100%;padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--gray-900);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);transition:border-color var(--transition-fast),background var(--transition-fast)}.cell-input:hover{background:#fff;border-color:var(--gray-200)}.cell-input:focus{outline:none;background:#fff;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle)}.cell-input::placeholder{color:var(--gray-300)}@keyframes cell-saved{0%{background:var(--success-light)}to{background:transparent}}.cell-saved{animation:cell-saved .8s ease}.cell-input-readonly{background:var(--gray-50);cursor:not-allowed;color:var(--gray-500)}.cell-input-readonly:hover,.cell-input-readonly:focus{background:var(--gray-50);border-color:transparent;box-shadow:none}.imported-notice{padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--gray-600)}.flag-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:var(--text-sm);border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:#fff;cursor:pointer;transition:all var(--transition-fast);padding:0;line-height:1}.flag-toggle:hover{border-color:var(--gray-400)}.flag-toggle-active{background:var(--color-accent-subtle);border-color:var(--color-accent)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.sort-select{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--gray-700);background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius-md);cursor:pointer;width:auto}.sort-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.manage-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--color-accent)}.right-panel-toolbar{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2);flex-wrap:wrap}.right-panel-toolbar-secondary{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-4)}.right-panel-toolbar-spacer{flex:1}.chat-hint-buttons{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}@media (max-width: 768px){.chat-hint-buttons{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch}}.chat-context{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:500;color:var(--gray-600);background:var(--gray-100);border-radius:var(--radius-md)}.section-divider{border:none;border-top:1px solid var(--gray-200);margin:var(--space-6) 0 var(--space-4)}.quick-test-container{display:flex;flex-direction:column;height:100%;overflow-y:auto}.quick-test-container .flashcard-scene{max-width:100%;height:280px}.quick-test-container .flashcard-face,.quick-test-container .flashcard-face-back{padding:var(--space-6);font-size:var(--text-xl)}.quick-test-container .flashcard-face-back{font-size:var(--text-lg)}.test-prompt-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--brand-light);border:1px solid var(--brand);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm)}.test-prompt-banner-text{flex:1}.manage-all-fab{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:50;display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:500;color:#fff;background:var(--brand);border-radius:var(--radius-full);box-shadow:var(--shadow-md);transition:background var(--transition-fast),box-shadow var(--transition-fast)}.manage-all-fab:hover{background:var(--brand-hover);box-shadow:0 6px 12px #00000026}@media (max-width: 768px){.hide-mobile{display:none!important}.nav{padding:var(--space-2) var(--space-3);gap:var(--space-1)}.nav-left{gap:var(--space-2)}.nav-links{display:none}.nav-brand{font-size:var(--text-base);flex-shrink:0}:root{--nav-height: 44px;--bottom-bar-height: 72px}.app-main{padding-top:var(--nav-height);padding-bottom:var(--bottom-bar-height)}.manage-all-fab{bottom:calc(72px + var(--space-4))}.lang-btn-label{display:none}.lang-btn{padding:var(--space-1)}.battle-toast{top:44px}.nav-actions{gap:var(--space-2)}.nav-avatar{width:24px;height:24px}.flashcard-scene{height:250px}.flashcard-face,.flashcard-face-back{padding:var(--space-6);font-size:var(--text-xl)}.flashcard-face-back{font-size:var(--text-lg)}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar .input,.filter-bar .sort-select{width:100%;max-width:none}.mode-card{width:100%;max-width:none;min-width:0;padding:var(--space-6)}.quiz-question-card{padding:var(--space-6)}.quiz-question-card h2{font-size:var(--text-xl)}.quiz-choice{padding:var(--space-3);font-size:var(--text-sm)}.stat-card{min-width:100px;padding:var(--space-4)}.deck-grid{grid-template-columns:1fr}.my-deck-item{flex-direction:column;align-items:stretch}.my-deck-item-actions{justify-content:flex-end}.review-deck-item{flex-wrap:wrap}.review-deck-name{flex-basis:100%}.review-deck-meta{flex:1}}.quiz-question-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-md);text-align:center;width:100%;max-width:600px;margin-bottom:var(--space-6)}.quiz-question-card h2{font-size:var(--text-2xl);font-weight:700;color:var(--gray-900);line-height:var(--leading-relaxed);word-break:break-word}.quiz-choices{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:600px}.quiz-choice{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-base);font-weight:500;color:var(--gray-800);text-align:left;transition:all var(--transition-fast);word-break:break-word}.quiz-choice:hover:not(:disabled){border-color:var(--brand);background:var(--brand-light)}.quiz-choice-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:var(--text-sm);font-weight:600;color:var(--gray-500);background:var(--gray-100);border-radius:var(--radius-md);flex-shrink:0}.quiz-choice-correct{border-color:var(--success);background:var(--success-light);color:var(--success)}.quiz-choice-correct .quiz-choice-number{background:var(--success);color:#fff}.quiz-choice-incorrect{border-color:var(--danger);background:var(--danger-light);color:var(--danger)}.quiz-choice-incorrect .quiz-choice-number{background:var(--danger);color:#fff}.quiz-choice-disabled{opacity:.5;cursor:default}.quiz-choice-reveal{border-color:var(--success);background:var(--success-light)}.quiz-choice-reveal .quiz-choice-number{background:var(--success);color:#fff}.quiz-feedback{font-size:var(--text-lg);font-weight:600;margin-top:var(--space-4);text-align:center}.quiz-feedback-correct{color:var(--success)}.quiz-feedback-incorrect{color:var(--danger)}.deck-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.deck-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;transition:all var(--transition-base);display:flex;flex-direction:column;gap:var(--space-2)}.deck-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.deck-card-title{font-size:var(--text-base);font-weight:600;color:var(--gray-900);line-height:var(--leading-tight)}.deck-card-description{font-size:var(--text-sm);color:var(--gray-500);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.deck-card-name{display:inline-block;padding:2px var(--space-2);background:var(--brand-light);color:var(--brand);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full);width:fit-content}.deck-card-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--gray-400);margin-top:auto}.deck-card-owner{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--gray-500)}.deck-card-owner-avatar{width:20px;height:20px;border-radius:var(--radius-full);flex-shrink:0}.deck-card-owner-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);background:var(--gray-200);color:var(--gray-500);font-size:10px;font-weight:600;flex-shrink:0}.deck-card-badge{display:inline-block;padding:2px var(--space-2);background:var(--info-light);color:var(--info);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full);width:fit-content}.deck-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0006;padding:var(--space-4)}.deck-detail-panel{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);width:100%;max-width:600px;max-height:80vh;overflow-y:auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.community-publish-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.share-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0006;padding:var(--space-4)}.share-modal{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);width:100%;max-width:480px;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.my-deck-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);transition:background var(--transition-fast)}.my-deck-item:hover{background:var(--gray-50)}.my-deck-item-info{flex:1;min-width:0}.my-deck-item-title{font-size:var(--text-sm);font-weight:600;color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-deck-item-meta{font-size:var(--text-xs);color:var(--gray-400);display:flex;gap:var(--space-3);margin-top:var(--space-1)}.my-deck-item-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.mode-home-card{display:flex;flex-direction:column;gap:var(--space-2);text-decoration:none;color:inherit}.mode-home-card-header{display:flex;align-items:center;gap:var(--space-3)}.mode-home-card-header h2{font-size:var(--text-base);font-weight:600;margin:0}.mode-home-card-icon{font-size:var(--text-2xl);line-height:1;flex-shrink:0}.mode-home-card-desc{color:var(--gray-600);font-size:var(--text-sm);font-weight:500;margin:0}.mode-home-card-detail{color:var(--gray-500);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.bottom-tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-around;background:#f8fafcf2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--gray-200);padding:var(--space-1) 0;padding-bottom:calc(var(--space-1) + env(safe-area-inset-bottom,0px))}.bottom-tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-1) var(--space-2);color:var(--gray-400);text-decoration:none;font-size:10px;font-weight:500;transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent}.bottom-tab-item svg{transition:color var(--transition-fast)}.bottom-tab-item-active{color:var(--gray-900)}.bottom-tab-label{line-height:1;white-space:nowrap}@media (min-width: 769px){.hide-desktop{display:none!important}}.input-page{height:calc(100vh - var(--nav-height) - var(--bottom-bar-height));display:flex;flex-direction:column}.input-page-center{min-height:calc(100vh - var(--nav-height) - var(--bottom-bar-height));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8)}.input-toolbar{padding:var(--space-2) var(--space-4);display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--color-surface)}.input-toolbar-bordered{border-bottom:1px solid var(--gray-200)}.input-toolbar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.input-toolbar-deck-name{margin:0;font-size:var(--text-base);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-toolbar-tts-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--gray-200);border-radius:var(--radius-full);background:var(--color-surface);color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;white-space:nowrap}.input-toolbar-tts-btn:hover{background:var(--gray-50);border-color:var(--gray-300);color:var(--text-primary)}.input-content{flex:1;display:flex;overflow:hidden}.input-chat-pane{width:45%;padding:var(--space-4);border-right:1px solid var(--gray-200);display:flex;flex-direction:column;overflow:hidden}.input-right-pane{width:55%;padding:var(--space-4);overflow-y:auto}@media (max-width: 768px){.input-chat-pane,.input-right-pane{width:100%;border-right:none}}.app-footer{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);font-size:var(--text-xs);color:var(--gray-400);border-top:1px solid var(--gray-100)}body:has(.input-page) .app-footer{display:none}.footer-links{display:flex;gap:var(--space-3)}.footer-links a{color:var(--gray-400);transition:color var(--transition-fast)}.footer-links a:hover{color:var(--gray-600)}.battle-list{display:flex;flex-direction:column;gap:var(--space-3)}.battle-card{position:relative;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--gray-100);border-left:4px solid var(--gray-200);background:#fff;cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.battle-card:hover{box-shadow:var(--shadow-sm)}.battle-card-pending,.battle-card-accepted{border-left-color:var(--brand)}.battle-card-completed{border-left-color:var(--gray-400)}.battle-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.battle-card-meta{font-size:var(--text-sm);color:var(--gray-500)}.battle-card-selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-light)}.battle-result-rankings{display:flex;flex-direction:column;gap:var(--space-3)}.battle-result-player{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--gray-100);background:#fff}.battle-result-player-me{background:var(--brand-light);border-color:var(--brand)}.battle-result-win{color:var(--success)}.battle-result-lose{color:var(--danger)}.battle-result-draw{color:var(--warning)}.battle-mode-badge{display:inline-block;padding:2px var(--space-2);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);vertical-align:middle}.battle-mode-challenge{background:var(--brand-light);color:var(--brand)}.battle-mode-mix{background:var(--info-light);color:var(--info)}.battle-mode-hayaoshi{background:var(--warning-light);color:var(--warning)}.battle-count-options{display:flex;gap:var(--space-2)}.battle-cancel-btn{position:absolute;top:var(--space-2);right:var(--space-2);background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:var(--text-lg);padding:var(--space-1);line-height:1;border-radius:var(--radius)}.battle-cancel-btn:hover{color:var(--danger);background:var(--gray-100)}.battle-share-url-box{margin-bottom:var(--space-3)}.battle-share-url-input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--gray-600);background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-md);text-align:center;cursor:text;-webkit-user-select:all;user-select:all}@media (max-width: 768px){.battle-result-player{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.nav-avatar-btn{position:relative;background:transparent;border:none;padding:0;cursor:pointer;border-radius:var(--radius-full);transition:opacity var(--transition-fast)}.nav-avatar-btn:hover{opacity:.8}.nav-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:150;min-width:180px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-2) 0}.nav-dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--gray-700);background:none;border:none;cursor:pointer;text-decoration:none;transition:background var(--transition-fast)}.nav-dropdown-item:hover{background:var(--gray-50);color:var(--gray-900)}.nav-dropdown-divider{height:1px;background:var(--gray-200);margin:var(--space-2) 0}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--space-1);font-size:11px;font-weight:700;color:#fff;background:var(--danger);border-radius:var(--radius-full);line-height:1}.profile-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.profile-avatar{width:64px;height:64px;border-radius:var(--radius-full);flex-shrink:0;object-fit:cover}.profile-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-full);background:var(--gray-200);color:var(--gray-600);font-size:var(--text-2xl);font-weight:600;flex-shrink:0}.avatar-picker-grid{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.avatar-picker-item{width:48px;height:48px;border-radius:var(--radius-full);border:2px solid var(--gray-200);padding:0;background:none;cursor:pointer;overflow:hidden;transition:border-color .15s,transform .15s}.avatar-picker-item img{width:100%;height:100%;object-fit:cover}.avatar-picker-item:hover{border-color:var(--gray-400);transform:scale(1.1)}.avatar-picker-item-active{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}.profile-friend-code{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--gray-100);border-radius:var(--radius-lg);margin-bottom:var(--space-6)}.profile-friend-code-value{font-size:var(--text-2xl);font-weight:700;font-family:var(--font-mono);color:var(--brand);letter-spacing:.15em}.profile-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3)}.profile-stat-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg)}.profile-stat-value{font-size:var(--text-2xl);font-weight:700;line-height:1;color:var(--gray-900)}.profile-stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);font-weight:500}.friend-add-form{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.friend-code-input{flex:1;font-family:var(--font-mono);text-transform:uppercase;text-align:center;letter-spacing:.1em;font-size:var(--text-lg);font-weight:600}.friend-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast)}.friend-card:hover{background:var(--gray-50)}.friend-avatar{width:40px;height:40px;border-radius:var(--radius-full);flex-shrink:0;object-fit:cover}.friend-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--gray-200);color:var(--gray-600);font-size:var(--text-sm);font-weight:600;flex-shrink:0}.friend-info{flex:1;min-width:0}.friend-name{font-size:var(--text-sm);font-weight:600;color:var(--gray-900)}.friend-active{font-size:var(--text-xs);color:var(--gray-400)}.friend-detail{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--gray-50);border:1px solid var(--gray-200);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);margin-top:-1px}.friend-h2h{display:flex;gap:var(--space-3);font-size:var(--text-sm);font-weight:600}.friend-h2h-win{color:var(--success)}.friend-h2h-lose{color:var(--danger)}.friend-h2h-draw{color:var(--gray-500)}.friend-request-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg)}.friend-request-actions{display:flex;gap:var(--space-2);margin-left:auto;flex-shrink:0}.battle-friend-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base)}.battle-friend-card:hover{border-color:var(--brand);background:var(--gray-50)}.battle-friend-card-selected{border-color:var(--brand);background:var(--brand-light)}.battle-challenge-section{margin-bottom:var(--space-6)}.battle-challenge-section h3{font-size:var(--text-sm);font-weight:600;color:var(--brand);margin-bottom:var(--space-3);text-transform:uppercase}.battle-toast{position:fixed;top:52px;left:50%;transform:translate(-50%);z-index:150;width:100%;max-width:420px;padding:var(--space-2) var(--space-4);animation:toast-slide-in .3s ease-out}.battle-toast-content{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fff;border-left:4px solid var(--brand);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;transition:box-shadow var(--transition-fast)}.battle-toast-content:hover{box-shadow:0 6px 12px #0000001f}.battle-toast-icon{font-size:var(--text-xl);line-height:1;flex-shrink:0}.battle-toast-body{flex:1;min-width:0}.battle-toast-title{font-size:var(--text-sm);font-weight:600;color:var(--gray-900)}.battle-toast-sub{font-size:var(--text-xs);color:var(--gray-500)}.battle-toast-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:var(--text-base);border-radius:var(--radius-sm);flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast)}.battle-toast-close:hover{color:var(--gray-700);background:var(--gray-100)}@keyframes toast-slide-in{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.bottom-tab-badge{position:absolute;top:-4px;right:-4px;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;color:#fff;background:var(--danger);border-radius:var(--radius-full);line-height:1}.review-widget{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.review-widget-title{font-size:var(--text-sm);font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}.review-urgency-badges{display:flex;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.review-urgency-badge{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--gray-600)}.review-urgency-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.review-deck-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.review-deck-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-md)}.review-deck-name{font-weight:600;font-size:var(--text-sm);color:var(--gray-900);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.review-deck-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--gray-500);flex-shrink:0}.review-retention-bar{width:60px;height:6px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.review-retention-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .3s ease}.review-summary-text{font-size:var(--text-sm);font-weight:600;color:var(--gray-700);margin-bottom:var(--space-3)}.missed-card-retention{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--gray-500);flex-shrink:0}.missed-card-retention-bar{width:48px;height:5px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.missed-card-retention-bar-fill{height:100%;border-radius:var(--radius-full)}.auto-flag-notice{font-size:var(--text-sm);color:var(--gray-500);text-align:center;margin-bottom:var(--space-4)}@media (max-width: 768px){.friend-add-form{flex-direction:column}.friend-detail{flex-direction:column;align-items:stretch;gap:var(--space-2)}.profile-header{flex-direction:column;text-align:center}}.category-filter-bar{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-2);margin-bottom:var(--space-4);scrollbar-width:none;-ms-overflow-style:none}.category-filter-bar::-webkit-scrollbar{display:none}.category-chip{display:inline-flex;align-items:center;gap:4px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--gray-200);background:#fff;font-size:var(--text-sm);color:var(--gray-600);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all var(--transition-fast)}.category-chip:hover{border-color:var(--gray-300);background:var(--gray-50)}.category-chip-active{border-color:var(--primary);background:var(--primary);color:#fff}.category-chip-active:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.deck-card-favorite-btn{position:absolute;top:var(--space-2);right:var(--space-2);background:none;border:none;cursor:pointer;padding:var(--space-1);font-size:20px;line-height:1;opacity:.6;transition:opacity var(--transition-fast),transform var(--transition-fast);z-index:1}.deck-card-favorite-btn:hover{opacity:1;transform:scale(1.15)}.deck-card-favorite-btn-active{opacity:1;color:var(--danger)}.deck-card-category{display:inline-flex;align-items:center;gap:2px;padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--gray-100);font-size:var(--text-xs);color:var(--gray-600);white-space:nowrap}.deck-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--space-1)}.deck-card-tag{padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--gray-50);border:1px solid var(--gray-200);font-size:var(--text-xs);color:var(--gray-500)}.deck-view-container{max-width:800px;margin:0 auto;padding:var(--space-8) var(--space-4)}.deck-view-header{margin-bottom:var(--space-6)}.deck-view-title{font-size:var(--text-2xl);font-weight:700;color:var(--gray-900);margin-bottom:var(--space-2)}.deck-view-description{font-size:var(--text-base);color:var(--gray-600);margin-bottom:var(--space-3)}.deck-view-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.deck-view-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.deck-view-stat{text-align:center;padding:var(--space-3);background:var(--gray-50);border-radius:var(--radius-md)}.deck-view-stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--gray-900)}.deck-view-stat-label{font-size:var(--text-xs);color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.deck-view-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap}.share-buttons{display:flex;gap:var(--space-2);align-items:center}.share-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--gray-200);background:#fff;font-size:var(--text-sm);color:var(--gray-700);cursor:pointer;transition:all var(--transition-fast)}.share-btn:hover{border-color:var(--gray-300);background:var(--gray-50)}@media (max-width: 768px){.deck-view-stats{grid-template-columns:repeat(2,1fr)}.deck-view-actions{flex-direction:column}.deck-view-actions .btn{width:100%;justify-content:center}}.stepper{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:var(--space-8);padding:0 var(--space-4)}.stepper-step{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--gray-400);white-space:nowrap}.stepper-step-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:var(--text-xs);font-weight:700;background:var(--gray-200);color:var(--gray-500);flex-shrink:0;transition:all var(--transition-base)}.stepper-step-active .stepper-step-number{background:var(--brand);color:#fff}.stepper-step-active{color:var(--gray-900);font-weight:600}.stepper-step-completed .stepper-step-number{background:var(--success);color:#fff}.stepper-step-completed{color:var(--success)}.stepper-connector{width:48px;height:2px;background:var(--gray-200);margin:0 var(--space-3);flex-shrink:0;transition:background var(--transition-base)}.stepper-connector-active{background:var(--success)}.filter-collapsible-toggle{display:none}@media (max-width: 768px){.filter-collapsible-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-3) var(--space-4);background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:600;color:var(--gray-700);cursor:pointer}.filter-collapsible-toggle svg{transition:transform var(--transition-fast)}.filter-collapsible-toggle-open svg{transform:rotate(180deg)}.filter-collapsible-content{display:none}.filter-collapsible-content-open{display:block}}@media (max-width: 768px){.tab-label-long{display:none}.tab-label-short{display:inline}}@media (min-width: 769px){.tab-label-short{display:none}.tab-label-long{display:inline}}.container-xs{max-width:var(--container-xs);margin:0 auto;width:100%}.container-sm{max-width:var(--container-sm);margin:0 auto;width:100%}.container-md{max-width:var(--container-md);margin:0 auto;width:100%}.container-lg{max-width:var(--container-lg);margin:0 auto;width:100%}.container-xl{max-width:var(--container-xl);margin:0 auto;width:100%}.page-padding{padding:var(--space-8) var(--space-4)}.page-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;padding:var(--space-8)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-col-center{display:flex;flex-direction:column;align-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.flex-shrink-0{flex-shrink:0}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-center{text-align:center}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;padding-bottom:var(--space-2);border-bottom:2px solid var(--gray-200)}.page-title{font-size:var(--text-3xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.page-subtitle{font-size:var(--text-base);color:var(--text-secondary)}.section{margin-bottom:var(--space-8)}.confirm-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0006;padding:var(--space-4)}.confirm-dialog{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);width:100%;max-width:400px;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.confirm-dialog-title{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.confirm-dialog-message{font-size:var(--text-sm);color:var(--gray-600);line-height:1.5}.confirm-dialog-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-2)}
