:root{--accent-primary:#f0d0d0;--accent-primary-hover:#d08c8c;--dict-rose-border:#f0d0d0;--dict-rose-muted:#d08c8c;--dict-footer-bg:#75686c;--dict-footer-text:#f5f0f1}.dict-public-body{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(to bottom right,#fff8f8,#ffffff)}.dict-rose-bg{background-color:#f0d0d0}.dict-public-body>.navbar.dict-rose-bg{padding:0.65rem 1rem}.dict-public-brand{display:flex;align-items:center;gap:0.55rem;margin-right:0.75rem;text-decoration:none;color:#4a3030}.dict-public-brand:hover,.dict-public-brand:focus-visible{color:#7a4040;text-decoration:none}.dict-public-brand-flag{display:inline-flex;line-height:0;flex-shrink:0}.dict-public-brand-flag svg{display:block;border-radius:3px;border:1px solid rgba(74,48,48,0.25);box-shadow:0 1px 4px rgba(0,0,0,0.12)}.dict-public-brand-name{font-family:"Pacifico",cursive;font-size:1.55rem;letter-spacing:0.5px;white-space:nowrap;line-height:1.2}.dict-public-brand-name--admin .brand-initial{color:#da251d}.dict-public-brand:hover .dict-public-brand-name--admin .brand-initial,.dict-public-brand:focus-visible .dict-public-brand-name--admin .brand-initial{color:#b91c1c}.dict-public-nav-links .nav-link{color:#4a3030;font-weight:700;letter-spacing:0.04em;border-bottom:2px solid transparent}.dict-public-nav-links .nav-link:hover,.dict-public-nav-links .nav-link:focus-visible{color:#7a4040;border-bottom-color:#d08c8c}.dict-nav-word-roots{display:inline-flex;align-items:baseline;gap:0.35rem}.dict-nav-han-marker{font-size:0.78em;font-weight:600;color:#9a4a4a;letter-spacing:0.02em;line-height:1}.dict-nav-admin-link{display:inline-flex;align-items:center;gap:0.4rem}.dict-nav-admin-link i{color:#da251d;font-size:0.95em;animation:dict-nav-admin-icon-pulse 2.6s ease-in-out infinite}#dict-nav-content-reader i{animation-delay:0.35s}#dict-nav-play i{animation-delay:0.7s}.dict-nav-admin-link:hover i,.dict-nav-admin-link:focus-visible i{color:#b91c1c;animation-play-state:paused;opacity:1;transform:none}@keyframes dict-nav-admin-icon-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.55;transform:scale(0.92)}}@media (prefers-reduced-motion:reduce){.dict-nav-admin-link i{animation:none}}.dict-public-main{flex:1 1 auto}.dict-public-footer{margin-top:auto;padding:2rem 1.25rem 2.5rem;text-align:center;background:var(--dict-footer-bg);color:var(--dict-footer-text);border-top:none}.dict-public-footer-credit{margin:0 0 0.75rem;font-size:0.95rem;color:#e8e0e2;line-height:1.5}.dict-public-footer-credit a{color:#ffffff;font-weight:700;text-decoration:none}.dict-public-footer-credit a:hover,.dict-public-footer-credit a:focus-visible{color:#f0d0d0}.dict-public-footer-meta{margin:0;font-size:0.85rem;color:#c4babe;display:inline-flex;align-items:center;justify-content:center;gap:0.55rem}.dict-public-edit-link{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:999px;line-height:1;color:#d08c8c;background:rgba(240,208,208,0.18);border:1px solid rgba(208,140,140,0.45);text-decoration:none;transition:color 0.2s ease,background 0.2s ease,border-color 0.2s ease}.dict-public-edit-link:hover,.dict-public-edit-link:focus-visible{color:#b86a6a;background:rgba(240,208,208,0.32);border-color:#d08c8c;text-decoration:none}.dict-public-edit-link i{font-size:1.05rem}.dictionary-intro{background:linear-gradient(145deg,#f7f8f0 0%,#eef2e4 48%,#e6ebd8 100%);border:1px solid rgba(36,83,63,0.1);box-shadow:0 4px 18px rgba(36,83,63,0.07)}.dictionary-detail-nav,.han-viet-back{--dict-nav-chip-bg:#e8f0e6;--dict-nav-chip-text:#3d5a45;--dict-nav-chip-border:#b7c9b4;--dict-nav-chip-bg-hover:#d5e4d2;--dict-nav-chip-text-hover:#2f4a38}@media (prefers-reduced-motion:reduce){.dictionary-detail-nav a{transition:none}.dictionary-detail-nav a:hover,.dictionary-detail-nav a:focus-visible{transform:none}}.dictionary-recent{border-left-color:var(--dict-rose-border)}.dictionary-result-link .dictionary-result-term,.dictionary-detail h1{color:#5c4040}.dictionary-etymology-badge{border-color:var(--dict-rose-border)}@media (max-width:991.98px){.dict-public-brand-name{font-size:1.25rem}.dict-public-brand-flag svg{width:36px;height:24px}}.admin-page{max-width:900px;margin:2rem auto;padding:0 1rem 3rem;color:var(--admin-dark-text)}.admin-page h1,.admin-page h2{color:var(--admin-dark-text)}.admin-page .muted{color:var(--admin-muted-text)}.admin-form-group{margin-bottom:1rem}.admin-form-group label{display:block;margin-bottom:0.35rem;font-weight:600;color:var(--admin-dark-text)}.admin-form-group input,.admin-form-group select,.admin-form-group textarea{width:100%;padding:0.65rem 0.75rem;border:1px solid var(--color-border);border-radius:4px;background:#fff;color:var(--admin-dark-text)}.admin-btn{display:inline-block;border:none;border-radius:4px;padding:0.55rem 1rem;background:var(--accent-primary);color:var(--admin-dark-text);text-decoration:none;cursor:pointer}.admin-btn:hover{background:var(--accent-primary-hover)}.admin-btn-back{display:inline-block;border:1px solid #64748b;border-radius:4px;padding:0.55rem 1rem;background:#fff;color:var(--admin-dark-text);text-decoration:none;cursor:pointer}.admin-btn-back:hover{background:#e2e8f0;color:var(--admin-dark-text)}.admin-btn-back i{margin-right:0.35rem}.admin-btn-danger{background:var(--admin-danger);color:#fff}.admin-btn-danger:hover{filter:brightness(0.95);color:#fff}.admin-alert{padding:0.85rem 1rem;border-radius:4px;margin:1rem 0}.admin-alert-warning{background:#fff7ed;border:1px solid #fdba74;color:var(--admin-dark-text)}.admin-alert-success{background:#ecfdf5;border:1px solid var(--accent-primary-hover);color:var(--admin-dark-text);font-weight:600}.admin-alert-error{background:#fef2f2;border:1px solid var(--admin-danger);color:var(--admin-dark-text)}.admin-chip-row{display:flex;flex-wrap:wrap;gap:0.5rem;margin:0.5rem 0 1rem}.admin-chip{display:inline-flex;align-items:center;gap:0.4rem;background:var(--color-light-bg);border-radius:4px;padding:0.3rem 0.55rem}.admin-chip button{border:none;background:transparent;color:var(--admin-danger);cursor:pointer}.admin-section{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-border)}.admin-section--examples h2{color:#5b21b6}.admin-section--han-viet{border-top-color:#fcd34d}.admin-section--han-viet h2{color:#92400e}#han-viet-results{display:flex;flex-direction:column;gap:0.85rem;margin-top:1rem}.han-viet-found-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.65rem 1rem;padding:0.75rem 0.9rem;border-radius:10px;border:1px solid #f5d08a;background:linear-gradient(180deg,#fffbeb 0%,#fef3c7 100%)}.han-viet-found-label{flex:1 1 14rem;min-width:0;color:#78350f;font-weight:600;line-height:1.4}.han-viet-inline-create{display:flex;flex-direction:column;gap:0.75rem;padding:1rem 1.05rem 1.1rem;border-radius:12px;border:1px solid #f0d9a8;background:linear-gradient(165deg,#fffdf7 0%,#fff7e8 100%);box-shadow:0 2px 8px rgba(146,64,14,0.05)}.han-viet-inline-create-title{margin:0;color:#92400e;font-size:0.95rem;line-height:1.4}.han-viet-inline-create-title strong{font-size:1.05em}.han-viet-inline-create-fields{display:grid;grid-template-columns:minmax(7rem,9.5rem) minmax(0,1fr);gap:0.75rem 0.9rem;align-items:end}@media (max-width:640px){.han-viet-inline-create-fields{grid-template-columns:1fr}}.han-viet-inline-create-field{display:flex;flex-direction:column;gap:0.3rem;min-width:0}.han-viet-inline-create-field label{margin:0;font-size:0.78rem;font-weight:700;letter-spacing:0.02em;text-transform:uppercase;color:#a16207}.han-viet-inline-create-input{width:100%;min-height:2.75rem;padding:0.65rem 0.8rem;border:1px solid #e7c57a;border-radius:8px;background:#fff;color:#1c1917;font-size:1rem;line-height:1.35}.han-viet-inline-create-input--chinese{font-size:1.35rem;text-align:center;letter-spacing:0.04em}.han-viet-inline-create-input--meaning{min-height:2.9rem}.han-viet-inline-create-input:focus{outline:2px solid rgba(217,119,6,0.35);outline-offset:1px;border-color:#d97706}.han-viet-inline-create-btn{align-self:flex-start}.admin-section-intro{margin:0 0 0.85rem;color:#78716c;font-size:0.95rem;line-height:1.45}.admin-example-list{display:flex;flex-direction:column;gap:0.85rem;margin:0.75rem 0 1.25rem}.admin-example-card{position:relative;padding:0.85rem 2.25rem 0.85rem 0.95rem;border-radius:10px;border:1px solid #ddd6fe;background:linear-gradient(180deg,#f5f3ff 0%,#ede9fe 100%);color:#1e1b4b}.admin-example-card-vi{margin:0 0 0.35rem;font-weight:600;line-height:1.45}.admin-example-card-en{margin:0 0 0.35rem;color:#5b567a;font-style:italic;line-height:1.4}.admin-example-card-meta{margin:0;font-size:0.85rem;color:#6d28d9;font-weight:600}.admin-example-card-remove{position:absolute;top:0.45rem;right:0.45rem;border:none;background:transparent;color:#7c3aed;font-size:1.25rem;line-height:1;cursor:pointer}.admin-btn-add-example{margin-bottom:0.75rem}.admin-example-add-panel{margin-top:0.5rem;padding:1rem 1rem 0.25rem;border:1px dashed #c4b5fd;border-radius:10px;background:#faf8ff}.admin-source-display{display:flex;flex-wrap:wrap;align-items:center;gap:0.65rem;padding:0.65rem 0.85rem;border-radius:8px;border:1px solid #99f6e4;background:linear-gradient(180deg,#f0fdfa 0%,#ccfbf1 100%)}.admin-source-display-text{font-weight:600;color:#115e59;flex:1 1 auto}.admin-btn-sm{padding:0.25rem 0.65rem;font-size:0.85rem}.admin-login-page{max-width:420px;margin:4rem auto;padding:0 1rem}.admin-login-page h1{margin-bottom:0.35rem}.flash-messages{list-style:none;padding:0}.flash-messages li{margin-bottom:0.75rem;padding:0.75rem 1rem;border-radius:4px}.flash-messages .error{background:#fef2f2;border:1px solid var(--admin-danger)}.flash-messages .success{background:var(--accent-primary)}.admin-workspace{background:linear-gradient(to bottom right,var(--color-light-bg),#fff);padding:60px 20px 80px;min-height:70vh}.admin-workspace-intro{background:linear-gradient(135deg,var(--accent-primary),var(--accent-primary-hover));color:var(--admin-dark-text);padding:2.5rem;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.08);max-width:1000px;margin:0 auto 3rem;text-align:center}.admin-workspace-intro h1{font-size:2.1rem;margin-bottom:0.75rem}.admin-workspace-intro p{font-size:1.05rem;max-width:720px;margin:0 auto;color:var(--admin-dark-text)}.admin-wip-message{font-size:1.35rem!important;font-weight:600}.admin-tiles,.admin-hub-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2.5rem;max-width:900px;margin:0 auto 3rem}.admin-tile{display:block;background:white;border-left:6px solid var(--accent-primary);border-radius:8px;padding:2rem 1.75rem;box-shadow:0 4px 14px rgba(0,0,0,0.06);text-decoration:none;color:inherit;transition:transform 0.2s ease,box-shadow 0.2s ease}.admin-tile:hover{transform:translateY(-4px);box-shadow:0 6px 18px rgba(0,0,0,0.08);color:inherit}.admin-tile h2{font-size:1.45rem;margin-bottom:0.75rem;color:var(--color-link);display:flex;align-items:center;gap:0.5rem}.admin-tile h2 i{color:var(--accent-primary);transition:color 0.3s ease}.admin-tile:hover h2 i{color:var(--accent-primary-hover)}.admin-tile p{color:var(--admin-muted-text);margin:0;line-height:1.6}.admin-tile--spotlight{position:relative;overflow:hidden;transform-origin:center center;will-change:transform,box-shadow;animation:admin-tile-breathe 3.4s ease-in-out infinite}.admin-tile--spotlight>h2,.admin-tile--spotlight>p{position:relative;z-index:1}.admin-tile-sparkles{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.admin-tile-sparkles span{position:absolute;bottom:28%;left:50%;width:5px;height:5px;margin:0;border-radius:50%;background:radial-gradient(circle,#fff9e6 0%,#f0d48a 45%,transparent 72%);box-shadow:0 0 6px 1px rgba(240,212,138,0.35);opacity:0;animation:admin-tile-spark-float 3.8s ease-out infinite}.admin-tile-sparkles span:nth-child(1){left:22%;animation-delay:0s;width:4px;height:4px}.admin-tile-sparkles span:nth-child(2){left:38%;animation-delay:0.45s;width:6px;height:6px}.admin-tile-sparkles span:nth-child(3){left:52%;animation-delay:0.9s}.admin-tile-sparkles span:nth-child(4){left:68%;animation-delay:1.3s;width:4px;height:4px}.admin-tile-sparkles span:nth-child(5){left:30%;animation-delay:1.75s;bottom:36%;width:3px;height:3px}.admin-tile-sparkles span:nth-child(6){left:58%;animation-delay:2.15s;bottom:22%;width:5px;height:5px}.admin-tile-sparkles span:nth-child(7){left:76%;animation-delay:2.55s;bottom:40%;width:3px;height:3px}.admin-tile-sparkles span:nth-child(8){left:44%;animation-delay:3s;bottom:18%;width:4px;height:4px}.admin-tile--spotlight:hover{animation:none;transform:translateY(-4px) scale(1.02);box-shadow:0 10px 22px rgba(0,0,0,0.12)}.admin-tile--spotlight:hover .admin-tile-sparkles span{animation-duration:2.6s}@keyframes admin-tile-breathe{0%,100%{transform:scale(1);box-shadow:0 4px 14px rgba(0,0,0,0.06)}50%{transform:scale(1.03);box-shadow:0 8px 22px rgba(0,0,0,0.11)}}@keyframes admin-tile-spark-float{0%{opacity:0;transform:translate(-50%,8px) scale(0.4)}12%{opacity:0.65;transform:translate(calc(-50% + var(--drift,0px)),-4px) scale(1)}55%{opacity:0.4}100%{opacity:0;transform:translate(calc(-50% + var(--drift,12px)),-52px) scale(0.35)}}.admin-tile-sparkles span:nth-child(odd){--drift:-14px}.admin-tile-sparkles span:nth-child(even){--drift:16px}.admin-tile-sparkles span:nth-child(3n){--drift:8px}.admin-tile-sparkles span:nth-child(4n){--drift:-20px}@media (prefers-reduced-motion:reduce){.admin-tile--spotlight,.admin-tile-sparkles span{animation:none}.admin-tile-sparkles{display:none}}.admin-hub-actions{gap:3rem;max-width:960px}.admin-workspace-footer{max-width:900px;margin:3rem auto 0;padding-top:2rem;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}.admin-btn-logout{display:inline-block;border:1px solid var(--admin-muted-text);border-radius:4px;padding:0.55rem 1.1rem;background:transparent;color:var(--admin-muted-text);text-decoration:none;cursor:pointer}.admin-btn-logout:hover{border-color:var(--admin-dark-text);color:var(--admin-dark-text)}.admin-dashboard{max-width:1100px;margin:0 auto}.admin-tabs{display:flex;flex-wrap:wrap;gap:0.5rem;margin:0 auto 1.5rem;max-width:1100px}.admin-tab-btn{display:inline-block;border:1px solid var(--color-border);background:#fff;color:var(--admin-dark-text);border-radius:999px;padding:0.45rem 1rem;cursor:pointer;text-decoration:none}.admin-tab-btn:hover{color:var(--admin-dark-text)}.admin-tab-btn.is-active{background:var(--accent-primary);border-color:var(--accent-primary-hover)}.admin-tab-panel{display:none}.admin-tab-panel.is-active{display:block}.admin-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem;margin-bottom:2rem}.admin-kpi-card,.admin-summary-card{background:#fff;border-left:6px solid var(--accent-primary);border-radius:8px;padding:1.25rem 1.35rem;box-shadow:0 4px 14px rgba(0,0,0,0.06)}.admin-kpi-card .label{color:var(--admin-muted-text);font-size:0.9rem}.admin-kpi-card .value{font-size:1.8rem;font-weight:700;color:var(--admin-dark-text)}.admin-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.admin-bar-row{display:grid;grid-template-columns:1fr auto;gap:0.5rem;align-items:center;margin-bottom:0.55rem}.admin-bar-track{height:0.55rem;background:var(--color-light-bg);border-radius:999px;overflow:hidden;grid-column:1 / -1}.admin-bar-fill{height:100%;background:var(--accent-primary-hover)}.admin-table-wrap{overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,0.06)}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:0.75rem 0.9rem;border-bottom:1px solid var(--color-border);text-align:left}.admin-filters{display:flex;flex-wrap:wrap;gap:0.75rem;margin-bottom:1rem}.admin-filters input,.admin-filters select{padding:0.5rem 0.65rem;border:1px solid var(--color-border);border-radius:4px}.admin-velocity-card{margin-bottom:2rem}.admin-range-toggles{display:flex;gap:0.5rem;margin-bottom:1rem}.admin-range-toggles button.is-active{background:var(--accent-primary-hover);border:1px solid var(--admin-dark-text);box-shadow:0 0 0 2px rgba(160,208,140,0.45);font-weight:700}.admin-chart-wrap{position:relative;height:280px}.admin-source-combobox{position:relative}.admin-source-dropdown{position:relative}.admin-source-dropdown-control{position:relative;display:flex;align-items:center}.admin-source-dropdown-control input{width:100%;padding-right:2rem}.admin-source-dropdown-caret{position:absolute;right:0.7rem;color:#64748b;pointer-events:none;font-size:0.85rem;line-height:1}.admin-source-results{position:absolute;left:0;right:0;top:calc(100% + 0.25rem);z-index:30;list-style:none;margin:0;padding:0.35rem 0;max-height:260px;overflow-y:auto;border:1px solid #cbd5e1;border-radius:8px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,0.14)}.admin-source-results[hidden]{display:none!important}.admin-source-results li{margin:0;padding:0}.admin-source-results-empty{padding:0.7rem 0.85rem;color:#64748b;font-size:0.9rem}.admin-source-option{display:flex;flex-direction:column;align-items:flex-start;gap:0.15rem;width:100%;text-align:left;border:none;background:transparent;padding:0.65rem 0.85rem;cursor:pointer;color:var(--admin-dark-text)}.admin-source-option-title{font-weight:600}.admin-source-option-meta{font-size:0.85rem;color:#64748b}.admin-source-option:hover,.admin-source-option:focus-visible,.admin-source-option.is-selected{background:#e8f0e6}.admin-source-selected{margin:0.4rem 0 0}.admin-list{list-style:none;padding:0;margin:0}.admin-list li{padding:0.45rem 0;border-bottom:1px solid var(--color-border)}.admin-list a{color:var(--color-link)}.system-health-banner{display:flex;flex-wrap:wrap;gap:0.75rem 1.25rem;align-items:center;background:#fff;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem;box-shadow:0 4px 14px rgba(0,0,0,0.06);color:var(--admin-dark-text)}.system-health-env-badge{display:inline-block;padding:0.2rem 0.65rem;border-radius:4px;font-weight:700;font-size:0.85rem;background:var(--color-light-bg)}.system-health-env-badge.is-mock{background:var(--accent-primary)}.system-health-env-badge.is-prod{background:var(--accent-primary-hover);color:#fff}.system-health-bar-track{height:0.55rem;background:var(--color-light-bg);border-radius:999px;overflow:hidden;margin-top:0.75rem}.system-health-bar-fill{height:100%;border-radius:999px;transition:width 0.35s ease;background:var(--accent-primary-hover)}.system-health-bar-fill.is-ok{background:var(--accent-primary-hover)}.system-health-bar-fill.is-warn{background:#c9a227}.system-health-bar-fill.is-critical{background:#c0392b}.system-health-poll-note{color:var(--admin-muted-text);font-size:0.9rem}.admin-2fa-page .admin-2fa-panel{max-width:32rem;margin:0 auto 1.5rem;padding:1.25rem 1.35rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.admin-2fa-qr{display:block;margin:1rem auto;border:1px solid #e2e8f0;border-radius:4px}.admin-2fa-manual code,.admin-2fa-recovery-list code{font-size:0.95rem;letter-spacing:0.04em}.admin-2fa-recovery-list{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.45rem 1rem}.admin-2fa-warning{color:#9a3412;font-size:0.92rem;line-height:1.45}.admin-2fa-status-ok{margin:0 0 0.75rem;font-weight:600;color:#166534}.admin-2fa-status-ok i{margin-right:0.35rem}@media (max-width:768px){.admin-workspace-intro{padding:1.75rem}.admin-workspace-footer{flex-direction:column;align-items:stretch}.admin-2fa-recovery-list{grid-template-columns:1fr}}.source-type-pill{display:inline-block;border-radius:4px;padding:0.2rem 0.55rem;font-size:0.8rem;font-weight:600;border:1px solid transparent;white-space:nowrap}.source-type--book{background:#e3f2fd;color:#0d47a1;border-color:#90caf9}.source-type--comic{background:#fce4ec;color:#880e4f;border-color:#f48fb1}.source-type--article{background:#e8f5e9;color:#1b5e20;border-color:#a5d6a7}.source-type--other{background:#eceff1;color:#455a64;border-color:#b0bec5}.admin-notice{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:1.25rem}.admin-notice[hidden]{display:none!important}.admin-notice-backdrop{position:absolute;inset:0;background:rgba(42,28,28,0.42)}.admin-notice-panel{position:relative;z-index:1;width:min(28rem,100%);border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,0.72) 0%,transparent 42%),linear-gradient(165deg,#fffaf8 0%,#f7f0ec 100%);border:1px solid rgba(154,74,74,0.22);box-shadow:0 18px 48px rgba(42,28,28,0.16),0 0 0 1px rgba(255,255,255,0.55) inset;padding:1.25rem 1.3rem 1.15rem}.admin-notice-panel--success{background:linear-gradient(180deg,rgba(255,255,255,0.55) 0%,transparent 40%),linear-gradient(160deg,#f3faf5 0%,#e7f4ec 55%,#dff0e6 100%);border-color:rgba(46,125,80,0.32);box-shadow:0 18px 48px rgba(28,70,48,0.14),0 0 0 1px rgba(255,255,255,0.5) inset}.admin-notice-panel--success::before{content:"";display:block;width:2.4rem;height:0.28rem;margin:0 0 0.85rem;border-radius:999px;background:linear-gradient(90deg,#3d9a63 0%,#7bc49a 100%)}.admin-notice-panel--danger{background:linear-gradient(180deg,rgba(255,255,255,0.55) 0%,transparent 40%),linear-gradient(160deg,#fff6f4 0%,#f8ebe8 100%);border-color:rgba(154,74,74,0.35)}.admin-notice-header{position:relative;padding-right:2rem;margin-bottom:0.65rem}.admin-notice-eyebrow{margin:0 0 0.25rem;font-size:0.72rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:#9a4a4a}.admin-notice-eyebrow[hidden]{display:none!important}.admin-notice-panel--success .admin-notice-eyebrow{color:#2f6b49}.admin-notice-title{margin:0;font-size:1.28rem;font-weight:700;color:#3a2a2a;line-height:1.3;letter-spacing:-0.01em}.admin-notice-panel--success .admin-notice-title{color:#1d4a32}.admin-notice-close{position:absolute;top:-0.15rem;right:-0.2rem;border:0;background:transparent;color:#8a6a6a;font-size:1.5rem;line-height:1;cursor:pointer;padding:0.15rem 0.4rem}.admin-notice-panel--success .admin-notice-close{color:#5a7a66}.admin-notice-close:hover{color:#5a3a3a}.admin-notice-panel--success .admin-notice-close:hover{color:#1d4a32}.admin-notice-body{margin-bottom:1.1rem}.admin-notice-message{margin:0;color:#4a3a3a;font-size:1rem;line-height:1.6}.admin-notice-panel--success .admin-notice-message{color:#2f4638}.admin-notice-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0.5rem}.admin-notice-ok{min-width:5rem}.admin-notice-panel--success .admin-notice-ok{background:#2f7a52;border-color:#276844;color:#fff}.admin-notice-panel--success .admin-notice-ok:hover{background:#276844}:root{--accent-primary:#f0d0d0;--accent-primary-hover:#d08c8c;--admin-dark-text:#4a3030;--dict-rose-border:#f0d0d0}.dict-public-body .admin-workspace,.dict-public-body .admin-page,.dict-public-body .admin-login-page{color:var(--admin-dark-text,#4a3030)}.dict-public-body .admin-tile,.dict-public-body .admin-2fa-panel,.dict-public-body .admin-source-results,.dict-public-body .admin-form-group input,.dict-public-body .admin-form-group select,.dict-public-body .admin-form-group textarea{border-color:var(--dict-rose-border,#f0d0d0)}.dict-public-body .admin-form-group input,.dict-public-body .admin-form-group textarea,.dict-public-body .admin-source-dropdown-control input,.dict-public-body .reader-input,.dict-public-body .reader-textarea{-webkit-user-select:text;user-select:text}.dict-public-body .admin-btn:not(.admin-btn-back):not(.admin-btn-logout):not(.admin-btn--view):not(.admin-btn--manage):not(.admin-btn-danger):not(.admin-notice-ok),.dict-public-body .admin-tile:hover,.dict-public-body .admin-dashboard-tab.is-active{background-color:var(--accent-primary)}.dict-public-body .admin-btn:not(.admin-btn-back):not(.admin-btn-logout):not(.admin-btn--view):not(.admin-btn--manage):not(.admin-btn-danger):not(.admin-notice-ok):hover{background-color:var(--accent-primary-hover)}.dict-public-body .admin-notice-panel--success .admin-notice-ok{background:#2f7a52;border-color:#276844;color:#fff}.dict-public-body .admin-notice-panel--success .admin-notice-ok:hover{background:#276844}.admin-summary-card--grammar{border-left-color:#8fb8c9}.admin-summary-card--grammar .admin-bar-fill{background:#5f8fa3}.admin-summary-card--sources{border-left-color:#e8a87c}.admin-summary-card--sources .admin-dash-pill--label{background:#fff1e6;border-color:#f0c9a8;color:#7a4020}.admin-summary-card--sources .admin-dash-pill--citations,.admin-dash-pill--count{background:#f8ebe0;border-color:#ecd4c0;color:#8a5a3a;flex-shrink:0;margin-left:auto;min-width:1.85rem;justify-content:center;font-variant-numeric:tabular-nums;font-weight:600;font-size:0.8rem}.admin-summary-card--sources .admin-dash-pill--source-title{font-weight:600;font-size:0.92rem;white-space:normal;line-height:1.4;max-width:min(100%,18rem)}.admin-dash-pill--tone-0{background:#fff1e6;border-color:#f0c9a8;color:#7a4020}.admin-dash-pill--tone-1{background:#eef5f1;border-color:#c5d9d0;color:#1a3c34}.admin-dash-pill--tone-2{background:#e8eef5;border-color:#c5d3e4;color:#3d5570}.admin-dash-pill--tone-3{background:#f7efc8;border-color:#e2d48a;color:#5c4e18}.admin-dash-pill--tone-4{background:#f7eaea;border-color:#e8cfcf;color:#4a3030}.admin-summary-card--activity{border-left-color:#d08c8c}.admin-summary-card--activity .admin-dash-pill--label{background:#f7eaea;border-color:#e8cfcf;color:#4a3030}.admin-summary-card--activity .admin-dash-pill--when{background:#e8eef5;border-color:#c5d3e4;color:#3d5570;font-weight:500;font-size:0.78rem;flex-shrink:0;margin-left:auto}.admin-dash-pill-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.55rem}.admin-dash-pill-list--activity,.admin-dash-pill-list--sources{gap:0.7rem}.admin-dash-pill-row{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem}.admin-dash-pill-row--spread{flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:0.65rem}@media (max-width:520px){.admin-dash-pill-row--spread{flex-wrap:wrap}.admin-summary-card--activity .admin-dash-pill--when{margin-left:0}}.admin-dash-pill{display:inline-flex;align-items:center;gap:0.35rem;max-width:100%;border-radius:999px;padding:0.28rem 0.75rem;font-size:0.88rem;font-weight:500;line-height:1.35;text-transform:none;text-decoration:none;border:1px solid transparent}.admin-dash-pill--label{background:#f7eaea;color:var(--admin-dark-text,#4a3030);border-color:#e8cfcf}a.admin-dash-pill--label:hover,a.admin-dash-pill--label:focus-visible{background:#f0d0d0;color:var(--admin-dark-text,#4a3030)}.admin-dash-pill--meta{background:#f3f0f1;color:#6b5c5e;border-color:#e0d8da;font-weight:400;font-size:0.8rem}.admin-dash-pill-char{color:#8a6a6a;font-weight:600}.admin-row-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:0.5rem}.dict-public-body .admin-btn.admin-btn--view{background:#dbeafe;color:#1e3a5f}.dict-public-body .admin-btn.admin-btn--view:hover{background:#bfdbfe;color:#1e3a5f}.dict-public-body .admin-btn.admin-btn--manage{background:#e7f0e4;color:#2f4a38}.dict-public-body .admin-btn.admin-btn--manage:hover{background:#d5e4d2;color:#2f4a38}.dict-public-body .admin-btn.admin-btn-danger{background:#c0392b;color:#fff}.dict-public-body .admin-btn.admin-btn-danger:hover{filter:brightness(0.95);color:#fff}.admin-data-health-grid{align-items:stretch}.admin-health-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;margin-bottom:1rem}.admin-health-card-head h2{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;text-transform:none}.admin-health-count{flex-shrink:0;min-width:1.75rem;padding:0.15rem 0.55rem;border-radius:999px;background:#f3f0f1;color:#6b5c5e;font-size:0.8rem;font-weight:700;text-align:center}.admin-health-card--examples{border-left-color:#e8a87c}.admin-health-card--examples .admin-health-count{background:#fff1e6;color:#9a4e1c}.admin-health-card--types{border-left-color:#c4a8d8}.admin-health-card--types .admin-health-count{background:#f5eef9;color:#6b4a82}.admin-health-card--hanviet{border-left-color:#8fb8c9}.admin-health-card--hanviet .admin-health-count{background:#e8f3f7;color:#2f5f70}.admin-health-empty{margin:0;padding:0.65rem 0.85rem;border-radius:8px;background:#f7f5f5;color:#6b5c5e;font-size:0.9rem}.reader-dashboard-cta{margin:0 0 1.5rem}.reader-btn-start{font-size:1.05rem;padding:0.75rem 1.35rem}.reader-progress-panel{margin:0 0 1.75rem;padding:1.25rem 1.35rem 1.35rem;border-radius:12px}.reader-progress-panel--active{background:linear-gradient(135deg,rgba(214,140,40,0.12) 0%,transparent 48%),linear-gradient(180deg,#fff6e4 0%,#ffe8c4 100%);border:1px solid #efd09a;box-shadow:0 10px 28px rgba(180,110,30,0.1)}.reader-progress-panel--active .reader-progress-panel-header{border-bottom-color:#efd09a}.reader-progress-panel--active .reader-progress-panel-header h2{color:#8a4e12}.reader-progress-panel--active .reader-progress-panel-sub{color:#a66a28}.reader-progress-panel--finished{background:linear-gradient(135deg,rgba(176,220,160,0.35) 0%,transparent 50%),linear-gradient(180deg,#eef8e8 0%,#d0f0c0 100%);border:1px solid #b8dfb0;box-shadow:0 8px 22px rgba(90,140,80,0.08)}.reader-progress-panel--finished .reader-progress-panel-header{border-bottom-color:#b8dfb0}.reader-progress-panel--finished .reader-progress-panel-header h2{color:#2f5c38}.reader-progress-panel--finished .reader-progress-panel-sub{color:#4a7a52}.reader-progress-panel-header{margin:0 0 1rem;padding-bottom:0.75rem;border-bottom:2px solid transparent}.reader-progress-panel-header h2{margin:0;font-size:1.2rem;font-weight:700;letter-spacing:-0.01em}.reader-progress-panel-sub{margin:0.3rem 0 0;font-size:0.88rem}.reader-session-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.65rem}.reader-session-list--active{gap:0.85rem}.reader-session-list--finished{gap:0.55rem}.reader-session-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.85rem 1rem;padding:1rem 1.1rem;border-radius:10px;background:#fffdf8;border:1px solid #f0d4a8;box-shadow:0 2px 8px rgba(180,110,30,0.06)}.reader-session-card-main{flex:1;min-width:min(100%,16rem);display:flex;flex-direction:column;align-items:flex-start;gap:0.45rem}.reader-session-card-title{font-size:1.05rem;font-weight:700;line-height:1.35;color:#6b3a0e;letter-spacing:-0.015em}.reader-mode-pill{display:inline-block;padding:0.18rem 0.55rem;border-radius:999px;font-size:0.7rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase}.reader-mode-pill--article{background:rgba(214,140,40,0.22);color:#8a4e12}.reader-mode-pill--book{background:rgba(200,90,40,0.16);color:#9a3f18}.reader-finished-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0.45rem 0.85rem;padding:0.7rem 0.85rem;border-radius:8px;background:rgba(255,255,255,0.55);border:1px solid rgba(184,223,176,0.85)}.reader-finished-title{font-size:0.98rem;font-weight:600;color:#2f5c38;line-height:1.35}.reader-finished-link{font-size:0.82rem;font-weight:600;color:#3d7a55;text-decoration:none;border-bottom:1px solid rgba(61,122,85,0.35)}.reader-finished-link:hover{color:#2a5c3c;border-bottom-color:#2a5c3c}.reader-finished-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem 0.65rem;margin-left:auto}.reader-hw-badge{display:inline-block;font-size:0.72rem;font-weight:700;letter-spacing:0.02em;text-transform:uppercase;padding:0.18rem 0.45rem;border-radius:999px;background:rgba(154,74,74,0.12);color:#9a4a4a}.reader-hw-badge--ready{background:rgba(61,122,85,0.14);color:#2f5c38}.reader-hw-badge--evaluated{background:rgba(214,140,40,0.16);color:#8a4e12}.reader-hw-badge--failed{background:rgba(180,60,40,0.14);color:#8a2e1e}.reader-hw-badge--completed{background:rgba(45,130,75,0.16);color:#1f6b3a}.reader-hw-badge--dismissed{background:rgba(120,100,100,0.14);color:#6a4a4a}.reader-hw-badge--history{cursor:pointer;border:none;font:inherit}.reader-hw-badge--history:hover,.reader-hw-badge--history:focus-visible{filter:brightness(0.96);outline:2px solid rgba(154,74,74,0.35);outline-offset:1px}.reader-book-panel{overflow:visible}.reader-book-picker{margin:0.65rem 0 0.85rem}.reader-book-picker>label{display:block;margin-bottom:0.35rem}.reader-book-picker .admin-source-dropdown-control .reader-input{width:100%;padding-right:2rem}.reader-book-picker .admin-source-results{z-index:40}.reader-book-section-hint{margin:0.35rem 0 0;font-size:0.85rem}.reader-book-section-create .admin-source-option-title{color:#1f5c40}.reader-books-cta{margin-bottom:0.85rem}.reader-books-in-progress{margin-bottom:1.15rem}.reader-session-list--compact .reader-session-card{padding:0.7rem 0.85rem}.reader-books-shelf{margin-top:0.35rem;padding-top:1rem;border-top:1px solid rgba(154,74,74,0.14)}.reader-books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0.85rem;margin-top:0.85rem}.reader-book-card{display:flex;flex-direction:column;align-items:flex-start;gap:0.35rem;text-align:left;padding:1rem 1.05rem;border-radius:10px;border:1px solid rgba(154,74,74,0.2);background:linear-gradient(165deg,#fffaf7 0%,#f7eee8 100%);color:inherit;cursor:pointer;font:inherit}.reader-book-card:hover,.reader-book-card:focus-visible{border-color:rgba(154,74,74,0.45);outline:none}.reader-book-card-title{font-size:1.05rem;color:#3a2a2a}.reader-book-card-author,.reader-book-card-meta{margin:0;font-size:0.9rem}.reader-books-pieces{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(154,74,74,0.15)}.reader-books-pieces-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.75rem}.reader-books-piece-list{list-style:none;margin:0.85rem 0 0;padding:0;display:flex;flex-direction:column;gap:0.55rem}.reader-books-section-heading{margin:0.85rem 0 0.15rem;padding:0.15rem 0.15rem 0.35rem;font-size:0.78rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#8a5a5a;border-bottom:1px dashed rgba(154,74,74,0.22)}.reader-books-section-heading:first-child{margin-top:0.15rem}.reader-books-piece-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:0.75rem 1rem;padding:0.9rem 1rem;border-radius:10px;background:linear-gradient(180deg,rgba(255,255,255,0.7) 0%,transparent 55%),linear-gradient(155deg,#fffaf7 0%,#f6eee8 100%);border:1px solid rgba(154,74,74,0.16);box-shadow:0 1px 0 rgba(255,255,255,0.7) inset}.reader-books-piece-row--in_progress{border-left:3px solid #c47a3a}.reader-books-piece-row--finished{border-left:3px solid #3d8f6a}.reader-books-piece-heading{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem 0.65rem;margin-bottom:0.2rem}.reader-books-piece-title{font-size:1.05rem;color:#3a2a2a;letter-spacing:-0.01em}.reader-books-piece-subtitle{margin:0;font-size:0.92rem;color:#6a4a4a}.reader-books-piece-hw{margin:0.35rem 0 0;font-size:0.85rem}.reader-books-status-pill{display:inline-flex;align-items:center;padding:0.15rem 0.55rem;border-radius:999px;font-size:0.72rem;font-weight:700;letter-spacing:0.02em;text-transform:uppercase;border:1px solid transparent}.reader-books-status-pill--in-progress{background:#fff1e4;color:#8a4a18;border-color:#efc49a}.reader-books-status-pill--finished{background:#e7f5ee;color:#1f5c40;border-color:#a9d6bf}.reader-books-piece-actions{display:flex;flex-wrap:wrap;gap:0.45rem}.homework-focus-areas{margin:0.35rem 0 0.75rem;font-size:0.92rem}.reader-past-assignments{margin-top:0.5rem}.reader-past-list{list-style:none;margin:0.85rem 0 0;padding:0;display:flex;flex-direction:column;gap:0.65rem}.reader-past-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:0.75rem 1rem;padding:0.85rem 1rem;border-radius:8px;background:rgba(255,252,250,0.95);border:1px solid rgba(154,74,74,0.18)}.reader-past-title{display:block;font-size:1.02rem;color:#3a2a2a}.reader-past-meta{margin:0.25rem 0 0;font-size:0.86rem}.reader-past-actions{display:flex;flex-wrap:wrap;gap:0.4rem;margin-left:auto}.reader-past-pager{display:flex;flex-wrap:wrap;align-items:center;gap:0.65rem;margin-top:1rem}.reader-readonly-banner{margin:0.15rem 0 0;font-size:0.82rem;font-weight:600;color:#8a4e12}.reader-hw-busy-panel{max-width:min(22rem,90vw);text-align:center;padding:1.75rem 1.5rem}.reader-hw-busy-panel h2{margin:0.85rem 0 0.4rem;font-size:1.15rem;color:#3a2a2a}.reader-hw-busy-runner{height:3.6rem;margin:0 auto 0.15rem;overflow:hidden}.reader-hw-busy-runner-track{position:relative;height:100%;width:100%}.reader-hw-busy-runner-figure{position:absolute;left:0;bottom:0.15rem;width:1.55rem;height:2.85rem;animation:reader-hw-run-across 1.35s linear infinite}.runner-head,.runner-torso,.runner-arm,.runner-leg{position:absolute;background:#9a4a4a;border-radius:999px}.runner-head{width:0.55rem;height:0.55rem;top:0.2rem;left:0.4rem}.runner-torso{width:0.28rem;height:0.85rem;top:0.75rem;left:0.54rem}.runner-arm{width:0.18rem;height:0.7rem;top:0.82rem;left:0.58rem;transform-origin:top center}.runner-arm--front{animation:reader-hw-arm-front 0.34s ease-in-out infinite alternate}.runner-arm--back{animation:reader-hw-arm-back 0.34s ease-in-out infinite alternate}.runner-leg{width:0.2rem;height:0.85rem;top:1.55rem;left:0.58rem;transform-origin:top center}.runner-leg--front{animation:reader-hw-leg-front 0.34s ease-in-out infinite alternate}.runner-leg--back{animation:reader-hw-leg-back 0.34s ease-in-out infinite alternate}.runner-flag{position:absolute;left:-0.05rem;top:-1.05rem;width:1.15rem;height:1.1rem;transform-origin:bottom left;animation:reader-hw-flag-wave 0.45s ease-in-out infinite alternate;pointer-events:none}.runner-flag-pole{position:absolute;left:0;bottom:0;width:0.1rem;height:1.05rem;border-radius:999px;background:#5a3a2a}.runner-flag-cloth{position:absolute;left:0.1rem;top:0;width:0.95rem;height:0.62rem;background:#da251d;border-radius:1px;box-shadow:0 0 0 1px rgba(90,30,20,0.12);overflow:hidden;transform-origin:left center;animation:reader-hw-flag-flutter 0.35s ease-in-out infinite alternate}.runner-flag-star{position:absolute;left:50%;top:50%;width:0.34rem;height:0.34rem;margin:-0.17rem 0 0 -0.17rem;background:#ffff00;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}@keyframes reader-hw-run-across{0%{left:-14%}100%{left:108%}}@keyframes reader-hw-arm-front{from{transform:rotate(28deg)}to{transform:rotate(-18deg)}}@keyframes reader-hw-arm-back{from{transform:rotate(-42deg)}to{transform:rotate(38deg)}}@keyframes reader-hw-leg-front{from{transform:rotate(-40deg)}to{transform:rotate(36deg)}}@keyframes reader-hw-leg-back{from{transform:rotate(36deg)}to{transform:rotate(-40deg)}}@keyframes reader-hw-flag-wave{from{transform:rotate(-12deg)}to{transform:rotate(10deg)}}@keyframes reader-hw-flag-flutter{from{transform:skewY(-6deg) scaleX(0.96)}to{transform:skewY(7deg) scaleX(1.04)}}.reader-hw-history-panel{max-width:min(42rem,94vw);max-height:min(85vh,48rem);overflow:auto}.reader-hw-history-panel>h2{margin:0 0 0.4rem;padding-right:2rem;font-size:1.45rem;font-weight:700;letter-spacing:-0.01em;line-height:1.25;color:#9a4a4a}#reader-hw-history-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem 0.55rem;margin:0;padding-bottom:0.85rem;border-bottom:1px solid rgba(154,74,74,0.22);line-height:1.45}.reader-hw-history-meta-title{font-weight:600;color:#3a2a2a}.reader-hw-history-meta-sep{color:#b89898;font-weight:600}.reader-hw-history-meta-attempts{color:#6a4a4a;font-size:0.92rem}.reader-hw-history-body{display:flex;flex-direction:column;gap:1rem;margin-top:0.95rem}.reader-hw-history-assignment{padding:0.85rem 1rem;border-radius:8px;border:1px solid rgba(154,74,74,0.22);background:rgba(240,208,208,0.18)}.reader-hw-history-assignment>h3,.reader-hw-history-attempts-heading{margin:0 0 0.55rem;font-size:1.05rem;color:#5a3a3a}.reader-hw-history-prompt{margin:0 0 0.75rem;line-height:1.55;color:#3a2a2a;white-space:pre-wrap}.reader-hw-history-attempt{padding:0.85rem 1rem;border-radius:8px;border:1px solid rgba(154,74,74,0.18);background:rgba(255,252,250,0.92)}.reader-hw-history-attempt h3{margin:0 0 0.55rem;font-size:1.05rem;color:#3a2a2a}.reader-hw-history-attempt h4{margin:0.65rem 0 0.35rem;font-size:0.88rem;color:#6a4a4a}.reader-hw-history-draft{margin:0;padding:0.65rem 0.75rem;border-radius:6px;background:rgba(240,208,208,0.22);white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:0.95rem;line-height:1.55;color:#2a1a1a}.reader-hw-history-list-block ul{margin:0.25rem 0 0;padding-left:1.15rem}.reader-hw-generate{font-size:0.82rem;padding:0.28rem 0.65rem}.reader-mark-read-cta{margin-top:0.85rem;padding:0.75rem 0.9rem;border-radius:8px;background:rgba(240,208,208,0.55);border:1px solid rgba(154,74,74,0.22)}.reader-mark-read-cta p{margin:0 0 0.55rem;color:#5a3a3a;font-size:0.92rem}.reader-session-empty{padding:0.85rem 0.25rem;list-style:none}.reader-session-card-actions{display:flex;flex-wrap:wrap;gap:0.4rem;flex-shrink:0;align-items:center}.reader-session-card .js-reader-continue,.reader-session-card .js-reader-drop{flex-shrink:0}.reader-input,.reader-textarea{display:block;width:100%;margin:0.35rem 0 0.85rem;padding:0.65rem 0.75rem;border:1px solid var(--dict-rose-border,#f0d0d0);border-radius:6px;background:#fff;color:var(--admin-dark-text,#4a3030)}.reader-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(28,32,38,0.42)}.reader-overlay[hidden]{display:none!important}.reader-overlay-panel{position:relative;width:min(640px,100%);max-height:90vh;overflow:auto;padding:1.5rem 1.35rem 1.35rem;border-radius:10px;background:#fafaf8;box-shadow:0 18px 50px rgba(20,24,30,0.28);color:#2a2e34}.reader-overlay-panel>.reader-overlay-close{position:absolute;top:0.65rem;right:0.75rem;z-index:2;padding:0.15rem 0.35rem}.reader-overlay--fullscreen{padding:calc(0.85rem + env(safe-area-inset-top,0px)) 0.65rem 0.65rem;background:rgba(22,26,32,0.5)}.reader-overlay--fullscreen .reader-reading-header{padding-top:calc(1.25rem + env(safe-area-inset-top,0px))}.reader-reading-shell{--reader-ink:#1f2430;--reader-paper:#f7f6f2;--reader-paper-edge:#ebe8e1;--reader-muted:#6b7280;--reader-title:#1a3c34;--reader-accent:#0d7a6f;--reader-author:#0d7a6f;--reader-via:#a65d1a;--reader-link:#2f6b5c;--reader-name:#3d6b8a;position:relative;width:min(820px,100%);height:min(94vh,100%);display:flex;flex-direction:column;border-radius:8px;background:var(--reader-paper);color:var(--reader-ink);box-shadow:0 20px 56px rgba(16,20,28,0.32);overflow:hidden}.reader-reading-header,.reader-reading-footer{display:flex;align-items:flex-start;gap:0.85rem;padding:1.1rem 1.35rem 1.15rem;background:linear-gradient(105deg,rgba(166,93,26,0.06) 0%,transparent 42%),linear-gradient(180deg,#f6efe4 0%,#efe4d6 100%);border-bottom:2px solid #e0d2c0}.reader-reading-footer{align-items:center;border-bottom:none;border-top:1px solid var(--reader-paper-edge);justify-content:flex-end;background:#fffcf8;padding:0.65rem 1.15rem}.reader-reading-heading-block{flex:1;min-width:0;padding-left:0.85rem;border-left:4px solid var(--reader-accent)}.reader-reading-header-actions{display:flex;align-items:center;gap:0.55rem;flex-shrink:0;padding-top:0.2rem}.reader-source-logo{display:block;height:22px;width:auto;margin:0 0 0.55rem;object-fit:contain}.reader-source-logo[hidden]{display:none!important}.reader-doc-title{margin:0;font-size:clamp(1.35rem,2.8vw,1.85rem);font-weight:800;line-height:1.22;letter-spacing:-0.025em;color:var(--reader-title);text-wrap:balance}.reader-doc-title[hidden]{display:none!important}.reader-coverage-row{display:flex;align-items:center;gap:0.4rem;margin:0.45rem 0 0;min-width:0}.reader-coverage-row[hidden]{display:none!important}.reader-coverage{margin:0;font-size:0.82rem;font-weight:500;color:#3d6b5c}.reader-save-icon{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;border-radius:999px;color:#2f6b45;font-size:0.85rem;line-height:1}.reader-save-icon.is-saving{color:#6b7280}.reader-save-icon.is-error{color:#9b1c1c}.reader-save-icon[hidden]{display:none!important}.reader-overlay-close{border:none;background:transparent;font-size:1.55rem;line-height:1;cursor:pointer;color:var(--reader-muted)}.reader-source-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem 0.65rem;margin:0.4rem 0 0}.reader-source-status{display:inline-flex;align-items:center;border-radius:999px;padding:0.2rem 0.65rem;font-size:0.75rem;font-weight:600;letter-spacing:0.01em}.reader-source-status[hidden],.reader-add-source[hidden]{display:none!important}.reader-source-status.is-in-library{background:#e4f3ea;color:#1f6b45;border:1px solid #b7ddc6}.reader-source-status.is-missing{background:#f8efe4;color:#8a5a28;border:1px solid #e6d0b0}.reader-add-source{font-size:0.8rem;font-weight:600;color:var(--reader-accent,#0d7a6f);text-decoration:underline;text-underline-offset:2px}.reader-peek-article-context{margin:0;padding:0.75rem 0.85rem;border-radius:8px;background:#eef5f1;border:1px solid #c5d9d0;font-size:0.92rem;line-height:1.45;color:#1a3c34}.reader-peek-article-context.is-already-registered{background:#e7f3ec;border-color:#b7d4c4}.reader-peek-already-msg{display:block;font-weight:600;color:#245c45;line-height:1.45}.reader-peek-article-context-label{display:block;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:#3d6b5c;margin-bottom:0.25rem}.reader-peek-context-status[hidden]{display:none}.reader-word-peek .reader-peek-section{margin:0 0 1.1rem;padding:0 0 1rem;border-bottom:1px solid rgba(74,48,48,0.12)}.reader-word-peek .reader-peek-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.reader-word-peek .reader-peek-section h3{display:inline-block;width:fit-content;max-width:100%;margin:0 0 0.7rem;padding:0.05rem 0.28rem 0.12rem;font-size:0.86rem;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;color:#4a3a3c;transform:rotate(-0.6deg);background:linear-gradient(102deg,transparent 0.12em,var(--reader-peek-hl,rgba(253,224,71,0.55)) 0.28em,var(--reader-peek-hl,rgba(253,224,71,0.55)) calc(100% - 0.18em),transparent calc(100% - 0.05em));box-decoration-break:clone;-webkit-box-decoration-break:clone}.reader-peek-etymology h3{--reader-peek-hl:rgba(186,230,253,0.75);transform:rotate(0.5deg)}.reader-peek-examples h3{--reader-peek-hl:rgba(254,215,170,0.8);transform:rotate(-0.8deg)}.reader-peek-current-context h3{--reader-peek-hl:rgba(187,247,208,0.85);transform:rotate(0.7deg)}.reader-word-peek-headword{position:relative;display:inline-block;width:fit-content;max-width:100%;margin:0 0 0.65rem;padding:0 0.1rem 0.45rem;font-family:"Pacifico",cursive;font-size:clamp(1.65rem,3.2vw,2.05rem);font-weight:400;letter-spacing:0.4px;line-height:1.25;color:#4a3030}.reader-word-peek-headword::before,.reader-word-peek-headword::after{content:"";position:absolute;left:0.05em;right:0.05em;height:0.34em;pointer-events:none;background-repeat:no-repeat;background-size:100% 100%}.reader-word-peek-headword::before{bottom:0.12em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 12' fill='none'%3E%3Cpath d='M2 7.5c28-3.5 52 3 80 1.5s54-5 80-2.5 50 4.5 76 1' stroke='%23c45c6a' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E")}.reader-word-peek-headword::after{bottom:-0.02em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 12' fill='none'%3E%3Cpath d='M4 5c32 3.2 58-3.5 86-1.2s52 5.5 78 2.2 48-4.8 70-1.5' stroke='%239a3d4e' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E");opacity:0.85}.reader-peek-example-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.85rem}.reader-peek-example-list .sentence{margin:0 0 0.25rem;line-height:1.45}.reader-peek-example-list .translation{margin:0 0 0.35rem;color:#6b5c5e;font-size:0.92rem}.reader-peek-actions{display:flex;flex-wrap:wrap;gap:0.65rem 1rem;align-items:center}a.reader-peek-link{color:#3d5a45;font-weight:600;font-size:0.9rem;text-decoration:none;border-bottom:1px solid #b7c9b4}a.reader-peek-link:hover,a.reader-peek-link:focus-visible{color:#2f4a38;background:rgba(232,240,230,0.55);text-decoration:none}.admin-chip-link{margin-left:0.35rem;color:#3d5a45;font-weight:600;font-size:0.82rem;text-decoration:none;border-bottom:1px solid #b7c9b4}.admin-chip-link:hover,.admin-chip-link:focus-visible{color:#2f4a38}.reader-session-card-meta{margin:0.35rem 0 0;font-size:0.82rem;color:#3d6b5c;width:100%}.reader-level-legend{display:flex;flex-wrap:wrap;align-items:center;gap:0.35rem;margin:0.35rem 0 0}.reader-legend-caption{font-size:0.72rem;font-weight:600;color:#3d6b5c;margin-right:0.1rem}.reader-legend-sep{color:#8aa89a;font-weight:600;margin:0 0.15rem}.reader-peek-etymology .dictionary-etymology-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.4rem}.reader-peek-current-context{margin-top:0.75rem}.reader-legend-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;padding:0 0.35rem;border-radius:999px;font-size:0.72rem;font-weight:700;line-height:1;color:#1f2430;border:1px solid rgba(31,36,48,0.12)}.reader-legend-pill.lvl-1{background:#f7efc8;border-color:rgba(180,150,40,0.35)}.reader-legend-pill.lvl-2{background:#ffc890;border-color:rgba(200,120,40,0.4)}.reader-legend-pill.lvl-3{background:#f7c8f1;border-color:rgba(180,90,160,0.35)}.reader-legend-pill.lvl-4{background:#e5f7c8;border-color:rgba(120,160,60,0.4)}.reader-legend-name{display:inline-flex;align-items:center;font-size:0.72rem;font-weight:600;color:#1f2430;padding:0.05rem 0.15rem;line-height:1.2}.reader-legend-name.lvl-name{background:linear-gradient(to top,#cfe8f7 0.2em,transparent 0.4em);border-radius:2px}.reader-mine-word-row{display:flex;align-items:center;justify-content:space-between;gap:0.5rem}.reader-mine-grow{border:1px solid #c5d9d0;background:#eef5f1;color:#1a3c34;border-radius:999px;width:2rem;height:2rem;font-size:1.15rem;font-weight:700;line-height:1;cursor:pointer}.reader-mine-grow[hidden]{display:none!important}.reader-mine-grow:hover{background:#dcece4}.reader-article-scroll{flex:1;overflow:auto;padding:1.5rem 2rem 2.25rem;max-width:42rem;margin:0 auto;width:100%}.reader-article{font-size:1.2rem;line-height:1.85;letter-spacing:0.01em;color:var(--reader-ink);white-space:pre-wrap}.reader-article-credit{margin:1.75rem 0 0;padding:0.9rem 0 0.15rem;border-top:1px dashed #d2ccc0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0.35rem 0.65rem;font-size:0.95rem;line-height:1.45}.reader-article-credit[hidden]{display:none!important}.reader-credit-author{font-weight:700;color:var(--reader-author)}.reader-credit-via{color:var(--reader-via);font-style:italic;font-weight:500}.reader-credit-via:not(:empty)::before{content:"· Theo ";margin-right:0.15rem;color:#9a9184;font-style:normal;font-weight:500}.reader-credit-author:empty + .reader-credit-via:not(:empty)::before{content:"Theo ";color:var(--reader-via);font-style:italic}.reader-credit-link{margin-left:auto;font-size:0.82rem;font-weight:600;letter-spacing:0.02em;color:var(--reader-link);text-decoration:none;border-bottom:1px solid rgba(47,95,143,0.35)}.reader-credit-link:hover{color:#1e4468;border-bottom-color:#1e4468}.reader-credit-link[hidden]{display:none!important}.reader-mode-tiles{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.reader-mode-tile{text-align:left;cursor:pointer;border:1px solid #e8cfcf;background:#fff}.reader-peek-panel{width:min(720px,100%)}.reader-mine-actions{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.75rem}.reader-ctx-menu{position:fixed;z-index:2100;min-width:12rem;padding:0.35rem;border-radius:8px;background:#fff;border:1px solid #e2e0da;box-shadow:0 10px 28px rgba(20,24,30,0.18)}.reader-ctx-menu[hidden],.reader-sel-chip[hidden]{display:none!important}.reader-ctx-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:0.55rem 0.7rem;border-radius:6px;font-size:0.92rem;color:#1f2430;cursor:pointer}.reader-ctx-item:hover{background:#f0f2f5}.reader-ctx-item#reader-ctx-grow{width:auto;min-width:2.25rem;text-align:center;font-weight:700;font-size:1.1rem}.reader-sel-chip{position:fixed;z-index:2100;transform:translateX(-50%);display:flex;flex-wrap:wrap;gap:0.35rem;max-width:min(24rem,92vw)}.reader-sel-chip button{border:1px solid #d8d4cc;background:#1f2430;color:#f7f6f2;border-radius:999px;padding:0.45rem 0.9rem;font-size:0.85rem;box-shadow:0 8px 22px rgba(20,24,30,0.22);cursor:pointer;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-sel-chip button:hover{background:#323846}.reader-sel-chip #reader-sel-name{background:#3d6b8a;border-color:#2f5a75}.reader-sel-chip #reader-sel-name:hover{background:#2f5a75}.reader-sel-chip #reader-sel-grow{min-width:2.4rem;padding-left:0.7rem;padding-right:0.7rem;font-weight:700;font-size:1.05rem;background:#0d7a6f;border-color:#0a635a}.reader-sel-chip #reader-sel-grow:hover{background:#0a635a}.reader-sel-chip #reader-sel-grow[hidden]{display:none!important}.lvl-new{background:transparent;color:inherit;border-radius:2px;padding:0 0.04em;cursor:pointer;box-decoration-break:clone;-webkit-box-decoration-break:clone}.lvl-new:hover{background:rgba(31,36,48,0.06)}.lvl-new.is-selected{background:rgba(47,108,180,0.14);outline:1.5px solid rgba(47,108,180,0.55)}.lvl-name{color:inherit;font-weight:inherit;background:linear-gradient(to top,#cfe8f7 0.18em,transparent 0.38em);padding:0 0.04em;border-radius:2px;cursor:pointer;box-decoration-break:clone;-webkit-box-decoration-break:clone}.lvl-name:hover{background:linear-gradient(to top,#b7ddf2 0.18em,transparent 0.38em)}.lvl-0{background:rgba(196,74,74,0.18);color:inherit;border-radius:2px;padding:0 0.04em;cursor:pointer}.lvl-1{background:#f7efc8;color:inherit;border-radius:2px;padding:0 0.04em;cursor:pointer}.lvl-2{background:#ffc890;color:inherit;border-radius:2px;padding:0 0.04em;cursor:pointer}.lvl-3{background:#f7c8f1;color:inherit;border-radius:2px;padding:0 0.04em;cursor:pointer}.lvl-4{background:#e5f7c8;color:inherit;border-radius:2px;padding:0 0.04em;cursor:pointer}.lvl-0:hover,.lvl-1:hover,.lvl-2:hover,.lvl-3:hover,.lvl-4:hover{filter:brightness(0.97)}@media (max-width:768px){.reader-mode-tiles{grid-template-columns:1fr}.reader-reading-shell{height:96vh;width:100%;border-radius:6px}.reader-article-scroll{padding:1.15rem 1.1rem 1.75rem}.reader-article{font-size:1.08rem;line-height:1.8}.reader-doc-title{font-size:1.25rem}.reader-reading-heading-block{padding-left:0.65rem;border-left-width:3px}}.reader-main-tabs{margin-left:0;margin-right:0;max-width:none}.homework-workspace{max-width:46rem}.homework-usage{margin:0 0 1.25rem;padding:0.85rem 1rem;border-radius:10px;background:linear-gradient(135deg,rgba(240,208,208,0.55) 0%,rgba(255,252,250,0.9) 55%,rgba(248,228,228,0.45) 100%);border:1px solid rgba(154,74,74,0.18)}.homework-usage-meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem 1.1rem}.homework-usage-meter{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:0.5rem;row-gap:0.35rem;align-items:baseline}.homework-usage-label{font-size:0.72rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#8a5a5a}.homework-usage-value{font-size:0.92rem;font-weight:700;color:#5a3a3a;justify-self:end}.homework-usage-bar{grid-column:1 / -1;display:block;height:0.35rem;border-radius:999px;background:rgba(154,74,74,0.12);overflow:hidden}.homework-usage-bar-fill{display:block;height:100%;width:0%;border-radius:inherit;background:linear-gradient(90deg,#9a4a4a,#c47878);transition:width 0.25s ease}.homework-usage-bar-fill.is-low{background:linear-gradient(90deg,#b86a2a,#d68c28)}.homework-usage-bar-fill.is-empty{background:rgba(154,74,74,0.35)}.homework-usage-meta{margin:0.65rem 0 0;font-size:0.8rem}.homework-status-line,.homework-error{margin:0 0 0.85rem;padding:0.55rem 0.75rem;border-radius:6px;font-size:0.9rem}.homework-error{background:rgba(180,60,40,0.1);color:#8a2e1e;border:1px solid rgba(180,60,40,0.22)}.homework-status-line{background:rgba(154,74,74,0.08);color:#5a3a3a}.homework-empty{padding:1.25rem 0}.homework-empty p{margin:0;color:#5a4a4a}.homework-section{margin:0;padding:1.05rem 0 1.15rem;border-top:1px solid rgba(154,74,74,0.16)}.homework-section:first-child{border-top:none;padding-top:0.15rem}.homework-panel-header{margin-bottom:0}.homework-status-pill{display:inline-block;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:0.2rem 0.55rem;border-radius:999px;background:rgba(154,74,74,0.12);color:#9a4a4a;margin-bottom:0.45rem}.homework-status-pill--ready{background:rgba(61,122,85,0.14);color:#2f5c38}.homework-status-pill--evaluated{background:rgba(214,140,40,0.18);color:#8a4e12}.homework-status-pill--completed{background:rgba(80,120,180,0.16);color:#2f4a6e}.homework-status-pill--failed{background:rgba(180,60,40,0.14);color:#8a2e1e}.homework-panel-header h2{margin:0.15rem 0 0.35rem;font-size:1.35rem;color:#3a2a2a}.homework-brief h3,.homework-editor h3,.homework-feedback h3{margin:0 0 0.55rem;font-size:1.05rem;color:#5a3a3a}.homework-prompt{margin:0 0 0.85rem;line-height:1.55;color:#3a2a2a}.homework-brief-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:0.65rem 1rem;margin:0 0 0.85rem}.homework-brief-meta dt{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.03em;color:#8a6a6a;margin:0 0 0.15rem}.homework-brief-meta dd{margin:0;color:#3a2a2a}.homework-expression-list{display:flex;flex-wrap:wrap;gap:0.4rem;list-style:none;margin:0.35rem 0 0;padding:0}.homework-expression-list li{padding:0.25rem 0.55rem;border-radius:6px;background:rgba(240,208,208,0.55);color:#5a3a3a;font-size:0.88rem;font-weight:600}.homework-expressions-label{margin:0;font-size:0.85rem;font-weight:600;color:#6a4a4a}.homework-draft{width:100%;box-sizing:border-box;padding:0.85rem 1rem;border-radius:8px;border:1px solid rgba(154,74,74,0.28);background:rgba(255,252,250,0.95);font-size:1.02rem;line-height:1.65;resize:vertical;min-height:12rem;color:#2a1a1a}.homework-draft:focus{outline:2px solid rgba(154,74,74,0.35);outline-offset:1px}.homework-actions{display:flex;flex-wrap:wrap;gap:0.55rem;margin-top:0.75rem}.homework-pass-rationale{margin:0 0 0.75rem;padding:0.65rem 0.8rem;border-radius:6px;line-height:1.5}.homework-pass-rationale.is-pass{background:rgba(61,122,85,0.12);color:#2f5c38}.homework-pass-rationale.is-fail{background:rgba(214,140,40,0.14);color:#8a4e12}.homework-strengths,.homework-themes{margin:0 0 0.75rem;padding-left:1.15rem;color:#3a2a2a}.homework-issue{margin-bottom:0.65rem;padding:0.7rem 0.85rem;border-radius:8px;border-left:3px solid rgba(154,74,74,0.35);background:rgba(255,255,255,0.7)}.homework-issue--must_fix{border-left-color:#b43c28;background:rgba(180,60,40,0.06)}.homework-issue--should_fix{border-left-color:#d68c28;background:rgba(214,140,40,0.08)}.homework-issue--optional{border-left-color:#8a8a8a}.homework-issue-meta{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.03em;color:#8a6a6a;margin-bottom:0.35rem}.homework-issue-original{margin:0 0 0.25rem;text-decoration:line-through;color:#6a4a4a;font-size:0.92rem}.homework-issue-suggestion{margin:0 0 0.25rem;color:#2f5c38;font-weight:600;font-size:0.95rem}.homework-issue-explanation{margin:0;font-size:0.9rem;color:#4a3a3a;line-height:1.45}@media (max-width:560px){.homework-usage-meters{grid-template-columns:1fr}}.admin-code-block{margin:0;padding:1rem 1.1rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.85rem;line-height:1.45;background:#f7f3ef;border:1px solid #e4d8ce;border-radius:8px;color:#2c2420}