.fulltext-dialog { width: min(850px, calc(100vw - 28px)); max-width: 850px; max-height: calc(100dvh - 36px); margin: auto; padding: 22px; border: 1px solid var(--border, #d8dee8); border-radius: 18px; background: var(--panel, #fff); color: var(--text, #172235); overflow-y: auto; box-sizing: border-box; }
.fulltext-dialog::backdrop { background: rgba(16, 26, 40, .45); }
.fulltext-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.fulltext-heading h2 { margin: 0; font-size: 21px; }
.fulltext-intro, .fulltext-status, .fulltext-summary { color: var(--muted, #617089); line-height: 1.6; font-size: 14px; }
.fulltext-form { display: flex; gap: 10px; margin: 18px 0 12px; }
.fulltext-input { flex: 1; width: 0; min-width: 0; min-height: 44px; border: 1px solid var(--border, #d8dee8); border-radius: 10px; padding: 10px 12px; font-size: 16px; background: var(--panel, #fff); color: inherit; }
.fulltext-primary, .fulltext-button { min-height: 44px; padding: 9px 13px; border: 1px solid var(--border, #d8dee8); border-radius: 10px; background: var(--panel, #fff); color: inherit; font: inherit; cursor: pointer; }
.fulltext-primary { background: var(--accent, #1769d3); border-color: var(--accent, #1769d3); color: #fff; }
.fulltext-button:disabled, .fulltext-primary:disabled { opacity: .5; cursor: default; }
.fulltext-toolbar { display: flex; gap: 8px; flex-wrap: wrap; }
.fulltext-progress { width: 100%; height: 8px; margin-top: 16px; accent-color: var(--accent, #1769d3); }
.fulltext-status.error { color: #aa3542; }
.fulltext-summary { font-weight: 600; }
.fulltext-results { display: grid; gap: 12px; }
.fulltext-hit { padding: 15px; border: 1px solid var(--border, #d8dee8); border-radius: 12px; }
.fulltext-hit-title { display: block; width: 100%; padding: 0; border: 0; text-align: left; color: var(--accent, #1769d3); background: transparent; font: inherit; font-weight: 600; line-height: 1.5; cursor: pointer; overflow-wrap: anywhere; }
.fulltext-hit-path { margin: 5px 0 10px; font-size: 12px; color: var(--muted, #617089); overflow-wrap: anywhere; }
.fulltext-excerpt { margin: 0; font-size: 14px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.fulltext-excerpt mark { background: #fff0a8; color: #352e0c; border-radius: 2px; padding: 0 1px; }
.fulltext-hit-warning { margin-bottom: 0; font-size: 12px; color: #866425; }
.fulltext-errors { padding: 10px; background: #fff6ee; color: #794514; border-radius: 10px; font-size: 13px; line-height: 1.6; }
.fulltext-errors li { overflow-wrap: anywhere; }
.fulltext-more { display: block; margin: 16px auto 0; }
.fulltext-dialog [hidden] { display: none !important; }
.fulltext-dialog :focus-visible { outline: 3px solid #9ac5ff; outline-offset: 3px; }
@media (max-width: 600px) { .fulltext-dialog { padding: 15px; border-radius: 14px; max-height: calc(100dvh - 20px); } .fulltext-heading h2 { font-size: 19px; } .fulltext-form { gap: 7px; } .fulltext-hit { padding: 12px; } .fulltext-toolbar .fulltext-button { font-size: 13px; } }
