/* Form controls — field box is squared (no radius), 1px slate-44 border,
   40px control height, label 14px semibold above the field, 8px gap
   between label+field and helper text. Transcribed from
   "_Assets / Input / Field". */
.it-field{display:flex;flex-direction:column;gap:var(--spacing-xs);font-family:var(--font-sans)}
.it-field__label{padding:0 var(--spacing-xs);font-weight:var(--font-weight-semibold);font-size:14px;line-height:24px;color:var(--color-slate-20)}
.it-field__required{color:var(--text-error);margin-left:2px}
.it-field__control{display:flex;align-items:center;gap:var(--spacing-xs);min-height:40px;padding:4px var(--spacing-xs);background:var(--color-white);border:var(--border-base) solid var(--color-slate-44);color:var(--text-base)}
.it-field__control:focus-within{border-color:var(--border-primary);box-shadow:0 0 0 2px var(--color-blue-87)}
.it-field__input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:inherit;font-size:16px;line-height:24px;color:inherit;padding:0}
.it-field__input::placeholder{color:var(--text-muted)}
.it-field__icon{display:inline-flex;color:var(--text-primary);flex-shrink:0}
.it-field__helper{padding:0 var(--spacing-xs);font-size:14px;line-height:16px;color:var(--text-muted)}
.it-field--error .it-field__control{border-color:var(--border-error);border-width:var(--border-double)}
.it-field--error .it-field__helper{color:var(--text-error)}
.it-field--success .it-field__control{border-color:var(--border-success);border-width:var(--border-double)}
.it-field--success .it-field__helper{color:var(--text-success)}
.it-field--disabled .it-field__control{background:var(--color-gray-96);border-color:var(--border-disabled);color:var(--text-disabled)}
.it-field--disabled .it-field__label{color:var(--text-disabled)}
.it-field__textarea{width:100%;border:0;outline:0;resize:vertical;background:transparent;font-family:inherit;font-size:16px;line-height:24px;color:inherit;padding:0;min-height:96px}
.it-field__counter{align-self:flex-end;padding:0 var(--spacing-xs);font-size:14px;line-height:16px;color:var(--text-muted)}
.it-field__addon{display:inline-flex;align-items:center;align-self:stretch;padding:0 var(--spacing-s);background:var(--color-gray-96);border-left:var(--border-base) solid var(--color-slate-44);margin:-4px calc(-1 * var(--spacing-xs)) -4px 0;font-weight:var(--font-weight-semibold);font-size:16px;color:var(--text-secondary)}
.it-field__numbers{display:flex;flex-direction:column;width:16px;flex-shrink:0;color:var(--text-primary)}
.it-field__number-btn{background:none;border:0;padding:0;cursor:pointer;color:inherit;line-height:0}

/* Password strength meter */
.it-password-strength{display:flex;gap:var(--spacing-xxs);align-items:center;padding:0 var(--spacing-xs)}
.it-password-strength__bar{height:4px;width:32px;background:var(--color-slate-85);border-radius:100px}
.it-password-strength--weak .it-password-strength__bar:nth-child(1){background:var(--background-error)}
.it-password-strength--fair .it-password-strength__bar:nth-child(-n+2){background:var(--background-warning)}
.it-password-strength--good .it-password-strength__bar:nth-child(-n+3){background:var(--color-emerald-40)}
.it-password-strength--strong .it-password-strength__bar{background:var(--background-success)}
.it-password-strength__label{font-size:14px;line-height:16px;color:var(--text-muted);margin-left:var(--spacing-xxs)}

/* Search bar + suggestion list */
.it-search{display:flex;align-items:center;gap:var(--spacing-xs);background:var(--color-white);border:var(--border-base) solid var(--color-slate-44);padding:4px var(--spacing-xs);min-height:40px;font-family:var(--font-sans)}
.it-search--lg{min-height:48px;padding:8px var(--spacing-s)}
.it-search:focus-within{border-color:var(--border-primary);box-shadow:0 0 0 2px var(--color-blue-87)}
.it-search__input{flex:1;border:0;outline:0;background:transparent;font-family:inherit;font-size:16px;line-height:24px}
.it-search__list{background:var(--color-white);box-shadow:var(--shadow-m);display:flex;flex-direction:column}
.it-search__item{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-s);background:none;border:0;cursor:pointer;text-align:left;font-family:inherit;font-size:16px;line-height:24px;color:var(--text-base)}
.it-search__item:hover{background:var(--color-blue-97)}

/* Select — same box as input, with a chevron */
.it-select{appearance:none;width:100%;min-height:40px;padding:4px var(--spacing-xl) 4px var(--spacing-xs);background:var(--color-white);border:var(--border-base) solid var(--color-slate-44);font-family:var(--font-sans);font-size:16px;line-height:24px;color:var(--text-base)}
.it-select-wrap{position:relative;display:flex}
.it-select-wrap__chev{position:absolute;right:var(--spacing-xs);top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-primary)}
.it-select:focus{outline:0;border-color:var(--border-primary);box-shadow:0 0 0 2px var(--color-blue-87)}
.it-select:disabled{background:var(--color-gray-96);border-color:var(--border-disabled);color:var(--text-disabled)}

/* Checkbox — 20px box, radius-smooth, primary fill when checked */
.it-check{display:inline-flex;align-items:flex-start;gap:var(--spacing-xs);font-family:var(--font-sans);font-size:16px;line-height:24px;color:var(--text-base);cursor:pointer}
.it-check__box{position:relative;width:20px;height:20px;border-radius:var(--radius-smooth);border:var(--border-base) solid var(--color-slate-44);background:var(--color-white);flex-shrink:0;margin-top:2px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-inverse)}
.it-check input{position:absolute;opacity:0;width:0;height:0}
.it-check--checked .it-check__box{background:var(--background-primary);border-color:var(--border-primary)}
.it-check--indeterminate .it-check__box{background:var(--background-primary);border-color:var(--border-primary)}
.it-check input:focus-visible+.it-check__box,.it-check--focus .it-check__box{box-shadow:0 0 0 2px var(--color-blue-87)}
.it-check--disabled{color:var(--text-disabled);pointer-events:none}
.it-check--disabled .it-check__box{border-color:var(--border-disabled);background:var(--color-gray-96)}
.it-check--error .it-check__box{border-color:var(--border-error)}

/* Radio — 20px circle, 100px focus ring */
.it-radio{display:inline-flex;align-items:flex-start;gap:var(--spacing-xs);font-family:var(--font-sans);font-size:16px;line-height:24px;color:var(--text-base);cursor:pointer}
.it-radio__dot{position:relative;width:20px;height:20px;border-radius:100px;border:var(--border-base) solid var(--color-slate-44);background:var(--color-white);flex-shrink:0;margin-top:2px;display:inline-flex;align-items:center;justify-content:center}
.it-radio input{position:absolute;opacity:0;width:0;height:0}
.it-radio--checked .it-radio__dot{border-color:var(--border-primary);border-width:var(--border-double)}
.it-radio--checked .it-radio__dot::after{content:"";width:10px;height:10px;border-radius:100px;background:var(--background-primary)}
.it-radio input:focus-visible+.it-radio__dot{box-shadow:0 0 0 2px var(--color-blue-87)}
.it-radio--disabled{color:var(--text-disabled);pointer-events:none}
.it-radio--disabled .it-radio__dot{border-color:var(--border-disabled);background:var(--color-gray-96)}

/* Toggle — 56×24 track, radius 16, 16px knob, 4px inset */
.it-toggle{display:inline-flex;align-items:center;gap:var(--spacing-s);font-family:var(--font-sans);font-size:16px;line-height:24px;color:var(--text-base);cursor:pointer}
.it-toggle__track{position:relative;width:56px;height:24px;border-radius:16px;background:var(--color-slate-44);padding:4px;display:flex;align-items:center;flex-shrink:0;transition:background-color .2s ease}
.it-toggle--label-left{justify-content:space-between}
.it-toggle__knob{width:16px;height:16px;border-radius:16px;background:var(--color-white);transition:transform .2s ease}
.it-toggle input{position:absolute;opacity:0;width:0;height:0}
.it-toggle--checked .it-toggle__track{background:var(--background-primary)}
.it-toggle--checked .it-toggle__knob{transform:translateX(32px)}
.it-toggle input:focus-visible+.it-toggle__track{box-shadow:0 0 0 3px var(--color-blue-87)}
.it-toggle--disabled{color:var(--text-disabled);pointer-events:none}
.it-toggle--disabled .it-toggle__track{background:var(--background-disabled)}

/* Upload — drag area + file rows */
.it-upload{font-family:var(--font-sans)}
.it-upload__drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-l);border:var(--border-double) dashed var(--border-primary);border-radius:var(--radius-smooth);background:var(--color-blue-97);color:var(--text-primary);text-align:center}
.it-upload__drop--active{background:var(--color-blue-87)}
.it-upload__hint{font-size:14px;line-height:16px;color:var(--text-muted)}
.it-upload__list{list-style:none;margin:var(--spacing-s) 0 0;padding:0;display:flex;flex-direction:column}
.it-upload__item{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-xs) 0;border-bottom:var(--border-base) solid var(--color-slate-93)}
.it-upload__name{flex:1;font-size:16px;line-height:24px;color:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.it-upload__size{font-size:14px;line-height:16px;color:var(--text-muted)}
.it-upload__item--success .it-upload__name{color:var(--text-success)}
.it-upload__item--error .it-upload__name{color:var(--text-error)}
.it-upload__thumb{width:40px;height:40px;border-radius:var(--radius-smooth);object-fit:cover}
.it-upload__remove{background:none;border:0;padding:0;cursor:pointer;color:var(--text-primary);display:inline-flex}
