/* LinDom Reviews – public. Colours inherit from the page (the site is dark);
   only accents are set here, overridable through the custom properties. */
.lindom-review-form,
.glsr[data-lindom-reviews] {
    --lr-accent: var(--lr-brand-accent);
    --lr-star: var(--lr-brand-accent);
    --lr-line: color-mix(in srgb, currentColor 22%, transparent);
    --lr-soft: color-mix(in srgb, currentColor 6%, transparent);
    --lr-warn: var(--lr-brand-accent);
    --lr-error: #ff8a8a;
    --lr-ok: #7fd6a4;
}

/* ---- review list extras ---- */
.lindom-review-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: .6rem 0 0;
    padding: 0;
    list-style: none;
}
.lindom-review-tag {
    margin: 0;
    padding: .2rem .65rem;
    border: 1px solid var(--lr-line);
    border-radius: 999px;
    font-size: .85em;
    line-height: 1.5;
}
.glsr-review-response {
    margin-block-start: .75rem;
    padding: .6rem .8rem;
    border-inline-start: 3px solid var(--lr-accent);
    background: var(--lr-soft);
}
.glsr-review-response p { margin: 0 0 .35rem; }
.glsr-review-response p:last-child { margin-bottom: 0; }
.glsr .glsr-read-more { display: block; margin-block-start: .35rem; }
.glsr .glsr-read-more a { font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }

/* ---- form ---- */
.lindom-review-form { max-width: 44rem; }
.lindom-review-form .lrf-rules {
    margin: 0 0 1.5rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--lr-line);
    border-inline-start: 4px solid var(--lr-accent);
    border-radius: 10px;
    background: var(--lr-soft);
}
.lindom-review-form .lrf-rules-title { margin: 0 0 .5rem; font-size: 1.15em; }
.lindom-review-form summary.lrf-rules-title { cursor: pointer; margin-top: .5rem; }
.lindom-review-form summary.lrf-rules-title:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.lindom-review-form .lrf-rules p { margin: 0 0 .5rem; }
.lindom-review-form .lrf-rules-list { margin: 0 0 .6rem; padding-inline-start: 1.25rem; }
.lindom-review-form .lrf-rules-list li { margin: .15rem 0; }
.lindom-review-form .lrf-rules-positive { margin-bottom: 0 !important; font-weight: 600; }

.lindom-review-form .lrf { display: grid; gap: 1.15rem; }
.lindom-review-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.lindom-review-form legend,
.lindom-review-form .glsr-label { display: block; margin-bottom: .4rem; padding: 0; font-weight: 600; }
.lindom-review-form .lrf-req { color: var(--lr-accent); }
.lindom-review-form input[type="text"],
.lindom-review-form textarea {
    box-sizing: border-box;
    width: 100%;
    padding: .65rem .8rem;
    border: 1px solid var(--lr-line);
    border-radius: 8px;
    background: transparent;
    color: inherit;
    font: inherit;
    line-height: 1.5;
}
.lindom-review-form textarea { min-height: 9rem; resize: vertical; }
.lindom-review-form input:focus-visible,
.lindom-review-form textarea:focus-visible,
.lindom-review-form .lrf-submit:focus-visible { outline: 2px solid var(--lr-accent); outline-offset: 2px; }
.lindom-review-form [aria-invalid="true"] { border-color: var(--lr-error); }

/* stars: DOM order 5..1 + row-reverse = 1..5 on screen, and the fill works with ~ */
.lindom-review-form .lrf-stars { display: inline-flex; flex-direction: row-reverse; gap: .15rem; }
.lindom-review-form .lrf-star-input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lindom-review-form .lrf-star {
    cursor: pointer;
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    line-height: 1;
    color: var(--lr-line);
    transition: color .12s ease, transform .12s ease;
}
.lindom-review-form .lrf-star-input:checked ~ .lrf-star,
.lindom-review-form .lrf-stars .lrf-star:hover,
.lindom-review-form .lrf-stars .lrf-star:hover ~ .lrf-star { color: var(--lr-star); }
.lindom-review-form .lrf-star-input:focus-visible + .lrf-star { outline: 2px solid var(--lr-accent); outline-offset: 2px; border-radius: 6px; }
@media (prefers-reduced-motion: no-preference) {
    .lindom-review-form .lrf-star:hover { transform: scale(1.08); }
}

.lindom-review-form .lrf-tag-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.lindom-review-form .lrf-tag-list li { margin: 0; }
.lindom-review-form .lrf-tag-input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lindom-review-form .lrf-tag {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: .35rem .9rem;
    border: 1px solid var(--lr-line);
    border-radius: 999px;
    cursor: pointer;
    user-select: none;
}
.lindom-review-form .lrf-tag-input:checked + .lrf-tag { border-color: var(--lr-accent); background: color-mix(in srgb, var(--lr-accent) 22%, transparent); font-weight: 600; }
.lindom-review-form .lrf-tag-input:checked + .lrf-tag::before { content: "✓"; margin-inline-end: .35rem; }
.lindom-review-form .lrf-tag-input:focus-visible + .lrf-tag { outline: 2px solid var(--lr-accent); outline-offset: 2px; }
.lindom-review-form .lrf-tag-input:disabled + .lrf-tag { opacity: .45; cursor: not-allowed; }

.lindom-review-form .lrf-counter { margin: .3rem 0 0; font-size: .85em; opacity: .8; text-align: end; }
.lindom-review-form .lrf-counter.is-over { color: var(--lr-error); opacity: 1; }
.lindom-review-form .lrf-hints {
    margin-top: .5rem;
    padding: .6rem .8rem;
    border: 1px solid color-mix(in srgb, var(--lr-warn) 60%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--lr-warn) 12%, transparent);
    font-size: .92em;
}
.lindom-review-form .lrf-hints p { margin: 0 0 .25rem; }
.lindom-review-form .lrf-hints ul { margin: 0; padding-inline-start: 1.2rem; }
.lindom-review-form .lrf-hint,
.lindom-review-form .glsr-field-description { margin: .3rem 0 0; font-size: .88em; opacity: .85; }

.lindom-review-form .lrf-consent { display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: start; }
.lindom-review-form .lrf-consent input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--lr-accent); }
.lindom-review-form .lrf-consent .lrf-field-error { grid-column: 1 / -1; }

.lindom-review-form .lrf-field-error:empty { display: none; }
.lindom-review-form .lrf-field-error,
.lindom-review-form .lrf-error-summary { margin: .35rem 0 0; color: var(--lr-error); font-weight: 600; }
.lindom-review-form .lrf-message:empty { display: none; }
.lindom-review-form .lrf-message.is-error { color: var(--lr-error); font-weight: 600; }
.lindom-review-form .lrf-success {
    padding: 1rem 1.15rem;
    border: 1px solid color-mix(in srgb, var(--lr-ok) 60%, transparent);
    border-radius: 10px;
    background: color-mix(in srgb, var(--lr-ok) 12%, transparent);
    font-weight: 600;
}
.lindom-review-form .lrf-submit { min-height: 48px; padding-inline: 1.5rem; cursor: pointer; }
.lindom-review-form .lrf-submit[aria-busy="true"] { opacity: .7; cursor: progress; }
.lindom-review-form .lrf-hp { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.lindom-review-form .lrf-sr {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.lindom-review-form .lrf-closed { font-weight: 600; }

@media (max-width: 480px) {
    .lindom-review-form .lrf-star { font-size: 1.75rem; min-width: 40px; }
    .lindom-review-form .lrf-rules { padding: .85rem .9rem; }
    .lindom-review-form .lrf-submit { width: 100%; }
}

/* ---- highlights and policy under the lists ---- */
.lindom-review-highlights { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-top: .75rem; }
.lindom-review-highlights-title { font-size: .9em; opacity: .85; }
.lindom-review-highlights .lindom-review-tags { margin: 0; }
.lindom-review-policy { margin: 1.25rem 0 0; font-size: .85em; opacity: .75; max-width: 60rem; }

/* ---- "write it later" page (/k/CODE) – standalone, no theme ---- */
body.lr-continue { margin: 0; min-height: 100vh; background: var(--lr-brand-bg); color: var(--lr-brand-text); font: 400 17px/1.6 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.lr-c-main { max-width: 40rem; margin: 0 auto; padding: 20px 16px 48px; }
.lr-c-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.lr-c-brand { font: 400 28px/1 Georgia, "Times New Roman", serif; color: var(--lr-brand-accent); }
.lr-c-lang select { min-height: 44px; border-radius: 10px; background: var(--lr-brand-surface); color: inherit; border: 1px solid var(--lr-brand-border); padding: 0 10px; font: inherit; }
.lr-c-title { font-size: 1.6rem; line-height: 1.25; margin: 0 0 12px; }
.lr-c-given { padding: 12px 14px; border-radius: 12px; background: var(--lr-brand-surface); border: 1px solid var(--lr-brand-border); margin-bottom: 20px; }
.lr-c-who { margin: 0; font-weight: 600; }
.lr-c-stars { color: var(--lr-brand-accent); letter-spacing: 2px; margin-inline-start: .5rem; }
.lr-c-off { color: var(--lr-brand-border); }
.lr-c-note { margin: 8px 0 0; font-size: .9em; opacity: .8; }
.lr-c-codeform { display: grid; gap: 10px; max-width: 22rem; }
.lr-c-codeform input { min-height: 56px; font: 700 26px/1 ui-monospace, Consolas, monospace; letter-spacing: 4px; text-transform: uppercase; text-align: center; border-radius: 10px; border: 1px solid var(--lr-brand-border); background: var(--lr-brand-surface); color: inherit; }
body.lr-continue .lrf-submit { min-height: 52px; border-radius: 999px; border: 0; background: var(--lr-brand-accent); color: var(--lr-brand-ink); font-weight: 700; font-size: 1.05rem; padding: 0 28px; cursor: pointer; }
body.lr-continue .lindom-review-form { --lr-accent: var(--lr-brand-accent); }
.lr-continue .lrf-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
body.lr-continue { --lr-line: var(--lr-brand-border); --lr-soft: var(--lr-brand-surface); --lr-accent: var(--lr-brand-accent); --lr-star: var(--lr-brand-accent); --lr-warn: var(--lr-brand-accent); --lr-error: #ff8a8a; --lr-ok: #7fd6a4; }
body.lr-continue .lrf-success { color: var(--lr-ok); }
.lindom-review-form [hidden] { display: none !important; }
.lindom-review-form .lrf-reasons { padding: .85rem 1rem; border: 1px solid color-mix(in srgb, var(--lr-warn) 45%, transparent); border-radius: 10px; background: color-mix(in srgb, var(--lr-warn) 8%, transparent); }
.lindom-review-form .lrf-reasons legend { float: left; width: 100%; margin-bottom: .25rem; }
.lindom-review-form .lrf-reasons .lrf-hint { clear: both; margin: 0 0 .6rem; }
.lr-c-save { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: -8px 0 20px; }
.lr-c-savebtn { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--lr-brand-border-strong); background: transparent; color: inherit; font: inherit; font-weight: 600; cursor: pointer; }
.lr-c-savebtn:focus-visible { outline: 2px solid var(--lr-brand-accent); outline-offset: 2px; }
/* 0.4: privacy-notice link next to the consent box, shadow-mode preview note, /k/ footer */
.lindom-review-form .lrf-consent .lrf-privacy { grid-column: 2; font-size: .9em; text-decoration: underline; }
.lindom-review-form .lrf-preview-note { padding: .6rem .8rem; border: 1px dashed currentColor; border-radius: 8px; font-size: .9em; }
.lr-c-foot { margin-top: 32px; font-size: .9em; opacity: .85; }
.lr-c-foot a { color: inherit; }

.lindom-review-form .lrf-submit{background:var(--lr-brand-accent);color:var(--lr-brand-ink);border:1px solid var(--lr-brand-accent);border-radius:10px}
