/* ============================================================
   floating-controls.css
   Theme-aware floating form controls.
   Colors driven by --fl-* CSS custom properties
   defined in app-admin.css theme blocks.
   ============================================================ */

.fl-wrap, .fln-wrap {
    display: block;
    position: relative;
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    width: 100%;
}

/* floating label */
.fl-label, .fln-label {
    position: absolute;
    top: -9px;
    left: 14px;
    padding: 0 6px;
    font-size: 13px;
    color: var(--fl-label-color, rgba(80,80,220,0.85));
    background: var(--fl-label-bg, #fff);
    line-height: 1;
    border-radius: 6px;
    pointer-events: none;
    z-index: 2;
}

/* field wrapper */
.fl-field, .fln-field {
    position: relative;
    width: 100%;
}

/* prefix inside */
.fl-prefix, .fln-prefix {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    height: 24px;
    min-width: 24px;
    padding: 0 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    color: var(--fl-prefix-color, rgba(80,80,220,0.95));
    background: var(--fl-prefix-bg, rgba(120,120,255,0.08));
    border-radius: 8px;
    user-select: none;
    pointer-events: none;
    z-index: 1;
}

/* for textarea prefix better align to top */
.fl-prefix-area {
    top: 18px;
    transform: none;
}

/* input base */
.fl-input, .fln-input {
    width: 100%;
    height: 44px;
    border-radius: 10px;
    border: 2px solid var(--fl-border, rgba(120,120,255,0.55));
    background: var(--fl-input-bg, #fff);
    padding: 14px 14px 10px 14px;
    outline: none;
    font-size: 14px;
    color: var(--fl-input-color, #222);
    box-sizing: border-box;
    transition: border-color .12s ease, box-shadow .12s ease;
}

.fl-input.has-prefix, .fln-input.has-prefix {
    padding-left: 54px;
}

.fl-input::placeholder, .fln-input::placeholder {
    color: var(--fl-placeholder, rgba(0,0,0,0.45));
}

/* Select specific */
.fl-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding: 12px 38px 10px 14px;
}

/* Multi-select specific */
.fl-select[multiple] {
    height: auto;
    min-height: 96px;
    padding: 14px;
}

.fl-chevron {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    color: var(--fl-chevron-color, rgba(0,0,0,0.55));
    pointer-events: none;
    user-select: none;
}

/* Textarea specific */
.fl-textarea {
    height: auto;
    min-height: 96px;
    padding: 14px 14px 12px 14px;
    resize: vertical;
    line-height: 1.35;
}

.fl-textarea.has-prefix {
    padding-left: 54px;
}

/* Checkbox specific */
.fl-checkbox-wrap {
    display: flex;
    align-items: center;
    position: relative;
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    margin-top: 8px;
    margin-bottom: 8px;
    cursor: pointer;
}

.fl-checkbox-input {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    border: 2px solid var(--fl-border, rgba(120,120,255,0.55));
    border-radius: 6px;
    outline: none;
    margin: 0;
    margin-right: 10px;
    cursor: pointer;
    position: relative;
    background-color: var(--fl-input-bg, #fff);
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.fl-checkbox-input:checked {
    background-color: var(--fl-checked-bg, rgba(80,80,220,0.95));
    border-color: var(--fl-checked-border, rgba(80,80,220,0.95));
}

.fl-checkbox-input:checked::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 6px;
    height: 11px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.fl-checkbox-label {
    font-size: 14px;
    color: var(--fl-input-color, #222);
    cursor: pointer;
    user-select: none;
}

/* states */
.fl-wrap.is-focused .fl-input,
.fl-wrap:focus-within .fl-input,
.fln-wrap.is-focused .fln-input,
.fln-wrap:focus-within .fln-input,
.fl-checkbox-input:focus {
    border-color: var(--fl-border-focus, rgba(90,90,255,0.95));
    box-shadow: 0 0 0 3px var(--fl-focus-shadow, rgba(90,90,255,0.14));
}

.fl-wrap.is-disabled, .fln-wrap.is-disabled, .fl-checkbox-wrap.is-disabled {
    opacity: 0.65;
    pointer-events: none;
}

.fl-wrap.is-invalid .fl-input, .fln-wrap.is-invalid .fln-input {
    border-color: rgba(255,80,80,0.95);
}

.fl-hint, .fln-hint {
    margin-top: 6px;
    font-size: 12px;
    color: var(--fl-hint-color, rgba(0,0,0,0.55));
}
