/* Viewer identity dictionaries only. This root modal never inherits the old
   inline .dictionary-menu positioning or any embedded-game window styling. */
.dictionary-overlay{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:rgb(0 0 0 / 40%);overscroll-behavior:contain}
.dictionary-dialog{display:flex;flex-direction:column;width:min(420px,100%);min-width:0;max-height:min(620px,calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom))));overflow:hidden;border:1px solid var(--viewer-border,var(--line));border-radius:9px;background:var(--surface);color:var(--text);box-shadow:0 14px 48px rgb(0 0 0 / 22%);text-align:left;line-height:1.55}
.dictionary-dialog>*{flex-shrink:0;min-width:0}
.dictionary-dialog .dictionary-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:15px 16px 12px;border-bottom:1px solid var(--viewer-border,var(--line))}
.dictionary-dialog .dictionary-header>div{min-width:0}
.dictionary-dialog h2{margin:0;font-size:1rem;line-height:1.5;overflow-wrap:anywhere}
.dictionary-dialog .dictionary-count{display:block;margin:4px 0 0;color:var(--viewer-muted,var(--muted));font-size:.71rem;line-height:1.5;font-variant-numeric:tabular-nums}
.dictionary-dialog .dictionary-help{margin:11px 16px 4px;color:var(--viewer-muted,var(--muted));font-size:.74rem;line-height:1.7;overflow-wrap:anywhere}
.dictionary-dialog button{min-height:36px;max-width:100%;padding:7px 11px;border:1px solid var(--viewer-border,var(--line));border-radius:5px;background:var(--surface);color:var(--text);font-family:inherit;font-size:.76rem;line-height:1.5;overflow-wrap:anywhere;cursor:pointer}
.dictionary-dialog button:hover:not(:disabled){background:var(--hover)}
.dictionary-dialog button:disabled{color:var(--viewer-muted,var(--muted));opacity:.6;cursor:not-allowed}
.dictionary-dialog .dictionary-close{flex:0 0 36px;width:36px;height:36px;padding:0;border:0;background:transparent;color:var(--viewer-muted,var(--muted));font-size:1.35rem;line-height:1}
.dictionary-dialog .dictionary-body{flex:1 1 auto;min-height:0;padding:7px 9px;overflow:auto;overscroll-behavior:contain;scroll-padding-block:7px;scrollbar-gutter:stable}
.dictionary-dialog .dictionary-list,.dictionary-dialog .dictionary-edit-list{display:grid;gap:3px;max-height:none;margin:0;padding:0;overflow:visible;list-style:none}
.dictionary-dialog .dictionary-choice{display:block;width:100%;min-height:44px;padding:10px 9px;border-color:transparent;background:transparent;color:var(--text);text-align:left;font-size:.85rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.dictionary-dialog .dictionary-choice+.dictionary-choice{border-top-color:var(--viewer-border,var(--line));border-radius:0}
.dictionary-dialog .dictionary-empty{margin:0;padding:25px 9px;color:var(--viewer-muted,var(--muted));font-size:.8rem;line-height:1.8;text-align:center}
.dictionary-dialog .dictionary-edit-list{gap:8px;padding:4px 2px}
.dictionary-dialog .dictionary-row{display:flex;align-items:center;gap:7px;min-width:0;scroll-margin-block:9px}
.dictionary-dialog .dictionary-input{flex:1 1 auto;min-width:0;width:100%;height:38px;padding:7px 9px;border:1px solid var(--viewer-border,var(--line));border-radius:5px;background:var(--surface);color:var(--text);font-family:inherit;font-size:16px;line-height:1.5}
.dictionary-dialog .dictionary-input::placeholder{color:var(--viewer-muted,var(--muted));opacity:1}
.dictionary-dialog .dictionary-input{scroll-margin-block:9px}
.dictionary-dialog .dictionary-remove{flex:0 0 36px;width:36px;height:36px;padding:0;border-color:transparent;background:transparent;color:var(--viewer-error,var(--danger));font-size:1.15rem}
.dictionary-dialog .dictionary-remove:hover:not(:disabled){background:var(--viewer-error-bg,var(--surface-2))}
.dictionary-dialog :is(.dictionary-register,.dictionary-add){align-self:stretch;width:auto;margin:7px 14px 0;min-height:38px;border-color:var(--viewer-border,var(--line));background:var(--surface-2);color:var(--accent-text,var(--accent));text-align:center;font-size:.76rem}
.dictionary-dialog .dictionary-error{margin:9px 14px 0;padding:9px 10px;border:1px solid var(--viewer-error,var(--danger));border-radius:5px;background:var(--viewer-error-bg,var(--surface-2));color:var(--viewer-error,var(--danger));font-size:.75rem;line-height:1.65;overflow-wrap:anywhere}
.dictionary-dialog .dictionary-discard-confirm{margin:12px 14px 14px;padding:10px;border:1px solid var(--viewer-border,var(--line));border-radius:5px;background:var(--surface-2);font-size:.77rem;line-height:1.65}
.dictionary-dialog .dictionary-discard-confirm p{margin:0 0 9px;overflow-wrap:anywhere}
.dictionary-dialog .dictionary-discard-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.dictionary-dialog .dictionary-discard-actions button{flex:1 1 120px;min-width:0}
.dictionary-dialog .dictionary-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px;padding:12px 14px;border-top:1px solid var(--viewer-border,var(--line));background:var(--surface)}
.dictionary-dialog .dictionary-footer>button{min-width:78px}
.dictionary-dialog .dictionary-save.primary-button{border-color:transparent;background:var(--accent);color:#fff;font-weight:700}
.dictionary-dialog .dictionary-save.primary-button:hover:not(:disabled){background:var(--accent-strong)}
.dictionary-dialog :is(button,input):focus-visible{outline:2px solid var(--viewer-focus,var(--accent-text,var(--accent)));outline-offset:2px}
.dictionary-dialog .dictionary-choice:focus-visible{outline-offset:-3px}
.dictionary-dialog .dictionary-input:focus-visible{outline-offset:1px}
@media(max-width:760px){
 .dictionary-overlay{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
 .dictionary-dialog{max-height:calc(100dvh - max(10px,env(safe-area-inset-top)) - max(10px,env(safe-area-inset-bottom)))}
 .dictionary-dialog .dictionary-input{height:42px;font-size:16px}
 .dictionary-dialog .dictionary-remove{flex-basis:40px;width:40px;height:40px}
 .dictionary-dialog .dictionary-footer>button{min-height:40px}
}
@media(max-height:450px){
 .dictionary-dialog .dictionary-header{padding:9px 12px 8px}
 .dictionary-dialog .dictionary-count{margin-top:2px}
 .dictionary-dialog .dictionary-help{margin-top:6px;font-size:.71rem;line-height:1.55}
 .dictionary-dialog .dictionary-body{padding-block:4px}
 .dictionary-dialog :is(.dictionary-register,.dictionary-add){margin-top:5px;min-height:34px;padding-block:5px}
 .dictionary-dialog .dictionary-error{margin-top:5px;padding-block:6px;font-size:.71rem}
 .dictionary-dialog .dictionary-discard-confirm{margin-top:5px;padding-block:7px;font-size:.73rem}
 .dictionary-dialog .dictionary-discard-confirm p{margin-bottom:5px}
 .dictionary-dialog .dictionary-footer{margin-top:7px;padding-block:8px}
}
@media(prefers-reduced-motion:reduce){.dictionary-overlay,.dictionary-overlay *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(forced-colors:active){.dictionary-overlay{background:transparent}.dictionary-dialog{border:2px solid CanvasText;box-shadow:none}.dictionary-dialog .dictionary-save.primary-button{border-color:ButtonText}}
