:root{--brand:#4f8ef7;--brand2:#7c5cbf;--green:#22c55e;--red:#ef4444;--yellow:#f59e0b;--orange:#f97316;--radius:14px;--radius-sm:10px;--font:'Segoe UI' , system-ui , -apple-system , sans-serif;--safe-bottom:env(safe-area-inset-bottom,0);--shadow:0 1px 3px rgba(0,0,0,.08) , 0 4px 16px rgba(0,0,0,.06);--shadow-lg:0 2px 8px rgba(0,0,0,.1) , 0 8px 32px rgba(0,0,0,.1)}*,*::before,*::after{box-sizing:border-box}body{font-family: var(--font);min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.01em}.surface{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--radius);box-shadow:var(--shadow)}.surface-2{background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);border-radius:var(--radius-sm)}.card{border-radius:var(--radius)!important;box-shadow:var(--shadow)!important;border:1px solid var(--bs-border-color)!important}.card:hover{box-shadow:var(--shadow-lg)!important;transform:translateY(-1px);transition:.2s ease}.prog{height:6px;border-radius:99px;background:var(--bs-border-color);overflow:hidden}.prog-bar{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand2),var(--brand));transition:width .5s cubic-bezier(.4,0,.2,1)}.stat-card{border-radius:var(--radius-sm);padding:14px 10px;text-align:center;border:1px solid var(--bs-border-color);background:var(--bs-tertiary-bg);transition:.15s}.stat-card:hover{border-color:var(--brand)}.stat-val{font-size:1.6rem;font-weight:800;line-height:1;letter-spacing:-.02em}.stat-lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;color:var(--bs-secondary-color);margin-top:3px}.streak-pill{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.3);color:var(--yellow);border-radius:99px;padding:3px 12px;font-size:.78rem;font-weight:600;white-space:nowrap}.sr-badge{background:rgba(124,92,191,.15);color:#a78bfa;border:1px solid rgba(124,92,191,.3);border-radius:99px;padding:1px 9px;font-size:.68rem}.model-badge{font-size:.62rem;padding:2px 7px;border-radius:4px;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color)}.cached-ok{color:var(--green);font-size:.72rem}.touch-btn{min-height:44px;min-width:44px}.btn{font-weight:500;border-radius:10px!important;transition:.15s ease!important}.btn-primary{background:linear-gradient(135deg,var(--brand),#3b7de8)!important;border:none!important;box-shadow:0 2px 8px rgba(79,142,247,.3)!important}.btn-primary:hover{background:linear-gradient(135deg,#3b7de8,#2563eb)!important;box-shadow:0 4px 16px rgba(79,142,247,.4)!important;transform:translateY(-1px)}.btn-warning{background:linear-gradient(135deg,var(--yellow),#d97706)!important;border:none!important;color:#1a1a1a!important}.cat-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:.76rem;border:1.5px solid var(--bs-border-color);background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);cursor:pointer;transition:.12s;user-select:none}.cat-chip:hover{border-color:var(--brand);color:var(--brand)}.cat-chip.active{border-color:var(--brand);background:rgba(79,142,247,.1);color:var(--brand);font-weight:500}.tts-btn{padding:4px 8px;line-height:1;border-radius:6px}.tts-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}.tts-btn i{font-size:.9rem}.gloss-card{border:1px solid var(--bs-border-color);border-radius:12px;overflow:hidden;margin-bottom:10px;transition:.15s;background:var(--bs-body-bg)}.gloss-card:hover{border-color:var(--brand);box-shadow:0 2px 16px rgba(79,142,247,.1);transform:translateY(-1px)}.gloss-header{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;user-select:none}.gloss-term{font-weight:700;font-size:.95rem;flex-grow:1}.gloss-short{font-size:.8rem;color:var(--bs-secondary-color);margin-top:2px}.gloss-body{display:none;padding:0 18px 18px;border-top:1px solid var(--bs-border-color);background:rgba(79,142,247,.03);font-size:.88rem;line-height:1.75}.gloss-body.open{display:block}.gloss-body strong{color:var(--bs-emphasis-color)}.gloss-body ul{padding-left:0;list-style:none}.gloss-body ul li{padding:2px 0 2px 14px;position:relative}.gloss-body ul li::before{content:'›';position:absolute;left:0;color:var(--brand);font-weight:700}.alpha-nav{display:flex;flex-wrap:wrap;gap:4px}.alpha-btn{width:30px;height:30px;border-radius:7px;border:1px solid var(--bs-border-color);background:var(--bs-tertiary-bg);font-size:.75rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s}.alpha-btn:hover{background:rgba(79,142,247,.1);border-color:var(--brand)}.alpha-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}.cat-tree-item{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 22px;border-radius:8px;cursor:pointer;font-size:.8rem;transition:.12s;min-height:40px}.cat-tree-item:hover{background:var(--bs-tertiary-bg)}.cat-tree-item.active{background:rgba(79,142,247,.1);color:var(--brand);font-weight:500}.cat-tree-group-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:600;color:var(--bs-secondary-color);transition:.12s;min-height:40px}.cat-tree-group-header:hover{background:var(--bs-tertiary-bg);color:var(--bs-body-color)}.cat-tree-children{display:none}.cat-tree-children.open{display:block}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%}@keyframes fadein {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}.fade-in{animation:fadein .2s ease}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}.form-control,.form-select{border-radius:10px!important;border:1.5px solid var(--bs-border-color)!important;transition:.15s!important}.form-control:focus,.form-select:focus{border-color:var(--brand)!important;box-shadow:0 0 0 3px rgba(79,142,247,.15)!important}.input-group .form-control{border-radius:0!important}.input-group .form-control:first-child{border-radius:10px 0 0 10px!important}.input-group .form-control:last-child{border-radius:0 10px 10px 0!important}.alert{border-radius:var(--radius)!important;border:none!important;box-shadow:var(--shadow)}@media (max-width:575px){.container-xl{padding-left:12px;padding-right:12px}h5{font-size:1rem}.stat-val{font-size:1.35rem}}