.page-title h2{color:var(--color-primary);margin-bottom:10px;font-size:2rem}.count-text{color:var(--color-text-light);margin-bottom:30px;font-size:1.1rem}@media (max-width:768px){.page-title h2{font-size:1.5rem}}.progress-bar{width:100%;height:8px;background:var(--color-border-light);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--gradient-primary-horizontal);transition:width .3s ease}.progress-text{text-align:center;color:var(--color-text-dark);margin-top:10px;font-weight:600}.vocab-section{margin-bottom:40px}.vocab-type-title{color:var(--color-primary);margin-bottom:15px;font-size:1.5rem;padding-bottom:10px;border-bottom:2px solid var(--color-border-light)}.vocab-table-wrapper{width:100%;overflow-x:auto;margin-bottom:20px;-webkit-overflow-scrolling:touch}.vocab-table{width:100%;border-collapse:collapse;margin-bottom:0;box-shadow:0 2px 8px var(--shadow-black-normal);border-radius:8px;overflow:hidden;min-width:600px}.vocab-table thead{background:var(--gradient-primary);color:#fff}.vocab-table th{padding:15px;text-align:left;font-weight:600;font-size:1.1rem}.vocab-table tbody tr{border-bottom:1px solid var(--color-border-light);transition:background-color .2s ease}.vocab-table tbody tr:hover{background-color:var(--color-bg-lightest)}.vocab-table tbody tr:last-child{border-bottom:none}.vocab-table td{padding:15px;font-size:1.1rem}.kanji-cell{font-size:1.3rem;font-weight:600;color:var(--color-text-dark);min-width:120px}.no-kanji{color:var(--color-text-lightest);font-style:italic}.hiragana-cell{font-size:1.2rem;color:var(--color-text-medium);min-width:150px}.meaning-cell{color:var(--color-text-dark)}.detail-cell{text-align:center;min-width:120px}.expand-btn{background:var(--gradient-primary);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:500;transition:opacity .2s ease}.expand-btn:hover{opacity:.9}.vocab-detail-row{background-color:var(--color-bg-light)}.detail-content{padding:0!important}.vocab-detail{padding:20px;background:var(--color-bg-white);border-left:4px solid var(--color-primary)}.detail-section{margin-bottom:20px}.detail-section:last-child{margin-bottom:0}.detail-section h4{color:var(--color-primary);margin:0 0 10px;font-size:1.2rem;font-weight:600}.explanation-list{padding-left:20px;margin:0;color:var(--color-text-medium)}.explanation-list,.explanation-list li{list-style:disc;list-style-position:outside}.explanation-list li{margin-bottom:8px;line-height:1.5;font-size:1.1rem}.explanation-list li:before{content:none!important}.explanation-list li::marker{color:var(--color-text-medium)}@media (max-width:768px){.vocab-type-title{font-size:1.2rem}.vocab-table-wrapper{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.vocab-table{font-size:.85rem;min-width:500px}.vocab-table td,.vocab-table th{padding:8px}.kanji-cell{font-size:1rem;min-width:100px}.hiragana-cell{font-size:.9rem;min-width:130px}.meaning-cell{font-size:.85rem}.detail-cell{min-width:100px}.expand-btn{padding:6px 10px;font-size:.8rem}.vocab-detail{padding:15px}.detail-section h4{font-size:1rem}.explanation-list li{font-size:.95rem}}.alphabet-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1300;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.alphabet-modal-content{background:var(--color-bg-white);border-radius:16px;max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px var(--shadow-black-darker);animation:slideUp .3s ease;position:relative;overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.alphabet-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:2px solid var(--color-border-light);background:var(--gradient-primary);color:#fff;border-radius:16px 16px 0 0;flex-shrink:0}.alphabet-modal-header h2{margin:0;font-size:1.5rem;font-weight:600}.alphabet-modal-close{min-width:auto!important;width:40px!important;height:40px!important;padding:0!important;font-size:2rem!important;line-height:1!important;border-radius:50%!important;background:var(--color-white-overlay-20)!important;color:#fff!important;border:none!important}.alphabet-modal-close:hover{background:var(--color-white-overlay-30)!important;transform:none!important}.alphabet-tabs{display:flex;border-bottom:2px solid var(--color-border-light);background:var(--color-bg-light);flex-shrink:0}.alphabet-tab{flex:1!important;padding:16px!important;font-size:1.1rem!important;font-weight:600!important;border-radius:0!important;background:transparent!important;color:var(--color-text-light)!important;border:none!important;border-bottom:3px solid transparent!important}.alphabet-tab:hover{background:var(--color-bg-lighter)!important;color:var(--color-text-dark)!important;transform:none!important}.alphabet-tab.active{border-bottom-color:var(--color-primary)!important}.alphabet-tab.active,.alphabet-tab.active:hover{color:var(--color-primary)!important;background:var(--color-bg-white)!important}.alphabet-content{padding:24px;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--color-primary) var(--color-bg-lighter)}.alphabet-content::-webkit-scrollbar{width:8px}.alphabet-content::-webkit-scrollbar-track{background:var(--color-bg-lighter);border-radius:10px}.alphabet-content::-webkit-scrollbar-thumb{background:var(--gradient-primary);border-radius:10px;-webkit-transition:background .2s ease;transition:background .2s ease}.alphabet-content::-webkit-scrollbar-thumb:hover{background:var(--gradient-primary-reverse)}.alphabet-section{margin-bottom:40px}.alphabet-section:last-child{margin-bottom:0}.alphabet-section h3{color:var(--color-primary);margin:0 0 20px;font-size:1.3rem;font-weight:600}.alphabet-table{width:100%;border-collapse:collapse;margin-bottom:20px;box-shadow:0 2px 8px var(--shadow-black-normal);border-radius:8px;overflow:hidden}.alphabet-table thead{background:var(--gradient-primary);color:#fff}.alphabet-table th{padding:12px;text-align:center;font-weight:600;font-size:.9rem}.alphabet-table tbody tr{border-bottom:1px solid var(--color-border-light)}.alphabet-table tbody tr:last-child{border-bottom:none}.alphabet-table td{padding:12px;text-align:center;vertical-align:middle}.alphabet-table td.empty{background:var(--color-bg-light)}.alphabet-table .row-header{background:var(--color-bg-lighter);min-width:40px}.alphabet-table .row-header,.char-kanji{font-weight:600;color:var(--color-text-dark)}.char-kanji{font-size:1.8rem;margin-bottom:4px}.char-romaji{font-size:.85rem;color:var(--color-text-light);font-style:italic}.alphabet-table.combined{font-size:.9rem}.alphabet-table.combined .char-kanji{font-size:1.5rem}.alphabet-footer{padding:20px 24px;border-top:2px solid var(--color-border-light);background:var(--color-bg-light);border-radius:0 0 16px 16px;text-align:center;flex-shrink:0}.alphabet-footer p{margin:0;color:var(--color-text-light);font-size:.9rem;line-height:1.6}.alphabet-link{color:var(--color-primary);text-decoration:none;word-break:break-all}.alphabet-link:hover{text-decoration:underline}@media (max-width:768px){.alphabet-modal-content{max-width:100%;max-height:95vh;border-radius:12px}.alphabet-modal-header{padding:16px 20px;border-radius:12px 12px 0 0}.alphabet-modal-header h2{font-size:1.2rem}.alphabet-modal-close{width:36px;height:36px;font-size:1.5rem}.alphabet-content{padding:16px}.alphabet-section h3{font-size:1.1rem}.alphabet-table{font-size:.8rem}.alphabet-table td,.alphabet-table th{padding:8px 4px}.char-kanji{font-size:1.4rem}.char-romaji{font-size:.75rem}.alphabet-table.combined .char-kanji{font-size:1.2rem}}.alphabet-floating-btn{position:fixed!important;bottom:20px!important;right:20px!important;width:60px!important;height:60px!important;border-radius:50%!important;padding:0!important;font-size:1.5rem!important;box-shadow:0 4px 12px var(--shadow-primary)!important;z-index:1000!important}.alphabet-floating-btn:hover{transform:translateY(-2px) scale(1.05)!important}@media (max-width:768px){.alphabet-floating-btn{display:none!important}}.app-button{font-family:inherit}@media (max-width:768px){.app-button,.app-button-next,.app-button-submit{padding:8px 16px!important}}