@extends('layouts.app')

@section('title', 'Editar Usuario')
@section('page-title', 'Editar Usuario')

@section('breadcrumb')
<li class="breadcrumb-item"><a href="{{ route('web.usuarios.index') }}">Usuarios</a></li>
<li class="breadcrumb-item"><a href="{{ route('web.usuarios.show', $usuario->usu_id) }}">{{ $usuario->nombre_completo }}</a></li>
<li class="breadcrumb-item active">Editar</li>
@endsection

@push('styles')
<link href="{{ asset('assets/css/mantenimientos.css') }}" rel="stylesheet">
<style>
    .usuario-form-container {
        max-width: 900px;
        margin: 0 auto;
    }

    .usuario-header-card {
        background: #1a3a5c;
        border-radius: 12px;
        padding: 1.5rem;
        margin-bottom: 1.5rem;
        color: #fff;
        display: flex;
        align-items: center;
        gap: 1.25rem;
    }

    .usuario-header-avatar {
        width: 70px;
        height: 70px;
        background: rgba(255,255,255,0.2);
        border-radius: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.5rem;
        font-weight: 700;
    }

    .usuario-header-info h3 {
        margin: 0 0 0.25rem;
        font-size: 1.25rem;
        font-weight: 600;
    }

    .usuario-header-info span {
        opacity: 0.85;
        font-size: 0.85rem;
    }

    .usuario-header-badges {
        margin-left: auto;
        display: flex;
        gap: 0.5rem;
    }

    .header-badge {
        background: rgba(255,255,255,0.2);
        padding: 0.375rem 0.75rem;
        border-radius: 20px;
        font-size: 0.75rem;
        font-weight: 600;
    }

    .form-card {
        background: #fff;
        border-radius: 12px;
        border: 1px solid #e2e8f0;
        overflow: hidden;
        margin-bottom: 1.5rem;
    }

    .form-card-header {
        padding: 1.25rem 1.5rem;
        background: #f8fafc;
        border-bottom: 1px solid #e2e8f0;
        display: flex;
        align-items: center;
        gap: 0.75rem;
    }

    .form-card-header i {
        width: 36px;
        height: 36px;
        background: #1a3a5c;
        color: #fff;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.9rem;
    }

    .form-card-header h5 {
        margin: 0;
        color: #1a3a5c;
        font-weight: 600;
        font-size: 1rem;
    }

    .form-card-body {
        padding: 1.5rem;
    }

    .form-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }

    @media (max-width: 768px) {
        .form-grid {
            grid-template-columns: 1fr;
        }
    }

    .form-grid .full-width {
        grid-column: 1 / -1;
    }

    .form-label-custom {
        font-size: 0.8rem;
        font-weight: 600;
        color: #475569;
        margin-bottom: 0.375rem;
        display: block;
    }

    .form-label-custom .required {
        color: #ef4444;
        margin-left: 0.25rem;
    }

    .form-control-custom {
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        padding: 0.625rem 0.875rem;
        font-size: 0.9rem;
        transition: border-color 0.2s, box-shadow 0.2s;
    }

    .form-control-custom:focus {
        border-color: #1a3a5c;
        box-shadow: 0 0 0 3px rgba(26, 58, 92, 0.1);
        outline: none;
    }

    .input-group-custom {
        position: relative;
    }

    .input-group-custom i {
        position: absolute;
        left: 0.875rem;
        top: 50%;
        transform: translateY(-50%);
        color: #94a3b8;
        font-size: 0.85rem;
        z-index: 2;
    }

    .input-group-custom .form-control-custom {
        padding-left: 2.5rem;
    }

    .perfil-option {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.875rem 1rem;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        cursor: pointer;
        transition: all 0.2s;
        margin-bottom: 0.5rem;
    }

    .perfil-option:hover {
        background: #f8fafc;
        border-color: #cbd5e1;
    }

    .perfil-option.selected {
        background: rgba(26, 58, 92, 0.04);
        border-color: #1a3a5c;
    }

    .perfil-option input[type="radio"] {
        display: none;
    }

    .perfil-check {
        width: 20px;
        height: 20px;
        border-radius: 50%;
        border: 2px solid #e2e8f0;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .perfil-option.selected .perfil-check {
        background: #1a3a5c;
        border-color: #1a3a5c;
    }

    .perfil-option.selected .perfil-check::after {
        content: '';
        width: 8px;
        height: 8px;
        background: #fff;
        border-radius: 50%;
    }

    .perfil-info h6 {
        margin: 0;
        font-size: 0.9rem;
        color: #1a3a5c;
        font-weight: 600;
    }

    .perfil-info span {
        font-size: 0.75rem;
        color: #64748b;
    }

    .perfil-accesos {
        display: flex;
        gap: 0.5rem;
        margin-left: auto;
    }

    .acceso-mini {
        font-size: 0.65rem;
        padding: 0.25rem 0.5rem;
        border-radius: 12px;
        font-weight: 600;
    }

    .acceso-mini.web {
        background: rgba(59, 130, 246, 0.1);
        color: #2563eb;
    }

    .acceso-mini.app {
        background: rgba(16, 185, 129, 0.1);
        color: #059669;
    }

    .estado-toggle {
        display: flex;
        gap: 1rem;
    }

    .estado-option {
        flex: 1;
        padding: 1rem;
        border: 2px solid #e2e8f0;
        border-radius: 10px;
        cursor: pointer;
        text-align: center;
        transition: all 0.2s;
    }

    .estado-option:hover {
        border-color: #cbd5e1;
    }

    .estado-option.activo.selected {
        border-color: #10b981;
        background: rgba(16, 185, 129, 0.05);
    }

    .estado-option.inactivo.selected {
        border-color: #ef4444;
        background: rgba(239, 68, 68, 0.05);
    }

    .estado-option input {
        display: none;
    }

    .estado-option i {
        font-size: 1.5rem;
        margin-bottom: 0.5rem;
        display: block;
    }

    .estado-option.activo i {
        color: #10b981;
    }

    .estado-option.inactivo i {
        color: #ef4444;
    }

    .estado-option span {
        font-weight: 600;
        font-size: 0.85rem;
        color: #475569;
    }

    .form-actions {
        display: flex;
        gap: 0.75rem;
        justify-content: flex-end;
        padding: 1.25rem 1.5rem;
        background: #f8fafc;
        border-top: 1px solid #e2e8f0;
    }
</style>
@endpush

@section('content')
<div class="usuario-form-container">
    {{-- Header con info del usuario --}}
    @php
        $iniciales = strtoupper(substr($usuario->usu_nombre, 0, 1) . substr($usuario->usu_apellido, 0, 1));
    @endphp
    <div class="usuario-header-card">
        <div class="usuario-header-avatar">
            {{ $iniciales }}
        </div>
        <div class="usuario-header-info">
            <h3>{{ $usuario->nombre_completo }}</h3>
            <span><i class="fas fa-at me-1"></i>{{ $usuario->usu_usuario }}</span>
        </div>
        <div class="usuario-header-badges">
            @if($usuario->tieneAccesoWeb())
            <span class="header-badge"><i class="fas fa-desktop me-1"></i>Web</span>
            @endif
            @if($usuario->tieneAccesoApp())
            <span class="header-badge"><i class="fas fa-mobile-alt me-1"></i>App</span>
            @endif
        </div>
    </div>

    <form action="{{ route('web.usuarios.update', $usuario->usu_id) }}" method="POST">
        @csrf
        @method('PUT')

        {{-- Información Personal --}}
        <div class="form-card">
            <div class="form-card-header">
                <i class="fas fa-user"></i>
                <h5>Información Personal</h5>
            </div>
            <div class="form-card-body">
                <div class="form-grid">
                    <div>
                        <label class="form-label-custom">
                            Nombre <span class="required">*</span>
                        </label>
                        <div class="input-group-custom">
                            <i class="fas fa-user"></i>
                            <input type="text" name="usu_nombre"
                                   class="form-control form-control-custom @error('usu_nombre') is-invalid @enderror"
                                   value="{{ old('usu_nombre', $usuario->usu_nombre) }}" required>
                        </div>
                        @error('usu_nombre')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                        @enderror
                    </div>

                    <div>
                        <label class="form-label-custom">
                            Apellido <span class="required">*</span>
                        </label>
                        <div class="input-group-custom">
                            <i class="fas fa-user"></i>
                            <input type="text" name="usu_apellido"
                                   class="form-control form-control-custom @error('usu_apellido') is-invalid @enderror"
                                   value="{{ old('usu_apellido', $usuario->usu_apellido) }}" required>
                        </div>
                        @error('usu_apellido')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                        @enderror
                    </div>

                    <div>
                        <label class="form-label-custom">
                            Cédula <span class="required">*</span>
                        </label>
                        <div class="input-group-custom">
                            <i class="fas fa-id-card"></i>
                            <input type="text" name="usu_cedula"
                                   class="form-control form-control-custom @error('usu_cedula') is-invalid @enderror"
                                   value="{{ old('usu_cedula', $usuario->usu_cedula) }}" required maxlength="13">
                        </div>
                        @error('usu_cedula')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                        @enderror
                    </div>

                    <div>
                        <label class="form-label-custom">
                            Fecha de Nacimiento
                        </label>
                        <div class="input-group-custom">
                            <i class="fas fa-calendar"></i>
                            <input type="date" name="usu_fecha_nac"
                                   class="form-control form-control-custom @error('usu_fecha_nac') is-invalid @enderror"
                                   value="{{ old('usu_fecha_nac', $usuario->usu_fecha_nac?->format('Y-m-d')) }}">
                        </div>
                        @error('usu_fecha_nac')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                        @enderror
                    </div>

                    <div class="full-width">
                        <label class="form-label-custom">
                            Correo Electrónico <span class="required">*</span>
                        </label>
                        <div class="input-group-custom">
                            <i class="fas fa-envelope"></i>
                            <input type="email" name="usu_email"
                                   class="form-control form-control-custom @error('usu_email') is-invalid @enderror"
                                   value="{{ old('usu_email', $usuario->usu_email) }}" required>
                        </div>
                        @error('usu_email')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                        @enderror
                    </div>
                </div>
            </div>
        </div>

        {{-- Credenciales --}}
        <div class="form-card">
            <div class="form-card-header">
                <i class="fas fa-key"></i>
                <h5>Credenciales de Acceso</h5>
            </div>
            <div class="form-card-body">
                <div class="form-grid">
                    <div>
                        <label class="form-label-custom">
                            Nombre de Usuario <span class="required">*</span>
                        </label>
                        <div class="input-group-custom">
                            <i class="fas fa-at"></i>
                            <input type="text" name="usu_usuario"
                                   class="form-control form-control-custom @error('usu_usuario') is-invalid @enderror"
                                   value="{{ old('usu_usuario', $usuario->usu_usuario) }}" required>
                        </div>
                        @error('usu_usuario')
                        <div class="invalid-feedback d-block">{{ $message }}</div>
                        @enderror
                    </div>

                    <div class="d-flex align-items-end">
                        <a href="#" class="btn btn-outline-warning"
                           data-bs-toggle="modal" data-bs-target="#modalPassword">
                            <i class="fas fa-key me-1"></i> Cambiar Contraseña
                        </a>
                    </div>
                </div>
            </div>
        </div>

        {{-- Perfil --}}
        <div class="form-card">
            <div class="form-card-header">
                <i class="fas fa-shield-alt"></i>
                <h5>Perfil de Acceso</h5>
            </div>
            <div class="form-card-body">
                @error('per_id')
                <div class="alert alert-danger mb-3">{{ $message }}</div>
                @enderror

                <div class="perfiles-list">
                    @foreach($perfiles as $perfil)
                    <label class="perfil-option {{ old('per_id', $usuario->per_id) == $perfil->per_id ? 'selected' : '' }}"
                           id="perfil-label-{{ $perfil->per_id }}">
                        <input type="radio" name="per_id" value="{{ $perfil->per_id }}"
                               {{ old('per_id', $usuario->per_id) == $perfil->per_id ? 'checked' : '' }}
                               onchange="selectPerfil({{ $perfil->per_id }})" required>
                        <span class="perfil-check"></span>
                        <div class="perfil-info">
                            <h6>{{ $perfil->per_nombre }}</h6>
                            <span>{{ $perfil->per_descripcion ?? 'Sin descripción' }}</span>
                        </div>
                        <div class="perfil-accesos">
                            @if($perfil->per_acceso_web)
                            <span class="acceso-mini web">WEB</span>
                            @endif
                            @if($perfil->per_acceso_app)
                            <span class="acceso-mini app">APP</span>
                            @endif
                        </div>
                    </label>
                    @endforeach
                </div>
            </div>
        </div>

        {{-- Estado --}}
        <div class="form-card">
            <div class="form-card-header">
                <i class="fas fa-toggle-on"></i>
                <h5>Estado del Usuario</h5>
            </div>
            <div class="form-card-body">
                <div class="estado-toggle">
                    <label class="estado-option activo {{ old('usu_estado', $usuario->usu_estado) == 1 ? 'selected' : '' }}"
                           id="estado-activo">
                        <input type="radio" name="usu_estado" value="1"
                               {{ old('usu_estado', $usuario->usu_estado) == 1 ? 'checked' : '' }}
                               onchange="selectEstado('activo')">
                        <i class="fas fa-user-check"></i>
                        <span>Activo</span>
                    </label>

                    <label class="estado-option inactivo {{ old('usu_estado', $usuario->usu_estado) == 0 ? 'selected' : '' }}"
                           id="estado-inactivo">
                        <input type="radio" name="usu_estado" value="0"
                               {{ old('usu_estado', $usuario->usu_estado) == 0 ? 'checked' : '' }}
                               onchange="selectEstado('inactivo')">
                        <i class="fas fa-user-times"></i>
                        <span>Inactivo</span>
                    </label>
                </div>
            </div>

            <div class="form-actions">
                <a href="{{ route('web.usuarios.show', $usuario->usu_id) }}" class="btn btn-outline-secondary">
                    <i class="fas fa-times me-1"></i> Cancelar
                </a>
                <button type="submit" class="btn btn-primary">
                    <i class="fas fa-save me-1"></i> Guardar Cambios
                </button>
            </div>
        </div>
    </form>
</div>

{{-- Modal cambiar contraseña --}}
<div class="modal fade" id="modalPassword" tabindex="-1">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">
                    <i class="fas fa-key me-2"></i>
                    Cambiar Contraseña
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <form action="{{ route('web.usuarios.cambiar-password', $usuario->usu_id) }}" method="POST">
                @csrf
                <div class="modal-body">
                    <div class="mb-3">
                        <label class="form-label">Nueva Contraseña</label>
                        <input type="password" name="password" class="form-control" required minlength="8">
                    </div>
                    <div class="mb-3">
                        <label class="form-label">Confirmar Contraseña</label>
                        <input type="password" name="password_confirmation" class="form-control" required>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-warning">
                        <i class="fas fa-key me-1"></i> Cambiar Contraseña
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>
@endsection

@push('scripts')
<script>
function selectPerfil(perfilId) {
    document.querySelectorAll('.perfil-option').forEach(el => {
        el.classList.remove('selected');
    });
    document.getElementById('perfil-label-' + perfilId).classList.add('selected');
}

function selectEstado(tipo) {
    document.querySelectorAll('.estado-option').forEach(el => {
        el.classList.remove('selected');
    });
    document.getElementById('estado-' + tipo).classList.add('selected');
}
</script>
@endpush
