/* Component layouts override the low-specificity defaults in app.css. */
.gm-engagement-page {
    padding-block: 32px 56px;
}

.gm-evaluation-width {
    max-width: 880px;
}

.gm-engagement-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr));
    gap: 18px;
    margin-block: 20px;
}

.gm-engagement-card {
    background: #fff;
    border: 1px solid #dce6f3;
    border-radius: 18px;
    padding: 24px;
    margin-block: 18px;
    min-width: 0;
    overflow-wrap: anywhere;
}

.gm-engagement-card h2 {
    font-size: 1.2rem;
    margin: 0 0 12px;
}

.gm-engagement-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-block: 16px;
    flex-direction: row;
}

.gm-engagement-actions form {
    margin: 0;
}

.gm-engagement-card .gm-form-grid-2>*,.gm-evaluation-question {
    min-width: 0;
}

.gm-engagement-card label {
    overflow-wrap: anywhere;
}

.gm-engagement-card input:not([type=checkbox]):not([type=radio]),.gm-engagement-card select,.gm-engagement-card textarea {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

.gm-engagement-card input[type=checkbox],.gm-engagement-card input[type=radio] {
    width: auto;
    flex: 0 0 auto;
}

.gm-evaluation-question {
    border: 1px solid #dce6f3;
    border-radius: 14px;
    padding: 20px;
    margin-block: 22px;
    background: #fff;
}

.gm-evaluation-question legend {
    padding: 0 8px;
    font-weight: 600;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.gm-evaluation-question legend small {
    display: block;
    color: #526582;
    font-size: .8rem;
    margin-bottom: 6px;
}

.gm-evaluation-scale {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gm-evaluation-scale label {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: center;
    border: 1px solid #bacde3;
    border-radius: 10px;
    padding: 10px;
    min-width: 48px;
    min-height: 44px;
    cursor: pointer;
}

.gm-evaluation-scale label:has(:checked) {
    background: #e7f1ff;
    border-color: #1768de;
}

.gm-evaluation-options {
    display: grid;
    gap: 8px;
}

.gm-evaluation-options label, .gm-form .gm-evaluation-options label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    justify-content: flex-start;
}

.gm-evaluation-error {
    color: #a4262c;
}

.gm-preserve-lines {
    white-space: pre-line;
}

.gm-builder-question {
    border: 1px solid #dce6f3;
    border-radius: 14px;
    padding: 18px;
    margin-block: 18px;
    background: #f8fbff;
}

.gm-builder-question label {
    display: grid;
    gap: 6px;
    margin-block: 12px;
}

.gm-builder-question .gm-check-row {
    display: flex;
}

.gm-builder-condition {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr auto;
    gap: 8px;
    align-items: end;
    margin-block: 10px;
}

.gm-builder-aspect {
    display: flex;
    gap: 12px;
    align-items: end;
    margin-block: 12px;
}

.gm-builder-aspect label {
    flex: 1;
    min-width: 0;
    display: grid;
    gap: 6px;
    margin-block: 0;
}

.gm-builder-question button,.gm-builder-aspect button {
    min-height: 44px;
}

.gm-result-bars>div {
    display: grid;
    grid-template-columns: minmax(60px,1fr) minmax(70px,2fr) 40px;
    gap: 12px;
    margin-block: 12px;
    align-items: center;
}

.gm-result-bars meter {
    width: 100%;
    height: 24px;
}

.gm-preview-surface {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-inline: auto;
}

.gm-site-popup {
    border: 0;
    border-radius: 22px;
    padding: 28px;
    max-width: min(640px,calc(100vw - 32px));
    width: calc(100vw - 32px);
    max-height: calc(100dvh - 32px);
    overflow: auto;
    color: #173054;
    box-shadow: 0 20px 80px #0004;
}

.gm-site-popup::backdrop {
    background: rgb(13 28 53 / .55);
}

.gm-site-popup h2 {
    font-size: 1.5rem;
    padding-right: 36px;
}

.gm-site-popup-close {
    position: absolute;
    right: 12px;
    top: 12px;
    width: 44px;
    height: 44px;
    border: 1px solid #dce6f3;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    font-size: 24px;
}

.gm-popup-image {
    display: block;
    width: 100%;
    max-height: 320px;
    object-fit: contain;
    border-radius: 12px;
    margin-bottom: 18px;
}

.gm-popup-body {
    overflow-wrap: anywhere;
    margin-block: 16px;
}

.gm-popup-body p {
    margin-block: 12px;
}

.gm-popup-body ul,.gm-popup-body ol {
    padding-left: 24px;
}

.gm-site-popup a {
    overflow-wrap: anywhere;
}

.gm-site-popup :focus-visible {
    outline: 3px solid #1768de;
    outline-offset: 3px;
}

.gm-evaluation-question[hidden] {
    display: none !important;
}

.gm-form .gm-evaluation-question input[type=radio],.gm-form .gm-evaluation-question input[type=checkbox] {
    width: 18px;
    height: 18px;
    min-height: 18px;
    max-width: 18px;
    flex: 0 0 18px;
    padding: 0;
    margin: 0;
    appearance: auto;
}

[data-builder-content] {
    display: block;
}

.gm-engagement-grid > .gm-engagement-card {
    margin-block: 0;
}

.gm-engagement-card > .gm-btn {
    margin-top: 16px;
}

.gm-engagement-card :is(.gm-form-grid-2,.gm-form-grid-3) {
    gap: 20px;
    align-items: start;
}

.gm-engagement-card :is(.gm-form-grid-2,.gm-form-grid-3) > label,
.gm-form.gm-engagement-card > label:not(.gm-check-row),
[data-builder-content] > label {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.gm-engagement-hero {
    flex-wrap: wrap;
    gap: 24px;
}

.gm-engagement-hero-copy {
    flex: 1 1 360px;
    min-width: 0;
}

.gm-engagement-hero-copy h1 {
    margin: 0 0 12px;
}

.gm-engagement-hero-copy p {
    margin: 0;
    max-width: 65ch;
    line-height: 1.65;
}

.gm-engagement-hero > .gm-btn {
    flex: 0 0 auto;
    max-width: 100%;
    white-space: normal;
}

[data-builder-content] > h2 {
    margin-block: 24px 12px;
}

[data-builder-content] > .gm-btn {
    margin-block: 8px;
    max-width: 100%;
    white-space: normal;
}

.gm-builder-condition label {
    margin-block: 0;
}

.gm-builder-aspect > .gm-btn, .gm-builder-condition > .gm-btn {
    flex-shrink: 0;
}

@media (max-width:600px) {
    .gm-engagement-card {
        padding: 16px;
    }
    .gm-evaluation-question {
        padding: 14px;
    }
    .gm-builder-condition {
        grid-template-columns: 1fr;
    }
    .gm-builder-aspect {
        flex-direction: column;
        align-items: stretch;
    }
    .gm-builder-aspect>.gm-btn {
        align-self: flex-start;
    }
    .gm-builder-condition>.gm-btn {
        justify-self: start;
    }
    .gm-site-popup {
        padding: 22px 18px;
    }
    .gm-engagement-actions .gm-btn {
        white-space: normal;
    }
    .gm-builder-question {
        padding: 12px;
    }
}

/* Evaluation surfaces share a readable width; preview follows its own container. */
body.gm-body .gm-container.gm-evaluation-width { width:calc(100% - 48px); max-width:880px; }
.gm-evaluation-ui { container:gm-evaluation / inline-size; min-width:0; font-size:16px; line-height:1.6; }
.gm-evaluation-heading { margin-bottom:32px; overflow-wrap:anywhere; }
.gm-evaluation-heading > a { display:inline-flex; align-items:center; min-height:44px; margin-bottom:12px; }
.gm-evaluation-heading :is(h1,h2) { font-size:clamp(26px,3vw,34px); line-height:1.25; margin:0; }
body.gm-body .gm-main .gm-evaluation-ui form.gm-form.gm-evaluation-form,
body.gm-body .gm-admin-main .gm-evaluation-ui form.gm-form.gm-evaluation-form,
.gm-evaluation-ui form.gm-form.gm-evaluation-form {
    display:block; margin:0; padding:28px; border:1px solid #dce6f3; border-radius:20px;
    background:#fff; box-shadow:0 8px 28px #123d7a08; min-width:0;
}
.gm-evaluation-ui [hidden],.gm-evaluation-admin [hidden] { display:none !important; }
.gm-evaluation-ui .gm-evaluation-step { margin:0 0 32px; min-width:0; }
.gm-evaluation-ui .gm-evaluation-step > h2 { font-size:22px; line-height:1.4; margin:0 0 12px; overflow-wrap:anywhere; scroll-margin-top:110px; }
.gm-evaluation-ui .gm-evaluation-step > h2:focus { outline:none; }
.gm-evaluation-ui .gm-evaluation-intro p { font-size:16px; line-height:1.7; margin:0 0 16px; white-space:pre-line; overflow-wrap:anywhere; }
.gm-evaluation-ui .gm-evaluation-note { padding:16px; border-radius:12px; background:#eff6ff; border:1px solid #dce6f3; margin:24px 0 0; }
.gm-evaluation-ui .gm-evaluation-section-hint { font-size:13px; color:#526582; margin:0 0 24px; }
.gm-evaluation-ui .gm-evaluation-question { border:0; border-radius:0; margin:24px 0 0; padding:0; background:transparent; min-width:0; }
.gm-evaluation-ui .gm-evaluation-question legend { width:100%; padding:0; margin-bottom:8px; font-size:16px; line-height:1.6; color:#173054; }
.gm-evaluation-ui .gm-evaluation-question :is(input[type=text],textarea) { width:100%; max-width:100%; min-height:48px; font-size:16px; line-height:1.6; padding:12px; border-radius:12px; }
.gm-evaluation-ui .gm-evaluation-question textarea { min-height:128px; resize:vertical; }
.gm-evaluation-ui .gm-evaluation-scale { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; width:100%; max-width:640px; }
.gm-evaluation-ui .gm-evaluation-scale[data-scale-max="10"] { grid-template-columns:repeat(10,minmax(0,1fr)); }
.gm-evaluation-ui .gm-evaluation-scale label { position:relative; display:flex; min-width:0; min-height:48px; padding:8px 4px; margin:0; font-size:16px; line-height:1.5; }
.gm-evaluation-ui .gm-evaluation-scale input[type=radio] { position:absolute; opacity:0; width:1px; height:1px; min-height:0; max-width:1px; }
.gm-evaluation-ui .gm-evaluation-scale label:has(:focus-visible),.gm-evaluation-ui .gm-evaluation-options label:has(:focus-visible) { outline:3px solid #2675ff; outline-offset:2px; }
.gm-evaluation-ui .gm-evaluation-scale label:has(:checked) { color:#064bb7; background:#e7f1ff; border:2px solid #1768de; font-weight:700; }
.gm-evaluation-ui .gm-evaluation-options { gap:8px; }
.gm-evaluation-ui .gm-form .gm-evaluation-options label { display:flex; align-items:flex-start; min-width:0; min-height:48px; padding:12px; margin:0; border:1px solid #dce6f3; border-radius:12px; font-size:16px; line-height:1.5; cursor:pointer; }
.gm-evaluation-ui .gm-evaluation-options label input { margin-top:3px; }
.gm-evaluation-ui .gm-evaluation-options label span { min-width:0; overflow-wrap:anywhere; }
.gm-evaluation-ui .gm-evaluation-options label:has(:checked) { background:#eff6ff; border-color:#1768de; }
.gm-evaluation-ui .gm-form-hint-muted { font-size:13px; line-height:1.6; margin:8px 0 0; }
.gm-evaluation-ui .gm-evaluation-clear { display:inline-flex; align-items:center; width:auto; min-height:44px; padding:4px 0; margin-top:4px; border:0; background:none; color:#0754c9; font:inherit; font-size:14px; text-decoration:underline; cursor:pointer; }
.gm-evaluation-ui .gm-evaluation-error { margin:8px 0 0; font-size:14px; }
.gm-evaluation-progress { margin:0 0 28px; padding-bottom:20px; border-bottom:1px solid #e7edf5; }
.gm-evaluation-progress p { margin:0 0 12px; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.gm-evaluation-progress progress { display:block; width:100%; height:8px; accent-color:#0754e9; border:0; border-radius:8px; overflow:hidden; background:#e9eff7; }
.gm-evaluation-progress progress::-webkit-progress-bar { background:#e9eff7; }
.gm-evaluation-progress progress::-webkit-progress-value { background:#0754e9; }
.gm-evaluation-navigation { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; border-top:1px solid #e7edf5; padding-top:24px; margin-top:24px; }
.gm-evaluation-navigation [data-step-next] { margin-left:auto; }
.gm-evaluation-ui .gm-btn { width:auto; min-height:48px; padding:10px 20px; font-size:15px; white-space:normal; }
.gm-evaluation-ui .gm-btn.gm-btn-outline { background:#f7fbff; color:#0754b7; border-color:#cfe0ff; box-shadow:none; }
@media (hover:hover) { .gm-evaluation-ui .gm-btn.gm-btn-outline:hover { background:#e7f1ff; } }
.gm-evaluation-ui .gm-evaluation-submit { margin-top:20px; }
.gm-evaluation-review-list { padding:0; list-style:none; margin:24px 0; }
.gm-evaluation-review-list li { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid #e7edf5; }
.gm-evaluation-review-list li > div { min-width:0; overflow-wrap:anywhere; }
.gm-evaluation-review-list span { display:block; font-size:14px; color:#526582; margin-top:4px; }
.gm-evaluation-ui [data-gm-turnstile] { min-width:0; margin-top:24px; }
.gm-evaluation-ui [data-gm-turnstile][data-widget-size=normal] { min-height:65px; }
.gm-evaluation-ui [data-gm-turnstile][data-widget-size=compact] { min-height:140px; }
.gm-evaluation-ui [data-gm-turnstile-status] { font-size:13px; line-height:1.6; margin-top:12px; }
.gm-evaluation-admin { min-width:0; line-height:1.6; }
.gm-evaluation-admin form.gm-evaluation-builder-form { padding:0; border:0; background:none; box-shadow:none; }
.gm-evaluation-admin .gm-builder-section :is(.gm-form-grid-2,.gm-form-grid-3) > label { display:grid; gap:8px; min-width:0; }
.gm-evaluation-admin .gm-builder-section :is(input,select,textarea) { max-width:100%; min-width:0; }
.gm-evaluation-admin > :is(h1,h2) { margin:0 0 12px; overflow-wrap:anywhere; }
.gm-evaluation-admin > p { margin:0 0 24px; }
.gm-evaluation-admin .gm-preview-surface { max-width:min(100%,880px); margin-block:32px; }
.gm-evaluation-admin [data-preview-width][aria-pressed=true] { color:#fff; background:#0754e9; border-color:#0754e9; }
.gm-evaluation-list .gm-engagement-card { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:24px; }
.gm-evaluation-list .gm-engagement-card > :is(h2,p) { margin:0; }
.gm-evaluation-list .gm-engagement-card > :is(.gm-btn,.gm-engagement-actions) { margin:8px 0 0; }
.gm-evaluation-list .gm-engagement-card > .gm-engagement-actions { margin-top:auto; padding-top:8px; }
.gm-evaluation-list .gm-engagement-card > .gm-btn { margin-top:auto; }
.gm-evaluation-badge { display:inline-flex; padding:4px 10px; border-radius:999px; background:#edf4ff; color:#0754b7; font-size:13px; font-weight:600; }
.gm-evaluation-admin .gm-builder-section { padding:24px; border:1px solid #dce6f3; border-radius:16px; background:#fff; margin:0 0 24px; min-width:0; }
.gm-evaluation-admin .gm-builder-section > h2 { margin:0 0 16px; font-size:20px; }
.gm-evaluation-admin .gm-builder-section > label { display:grid; gap:8px; margin-block:16px; }
.gm-evaluation-admin .gm-builder-question { padding:0; margin:12px 0; background:#fff; overflow-wrap:anywhere; }
.gm-evaluation-admin .gm-builder-question > summary { display:flex; align-items:center; gap:12px; padding:16px; cursor:pointer; min-height:48px; }
.gm-evaluation-admin .gm-builder-question > summary::before { content:'›'; font-size:24px; flex:0 0 12px; }
.gm-evaluation-admin .gm-builder-question[open] > summary::before { transform:rotate(90deg); }
.gm-evaluation-admin .gm-builder-question > summary > span { min-width:0; }
.gm-evaluation-admin .gm-builder-question summary :is(strong,small) { display:block; }
.gm-evaluation-admin .gm-builder-question summary small { margin-top:4px; font-size:13px; color:#526582; }
.gm-evaluation-admin .gm-builder-question summary::-webkit-details-marker { display:none; }
.gm-evaluation-admin .gm-builder-question-body { border-top:1px solid #e7edf5; padding:20px; min-width:0; }
.gm-evaluation-admin .gm-builder-question-body h4 { margin:24px 0 12px; }
.gm-evaluation-admin .gm-builder-condition { grid-template-columns:minmax(0,1fr) minmax(0,.65fr) minmax(0,1fr); padding:16px; border:1px solid #dce6f3; border-radius:12px; }
.gm-evaluation-admin .gm-builder-condition > button { grid-column:1 / -1; justify-self:start; }
.gm-evaluation-admin .gm-builder-condition select { width:100%; }
.gm-evaluation-admin .gm-builder-actions { padding-top:16px; border-top:1px solid #e7edf5; }
.gm-evaluation-admin .gm-evaluation-lifecycle { border-top:1px solid #dce6f3; margin-top:32px; padding-top:24px; }
.gm-evaluation-admin .gm-evaluation-lifecycle > summary { cursor:pointer; padding:12px 0; font-weight:600; }
.gm-evaluation-admin .gm-btn-danger-outline { color:#a4262c; border-color:#e9b8bd; background:#fff; }
.gm-evaluation-admin .gm-evaluation-result-group { margin-top:32px; }
.gm-evaluation-admin .gm-evaluation-result-group > h2 { margin-bottom:16px; }
.gm-evaluation-admin .gm-evaluation-answer { padding:20px 0; border-top:1px solid #e7edf5; }
.gm-evaluation-admin .gm-evaluation-answer:first-of-type { border-top:0; padding-top:0; }
.gm-evaluation-admin .gm-evaluation-answer > h3 { margin:0 0 8px; font-size:16px; line-height:1.6; }
.gm-evaluation-admin .gm-evaluation-answer > p { margin:0 0 8px; overflow-wrap:anywhere; }
.gm-evaluation-admin .gm-evaluation-muted { color:#526582; font-size:14px; }
.gm-evaluation-admin .gm-evaluation-score { display:block; font-size:30px; line-height:1.3; margin:12px 0 8px; color:#123d7a; }
@container gm-evaluation (max-width:640px) {
    .gm-evaluation-ui .gm-evaluation-scale[data-scale-max="10"] { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@container gm-evaluation (max-width:600px) {
    body.gm-body .gm-main .gm-evaluation-ui form.gm-form.gm-evaluation-form,
    body.gm-body .gm-admin-main .gm-evaluation-ui form.gm-form.gm-evaluation-form,
    .gm-evaluation-ui form.gm-form.gm-evaluation-form { padding:16px; border-radius:16px; }
    .gm-evaluation-heading :is(h1,h2) { font-size:26px; }
    .gm-evaluation-ui .gm-evaluation-step > h2 { font-size:20px; }
    .gm-evaluation-review-list li { flex-wrap:wrap; }
    .gm-evaluation-navigation .gm-btn { flex:1 1 120px; }
    .gm-evaluation-ui .gm-evaluation-submit { width:100%; }
}
@media (max-width:767px) {
    body.gm-body .gm-container.gm-evaluation-width { width:calc(100% - 32px); }
    .gm-evaluation-admin .gm-builder-section { padding:16px; }
    .gm-evaluation-admin .gm-builder-question-body { padding:16px; }
    .gm-evaluation-admin .gm-builder-condition { grid-template-columns:minmax(0,1fr); padding:12px; }
    .gm-evaluation-admin .gm-result-bars > div { grid-template-columns:minmax(0,1fr) minmax(50px,1fr) 32px; gap:8px; }
    .gm-evaluation-list .gm-engagement-card { padding:20px; }
}
