:root{
  --haku-primary:#032e5b;
  --haku-primary-dark:#021d3f;
  --haku-bg:#f8f9fa;
  --haku-muted:#666;
  --haku-border:#e0e0e0;
  --haku-error:#dc3545;
  --haku-success-bg:#d4edda;
  --haku-success-color:#155724;
}

/* Simplified Hakuvahti styles — colors centralized in variables above. */

/* Buttons */
.acf-analyzer-buttons{display:flex;gap:10px;flex-wrap:wrap}
.acf-hakuvahti-save,
.hakuvahti-submit,
.hakuvahti-run-btn,
.hakuvahti-open-popup{background:var(--haku-primary);color:#fff;border:none;padding:.6rem 1.2rem;cursor:pointer;font-weight:600}
.acf-hakuvahti-save:hover,.hakuvahti-submit:hover,.hakuvahti-run-btn:hover,.hakuvahti-open-popup:hover{background:var(--haku-primary-dark)}
.hakuvahti-submit:disabled,.hakuvahti-run-btn:disabled{background:#ccc;cursor:not-allowed}

/* Page layout */
.hakuvahti-page{max-width:800px}
.hakuvahti-description{color:var(--haku-muted);margin-bottom:1.25rem}

/* Cards */
.hakuvahti-list{display:flex;flex-direction:column;gap:1.25rem}
.hakuvahti-card{background:#fff;border:1px solid var(--haku-border);border-radius:.5rem;overflow:hidden}
.hakuvahti-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--haku-bg);border-bottom:1px solid var(--haku-border)}
.hakuvahti-name{margin:0;font-size:1.1rem;font-weight:600}
.hakuvahti-category{background:var(--haku-primary);color:#fff;padding:.25rem .6rem;border-radius:999px;font-size:.85rem}
.hakuvahti-card-body{padding:1rem}
.hakuvahti-criteria{margin:0 0 .625rem;color:#555}
.hakuvahti-meta{margin:0;color:#888;font-size:.85rem}
.hakuvahti-card-actions{padding:1rem;border-top:1px solid var(--haku-border);display:flex;gap:.5rem}
.hakuvahti-delete-btn{background:var(--haku-error);color:#fff;border:none;padding:.5rem 1rem;border-radius:.35rem;cursor:pointer}
.hakuvahti-delete-btn:hover{background:#c82333}

/* Results */
.hakuvahti-results{padding:1rem;background:var(--haku-bg);border-top:1px solid var(--haku-border)}
.hakuvahti-no-results{color:var(--haku-muted);font-style:italic}
.hakuvahti-results-count{color:var(--haku-primary);margin:0 0 .625rem}
.hakuvahti-results-list{margin:0;padding:0 0 0 1.25rem}
.hakuvahti-results-list a{color:var(--haku-primary);text-decoration:none}
.hakuvahti-results-list a:hover{text-decoration:underline}

/* Search builder */
.hakuvahti-search-builder{background:var(--haku-bg);padding:1rem;max-height:300px;overflow:auto}
.search-field-wrapper{padding:.75rem;margin-bottom:.625rem;background:#fff;border:1px solid var(--haku-border);border-radius:.375rem}
.search-field-label{display:block;font-weight:600;color:var(--haku-primary);margin-bottom:.5rem;font-size:.875rem}
.search-field-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem}
.search-checkbox{display:inline-flex;align-items:center;gap:.3125rem;padding:.375rem .75rem;background:#f5f5f5;border-radius:.3125rem;font-size:.8125rem;cursor:pointer}
.search-checkbox:hover{background:#e9e9e9}
.search-checkbox input[type="checkbox"]{margin:0}
.search-checkbox.selected{background:var(--haku-primary);color:#fff}
.search-field-range{display:flex;align-items:center;gap:.5rem}
.search-field-range input{width:6.25rem;padding:.5rem;border:1px solid #ccc;border-radius:.3125rem;text-align:center}
.no-options{color:var(--haku-muted);font-style:italic;text-align:center;padding:1.25rem}

/* Modal */
.hakuvahti-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center}
.hakuvahti-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.5)}
.hakuvahti-modal-dialog{position:relative;background:#fff;width:90%;max-width:500px;max-height:90vh;overflow:auto;box-shadow:0 10px 40px rgba(0,0,0,0.2);border-radius:.5rem}
.hakuvahti-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--haku-primary);color:#fff}
.hakuvahti-modal-header h3{margin:0;font-size:1.1rem;color:#fff !important}
.hakuvahti-modal-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;line-height:1}
.hakuvahti-modal-body{padding:1rem}

/* Legacy sections simplified/kept minimal for compatibility */
.hakuvahti-unrestricted-builder{background:var(--haku-bg);padding:1rem;}
.hakuvahti-add-btn{background:var(--haku-primary);color:#fff;padding:.5rem .75rem;border-radius:.375rem;border:none}

/* Responsive adjustments */
@media (max-width:600px){
  .hakuvahti-card-header{flex-direction:column;align-items:flex-start;gap:.625rem}
  .hakuvahti-card-actions{flex-direction:column}
  .hakuvahti-run-btn,.hakuvahti-delete-btn{width:100%}
}

.search-field-label {
    display: block;
    font-weight: 600;
    color: #032e5b;
    margin-bottom: 8px;
    font-size: 14px;
}

.search-field-checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Multi-select dropdown (compact) for frontend popup choices */
.search-field-dropdown {
    position: relative;
    display: inline-block;
}
.search-field-dropdown .msd-toggle {
    background: #fff;
    border: 1px solid #ccc;
    padding: 8px 10px;
    cursor: pointer;
    min-width: 180px;
    text-align: left;
    font-size: 13px;
}
.search-field-dropdown .msd-toggle.has-value {
    background: #032e5b;
    color: #fff;
}
.search-field-dropdown .msd-panel {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0 6px 18px rgba(10,10,10,0.08);
    z-index: 9999;
    padding: 8px;
    max-height: 220px;
    overflow: auto;
    min-width: 220px;
}
.search-field-dropdown .msd-options { display:flex;flex-direction:column;gap:6px;padding:4px }
.search-field-dropdown .msd-option { display:flex;align-items:center;gap:8px;padding:6px;cursor:pointer }
.search-field-dropdown .msd-option:hover { background:#f6f7f8 }
.search-field-dropdown .msd-option input { margin:0 }


.search-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    background: #f5f5f5;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.search-checkbox:hover {
    background: #e9e9e9;
}

.search-checkbox:has(input:checked) {
    background: #032e5b;
    color: #fff;
}

.search-checkbox input[type="checkbox"] {
    margin: 0;
}

.search-field-range {
    display: flex;
    align-items: center;
    gap: 8px;
}

.search-field-range input {
    width: 100px;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    text-align: center;
    font-size: 14px;
}

.search-field-range input:focus {
    border-color: #032e5b;
    outline: none;
    box-shadow: 0 0 0 2px rgba(3,46,91,0.1);
}

.search-field-range .range-separator {
    color: #666;
    font-weight: 500;
}

.no-options {
    color: #666;
    font-style: italic;
    text-align: center;
    padding: 20px;
}

/* ==========================================================================
   Legacy Unrestricted Search Builder (deprecated, kept for backwards compat)
   ========================================================================== */

.hakuvahti-unrestricted-builder {
    background: #f8f9fa !important;
    padding: 20px !important;
    text-align: left !important;
}

.hakuvahti-add-criterion {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed #ddd;
    display: flex;
    gap: 10px;
    align-items: center;
}

#unrestricted-field-select {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #ccc;
    font-size: 14px;
    background: #fff;
}

.hakuvahti-add-btn {
    background: #032e5b !important;
    color: #fff !important;
    border: none !important;
    padding: 10px 18px !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    font-weight: 500 !important;
    font-size: 14px !important;
}

.hakuvahti-add-btn:hover {
    background: #021d3f !important;
}

/* Criterion rows */
.hakuvahti-criterion-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    margin-bottom: 12px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    flex-wrap: wrap;
}

.criterion-label {
    font-weight: 600;
    color: #032e5b;
    min-width: 120px;
    padding-top: 8px;
}

.criterion-range-inputs {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.criterion-range-inputs input {
    width: 100px;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    text-align: center;
    font-size: 14px;
}

.criterion-range-inputs input:focus {
    border-color: #032e5b;
    outline: none;
    box-shadow: 0 0 0 2px rgba(3,46,91,0.1);
}

.range-separator {
    color: #666;
    font-weight: 500;
}

.criterion-checkboxes {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-height: 150px;
    overflow-y: auto;
    padding: 5px;
}

.criterion-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    background: #f5f5f5;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s;
}

.criterion-checkbox:hover {
    background: #e9e9e9;
}

.criterion-checkbox input[type="checkbox"] {
    margin: 0;
}

.criterion-checkbox input[type="checkbox"]:checked + span,
.criterion-checkbox:has(input:checked) {
    background: #032e5b;
    color: #fff;
}

.criterion-remove {
    background: #dc3545 !important;
    color: #fff !important;
    border: none !important;
    width: 32px;
    height: 32px;
    border-radius: 6px !important;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    padding: 0 !important;
    flex-shrink: 0;
}

.criterion-remove:hover {
    background: #c82333 !important;
}

/* Empty state */
#unrestricted-criteria-rows:empty::before {
    content: 'Ei valittuja hakuehtoja. Lisää hakuehto alta.';
    display: block;
    color: #666;
    font-style: italic;
    padding: 20px;
    text-align: center;
    background: #fff;
    border: 1px dashed #ddd;
    border-radius: 8px;
}

/* Responsive */
@media (max-width: 600px) {
    .hakuvahti-card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .hakuvahti-card-actions {
        flex-direction: column;
    }

    .hakuvahti-run-btn,
    .hakuvahti-delete-btn {
        width: 100%;
        text-align: center;
    }

    .hakuvahti-criterion-row {
        flex-direction: column;
        align-items: stretch;
    }

    .criterion-label {
        min-width: auto;
        padding-top: 0;
        margin-bottom: 8px;
    }

    .criterion-range-inputs,
    .criterion-checkboxes {
        width: 100%;
    }

    .criterion-range-inputs input {
        flex: 1;
        width: auto;
    }

    .criterion-remove {
        align-self: flex-end;
        margin-top: 8px;
    }

    .hakuvahti-add-criterion {
        flex-direction: column;
    }

    #unrestricted-field-select,
    .hakuvahti-add-btn {
        width: 100%;
    }
}
