:root {
    /* Colores corporativos (Guillermo, 26/10/2026): amarillo, gris y blanco; fondos claros. */
    --ledtse-yellow: #ffdd00;
    --ledtse-yellow-soft: #fff8cc;
    --ledtse-gray: #575756;
    --ledtse-dark: #575756;
    --ledtse-bg: #f7f7f5;
    --ledtse-white: #ffffff;
    --ledtse-border: #e4e4e4;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--ledtse-bg);
    color: var(--ledtse-dark);
    font-family: "Bariol", "Segoe UI", Arial, sans-serif;
}

/* =========================
   CABECERA
   ========================= */

.app-header {
    height: 105px;
    background: var(--ledtse-white);
    border-bottom: 1px solid var(--ledtse-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 40px;
    overflow: hidden;
}

.app-logo {
    display: block;
    width: 225px;
    height: 78px;
    object-fit: contain;
    object-position: left center;
}

.app-header img {
    max-width: 225px;
    max-height: 78px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.user-info {
    text-align: right;
    line-height: 1.3;
}

.user-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--ledtse-dark);
}

.user-role {
    margin-top: 4px;
    font-size: 13px;
    color: var(--ledtse-gray);
}

/* =========================
   CONTENIDO
   ========================= */

.dashboard-main {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 65px 40px;
}

.dashboard-eyebrow {
    margin: 0 0 14px;
    color: var(--ledtse-gray);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.dashboard-title {
    margin: 0;
    font-size: 38px;
    line-height: 1.15;
    font-weight: 600;
    color: var(--ledtse-dark);
}

.dashboard-subtitle {
    margin: 12px 0 42px;
    color: var(--ledtse-gray);
    font-size: 17px;
}

/* =========================
   TARJETAS
   ========================= */

.dashboard-actions {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.dashboard-card {
    position: relative;
    min-height: 210px;
    padding: 30px;
    background: var(--ledtse-white);
    border: 1px solid var(--ledtse-border);
    border-radius: 14px;
    color: var(--ledtse-dark);
    text-decoration: none;
    overflow: hidden;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.dashboard-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 5px;
    background: transparent;
    transition: background 0.2s ease;
}

.dashboard-card:hover {
    transform: translateY(-4px);
    border-color: #d5d5d5;
    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.08);
}

.dashboard-card:hover::after {
    background: var(--ledtse-yellow);
}

.card-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 28px;
    border-radius: 10px;
    background: var(--ledtse-yellow);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ledtse-dark);
    font-size: 22px;
    font-weight: 600;
}

.card-title {
    display: block;
    margin-bottom: 8px;
    font-size: 21px;
    font-weight: 600;
}

.card-description {
    display: block;
    max-width: 280px;
    color: var(--ledtse-gray);
    font-size: 15px;
    line-height: 1.45;
}

/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 800px) {

    .app-header {
        padding: 0 22px;
    }

    .app-logo {
        width: 145px;
    }

    .dashboard-main {
        padding: 40px 22px;
    }

    .dashboard-actions {
        grid-template-columns: 1fr;
    }

    .dashboard-title {
        font-size: 31px;
    }
}

.app-header__user {
    display: flex;
    align-items: center;
    gap: 14px;
}

.app-header__user > div:first-child {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.app-header__user strong {
    font-size: 15px;
    font-weight: 600;
}

.app-header__user span {
    margin-top: 3px;
    font-size: 13px;
    color: var(--ledtse-gray);
}

.user-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--ledtse-yellow);
    color: var(--ledtse-dark);

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 16px;
    font-weight: 700;
}

/* =========================================================
   NUEVO PRESUPUESTO
   ========================================================= */

   .page-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 28px;
}

.page-heading h1 {
    margin: 5px 0 6px;
    font-size: 32px;
    line-height: 1.1;
}

.page-description {
    margin: 0;
    color: var(--ledtse-gray);
}

.btn-secondary,
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.btn-secondary {
    background: var(--ledtse-white);
    color: var(--ledtse-dark);
    border: 1px solid var(--ledtse-border);
}

.btn-secondary:hover {
    border-color: #bcbcbc;
}

.btn-primary {
    border: 1px solid var(--ledtse-yellow);
    background: var(--ledtse-yellow);
    color: var(--ledtse-dark);
}

.btn-primary:hover {
    filter: brightness(0.96);
}


/* PASOS */

.steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    background: var(--ledtse-white);
    border: 1px solid var(--ledtse-border);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 24px;
}

.step {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px;
    border-right: 1px solid var(--ledtse-border);
    color: #929292;
}

.step:last-child {
    border-right: 0;
}

.step > span {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    flex: 0 0 34px;

    border-radius: 50%;
    background: #eeeeee;

    font-weight: 700;
}

.step strong,
.step small {
    display: block;
}

.step strong {
    font-size: 14px;
    margin-bottom: 2px;
}

.step small {
    font-size: 12px;
}

.step--active {
    color: var(--ledtse-dark);
    box-shadow: inset 0 -3px 0 var(--ledtse-yellow);
}

.step--active > span {
    background: var(--ledtse-yellow);
}


/* TARJETA FORMULARIO */

.form-card {
    max-width: 1050px;
    margin: 0 auto 60px;
    background: var(--ledtse-white);
    border: 1px solid var(--ledtse-border);
    border-radius: 12px;
    overflow: hidden;
}

.form-card__header {
    padding: 28px 32px;
    border-bottom: 1px solid var(--ledtse-border);
}

.form-card__header h2 {
    margin: 5px 0 6px;
    font-size: 24px;
}

.form-card__header p {
    margin: 0;
    color: var(--ledtse-gray);
}

.form-step-label {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--ledtse-gray);
}


/* FORMULARIO */

.form-card form {
    padding: 32px;
}

.form-section {
    margin-bottom: 30px;
}

.form-label {
    display: block;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 600;
}


/* TIPOS CLIENTE */

.client-types {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.client-type {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;

    min-height: 72px;
    padding: 14px 16px;

    border: 1px solid var(--ledtse-border);
    border-radius: 9px;

    cursor: pointer;
    background: var(--ledtse-white);
}

.client-type:hover {
    border-color: #bcbcbc;
}

.client-type:has(input:checked) {
    border-color: var(--ledtse-yellow);
    box-shadow: inset 0 0 0 1px var(--ledtse-yellow);
    background: #fffdf3;
}

.client-type input {
    accent-color: var(--ledtse-yellow);
}

.client-type strong,
.client-type small {
    display: block;
}

.client-type strong {
    margin-bottom: 3px;
    font-size: 14px;
}

.client-type small {
    color: var(--ledtse-gray);
}


/* CAMPOS */

.form-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.form-group {
    grid-column: span 1;
}

.form-group--wide {
    grid-column: span 2;
}

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

.form-group label {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 600;
}

.form-group label span {
    color: #d14343;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 11px 12px;

    border: 1px solid var(--ledtse-border);
    border-radius: 7px;

    background: var(--ledtse-white);
    color: var(--ledtse-dark);

    font-family: inherit;
    font-size: 14px;

    outline: none;
}

.form-group textarea {
    resize: vertical;
    min-height: 100px;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--ledtse-yellow);
    box-shadow: 0 0 0 3px rgba(255, 221, 0, 0.14);
}


/* ACCIONES */

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;

    margin-top: 32px;
    padding-top: 24px;

    border-top: 1px solid var(--ledtse-border);
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .steps {
        grid-template-columns: 1fr;
    }

    .step {
        border-right: 0;
        border-bottom: 1px solid var(--ledtse-border);
    }

    .step:last-child {
        border-bottom: 0;
    }

    .client-types {
        grid-template-columns: 1fr;
    }

    .form-grid {
        grid-template-columns: 1fr 1fr;
    }

    .form-group,
    .form-group--wide {
        grid-column: span 1;
    }

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


@media (max-width: 600px) {

    .page-heading {
        display: block;
    }

    .page-heading .btn-secondary {
        margin-top: 18px;
    }

    .form-card form,
    .form-card__header {
        padding: 22px;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-group,
    .form-group--wide,
    .form-group--full {
        grid-column: 1;
    }

}

/* =========================================================
   PASO 2 - TIPO DE INSTALACIÓN
   ========================================================= */

.client-type-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 10px;
}

.client-type-option {
    display: flex;
    align-items: center;
    gap: 12px;

    min-height: 72px;
    padding: 14px 16px;

    border: 1px solid var(--ledtse-border);
    border-radius: 9px;

    background: var(--ledtse-white);
    cursor: pointer;

    transition: border-color 0.2s ease;
}

.client-type-option:hover {
    border-color: #bcbcbc;
}

.client-type-option:has(input:checked) {
    border-color: var(--ledtse-yellow);
    box-shadow: inset 0 0 0 1px var(--ledtse-yellow);
    background: #fffdf3;
}

.client-type-option input {
    width: auto;
    accent-color: var(--ledtse-yellow);
}

.client-type-option strong,
.client-type-option small {
    display: block;
}

.client-type-option strong {
    font-size: 14px;
    margin-bottom: 3px;
}

.client-type-option small {
    font-size: 12px;
    color: var(--ledtse-gray);
}

@media (max-width: 700px) {
    .client-type-grid {
        grid-template-columns: 1fr;
    }
}

.installation-specific[hidden] {
    display: none;
}
/* EV · Visita técnica guiada. Se añaden sin alterar estilos anteriores. */
.ev-card .ev-section { padding: 26px 0; border-bottom: 1px solid var(--ledtse-border); }
.ev-card .ev-section:first-of-type { padding-top: 0; }
.ev-section-heading { display:flex; align-items:flex-start; gap:13px; margin-bottom:22px; }
.ev-section-heading h3 { margin:0 0 4px; font-size:19px; }
.ev-section-heading p { margin:0; color:var(--ledtse-gray); font-size:13px; line-height:1.5; }
.ev-number { display:grid; place-items:center; width:33px; height:33px; flex:0 0 33px; border-radius:9px; background:var(--ledtse-yellow); font-weight:800; font-size:12px; }
.ev-help { display:block; color:var(--ledtse-gray); font-size:12px; line-height:1.4; margin-top:6px; }
.ev-summary { margin-top:25px; padding:20px 22px; border:1px solid #e7d782; border-radius:10px; background:#fffdf0; }
.ev-summary strong { font-size:16px; }
.ev-summary p { margin:9px 0; font-size:14px; }
.ev-summary small { color:var(--ledtse-gray); }
.ev-save-note { color:var(--ledtse-gray); font-size:12px; text-align:right; line-height:1.5; }
.ev-card .btn-primary:disabled { opacity:.55; cursor:not-allowed; filter:none; }
.installation-specific[hidden] { display:none !important; }
@media(max-width:600px) { .ev-card .ev-section { padding:22px 0; } .ev-section-heading h3 { font-size:17px; } }

/* Paso 2 y 3: mensajes y resumen */
.ev-alert { max-width:1050px; margin:0 auto 20px; padding:14px 18px; border:1px solid #e9b0b0; background:#fff1f1; color:#8c2525; border-radius:10px; }
.ev-preview { padding:30px 32px; }
.ev-preview .ev-summary { margin-bottom:16px; }

/* Borradores y recuperación del recorrido comercial */
.ev-drafts{max-width:1050px;margin:0 auto 24px;background:#fff;border:1px solid #e4e4e4;border-radius:12px;overflow:hidden}
.ev-drafts-head{padding:23px 28px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #e4e4e4}
.ev-drafts-head h2{margin:5px 0;font-size:23px}.ev-drafts-head p{margin:0;color:#575756;font-size:14px}
.ev-drafts-count{white-space:nowrap;background:#fff8c9;border-radius:30px;padding:8px 12px;font-size:12px;font-weight:700}
.ev-draft-row{display:flex;align-items:center;gap:18px;padding:17px 28px;color:var(--ledtse-gray);text-decoration:none;border-bottom:1px solid #eee}
.ev-draft-row:last-child{border-bottom:0}.ev-draft-row:hover{background:#fffdf0}
.ev-draft-id{background:#ffdd00;border-radius:8px;padding:9px 12px;font-weight:700}
.ev-draft-name{flex:1;font-weight:700;min-width:0;overflow-wrap:anywhere}.ev-draft-name small{display:block;color:#575756;font-weight:400;margin-top:4px}
.ev-draft-row>strong{white-space:nowrap;font-size:13px}
@media(max-width:600px){.ev-drafts-head{padding:18px;align-items:flex-start;flex-direction:column}.ev-draft-row{padding:15px;gap:10px;flex-wrap:wrap}.ev-draft-row>strong{margin-left:auto}}

/* Paso 4: editor comercial de partidas */
.step--done{color:var(--ledtse-gray);background:#fffef4}.step--done>span{background:#fff0a3}.step--done{box-shadow:inset 0 -3px 0 #f1dc6d}
.ev-lines-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:28px 0 16px}.ev-lines-toolbar h3{margin:0 0 5px}.ev-lines-toolbar p{margin:0;color:#575756;font-size:13px}
.ev-lines-list{display:grid;gap:13px}.ev-line{border:1px solid #e4e4e4;border-radius:10px;padding:17px;background:#fff}.ev-line-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ev-line-remove{background:none;border:0;color:#a03a3a;font:inherit;font-size:13px;cursor:pointer}.ev-line-grid{display:grid;grid-template-columns:1.1fr 2fr .7fr .7fr 1fr 1fr;gap:12px;align-items:end}.ev-line-grid .form-group{grid-column:auto}.ev-line-amount{padding-bottom:12px;text-align:right}.ev-line-amount small{display:block;color:#575756;margin-bottom:5px}.ev-lines-total{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:20px;background:#fff9d7;border-radius:9px}.ev-lines-total strong{font-size:24px}
@media(max-width:950px){.ev-line-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ev-line-description{grid-column:span 2!important}}@media(max-width:600px){.ev-lines-toolbar{align-items:stretch;flex-direction:column}.ev-line-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-line-description{grid-column:span 2!important}.ev-line-amount{text-align:left}.ev-lines-total strong{font-size:19px}}

/* Paso 5 · propuesta comercial */
.ev-proposal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:4px solid #ffdd00;padding-bottom:20px}.ev-proposal-top h3{font-size:23px;margin:8px 0}.ev-proposal-top p{color:#575756;margin:0}.ev-status{background:#fff3ae;padding:9px 14px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}.ev-proposal-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:25px 0}.ev-proposal-grid>div{padding:22px;border:1px solid #e4e4e4;border-radius:10px}.ev-proposal-grid h4{margin:9px 0;font-size:17px}.ev-proposal-grid p{margin:7px 0;color:#575756;font-size:14px}.ev-proposal-subtitle{margin:30px 0 12px}.ev-proposal-table{border:1px solid #e4e4e4;border-radius:9px;overflow:hidden}.ev-proposal-table-head,.ev-proposal-table-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 130px;gap:12px;align-items:center;padding:14px 18px}.ev-proposal-table-head{background:#ffdd00;font-weight:700;font-size:12px}.ev-proposal-table-row{border-top:1px solid #eee;font-size:14px}.ev-proposal-table-row small{display:block;color:#575756;margin-top:4px}.ev-proposal-table-row>strong{text-align:right}.ev-proposal-total{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#fff5c4;padding:22px;margin-top:18px;border-radius:9px}.ev-proposal-total strong{font-size:26px}.ev-proposal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:26px;padding-top:22px;border-top:1px solid #eee}.ev-proposal-actions form{padding:0}.ev-success{background:#eaf8ed;border:1px solid #9fd1a8;border-radius:9px;padding:15px;margin-bottom:22px;font-size:14px}@media(max-width:650px){.ev-proposal-grid{grid-template-columns:1fr}.ev-proposal-top{flex-direction:column}.ev-proposal-table-head,.ev-proposal-table-row{grid-template-columns:minmax(0,1fr) 55px 90px;padding:12px 9px;gap:6px}.ev-proposal-total strong{font-size:20px}}

/* Panel de administración V1 */
.admin-wrap{max-width:1180px;margin:0 auto;padding:45px 30px 70px}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.admin-top h1{font-size:34px;margin:0 0 8px}.admin-top p:not(.dashboard-eyebrow){color:#575756;margin:0}.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.admin-tile,.admin-panel{background:#fff;border:1px solid #e4e4e4;border-radius:13px;padding:26px}.admin-tile{text-decoration:none;color:var(--ledtse-gray);min-height:240px}.admin-tile h2,.admin-panel h2{margin:10px 0;font-size:21px}.admin-tile p{color:#575756;line-height:1.5}.admin-tile strong{font-size:13px}.admin-tile-icon{display:grid;place-items:center;width:42px;height:42px;background:#ffdd00;border-radius:10px;font-size:22px}.admin-tile-muted{background:#fafafa}.admin-tag{display:inline-block;border-radius:20px;background:#f0f0f0;padding:6px 11px;font-size:12px;font-weight:700}.admin-active{background:#e5f6e8;color:#1c6d36}.admin-inactive{background:#ffe8e8;color:#923535}.admin-panel{margin:0 0 22px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-form-grid label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.admin-form-grid input,.admin-form-grid select{width:100%;border:1px solid #ddd;border-radius:8px;padding:12px;font:inherit;font-weight:400}.admin-form-grid small{color:#575756;font-weight:400}.admin-actions{display:flex;justify-content:flex-end;margin-top:20px}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;text-align:left}.admin-table th,.admin-table td{padding:14px 12px;border-bottom:1px solid #eee}.admin-table th{font-size:12px;color:#575756}.admin-table td small{display:block;margin-top:5px;color:#575756}.admin-table form{margin:0}.admin-muted{color:#777;font-size:13px}.admin-message{padding:14px 18px;border-radius:9px;margin-bottom:18px}.admin-error{background:#fff0f0;color:#8c2525}.admin-success{background:#eaf8ed;color:#206c36}@media(max-width:850px){.admin-grid{grid-template-columns:1fr}.admin-form-grid{grid-template-columns:1fr}.admin-top{align-items:flex-start;flex-direction:column}.admin-wrap{padding:28px 18px}}

/* =========================
   Paso 4 recarga: conceptos del catálogo (sin precios) y totales con IGIC
   ========================= */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ev-picker-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.ev-picker-row select{flex:1 1 260px;min-width:0;max-width:100%;padding:12px;border:1px solid var(--ledtse-border);border-radius:8px;font:inherit;background:#fff}
.ev-line-head>span{display:flex;flex-direction:column;gap:4px;min-width:0}
.ev-line-group{color:var(--ledtse-gray);font-size:12px;text-transform:uppercase;letter-spacing:.6px}
.ev-line-grid--catalog{grid-template-columns:minmax(0,180px) auto;align-items:end}
.ev-line-unit{padding-bottom:14px;color:var(--ledtse-gray)}
.ev-proposal-totals{margin-top:18px;border:1px solid var(--ledtse-border);border-radius:9px}
.ev-proposal-totals>div{display:flex;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid #eee;font-size:15px}
.ev-proposal-totals>div:last-child{border-bottom:0}
@media(max-width:600px){.ev-line-grid--catalog{grid-template-columns:minmax(0,1fr) auto}}

/* =========================
   Marca: cabecera común, pie, acceso
   ========================= */
h1, h2, h3, h4 { color: var(--ledtse-gray); }
.app-header { gap: 18px; height: auto; min-height: 84px; padding-top: 10px; padding-bottom: 10px; border-bottom: 4px solid var(--ledtse-yellow); }
.app-header__brand { flex: 0 0 auto; }
.app-header img { max-width: 190px; max-height: 60px; }
.app-header__nav { flex: 1 1 auto; display: flex; gap: 8px; }
.app-header__nav a { padding: 9px 14px; border-radius: 8px; color: var(--ledtse-gray); font-weight: 600; text-decoration: none; }
.app-header__nav a:hover, .app-header__nav a:focus-visible { background: var(--ledtse-yellow-soft); }
.app-header__salir { margin: 0; padding: 0; }
.app-header__salir button { border: 1px solid var(--ledtse-border); background: #fff; color: var(--ledtse-gray); border-radius: 8px; padding: 8px 12px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.app-header__salir button:hover { border-color: var(--ledtse-gray); }
.app-footer { max-width: 1180px; margin: 10px auto 0; padding: 26px 22px 34px; text-align: center; color: var(--ledtse-gray); font-size: 14px; line-height: 1.6; }
.app-footer p { margin: 2px 0; }
.app-footer a { color: var(--ledtse-gray); font-weight: 600; }
@media (max-width: 700px) {
    .app-header { flex-wrap: wrap; padding: 10px 16px; gap: 10px; }
    .app-header img { max-width: 132px; max-height: 42px; }
    .app-header__nav { order: 3; flex-basis: 100%; }
    .app-header__nav a { flex: 1; text-align: center; background: var(--ledtse-yellow-soft); }
    .app-header__user > div:first-child { display: none; }
    .app-header__user { margin-left: auto; }
    .user-avatar { width: 36px; height: 36px; }
    .app-container { padding-left: 16px !important; padding-right: 16px !important; }
    /* Pasos del asistente en una fila compacta: número de cada paso y nombre solo del actual. */
    .steps { display: flex !important; overflow-x: auto; }
    .steps .step { flex: 1 0 auto; border-bottom: 0 !important; border-right: 1px solid var(--ledtse-border); padding: 10px 12px; min-width: 0; }
    .steps .step:not(.step--active) div { display: none; }
    .steps .step small { display: none; }
}

.login-page { min-height: 100vh; background: linear-gradient(180deg, var(--ledtse-yellow-soft) 0, var(--ledtse-bg) 320px); }
.login { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px 16px 0; }
.login-card { width: 100%; max-width: 420px; background: #fff; border: 1px solid var(--ledtse-border); border-top: 6px solid var(--ledtse-yellow); border-radius: 14px; padding: 32px 28px; box-shadow: 0 12px 30px rgba(87, 87, 86, .08); }
.login-logo { display: block; width: 210px; max-width: 100%; height: auto; margin: 0 0 22px; }
.login-card h1 { margin: 4px 0 8px; font-size: 28px; }
.login-lead { margin: 0 0 22px; color: var(--ledtse-gray); line-height: 1.5; }
.login-form { display: flex; flex-direction: column; gap: 8px; }
.login-form label { font-weight: 600; font-size: 14px; margin-top: 6px; }
.login-form input { padding: 13px; border: 1px solid #d6d6d4; border-radius: 9px; font: inherit; font-size: 16px; }
.login-form input:focus { outline: 3px solid var(--ledtse-yellow); outline-offset: 1px; border-color: var(--ledtse-gray); }
.login-form .btn-primary { margin-top: 16px; width: 100%; justify-content: center; font-size: 16px; padding: 14px; }
.app-container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 36px 30px 20px; }
.eyebrow { margin: 0 0 8px; color: var(--ledtse-gray); font-size: 12px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; }

/* =========================
   Panel del comercial
   ========================= */
.welcome h1 { margin: 0 0 6px; font-size: 32px; }
.panel-section { margin: 30px 0; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.panel-title { margin: 0 0 6px; font-size: 21px; }
.panel-subtitle { margin: 26px 0 10px; font-size: 16px; }
.panel-lead { margin: 0 0 16px; color: var(--ledtse-gray); line-height: 1.5; max-width: 720px; }
.line-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.line-card { display: flex; align-items: center; gap: 16px; padding: 22px; background: #fff; border: 1px solid var(--ledtse-border); border-radius: 14px; color: var(--ledtse-gray); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.line-card:hover, .line-card:focus-visible { border-color: var(--ledtse-yellow); box-shadow: 0 8px 22px rgba(87, 87, 86, .1); }
.line-card strong { display: block; font-size: 19px; }
.line-card small { display: block; margin-top: 4px; font-size: 14px; line-height: 1.4; }
.line-card .card-icon { flex: 0 0 auto; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--ledtse-yellow); font-size: 24px; }
.line-card__go { margin-left: auto; font-size: 22px; font-weight: 700; }
.status-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.status-tile { display: flex; flex-direction: column; gap: 4px; padding: 16px; background: #fff; border: 1px solid var(--ledtse-border); border-radius: 12px; color: var(--ledtse-gray); text-decoration: none; }
.status-tile strong { font-size: 28px; line-height: 1; }
.status-tile span { font-size: 13px; font-weight: 600; }
.status-tile:hover { border-color: var(--ledtse-gray); }
.status-tile--borrador { border-top: 4px solid #c9c9c7; }
.status-tile--nuevo, .status-tile--en_estudio, .status-tile--enviado { border-top: 4px solid var(--ledtse-yellow); }
.status-tile--aceptado { border-top: 4px solid #3f9a5a; }
.status-tile--rechazado { border-top: 4px solid #b65151; }
.resume-list { background: #fff; border: 1px solid var(--ledtse-border); border-radius: 12px; overflow: hidden; }
@media (max-width: 900px) { .status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .line-choice { grid-template-columns: 1fr; }
    .status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .welcome h1 { font-size: 26px; }
    .resume-list .ev-draft-row { padding: 14px; gap: 10px; flex-wrap: wrap; }
}

/* =========================
   Mis presupuestos
   ========================= */
.list-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.list-tabs { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; margin: 0 0 14px; }
.list-tabs a { flex: 0 0 auto; padding: 9px 14px; border-radius: 20px; background: #fff; border: 1px solid var(--ledtse-border); color: var(--ledtse-gray); font-weight: 600; font-size: 14px; text-decoration: none; }
.list-tabs a span { margin-left: 4px; font-weight: 400; }
.list-tabs a.is-active { background: var(--ledtse-yellow); border-color: var(--ledtse-yellow); }
.list-tabs--scope a { border-radius: 8px; }
.quote-list { display: grid; gap: 10px; }
.quote-row { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.6fr) minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 16px 18px; background: #fff; border: 1px solid var(--ledtse-border); border-radius: 12px; }
.quote-row strong { display: block; }
.quote-row small { display: block; margin-top: 3px; color: var(--ledtse-gray); font-size: 13px; }
.quote-row__code { display: inline-block; margin-bottom: 5px; padding: 3px 8px; border-radius: 6px; background: var(--ledtse-yellow-soft); font-size: 12px; font-weight: 700; letter-spacing: .3px; }
.quote-row__amount { text-align: right; }
.quote-row__amount strong { font-size: 17px; }
.quote-pill { display: inline-block; padding: 5px 10px; border-radius: 20px; background: #eeeeec; font-size: 12px; font-weight: 700; }
.quote-pill--nuevo, .quote-pill--en_estudio, .quote-pill--enviado { background: var(--ledtse-yellow); }
.quote-pill--aceptado { background: #dff2e4; color: #1f6b36; }
.quote-pill--rechazado { background: #f8e1e1; color: #8c2525; }
.quote-empty { padding: 26px; text-align: center; background: #fff; border: 1px dashed var(--ledtse-border); border-radius: 12px; }
@media (max-width: 800px) {
    .quote-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
    .quote-row__meta { grid-column: 1 / -1; grid-row: 2; }
    .quote-row__amount { grid-column: 2; grid-row: 1; }
    .quote-row__action { grid-column: 1 / -1; }
    .quote-row__action .btn-secondary { display: block; text-align: center; padding: 12px; line-height: 1.2; }
}
@media (max-width: 600px) {
    .resume-list .ev-draft-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
    .resume-list .ev-draft-id { grid-column: 1 / -1; justify-self: start; padding: 3px 8px; font-size: 12px; }
    .resume-list .ev-draft-row > strong { margin-left: 0; }
}
.quote-row__state:empty { display: none; }
.quote-row__state { grid-column: 1 / -1; }
.state-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-top: 10px; border-top: 1px dashed var(--ledtse-border); }
.state-form select, .state-form input { padding: 9px 10px; border: 1px solid var(--ledtse-border); border-radius: 8px; font: inherit; font-size: 14px; background: #fff; }
.state-form input { flex: 1 1 220px; min-width: 0; }
.state-history { margin: 14px 0 0; padding: 0; list-style: none; font-size: 14px; }
.state-history li { padding: 6px 0; border-bottom: 1px solid #eee; }
