:root{
    --joya-dark:#111827;
    --joya-red:#d71920;
    --joya-red-dark:#a90f15;
    --joya-blue:#0b5ed7;
    --joya-bg:#f3f6fa;
    --joya-card:#ffffff;
    --joya-text:#1f2937;
    --joya-muted:#6b7280;
    --joya-border:#e5e7eb;
}

*{box-sizing:border-box}
html,body{min-height:100%}
body{
    margin:0;
    background:linear-gradient(135deg,#f7f9fc 0%,#eef2f7 100%);
    color:var(--joya-text);
    font-family:Arial,Helvetica,sans-serif;
    font-size:15px;
}

a{color:var(--joya-blue);text-decoration:none}
a:hover{text-decoration:underline}

/* Barra superior */
.joya-navbar{
    background:linear-gradient(135deg,#111827 0%,#242b36 100%) !important;
    border-bottom:4px solid var(--joya-red);
    box-shadow:0 3px 14px rgba(0,0,0,.18);
}
.joya-navbar .navbar-brand{
    font-weight:800;
    letter-spacing:.3px;
    font-size:1.08rem;
}
.joya-navbar .navbar-brand span{color:#ff4b52}
.joya-user{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Contenedor principal */
.joya-main{padding-top:28px;padding-bottom:42px}
.joya-page-title{font-weight:800;color:#172033;letter-spacing:-.3px}
.joya-subtitle{color:var(--joya-muted)}

/* Tarjetas */
.card{
    border:1px solid rgba(17,24,39,.06) !important;
    border-radius:14px !important;
    box-shadow:0 7px 22px rgba(17,24,39,.07) !important;
    overflow:hidden;
}
.card-body{background:var(--joya-card)}
.card-header{font-weight:700;border-bottom:0}

/* Botones */
.btn{border-radius:9px;font-weight:600}
.btn-primary{background:var(--joya-red);border-color:var(--joya-red)}
.btn-primary:hover,.btn-primary:focus{background:var(--joya-red-dark);border-color:var(--joya-red-dark)}
.btn-secondary{background:#4b5563;border-color:#4b5563}
.btn-secondary:hover{background:#374151;border-color:#374151}

/* Formularios */
.form-label{font-weight:700;color:#374151}
.form-control,.form-select{
    border:1px solid #cfd6df;
    border-radius:9px;
    min-height:42px;
}
.form-control:focus,.form-select:focus{
    border-color:var(--joya-red);
    box-shadow:0 0 0 .2rem rgba(215,25,32,.12);
}

/* Alertas */
.alert{border-radius:11px;border-width:1px}
.alert-primary{background:#eef5ff;border-color:#cfe1ff;color:#174a87}
.alert-info{background:#edf8fb;border-color:#ccecf3}
.alert-warning{background:#fff8e6;border-color:#f6df9c}
.alert-danger{background:#fff0f1;border-color:#f3c2c5}
.alert-secondary{background:#f5f6f8;border-color:#dde1e6}

/* Tablas */
.table-responsive{border-radius:10px}
.table{margin-bottom:0;background:#fff}
.table thead th{
    background:#172033;
    color:#fff;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.25px;
    white-space:nowrap;
    border-color:#30394a;
}
.table td,.table th{vertical-align:middle}
.table tbody td{font-size:.88rem}
.table-hover tbody tr:hover{background:#fff4f4}
.table-bordered>:not(caption)>*>*{border-color:#e2e6eb}

/* Cabeceras de consulta */
.joya-section-current{border-top:4px solid var(--joya-red) !important}
.joya-section-current .card-header{
    background:linear-gradient(135deg,#d71920,#a90f15) !important;
    color:#fff;
}
.joya-section-history{border-top:4px solid #1f2937 !important}
.joya-section-history .card-header{
    background:linear-gradient(135deg,#1f2937,#374151) !important;
    color:#fff;
}
.joya-count{font-size:.82rem;color:#6b7280}
.joya-empty{padding:18px;text-align:center;color:#6b7280;background:#f8fafc;border-radius:9px}

/* Panel de información */
.joya-info-box{
    border-left:5px solid var(--joya-red);
    background:#fff;
    box-shadow:0 4px 14px rgba(17,24,39,.05);
}

/* Login */
.joya-login-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:25px 15px;
    background:radial-gradient(circle at top,#ffffff 0%,#eef2f7 65%,#e5eaf0 100%);
}
.joya-login-card{width:100%;max-width:430px}
.joya-login-brand{
    text-align:center;
    padding:8px 0 18px;
}
.joya-login-brand .brand-mark{
    width:62px;height:62px;margin:0 auto 12px;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--joya-red);
    color:#fff;font-size:1.35rem;font-weight:800;
    box-shadow:0 7px 18px rgba(215,25,32,.25);
}
.joya-login-brand h1{font-size:1.55rem;font-weight:800;margin:0;color:#172033}
.joya-login-brand p{margin:5px 0 0;color:#6b7280}

/* Selector de sede */
.joya-sede-option{
    border:1px solid #d9dee6;
    border-radius:11px;
    padding:13px 15px;
    margin-bottom:10px;
    transition:.15s ease;
}
.joya-sede-option:hover{border-color:var(--joya-red);background:#fff8f8}

/* Responsive */
@media(max-width:767.98px){
    body{font-size:14px}
    .joya-main{padding-top:18px}
    .joya-page-title{font-size:1.55rem}
    .joya-navbar .container-fluid{padding-left:12px;padding-right:12px}
    .joya-user{margin-top:8px}
    .table thead th,.table tbody td{font-size:.76rem}
}

/* Ficha verde de última información actualizada
   Este bloque únicamente aplica el color y presentación de la ficha verde.
   El resto del diseño existente no se modifica. */
.joya-ultima-ficha{
    background:#e9f7ef;
    border:1px solid #9ed5b5;
    border-left:6px solid #198754;
    border-radius:14px;
    box-shadow:0 7px 22px rgba(17,24,39,.07);
    overflow:hidden;
    margin-bottom:24px;
}
.joya-ultima-ficha-head{
    background:#198754;
    color:#fff;
    padding:16px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    flex-wrap:wrap;
}
.joya-ultima-ficha-title{
    font-size:1.15rem;
    font-weight:800;
    letter-spacing:.2px;
}
.joya-ultima-ficha-subtitle{
    margin-top:4px;
    font-size:.95rem;
}
.joya-ultima-ficha-badge{
    background:#fff;
    color:#146c43;
    border-radius:9px;
    padding:7px 11px;
    font-weight:800;
    white-space:nowrap;
}
.joya-ultima-ficha-note{
    margin:16px 20px 0;
    padding:12px 14px;
    background:#f7fffa;
    border:1px solid #b8dfc8;
    border-radius:9px;
    color:#14532d;
    line-height:1.5;
}
.joya-ficha-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    padding:16px 20px 20px;
}
.joya-ficha-block{
    background:#fff;
    border:1px solid #b8dfc8;
    border-radius:11px;
    overflow:hidden;
}
.joya-ficha-block-title{
    background:#d1e7dd;
    color:#0f5132;
    font-weight:800;
    padding:10px 13px;
    border-bottom:1px solid #b8dfc8;
}
.joya-ficha-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.joya-ficha-fields>div{
    padding:10px 13px;
    border-bottom:1px solid #e2f0e7;
    min-width:0;
}
.joya-ficha-fields>div:nth-child(odd){border-right:1px solid #e2f0e7}
.joya-ficha-fields>div:last-child,
.joya-ficha-fields>div:nth-last-child(2):nth-child(odd){border-bottom:0}
.joya-ficha-fields span{
    display:block;
    color:#4b6356;
    font-size:.78rem;
    font-weight:700;
    margin-bottom:3px;
}
.joya-ficha-fields strong{
    display:block;
    color:#111827;
    font-size:.92rem;
    overflow-wrap:anywhere;
}
.joya-ficha-wide{grid-column:1/-1}
.joya-ficha-wide:nth-child(odd){border-right:0 !important}

@media(max-width:767.98px){
    .joya-ultima-ficha-head{padding:14px}
    .joya-ultima-ficha-note{margin:14px 14px 0}
    .joya-ficha-grid{grid-template-columns:1fr;padding:14px}
    .joya-ficha-fields{grid-template-columns:1fr}
    .joya-ficha-fields>div:nth-child(odd){border-right:0}
    .joya-ficha-fields>div{border-bottom:1px solid #e2f0e7 !important}
    .joya-ficha-fields>div:last-child{border-bottom:0 !important}
}

/* Formulario de actualización: misma línea visual de la ficha verde */
.joya-edit-ficha{
    background:#e9f7ef !important;
    border:1px solid #9ed5b5 !important;
    border-left:6px solid #198754 !important;
    border-radius:14px !important;
    overflow:hidden;
    box-shadow:0 7px 22px rgba(17,24,39,.07) !important;
}
.joya-edit-ficha-head{
    background:#198754;
    color:#fff;
    padding:16px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    flex-wrap:wrap;
}
.joya-edit-ficha-title{
    font-size:1.15rem;
    font-weight:800;
    letter-spacing:.2px;
}
.joya-edit-ficha-subtitle{margin-top:4px;font-size:.95rem}
.joya-edit-ficha-badge{
    background:#fff;
    color:#146c43;
    border-radius:9px;
    padding:7px 11px;
    font-weight:800;
    white-space:nowrap;
}
.joya-edit-note{
    margin:16px 20px 0;
    padding:12px 14px;
    background:#f7fffa;
    border:1px solid #b8dfc8;
    border-radius:9px;
    color:#14532d;
    line-height:1.5;
}
.joya-edit-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    padding:16px 20px 20px;
}
.joya-edit-block{
    background:#fff;
    border:1px solid #b8dfc8;
    border-radius:11px;
    overflow:hidden;
}
.joya-edit-block-title{
    background:#d1e7dd;
    color:#0f5132;
    font-weight:800;
    padding:10px 13px;
    border-bottom:1px solid #b8dfc8;
}
.joya-edit-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.joya-edit-field{
    padding:10px 13px;
    border-bottom:1px solid #e2f0e7;
    min-width:0;
}
.joya-edit-field:nth-child(odd){border-right:1px solid #e2f0e7}
.joya-edit-field:nth-last-child(-n+2){border-bottom:0}
.joya-edit-label{
    display:block;
    color:#4b6356;
    font-size:.82rem;
    font-weight:700;
    margin-bottom:5px;
}
.joya-edit-control{
    width:100%;
    background:#fff;
    color:#111827;
}
.joya-edit-help{
    margin-top:4px;
    color:#4b6356;
    font-size:.76rem;
}
.joya-edit-footer{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    padding:14px 20px;
    background:#fff;
    border-top:1px solid #b8dfc8;
}
@media(max-width:767.98px){
    .joya-edit-ficha-head{padding:14px}
    .joya-edit-note{margin:14px 14px 0}
    .joya-edit-grid{grid-template-columns:1fr;padding:14px}
    .joya-edit-fields{grid-template-columns:1fr}
    .joya-edit-field:nth-child(odd){border-right:0}
    .joya-edit-field{border-bottom:1px solid #e2f0e7 !important}
    .joya-edit-field:last-child{border-bottom:0 !important}
    .joya-edit-footer{padding:14px;flex-wrap:wrap}
}


/* V33: botones y panel para agregar referencia, color y cilindraje desde ACTUALIZAR INFORMACIÓN */
.joya-parametro-btn{font-size:.72rem;padding:.2rem .45rem;font-weight:700;}
.joya-parametro-panel{margin-top:12px;padding:12px 14px;border:1px solid #9ed5b5;border-left:4px solid #198754;border-radius:8px;background:#f3fbf6;}
.joya-parametro-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.joya-parametro-panel-head strong{color:#146c43;}
@media (max-width:575.98px){.joya-parametro-panel-head{align-items:flex-start;flex-direction:column;}.joya-parametro-panel-head .btn{align-self:flex-end;}}

/* ------------------------------------------------------------
   Módulo Orden de Servicio
   Mantiene la misma línea visual de Yamaha Joya.
   ------------------------------------------------------------ */
.joya-order-search{border-top:4px solid var(--joya-red) !important}
.joya-order-card{
    background:#e9f7ef;
    border:1px solid #9ed5b5;
    border-left:6px solid #198754;
    border-radius:14px;
    box-shadow:0 7px 22px rgba(17,24,39,.07);
    overflow:hidden;
}
.joya-order-card-head{
    background:#198754;
    color:#fff;
    padding:15px 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}
.joya-order-title{font-size:1.08rem;font-weight:800}
.joya-order-subtitle{font-size:.86rem;margin-top:3px}
.joya-order-status{
    display:inline-flex;
    align-items:center;
    padding:7px 10px;
    border-radius:8px;
    background:#fff;
    font-size:.75rem;
    font-weight:800;
}
.joya-order-status-ok{color:#146c43}
.joya-order-status-danger{color:#b02a37}
.joya-order-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    padding:15px 18px;
}
.joya-order-block{
    background:#fff;
    border:1px solid #b8dfc8;
    border-radius:10px;
    overflow:hidden;
}
.joya-order-block-title{
    background:#d1e7dd;
    color:#0f5132;
    font-weight:800;
    padding:9px 12px;
    border-bottom:1px solid #b8dfc8;
}
.joya-order-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.joya-order-fields>div{
    padding:9px 12px;
    border-bottom:1px solid #e2f0e7;
    min-width:0;
}
.joya-order-fields>div:nth-child(odd){border-right:1px solid #e2f0e7}
.joya-order-fields span{
    display:block;
    color:#4b6356;
    font-size:.76rem;
    font-weight:700;
    margin-bottom:3px;
}
.joya-order-fields strong{
    display:block;
    color:#111827;
    font-size:.9rem;
    overflow-wrap:anywhere;
}
.joya-order-active-box{
    margin:0 18px 15px;
    padding:12px 14px;
    background:#fff4f4;
    border:1px solid #f0b7bb;
    border-left:4px solid var(--joya-red);
    border-radius:9px;
    color:#842029;
}
.joya-order-card-footer{
    padding:0 18px 17px;
    display:flex;
    justify-content:flex-end;
}
.joya-order-form{
    background:#e9f7ef;
    border:1px solid #9ed5b5;
    border-left:6px solid #198754;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 7px 22px rgba(17,24,39,.07);
}
.joya-order-form-head{
    background:#198754;
    color:#fff;
    padding:16px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    flex-wrap:wrap;
}
.joya-order-form-title{font-size:1.15rem;font-weight:800;letter-spacing:.2px}
.joya-order-form-subtitle{margin-top:4px;font-size:.9rem}
.joya-order-badge{
    background:#fff;
    color:#146c43;
    border-radius:9px;
    padding:7px 11px;
    font-weight:800;
}
.joya-order-note{
    margin:16px 20px 0;
    padding:12px 14px;
    background:#f7fffa;
    border:1px solid #b8dfc8;
    border-radius:9px;
    color:#14532d;
    line-height:1.5;
}
.joya-order-form-grid{padding-bottom:8px}
.joya-order-form-fields{
    padding:8px 18px 18px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
}
.joya-order-input{
    background:#fff;
    border:1px solid #b8dfc8;
    border-radius:10px;
    padding:12px;
}
.joya-order-input small{display:block;margin-top:4px;color:#4b6356}
.joya-order-form-footer{
    padding:15px 18px;
    border-top:1px solid #b8dfc8;
    display:flex;
    justify-content:flex-end;
    gap:9px;
    background:#f7fffa;
}
@media(max-width:767.98px){
    .joya-order-grid,.joya-order-form-fields{grid-template-columns:1fr}
    .joya-order-fields{grid-template-columns:1fr}
    .joya-order-fields>div:nth-child(odd){border-right:0}
    .joya-order-form-head{padding:14px}
    .joya-order-note{margin:14px 14px 0}
    .joya-order-grid{padding:14px}
    .joya-order-form-fields{padding:8px 14px 14px}
    .joya-order-card-footer{padding:0 14px 14px}
    .joya-order-active-box{margin:0 14px 14px}
    .joya-order-form-footer{padding:14px;flex-wrap:wrap}
}


/* V38: control visual de gasolina 0-100, igual al slider de la ficha base */
.joya-gasolina-input{overflow:visible;}
.joya-gasolina-slider{
    position:relative;
    padding:28px 4px 22px;
}
.joya-gasolina-value{
    position:absolute;
    top:0;
    transform:translateX(-50%);
    min-width:22px;
    height:22px;
    padding:2px 5px;
    border-radius:5px;
    background:#ea4f68;
    color:#fff;
    font-size:.72rem;
    line-height:18px;
    text-align:center;
    font-weight:800;
    pointer-events:none;
    z-index:2;
}
.joya-gasolina-value:after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-5px;
    transform:translateX(-50%);
    border-left:5px solid transparent;
    border-right:5px solid transparent;
    border-top:5px solid #ea4f68;
}
.joya-gasolina-range{
    --gasolina-percent:0%;
    display:block;
    width:100%;
    height:7px;
    margin:0;
    padding:0;
    appearance:none;
    -webkit-appearance:none;
    border:0;
    border-radius:6px;
    outline:0;
    background:linear-gradient(to right,#ea4f68 0%,#ea4f68 var(--gasolina-percent),#e1e4e8 var(--gasolina-percent),#e1e4e8 100%);
    cursor:pointer;
}
.joya-gasolina-range::-webkit-slider-runnable-track{
    height:7px;
    border:0;
    border-radius:6px;
    background:transparent;
}
.joya-gasolina-range::-webkit-slider-thumb{
    appearance:none;
    -webkit-appearance:none;
    width:18px;
    height:18px;
    margin-top:-5.5px;
    border:0;
    border-radius:50%;
    background:#ea4f68;
    box-shadow:0 1px 4px rgba(0,0,0,.18);
}
.joya-gasolina-range::-moz-range-track{
    height:7px;
    border:0;
    border-radius:6px;
    background:transparent;
}
.joya-gasolina-range::-moz-range-progress{
    height:7px;
    border-radius:6px;
    background:#ea4f68;
}
.joya-gasolina-range::-moz-range-thumb{
    width:18px;
    height:18px;
    border:0;
    border-radius:50%;
    background:#ea4f68;
    box-shadow:0 1px 4px rgba(0,0,0,.18);
}
.joya-gasolina-range:focus-visible{
    box-shadow:0 0 0 3px rgba(234,79,104,.18);
    border-radius:8px;
}
.joya-gasolina-scale{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    margin-top:10px;
    padding:0 2px;
    color:#69727d;
    font-size:.68rem;
    line-height:1;
}
.joya-gasolina-scale span{
    position:relative;
    min-width:12px;
    text-align:center;
}
.joya-gasolina-scale span:before{
    content:"";
    position:absolute;
    left:50%;
    top:-10px;
    width:1px;
    height:5px;
    background:#cfd5db;
}
@media(max-width:575.98px){
    .joya-gasolina-slider{padding-left:2px;padding-right:2px;}
}


/* Dictado por voz - Orden de Servicio */
.joya-voz-field{
    width:100%;
}
.joya-voz-label-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}
.joya-voz-btn{
    border:1px solid #adb5bd;
    background:#fff;
    color:#343a40;
    border-radius:6px;
    padding:6px 11px;
    font-size:.82rem;
    font-weight:600;
    cursor:pointer;
    transition:all .15s ease;
}
.joya-voz-btn:hover:not(:disabled){
    background:#f3f5f7;
}
.joya-voz-btn:focus-visible{
    outline:3px solid rgba(13,110,253,.2);
    outline-offset:2px;
}
.joya-voz-btn.is-active{
    background:#dc3545;
    border-color:#dc3545;
    color:#fff;
}
.joya-voz-icon{
    margin-right:5px;
}
.joya-voz-btn:disabled{
    opacity:.65;
    cursor:not-allowed;
}
.joya-voz-box{
    position:relative;
    border:2px solid transparent;
    border-radius:7px;
    transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.joya-voz-box.is-listening{
    border-color:#dc3545;
    box-shadow:0 0 0 3px rgba(220,53,69,.12);
    background:#fff7f7;
}
.joya-voz-box.is-listening textarea{
    border-color:#dc3545;
}
.joya-voz-active{
    display:none;
    align-items:center;
    gap:6px;
    min-height:28px;
    padding:4px 9px;
    color:#842029;
    background:#f8d7da;
    border-top:1px solid #f1aeb5;
    font-size:.76rem;
    font-weight:700;
}
.joya-voz-active.is-active{
    display:flex;
}
.joya-voz-active.is-active:before{
    content:"";
    width:8px;
    height:8px;
    border-radius:50%;
    background:#dc3545;
    box-shadow:0 0 0 0 rgba(220,53,69,.55);
    animation:joya-voz-pulse 1.2s infinite;
}
@keyframes joya-voz-pulse{
    0%{box-shadow:0 0 0 0 rgba(220,53,69,.55);}
    70%{box-shadow:0 0 0 7px rgba(220,53,69,0);}
    100%{box-shadow:0 0 0 0 rgba(220,53,69,0);}
}
@media(max-width:575.98px){
    .joya-voz-label-row{
        align-items:flex-start;
    }
    .joya-voz-btn{
        width:100%;
    }
}
/* V44: los datos ingresados/mostrados por el usuario se visualizan en MAYÚSCULAS.
   No afecta contraseñas, fechas, horas, números ni controles técnicos. */
.joya-main input[type="text"],
.joya-main input[type="email"],
.joya-main input[type="tel"],
.joya-main input[type="search"],
.joya-main textarea{
    text-transform:uppercase;
}
.joya-main .joya-ficha-fields strong,
.joya-main .joya-order-fields strong,
.joya-main table tbody td{
    text-transform:uppercase;
}


/* ------------------------------------------------------------
   Módulo Inventario
   Misma línea visual del módulo Orden de Servicio.
   ------------------------------------------------------------ */
.joya-inventory-card{
    background:#e9f7ef;
    border:1px solid #9ed5b5;
    border-left:6px solid #198754;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 7px 22px rgba(17,24,39,.07);
}
.joya-inventory-head{
    background:#198754;
    color:#fff;
    padding:16px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    flex-wrap:wrap;
}
.joya-inventory-title{font-size:1.15rem;font-weight:800;letter-spacing:.2px}
.joya-inventory-subtitle{margin-top:4px;font-size:.9rem}
.joya-inventory-badge{background:#fff;color:#146c43;border-radius:9px;padding:7px 11px;font-weight:800}
.joya-inventory-note{margin:16px 20px 0;padding:12px 14px;background:#f7fffa;border:1px solid #b8dfc8;border-radius:9px;color:#14532d;line-height:1.5}
.joya-inventory-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:15px 18px 8px}
.joya-inventory-master{margin:8px 18px 15px;padding:13px 14px;background:#f7fffa;border:1px solid #b8dfc8;border-radius:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.joya-inventory-master-select{width:190px;max-width:100%;font-weight:700}
.joya-inventory-master small{color:#4b6356;flex:1 1 260px}
.joya-inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:0 18px 18px}
.joya-inventory-item{background:#fff;border:1px solid #b8dfc8;border-radius:10px;padding:12px;min-width:0}
.joya-inventory-item-title{font-weight:800;color:#0f5132;min-height:42px}
.joya-inventory-item-options{font-size:.72rem;color:#6b7f73;margin:2px 0 10px}
.joya-inventory-select{font-weight:600}
.joya-inventory-textarea{resize:vertical}
.joya-inventory-footer{padding:15px 18px;border-top:1px solid #b8dfc8;display:flex;justify-content:flex-end;gap:9px;background:#f7fffa}
@media(max-width:991.98px){.joya-inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.joya-inventory-context,.joya-inventory-grid{grid-template-columns:1fr}.joya-inventory-head{padding:14px}.joya-inventory-note{margin:14px 14px 0}.joya-inventory-context{padding:14px}.joya-inventory-master{margin:8px 14px 14px}.joya-inventory-grid{padding:0 14px 14px}.joya-inventory-footer{padding:14px;flex-wrap:wrap}.joya-inventory-master-select{width:100%}}


/* Inventario fotográfico de órdenes */
.joya-photo-card{background:#fff;border:1px solid #d6e1e9;border-top:4px solid #fd7e14;border-radius:14px;box-shadow:0 8px 24px rgba(15,23,42,.07);overflow:hidden}
.joya-photo-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;background:#fff7ed}
.joya-photo-title{font-size:1.15rem;font-weight:800;color:#9a3412;letter-spacing:.2px}
.joya-photo-subtitle{margin-top:4px;font-size:.9rem;color:#7c2d12}
.joya-photo-badge{background:#fd7e14;color:#fff;border-radius:9px;padding:7px 11px;font-weight:800;white-space:nowrap}
.joya-photo-note{margin:16px 20px 0;padding:12px 14px;background:#fffaf5;border:1px solid #fed7aa;border-radius:9px;color:#7c2d12;line-height:1.5}
.joya-photo-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:15px 20px 8px}
.joya-photo-context>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;padding:10px 12px}
.joya-photo-context span{display:block;font-size:.75rem;color:#64748b;margin-bottom:3px}
.joya-photo-context strong{font-size:1rem;color:#0f172a}
.joya-photo-upload-form{margin:8px 20px 0;padding:15px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px}
.joya-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.joya-photo-upload-btn{background:#0d6efd;border-color:#0d6efd;color:#fff;font-weight:800}
.joya-photo-upload-btn:hover{background:#0b5ed7;border-color:#0b5ed7;color:#fff}
.joya-photo-camera-btn{background:#198754;border-color:#198754;color:#fff;font-weight:800}
.joya-photo-camera-btn:hover{background:#157347;border-color:#157347;color:#fff}
.joya-photo-counter{font-weight:700;color:#475569}
.joya-photo-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.joya-photo-preview:empty{display:none}
.joya-photo-preview-item{background:#fff;border:1px solid #e2e8f0;border-radius:9px;padding:7px;overflow:hidden}
.joya-photo-preview-item img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:7px;background:#e2e8f0;display:block}
.joya-photo-preview-item div{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:5px;color:#475569}
.joya-photo-save{display:flex;justify-content:flex-end;margin-top:12px}
.joya-photo-gallery{padding:18px 20px 20px}
.joya-photo-gallery-title{font-weight:800;color:#9a3412;margin-bottom:12px}
.joya-photo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px}
.joya-photo-item{background:#fff;border:1px solid #fed7aa;border-radius:10px;overflow:hidden;box-shadow:0 3px 10px rgba(15,23,42,.05)}
.joya-photo-item>a{display:block;background:#f8fafc}
.joya-photo-item img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.joya-photo-item-footer{padding:9px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.joya-photo-item-footer strong{color:#9a3412;margin-right:auto}
.joya-photo-item-footer small{width:100%;color:#64748b}
@media(max-width:991.98px){.joya-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.joya-photo-preview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767.98px){.joya-photo-head{padding:14px;align-items:flex-start;flex-direction:column}.joya-photo-badge{white-space:normal}.joya-photo-note{margin:14px 14px 0}.joya-photo-context{grid-template-columns:1fr;padding:14px 14px 8px}.joya-photo-upload-form{margin:8px 14px 0}.joya-photo-actions .btn{width:100%}.joya-photo-counter{width:100%}.joya-photo-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.joya-photo-gallery{padding:14px}.joya-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Panel de órdenes de trabajo pendientes */
.joya-pendientes-card{border:1px solid #dbe2ea;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.joya-pendientes-title{font-size:1.55rem;font-weight:700;margin:0;color:#111827}
.joya-pendientes-subtitle{margin-top:8px;color:#6b7280;font-size:.95rem}
.joya-pendientes-table{font-size:.92rem}
.joya-pendientes-table thead th{text-align:center;vertical-align:middle;font-weight:800;white-space:nowrap}
.joya-pendientes-table tbody td{min-height:72px}
.joya-numero-orden{font-weight:800;margin-top:5px}
.joya-pendiente-estado{display:inline-block;border-radius:6px;padding:10px 16px;min-width:190px;font-weight:600}
.joya-estado-ejecucion{background:#f8c1c4;color:#111827}
.joya-estado-pendiente{background:#bff5d0;color:#111827}
.joya-btn-documentos{border:1px solid #3f2b7a;color:#3f2b7a;background:#fff}
.joya-btn-documentos:hover{background:#3f2b7a;color:#fff}
.joya-btn-tecnico{border:1px solid #20c997;color:#146c43;background:#fff}
.joya-btn-tecnico:hover{background:#20c997;color:#fff}
.joya-btn-firma{border:1px solid #6f42c1;color:#6f42c1;background:#fff}
.joya-btn-firma:hover{background:#6f42c1;color:#fff}
@media(max-width:768px){
 .joya-pendientes-title{font-size:1.25rem}
 .joya-pendientes-table{font-size:.78rem}
 .joya-pendiente-estado{min-width:130px;padding:7px 9px}
}

/* Preloader del panel de órdenes pendientes. El panel principal se pinta primero y la consulta se carga por AJAX. */
.joya-preloader-panel{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;border:1px dashed #d8dee8;border-radius:10px;background:#fafbfc;color:#374151}
.joya-preloader-panel .spinner-border{width:2.5rem;height:2.5rem}

/* Modal de acciones de cada orden pendiente */
.joya-btn-acciones{width:74px;height:58px;border:1px solid #3f2b7a;color:#3f2b7a;background:#fff;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;transition:.15s ease}
.joya-btn-acciones:hover{background:#3f2b7a;color:#fff}
.joya-btn-acciones svg{width:27px;height:27px}
.joya-modal{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:20px}
.joya-modal.is-open{display:flex}
.joya-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.62)}
.joya-modal-dialog{position:relative;width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto}
.joya-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}
.joya-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid #e5e7eb}
.joya-modal-header h3{margin:0;font-size:1.2rem;font-weight:800;color:#111827}
.joya-modal-subtitle{margin-top:4px;color:#6b7280}
.joya-modal-close{border:0;background:transparent;color:#6b7280;font-size:31px;line-height:1;padding:0 4px;cursor:pointer}
.joya-modal-close:hover{color:#111827}
.joya-modal-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px}
.joya-modal-action{min-height:68px;border-radius:7px;padding:11px 13px;display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:700;line-height:1.25;transition:.15s ease;border:1px solid transparent}
.joya-modal-action-icon{font-size:23px;width:30px;text-align:center;flex:0 0 30px}
.joya-modal-moto{border-color:#0d6efd;color:#0d6efd;background:#fff}
.joya-modal-moto:hover{background:#0d6efd;color:#fff}
.joya-modal-orden{border-color:#0d6efd;color:#0d6efd;background:#fff}
.joya-modal-orden:hover{background:#0d6efd;color:#fff}
.joya-modal-inventario{border-color:#6f42c1;color:#6f42c1;background:#fff}
.joya-modal-inventario:hover{background:#6f42c1;color:#fff}
.joya-modal-fotos{border-color:#fd7e14;color:#c65d00;background:#fff}
.joya-modal-fotos:hover{background:#fd7e14;color:#fff}
.joya-modal-tecnico{border-color:#20c997;color:#146c43;background:#fff}
.joya-modal-tecnico:hover{background:#20c997;color:#fff}
.joya-modal-firma{border-color:#6f42c1;color:#6f42c1;background:#fff}
.joya-modal-firma:hover{background:#6f42c1;color:#fff}
.joya-modal-pdf{border-color:#dc3545;color:#dc3545;background:#fff}
.joya-modal-pdf:hover{background:#dc3545;color:#fff}
body.joya-modal-open{overflow:hidden}
@media(max-width:767.98px){.joya-modal{padding:10px}.joya-modal-dialog{max-height:calc(100vh - 20px)}.joya-modal-body{grid-template-columns:1fr;padding:14px}.joya-modal-action{min-height:58px}.joya-btn-acciones{width:64px;height:52px}}


/* Footer general del sistema */
html,body{min-height:100%;}
body{display:flex;flex-direction:column;}
.joya-main{flex:1 0 auto;}
.joya-footer{flex:0 0 auto;width:100%;margin-top:34px;background:#111827;border-top:4px solid #dc1b2b;color:#fff;}
.joya-footer-inner{min-height:58px;display:flex;align-items:center;justify-content:flex-end;padding:12px 28px;font-size:.92rem;font-weight:600;text-align:right;}
.joya-footer-inner span{white-space:nowrap;}
.joya-login-page .joya-footer{margin-top:24px;}
.joya-login-page .joya-footer-inner{padding-right:28px;}
@media(max-width:767.98px){.joya-footer-inner{justify-content:center;text-align:center;padding:12px 16px;font-size:.82rem}.joya-footer-inner span{white-space:normal}.joya-login-page .joya-footer-inner{padding-right:16px;}}
