.pw-dictionary-panel,
.pw-dictionary-trigger {
    --pw-bg: #fff;
    --pw-fg: #202e3e;
    --pw-heading: #152e4b;
    --pw-muted: #536277;
    --pw-border: #bcc8d7;
    --pw-border-strong: #8296af;
    --pw-button-bg: #f3f7fc;
    --pw-button-text: #164779;
    --pw-hover-bg: #e6eef9;
    --pw-soft-bg: #edf5fb;
    --pw-link: #15558e;
    --pw-warning-bg: #fff6e9;
    --pw-warning-text: #764007;
    --pw-warning-border: #a85c13;
    --pw-accent: #205787;
    --pw-accent-text: #fff;
    color-scheme: light;
}

.pw-dictionary-panel[data-theme="dark"],
.pw-dictionary-trigger[data-theme="dark"] {
    --pw-bg: #17212d;
    --pw-fg: #e5edf5;
    --pw-heading: #f0f5fb;
    --pw-muted: #afbed0;
    --pw-border: #48596d;
    --pw-border-strong: #758aa2;
    --pw-button-bg: #25354a;
    --pw-button-text: #d5e8ff;
    --pw-hover-bg: #344963;
    --pw-soft-bg: #223349;
    --pw-link: #9dceff;
    --pw-warning-bg: #382b1d;
    --pw-warning-text: #f5d2a2;
    --pw-warning-border: #d39b58;
    color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
    .pw-dictionary-panel[data-theme="auto"],
    .pw-dictionary-trigger[data-theme="auto"] {
        --pw-bg: #17212d;
        --pw-fg: #e5edf5;
        --pw-heading: #f0f5fb;
        --pw-muted: #afbed0;
        --pw-border: #48596d;
        --pw-border-strong: #758aa2;
        --pw-button-bg: #25354a;
        --pw-button-text: #d5e8ff;
        --pw-hover-bg: #344963;
        --pw-soft-bg: #223349;
        --pw-link: #9dceff;
        --pw-warning-bg: #382b1d;
        --pw-warning-text: #f5d2a2;
        --pw-warning-border: #d39b58;
        color-scheme: dark;
    }
}

.pw-dictionary-trigger,
.pw-dictionary-panel button,
.pw-dictionary-panel input {
    box-sizing: border-box;
    font-family: inherit;
    font-size: 1em;
    line-height: 1.5;
}

.pw-dictionary-trigger {
    display: block;
    width: fit-content;
    min-height: 44px;
    margin-block: 1rem .5rem;
    padding: .45rem .85rem;
    border: 1px solid var(--pw-border);
    border-radius: .65rem;
    background: var(--pw-button-bg);
    color: var(--pw-button-text);
    cursor: pointer;
    direction: rtl;
    text-align: start;
}

.pw-dictionary-panel,
.pw-dictionary-panel * {
    box-sizing: border-box;
}

.pw-dictionary-panel {
    position: fixed;
    z-index: 100000;
    width: min(26rem, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
    overflow: auto;
    overscroll-behavior: contain;
    padding: 0 1.1rem 1.1rem;
    border: 1px solid var(--pw-border);
    border-radius: 1rem;
    background: var(--pw-bg);
    color: var(--pw-fg);
    box-shadow: 0 12px 42px rgb(24 42 64 / 24%);
    font-family: inherit;
    font-size: 1em;
    line-height: 1.85;
    text-align: right;
    direction: rtl;
    overflow-wrap: anywhere;
}

.pw-dictionary-panel[hidden],
.pw-dictionary-panel [hidden] {
    display: none !important;
}

.pw-dictionary-header {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-inline: -.2rem;
    padding-block: .8rem .6rem;
    background: var(--pw-bg);
    border-bottom: 1px solid var(--pw-border);
}

.pw-dictionary-heading {
    margin: 0;
    padding: 0;
    color: var(--pw-heading);
    font-family: inherit;
    font-size: 1.12em;
    font-weight: 700;
    line-height: 1.6;
}

.pw-dictionary-panel button {
    min-height: 44px;
    border: 1px solid var(--pw-border);
    border-radius: .55rem;
    padding: .4rem .75rem;
    background: var(--pw-button-bg);
    color: var(--pw-button-text);
    cursor: pointer;
    font-weight: 600;
    text-align: center;
    white-space: normal;
}

.pw-dictionary-panel .pw-dictionary-close {
    flex-shrink: 0;
    border-color: transparent;
    background: transparent;
    color: var(--pw-muted);
    font-size: .85em;
}

.pw-dictionary-trigger:hover,
.pw-dictionary-panel button:hover {
    background: var(--pw-hover-bg);
    border-color: var(--pw-border-strong);
}

.pw-dictionary-trigger:focus-visible,
.pw-dictionary-panel button:focus-visible,
.pw-dictionary-panel input:focus-visible,
.pw-dictionary-panel a:focus-visible {
    outline: 3px solid var(--pw-accent);
    outline-offset: 3px;
}

.pw-dictionary-form {
    margin: .75rem 0 0;
}

.pw-dictionary-label {
    display: block;
    margin-bottom: .3rem;
    color: var(--pw-muted);
    font-size: .9em;
    font-weight: 600;
}

.pw-dictionary-form-row {
    display: flex;
    align-items: stretch;
    gap: .5rem;
}

.pw-dictionary-panel .pw-dictionary-input {
    display: block;
    flex: 1;
    width: 0;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: .4rem .65rem;
    border: 1px solid var(--pw-border-strong);
    border-radius: .55rem;
    background: var(--pw-bg);
    color: var(--pw-fg);
    direction: rtl;
    text-align: right;
    box-shadow: none;
}

.pw-dictionary-panel .pw-dictionary-submit {
    flex-shrink: 0;
    border-color: var(--pw-accent);
    background: var(--pw-accent);
    color: var(--pw-accent-text);
}

.pw-dictionary-panel .pw-dictionary-submit:hover {
    background: var(--pw-accent);
    filter: brightness(.92);
}

.pw-dictionary-privacy {
    margin: .45rem 0 .9rem;
    color: var(--pw-muted);
    font-size: .75em;
    line-height: 1.8;
}

.pw-dictionary-status,
.pw-dictionary-message {
    margin: .7rem 0;
    font-size: .9em;
}

.pw-dictionary-status {
    color: var(--pw-muted);
}

.pw-dictionary-panel[data-state="loading"] .pw-dictionary-status {
    padding: .6rem .75rem;
    border-inline-start: 3px solid var(--pw-accent);
    border-radius: .3rem;
    background: var(--pw-soft-bg);
}

.pw-dictionary-panel[data-state="error"] .pw-dictionary-status,
.pw-dictionary-panel[data-state="busy"] .pw-dictionary-status {
    padding: .6rem .75rem;
    border-inline-start: 3px solid var(--pw-warning-border);
    background: var(--pw-warning-bg);
    color: var(--pw-warning-text);
}

.pw-dictionary-definitions {
    margin: .6rem 0 0;
    padding-inline-start: 1.5rem;
    list-style: decimal outside;
}

.pw-dictionary-source-group {
    margin-top: 1rem;
    padding-top: .7rem;
    border-top: 1px solid var(--pw-border);
}

.pw-dictionary-source-heading {
    margin: 0 0 .35rem;
    color: var(--pw-heading);
    font-family: inherit;
    font-size: 1em;
    font-weight: 700;
    line-height: 1.7;
}

.pw-dictionary-panel .pw-dictionary-source-toggle {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: .7em;
    padding: .4em .65em;
    text-align: start;
    font-size: 1em;
}

.pw-dictionary-source-toggle::after {
    content: "+";
    flex-shrink: 0;
    font-size: 1.15em;
}

.pw-dictionary-source-toggle[aria-expanded="true"]::after {
    content: "−";
}

.pw-dictionary-context-note {
    margin: .8em 0;
    padding: .7em .85em;
    border-inline-start: 3px solid var(--pw-accent);
    border-radius: .4em;
    background: var(--pw-soft-bg);
}

.pw-dictionary-context-heading {
    margin: 0 0 .45em;
    font-family: inherit;
    font-size: 1em;
    line-height: 1.7;
    color: var(--pw-heading);
}

.pw-dictionary-context-meaning {
    margin: 0;
    white-space: pre-line;
    line-height: 1.95;
}

.pw-dictionary-meaning-preview {
    max-height: 11.7em;
    overflow: hidden;
}

.pw-dictionary-panel .pw-dictionary-meaning-toggle {
    margin: .25em 0 .7em;
    padding: .3em .65em;
    font-size: .85em;
}

.pw-dictionary-source-status {
    margin: .4rem 0;
    color: var(--pw-muted);
    font-size: .85em;
}

.pw-dictionary-source-group[data-state="error"] .pw-dictionary-source-status,
.pw-dictionary-source-group[data-state="busy"] .pw-dictionary-source-status,
.pw-dictionary-source-group[data-state="configuration_required"] .pw-dictionary-source-status {
    padding: .45rem .65rem;
    border-inline-start: 3px solid var(--pw-warning-border);
    background: var(--pw-warning-bg);
    color: var(--pw-warning-text);
}

.pw-dictionary-definition {
    margin: 0;
    padding: .8rem .1rem .9rem 0;
    border-bottom: 1px solid var(--pw-border);
}

.pw-dictionary-definition::marker {
    color: var(--pw-muted);
    font-weight: 700;
}

.pw-dictionary-pos {
    margin: 0 0 .25rem;
    color: var(--pw-muted);
    font-size: .8em;
    font-weight: 700;
}

.pw-dictionary-meaning {
    margin: 0 0 .6rem;
    color: var(--pw-fg);
    line-height: 1.95;
    white-space: pre-line;
}

.pw-dictionary-attribution {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .2rem .7rem;
    color: var(--pw-muted);
    font-size: .75em;
    line-height: 1.8;
}

.pw-dictionary-attribution > span {
    flex-basis: 100%;
}

.pw-dictionary-panel a.pw-dictionary-source-link {
    color: var(--pw-link);
    text-decoration: underline;
    text-underline-offset: .2em;
}

.pw-dictionary-panel .pw-dictionary-more,
.pw-dictionary-panel .pw-dictionary-retry {
    margin-top: .8rem;
}

.pw-dictionary-candidate-caption {
    margin: 1rem 0 .45rem;
    color: var(--pw-muted);
    font-size: .85em;
    font-weight: 600;
}

.pw-dictionary-candidates {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.pw-dictionary-mobile {
    border-radius: .9rem;
    box-shadow: 0 4px 34px rgb(24 42 64 / 28%);
}

@media (forced-colors: active) {
    .pw-dictionary-panel,
    .pw-dictionary-trigger,
    .pw-dictionary-panel button,
    .pw-dictionary-panel input {
        border: 1px solid ButtonText;
    }
}

.pw-annotation[role="button"] {
    cursor: pointer;
    text-decoration: underline dotted;
    text-underline-offset: .18em;
}

.pw-annotation[role="button"]:focus-visible,
.pw-glossary-backlink:focus-visible {
    outline: 3px solid var(--pw-accent, #205787);
    outline-offset: 3px;
}

.pw-glossary {
    margin-block: 2em 1em;
    padding-block-start: 1em;
    border-block-start: 1px solid currentColor;
    text-align: start;
    direction: rtl;
    font-family: inherit;
    overflow-wrap: anywhere;
}

.pw-glossary dt {
    margin-block-start: 1em;
    font-weight: 700;
    break-after: avoid;
}

.pw-glossary dd {
    margin: .3em 0 1em;
    padding-inline-start: 1em;
    white-space: pre-line;
}

.pw-glossary-backlink {
    display: inline-block;
    margin-inline-start: .7em;
    font-size: .85em;
}

.pw-notebook,
.pw-feedback {
    margin-block: 1em;
    padding-block-start: .7em;
    border-block-start: 1px solid var(--pw-border);
}

.pw-notebook-heading {
    margin: .2em 0;
    color: var(--pw-heading);
    font-family: inherit;
    font-size: 1.05em;
}

.pw-notebook-help,
.pw-notebook-notice,
.pw-notebook-excerpt-label,
.pw-feedback-status {
    margin: .45em 0;
    font-size: .85em;
    color: var(--pw-muted);
}

.pw-notebook-list {
    padding-inline-start: 1.5em;
}

.pw-notebook-item {
    padding-block: .7em;
    border-block-end: 1px solid var(--pw-border);
}

.pw-notebook-excerpt {
    margin: .4em 0;
    white-space: pre-line;
}

.pw-notebook-links {
    display: flex;
    flex-wrap: wrap;
    gap: .4em 1em;
    font-size: .85em;
}

.pw-notebook-error {
    padding: .5em .7em;
    background: var(--pw-warning-bg);
    color: var(--pw-warning-text);
}

.pw-dictionary-panel .pw-notebook-save,
.pw-dictionary-panel .pw-notebook-remove,
.pw-dictionary-panel .pw-notebook-clear,
.pw-dictionary-panel .pw-notebook-close {
    margin-block-start: .6em;
    font-size: .85em;
}

.pw-feedback-form label {
    display: block;
    margin-block: .6em .2em;
    font-size: .9em;
}

.pw-feedback-form select,
.pw-feedback-form textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: .4em .6em;
    border: 1px solid var(--pw-border-strong);
    border-radius: .4em;
    background: var(--pw-bg);
    color: var(--pw-fg);
    font-family: inherit;
    font-size: 1em;
    line-height: 1.7;
}

.pw-feedback-form textarea {
    resize: vertical;
}

.pw-feedback-form select:focus-visible,
.pw-feedback-form textarea:focus-visible {
    outline: 3px solid var(--pw-accent);
    outline-offset: 2px;
}

.pw-dictionary-panel button:disabled {
    cursor: default;
    opacity: .65;
}

@media print {
    .pw-dictionary-panel,
    .pw-dictionary-trigger,
    .pw-notebook,
    .pw-notebook-toolbar,
    .pw-notebook-save,
    .pw-feedback,
    .pw-glossary-backlink {
        display: none !important;
    }

    .pw-glossary {
        display: block !important;
        color: #000;
        background: transparent;
        border: 0;
    }

    .pw-glossary a[href^="https://"]::after {
        content: " (" attr(href) ")";
        font-size: .8em;
    }

    .pw-annotation[role="button"] {
        text-decoration: none;
        outline: none;
    }
}
