/* ===== Modul Formuláře =====
   Veřejný formulář (.aav-frm) staví na Bootstrap form-* třídách a proměnných modulu
   (--aav-mod-*), takže ho skin přebarví. Editor (.frm-*) žije v administraci. */

/* ---- veřejný formulář ---- */
.aav-frm-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.aav-frm-fields { display: flex; flex-wrap: wrap; gap: 1rem 1.25rem; }
.aav-frm-field { flex: 1 1 100%; min-width: 0; }
.aav-frm-half { flex: 1 1 calc(50% - .75rem); }
@media (max-width: 575.98px) { .aav-frm-half { flex-basis: 100%; } }
.aav-frm-heading { flex: 1 1 100%; margin-top: .5rem; }
.aav-frm-heading-text p:last-child { margin-bottom: 0; }
.aav-frm-required { color: var(--bs-danger, #dc3545); margin-left: .15rem; }
.aav-frm-error { color: var(--bs-danger, #dc3545); font-size: .875rem; margin-top: .25rem; }
.aav-frm-invalid .form-control, .aav-frm-invalid .form-select { border-color: var(--bs-danger, #dc3545); }
.aav-frm-field fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.aav-frm-field legend { font-size: 1rem; float: none; width: auto; margin-bottom: .5rem; }
.aav-frm-other { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.aav-frm-other-text { max-width: 18rem; flex: 1 1 12rem; }
/* Dropdown s možností „jiné": textové upřesnění se ukáže až po jejím zvolení.
   Bez podpory :has() (nebo úplně bez CSS) zůstane pole vidět vždy — formulář je použitelný tak jako tak. */
@supports selector(:has(*)) {
    .aav-frm-field:has(> select) .aav-frm-select-other { display: none; }
    .aav-frm-field:has(> select option[value="__other"]:checked) .aav-frm-select-other { display: block; }
}
.aav-frm-actions { margin-top: 1.25rem; }
.aav-frm-intro p:last-child { margin-bottom: 0; }
.aav-frm-intro { margin-bottom: 1rem; }
.aav-frm-thanks p:last-child, .aav-frm-closed p:last-child { margin-bottom: 0; }

.aav-frm-scale { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.aav-frm-scale-label { font-size: .875rem; color: var(--bs-secondary-color); margin: 0 .35rem; }
.aav-frm-scale-item { position: relative; }
.aav-frm-scale-item input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.aav-frm-scale-item label {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 2.4rem; height: 2.4rem; padding: 0 .5rem; border-radius: 999px;
    border: 1px solid var(--bs-border-color); cursor: pointer; user-select: none;
}
.aav-frm-scale-item input:checked + label { background: var(--bs-primary, #0d6efd); color: #fff; border-color: transparent; }
.aav-frm-scale-item input:focus-visible + label { outline: 2px solid var(--bs-primary, #0d6efd); outline-offset: 2px; }

/* ---- editor formuláře (administrace) ---- */
.frm-designer-name { flex: 1 1 18rem; min-width: 12rem; font-weight: 600; }
.frm-designer-status { flex: 0 1 15rem; }
.frm-fields { display: flex; flex-direction: column; gap: .5rem; }
.frm-field-card {
    background: #fff; border: 1px solid var(--aav-adm-border, #eff2f5); border-radius: .6rem;
    transition: box-shadow .12s, border-color .12s;
}
.frm-field-card.frm-field-open { box-shadow: var(--aav-adm-shadow, 0 0 30px rgba(76, 87, 125, .08)); border-color: color-mix(in srgb, var(--aav-adm-accent, #1b6ec2) 40%, #fff); }
.frm-field-card.frm-field-over { border-top: 3px solid var(--aav-adm-accent, #1b6ec2); }
.frm-field-card.frm-field-dragging { opacity: .45; }
.frm-field-head { display: flex; align-items: center; gap: .6rem; padding: .55rem .75rem; cursor: pointer; }
.frm-field-grip { color: var(--aav-adm-muted, #99a1b7); cursor: grab; letter-spacing: -2px; font-size: 1.05rem; line-height: 1; }
.frm-field-label { flex: 1 1 auto; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.frm-required { color: #f8285a; margin-left: .15rem; }
.frm-field-tools { display: flex; gap: .25rem; }
.frm-field-body { border-top: 1px solid var(--aav-adm-border, #eff2f5); padding: .75rem; cursor: default; }
.frm-field-footer { display: flex; align-items: center; gap: 1rem; margin-top: .75rem; }
.frm-option-row { display: flex; align-items: center; gap: .4rem; margin-bottom: .3rem; }
.frm-option-marker { width: 1.5rem; text-align: center; color: var(--aav-adm-muted, #99a1b7); font-size: .9rem; }
.frm-other-label { max-width: 12rem; }
.frm-palette { position: sticky; top: calc(var(--aav-adm-topbar-h, 64px) + 1rem); }
.frm-palette-item {
    display: flex; align-items: center; gap: .6rem; width: 100%; text-align: left;
    background: none; border: 0; border-radius: .5rem; padding: .45rem .6rem; color: inherit;
}
.frm-palette-item:hover { background: var(--aav-adm-bg, #f4f6f9); }
.frm-palette-icon { color: var(--aav-adm-accent, #1b6ec2); display: inline-flex; }
.frm-palette-text { display: flex; flex-direction: column; line-height: 1.15; }
.frm-palette-name { font-weight: 600; font-size: .9rem; }
.frm-palette-hint { font-size: .75rem; color: var(--aav-adm-muted, #99a1b7); }

/* ---- odpovědi, souhrn ---- */
.frm-preview { max-width: 28rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.frm-answers { display: grid; grid-template-columns: minmax(8rem, 14rem) 1fr; gap: .5rem 1rem; margin: 0; }
.frm-answers dt { color: var(--aav-adm-muted, #99a1b7); font-weight: 500; }
.frm-answers dd { margin: 0; }
.frm-answer-text { white-space: pre-wrap; }
@media (max-width: 575.98px) { .frm-answers { grid-template-columns: 1fr; } .frm-answers dd { margin-bottom: .5rem; } }

.frm-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; }
.frm-stat .card-body { padding: .85rem 1rem; }
.frm-stat-value { font-size: 1.4rem; font-weight: 700; line-height: 1.1; }
.frm-stat-label { font-size: .8rem; color: var(--aav-adm-muted, #99a1b7); }
.frm-scale-summary { display: flex; align-items: baseline; gap: .5rem; margin-bottom: .75rem; }
.frm-numbers { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.frm-numbers > div { display: flex; flex-direction: column; }
.frm-bars { display: flex; flex-direction: column; gap: .4rem; }
.frm-bar-row { display: grid; grid-template-columns: minmax(8rem, 16rem) 1fr 6rem; align-items: center; gap: .75rem; }
.frm-bar-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }
.frm-bar-track { height: .9rem; background: var(--aav-adm-bg, #f4f6f9); border-radius: 999px; overflow: hidden; }
.frm-bar-fill { height: 100%; background: var(--aav-adm-accent, #1b6ec2); border-radius: 999px; min-width: 0; }
.frm-bar-value { font-size: .9rem; text-align: right; white-space: nowrap; }
.frm-recent { padding-left: 1.1rem; margin: 0; }
.frm-recent li { margin-bottom: .2rem; }
@media (max-width: 575.98px) { .frm-bar-row { grid-template-columns: 1fr 4.5rem; } .frm-bar-track { grid-column: 1 / -1; } }
