/*
 * TravTools · © MUNLabs
 * forms.css — Formulare
 * Inputs, Labels, Selects, Textareas, Checkboxen, Switches, Upload-Zonen und Formular-Layouts.
 * Tokens: shared.css. Der endgueltige Fokus-Glow sitzt zusaetzlich in premium.css.
 */

input,
select,
textarea,
.tt-input,
.tt-select,
.tt-textarea{border-radius:var(--tt-radius-sm);}

/* ===== Basis-Controls ===== */
input,select,textarea,.tt-input,.tt-select,.tt-textarea,.tt-inp,.tt-search-input,.wiz-input,.wiz-select,.tt-inp-field,.dc-inp,.rm-inp,.mt-inp,.tt-su-input,.settings-input,.tt-sitter-input,.tt-pass-input,.tt-search-inp,.tt-inp-text,.tt-inp-num{
  width:100%;
  background:var(--tt-surface-input);
  border:1px solid var(--tt-line-strong);
  color:var(--tt-text);
  padding:12px 14px;
  border-radius:var(--tt-radius-sm);
  font-size:14px;
  line-height:1.4;
  outline:none;
  box-sizing:border-box;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03), inset 0 0 0 0 rgba(242,193,74,0);
  transition:border-color var(--tt-fast) var(--tt-ease), box-shadow var(--tt-fast) var(--tt-ease), background var(--tt-fast) var(--tt-ease);
}
textarea,.tt-textarea,.tt-inp[type="textarea"]{min-height:130px;resize:vertical;}
input:hover,select:hover,textarea:hover{border-color:var(--tt-line-gold-soft);}
input:focus,select:focus,textarea:focus,.tt-input:focus,.tt-select:focus,.tt-textarea:focus,.tt-inp:focus,.tt-search-input:focus,.wiz-input:focus,.wiz-select:focus{
  border-color:var(--tt-line-gold);
  box-shadow:var(--tt-focus-ring);
  background:rgba(3,7,16,.78);
}
input::placeholder,textarea::placeholder,.tt-input::placeholder,.tt-textarea::placeholder,.tt-inp::placeholder{color:var(--tt-faint);}
input:disabled,select:disabled,textarea:disabled,input[readonly],.tt-inp-readonly{opacity:.6;cursor:not-allowed;background:rgba(255,255,255,.03)!important;}

/* Select: eigener Pfeil (gold) */
select,.tt-select,.wiz-select,.tt-sel-mini,.tt-ally-select,.tt-tribe-select,.tt-pi-select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f2c14a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;background-size:14px;
  padding-right:40px!important;
  cursor:pointer;
}
select option{background:#0f172b;color:#eef2ff;}

/* Number-Spinner dezent */
input[type="number"]{-moz-appearance:textfield;}
input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

/* Date/Time Picker-Icon hell */
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator,input[type="datetime-local"]::-webkit-calendar-picker-indicator{filter:invert(.85) sepia(.6) saturate(4) hue-rotate(5deg);cursor:pointer;opacity:.85;}

/* ===== Labels ===== */
.tt-label,.tt-form-group label,.tt-field label,.tt-input-label,.tt-lbl,.dc-lbl,.tt-inp-label,.tt-form-label,.rm-label,.tt-box-label,.tt-donate-label,.tt-slot-label,.tt-label-mini,.settings-preview-label,.tm-section-title,.snipe-lbl,.tt-glob-label,.tt-stat-lbl,.sg-lbl{
  display:block;margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--tt-muted);
}
.tt-label i,.tt-lbl i,.dc-lbl i{color:var(--tt-gold);margin-right:4px;}
.tt-label .req,.tt-lbl .req{color:var(--tt-red);}

/* ===== Layouts ===== */
.tt-form-grid,.tt-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.tt-form-group,.tt-field,.dc-form-row,.tt-form-row,.rm-form-row,.tm-form-row,.f-group,.form-group{display:flex;flex-direction:column;gap:0;margin-bottom:14px;min-width:0;}
.tt-full{grid-column:1/-1;}
.tt-form-actions,.tt-actions,.tt-btn-row,.wiz-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.tt-check-label,.tt-form-check,.tt-chk-label{display:flex;align-items:center;gap:10px;color:var(--tt-text);cursor:pointer;font-weight:600;}

/* ===== Icon-Inputs ===== */
.input-icon-wrap{position:relative;display:block;}
.input-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;text-align:center;pointer-events:none;z-index:2;color:var(--tt-faint);transition:color var(--tt-fast) var(--tt-ease), text-shadow var(--tt-fast) var(--tt-ease);}
.input-icon-wrap:focus-within .input-icon{color:var(--tt-gold);text-shadow:0 0 10px rgba(242,193,74,.6);}
.has-icon{padding-left:50px!important;}

/* ===== Checkbox / Radio (Custom, mit accent-color-Fallback) ===== */
input[type="checkbox"],input[type="radio"]{
  width:18px;height:18px;min-height:0;padding:0;margin:0;flex:0 0 auto;
  appearance:none;-webkit-appearance:none;
  border:1.5px solid var(--tt-line-strong);background:var(--tt-surface-input);
  border-radius:6px;display:inline-grid;place-items:center;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
  transition:all var(--tt-fast) var(--tt-ease);
  vertical-align:middle;
}
input[type="radio"]{border-radius:50%;}
input[type="checkbox"]:hover,input[type="radio"]:hover{border-color:var(--tt-line-gold);}
input[type="checkbox"]::before{content:"";width:10px;height:10px;transform:scale(0);transition:transform var(--tt-fast) var(--tt-ease);
  background:var(--tt-gold-ink);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);}
input[type="radio"]::before{content:"";width:8px;height:8px;border-radius:50%;transform:scale(0);transition:transform var(--tt-fast) var(--tt-ease);background:var(--tt-gold-ink);}
input[type="checkbox"]:checked,input[type="radio"]:checked{background:var(--tt-grad-gold);border-color:var(--tt-gold);box-shadow:0 0 12px rgba(242,193,74,.4);}
input[type="checkbox"]:checked::before,input[type="radio"]:checked::before{transform:scale(1);}
input[type="checkbox"]:focus-visible,input[type="radio"]:focus-visible{outline:2px solid rgba(242,193,74,.6);outline-offset:2px;}

/* ===== Switch / Toggle ===== */
.tt-switch,.settings-toggle-track,.tt-slider{position:relative;}
.tt-switch input,.settings-toggle input{position:absolute;opacity:0;width:0;height:0;}
.tt-switch .tt-slider,.slider.round,.settings-toggle-track{
  display:inline-block;width:46px;height:26px;border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.10);border:1px solid var(--tt-line-strong);
  transition:all var(--tt-fast) var(--tt-ease);position:relative;
}
.tt-switch .tt-slider::before,.slider.round::before,.settings-toggle-track::before{
  content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.4);transition:transform var(--tt-med) var(--tt-ease), background var(--tt-fast) var(--tt-ease);
}
.tt-switch input:checked + .tt-slider,input:checked + .slider.round,.settings-toggle input:checked ~ .settings-toggle-track{
  background:var(--tt-grad-gold);border-color:var(--tt-gold);box-shadow:0 0 16px rgba(242,193,74,.45);
}
.tt-switch input:checked + .tt-slider::before,input:checked + .slider.round::before,.settings-toggle input:checked ~ .settings-toggle-track::before{transform:translateX(20px);background:var(--tt-gold-ink);}

/* ===== Upload-Zone ===== */
.tt-upload-wrap{margin-top:8px;}
.tt-upload-zone{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  min-height:180px;padding:18px;
  border:2px dashed var(--tt-line-gold-soft);border-radius:18px;
  background:linear-gradient(180deg, var(--tt-surface-glass-2), var(--tt-surface-glass));
  color:var(--tt-text);cursor:pointer;text-align:center;position:relative;overflow:hidden;
  transition:all var(--tt-fast) var(--tt-ease);
}
.tt-upload-zone::before{content:"";position:absolute;inset:0;background:radial-gradient(400px 160px at 50% 0%, rgba(242,193,74,.10), transparent 70%);opacity:0;transition:opacity var(--tt-fast) var(--tt-ease);}
.tt-upload-zone:hover,.tt-upload-zone.is-drag{border-color:var(--tt-line-gold);box-shadow:var(--tt-glow-gold);}
.tt-upload-zone:hover::before{opacity:1;}
.tt-file-input{position:absolute;opacity:0;pointer-events:none;}
.tt-up-icon{font-size:30px;color:var(--tt-gold);filter:drop-shadow(0 0 12px rgba(242,193,74,.5));}
.tt-up-text{font-size:13px;color:var(--tt-muted);}
.tt-up-preview{margin-top:12px;max-height:260px;border-radius:16px;border:1px solid var(--tt-line-strong);object-fit:contain;background:var(--tt-bg-1);}

/* ===== Range-Slider ===== */
input[type="range"]{appearance:none;-webkit-appearance:none;height:6px;padding:0;min-height:0;border:0;background:rgba(255,255,255,.12);border-radius:999px;box-shadow:none;}
input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--tt-grad-gold);border:2px solid #0a1122;box-shadow:0 0 12px rgba(242,193,74,.6);cursor:pointer;}
input[type="range"]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--tt-gold);border:2px solid #0a1122;box-shadow:0 0 12px rgba(242,193,74,.6);cursor:pointer;}

/* ===== Hinweise unter Feldern ===== */
.tt-help,.tt-field-help,.tt-form-hint,.tt-small-desc,.tt-muted-mini{font-size:12px;color:var(--tt-muted);margin-top:6px;}
.tt-field-error,.tt-inp-error{font-size:12px;color:var(--tt-red-2);margin-top:6px;font-weight:700;}
.tt-inp.is-invalid,.tt-input.is-invalid,input.is-invalid{border-color:rgba(255,92,92,.6)!important;box-shadow:0 0 0 3px rgba(255,92,92,.14)!important;}

@media (max-width:900px){.tt-form-grid,.tt-grid-2{grid-template-columns:1fr;}}
