/* Shared cabinet form primitives and interaction states. */
.form-panel{max-width:920px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid label:not(.checkbox):not(.toggle-option),.form-grid fieldset{display:grid;gap:7px}
.form-grid input,.form-stack input{width:100%;border:1px solid transparent;border-radius:var(--radius-control);background:var(--input);color:var(--ink);padding:10px 12px;outline:none}
.form-grid input:focus,.form-stack input:focus{border-color:var(--hairline);box-shadow:var(--focus-ring-neutral)}
.field-full{grid-column:1/-1}

/* Canonical on/off control used by settings-style forms. */
.toggle-option{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:12px 14px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--surface-alt);cursor:pointer}
.toggle-copy{display:grid;gap:3px;min-width:0}
.toggle-copy strong{font-size:13px;font-weight:600;color:var(--ink)}
.toggle-copy small,.field small{font-size:12px;color:var(--muted)}
.toggle-copy small{line-height:1.35}
.toggle-option input.toggle-input{position:absolute;width:1px;height:1px;min-height:0;margin:0;padding:0;opacity:0;pointer-events:none}
.toggle-switch{position:relative;display:block;width:42px;height:24px;flex:0 0 42px;border:1px solid var(--hairline);border-radius:999px;background:var(--input);transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}
.toggle-switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .16s ease,background .16s ease}
.toggle-input:checked+.toggle-switch{border-color:var(--accent-action-border);background:var(--accent-action-surface)}
.toggle-input:checked+.toggle-switch::after{transform:translateX(18px);background:var(--accent-action-fg)}
.toggle-input:focus-visible+.toggle-switch{box-shadow:var(--focus-ring-neutral)}
.toggle-option:hover{border-color:color-mix(in srgb,var(--ink) 20%,var(--hairline))}

.checkbox{display:flex;align-items:center;gap:9px}
.checkbox input{width:auto}
.form-actions{display:flex;gap:8px;align-items:center}
.form-stack{display:grid;gap:14px;margin-top:20px}
.form-stack label{display:grid;gap:7px}

.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.settings-grid--media{grid-template-columns:minmax(320px,.95fr) minmax(300px,1.05fr);align-items:start}
.settings-fields{display:grid;align-content:start;gap:16px;padding:4px 0}
.field{display:grid;gap:8px;align-content:start;align-self:start}
.form-grid label:not(.checkbox):not(.toggle-option)>span,.form-grid fieldset>legend,.form-stack label>span,.field>span,.settings-card legend{font-size:13px;font-weight:500;color:var(--ink)}
.field input,.field textarea{width:100%;border:1px solid transparent;border-radius:var(--radius-control);background:var(--input);color:var(--ink);padding:11px 13px;outline:none;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--hairline);box-shadow:var(--focus-ring-neutral)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted)}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.field select,.form-grid input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.form-stack input:not([type="checkbox"]):not([type="radio"]):not([type="file"]){height:44px;min-height:44px;line-height:20px;box-sizing:border-box}
.field select{width:100%;border:1px solid transparent;border-radius:var(--radius-control);background:var(--input);color:var(--ink);padding:0 38px 0 13px;outline:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.field select:focus{border-color:var(--hairline);box-shadow:var(--focus-ring-neutral)}
.field small{line-height:1.45}
.field-help{margin:0;color:var(--muted);line-height:1.65}

/* Canonical tour filter used by both “Мои туры” and game builder “Доступные туры”. */
.tour-filter-set{display:grid;gap:12px;min-width:0}
.tour-search-row{display:grid;grid-template-columns:1fr;min-width:0}
.tour-filter-row{display:grid;grid-template-columns:minmax(140px,.85fr) repeat(4,minmax(145px,1fr)) auto;gap:12px;align-items:end;min-width:0}
.tour-filter-row .field{min-width:0}
.tour-filter-reset{align-self:end;white-space:nowrap}
.tour-multiselect-field{position:relative;min-width:0}
.tour-multiselect{position:relative;z-index:1;min-width:0}
.tour-multiselect[open]{z-index:60}
.tour-multiselect>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:44px;min-height:44px;box-sizing:border-box;padding:0 11px 0 13px;border:1px solid transparent;border-radius:var(--radius-control);background:var(--input);color:var(--ink);cursor:pointer;list-style:none;outline:none;font-size:13px;font-weight:500}
.tour-multiselect>summary::-webkit-details-marker{display:none}
.tour-multiselect>summary:focus-visible,.tour-multiselect[open]>summary{border-color:var(--hairline);box-shadow:var(--focus-ring-neutral)}
.tour-multiselect>summary [data-tour-multiselect-summary]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tour-multiselect>summary .material-symbols-rounded{flex:0 0 auto;font-size:18px;color:var(--muted);transition:transform .14s ease}
.tour-multiselect[open]>summary .material-symbols-rounded{transform:rotate(180deg)}
.tour-multiselect-popover{position:absolute;left:0;top:calc(100% + 6px);z-index:70;display:grid;gap:2px;width:max-content;min-width:100%;max-width:min(340px,80vw);max-height:300px;overflow:auto;padding:6px;border:1px solid var(--hairline);border-radius:12px;background:var(--paper);box-shadow:0 16px 40px rgba(0,0,0,.26)}
.tour-multiselect-option{display:flex;align-items:center;gap:9px;min-width:0;padding:8px 9px;border-radius:8px;color:var(--ink);font-size:13px;cursor:pointer;white-space:nowrap}
.tour-multiselect-option:hover{background:var(--soft)}
.tour-multiselect-option input[type="checkbox"]{width:16px;height:16px;min-width:16px;min-height:16px;margin:0;padding:0;flex:0 0 16px;accent-color:var(--accent-action)}
.tour-multiselect-option span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.tour-multiselect-empty{padding:8px 9px;color:var(--muted);font-size:12px}

.media-upload-control{display:block}
.dropzone{position:relative;min-height:180px;display:grid;grid-template-columns:112px 1fr;align-items:center;gap:18px;padding:18px;border:1px dashed color-mix(in srgb,var(--muted) 50%,var(--hairline));border-radius:var(--radius-card);background:var(--surface-alt);cursor:pointer;outline:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.dropzone:hover,.dropzone:focus,.dropzone.is-dragging{border-color:var(--ink);background:var(--soft);transform:translateY(-1px)}
.dropzone img{width:112px;height:112px;object-fit:contain;border-radius:var(--radius-nested);background:var(--paper);box-shadow:inset 0 0 0 1px var(--hairline)}
.dropzone div{display:grid;gap:6px}
.dropzone strong{font-size:15px}
.dropzone span{color:var(--muted);line-height:1.5}
.dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.dropzone>.media-reset{position:absolute;top:12px;right:12px;z-index:4;width:44px;height:44px;display:block;border-radius:var(--radius-control);cursor:pointer;box-shadow:var(--shadow-card)}
.dropzone>.media-reset .material-symbols-rounded{display:grid;place-items:center;width:100%;height:100%;border:1px solid var(--hairline);border-radius:inherit;background:color-mix(in srgb,var(--paper) 92%,transparent);color:var(--muted);font-size:22px;backdrop-filter:blur(10px);transition:background .16s ease,color .16s ease,border-color .16s ease}
.dropzone>.media-reset:hover .material-symbols-rounded{background:var(--state-danger-surface);color:var(--state-danger-fg);border-color:var(--state-danger-border)}
.dropzone>.media-reset input:checked+.material-symbols-rounded{background:var(--state-danger-surface);color:var(--state-danger-fg);border-color:var(--state-danger-border)}
.media-reset input{position:absolute;opacity:0;pointer-events:none}
.settings-card{display:grid;gap:16px;margin:0;padding:18px;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--surface-alt)}
.settings-card legend{padding:0 7px}
.settings-savebar{position:fixed;right:36px;bottom:24px;z-index:30;display:flex;justify-content:flex-end;padding:0;border:0;background:transparent;box-shadow:none}
.editor-form{padding-bottom:96px}
.settings-card.is-disabled,.field.is-disabled,.checkbox.is-disabled,.settings-section--inactive .settings-section-head{opacity:var(--disabled-opacity)}
.settings-card.is-disabled,.field.is-disabled,.checkbox.is-disabled{pointer-events:none}
.field.is-locked input{cursor:not-allowed;color:var(--muted)}

.form-is-busy{cursor:progress}
.form-is-busy button[type="submit"]{opacity:.62;cursor:progress}

@media(max-width:1180px){
    .tour-filter-row{grid-template-columns:repeat(3,minmax(150px,1fr))}
    .tour-filter-reset{justify-self:start}
}
@media(max-width:980px){
    .settings-grid--media{grid-template-columns:1fr}
    .settings-savebar{right:18px;bottom:18px}
}
@media(max-width:700px){
    .form-grid,.settings-grid{grid-template-columns:1fr}
    .field-full{grid-column:auto}
    .tour-filter-row{grid-template-columns:1fr}
    .dropzone{grid-template-columns:82px 1fr;min-height:140px}
    .dropzone img{width:82px;height:82px}
    .dropzone>.media-reset{top:9px;right:9px;width:40px;height:40px}
    .settings-savebar{right:14px;bottom:14px}
}
