:root{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:#142631;background:#f3f7f8;
  --navy:#073b55;--navy2:#052d42;--turq:#13ad9b;--turq-dark:#078b83;
  --orange:#ff8b18;--green:#2b9a6d;--line:#dce7e9;--muted:#667a84;--white:#fff;
  --shadow:0 8px 24px rgba(7,59,85,.08)
}
*{box-sizing:border-box}html{background:#f3f7f8}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#edf7f6 0,#f6f8f9 210px,#f3f7f8 100%)}
button,input{font:inherit}button{cursor:pointer}
.app-header{min-height:92px;background:linear-gradient(115deg,var(--navy2),var(--navy));color:white;padding:10px max(18px,calc((100vw - 1320px)/2));display:flex;justify-content:space-between;align-items:center;border-bottom:4px solid var(--turq);box-shadow:0 8px 25px rgba(4,45,66,.18)}
.brand-lockup{display:flex;align-items:center;gap:14px}.logo-shell{width:70px;height:70px;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-shell img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(0,0,0,.15))}.brand{font-size:24px;font-weight:900;letter-spacing:.8px}.brand span{font-weight:600;color:#b9e9df}.sub{font-size:12px;opacity:.78;margin-top:3px;letter-spacing:.2px}.version{font-size:11px;font-weight:800;letter-spacing:.8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);padding:7px 10px;border-radius:999px}
nav{display:flex;gap:7px;padding:9px max(14px,calc((100vw - 1320px)/2));background:rgba(255,255,255,.96);position:sticky;top:0;z-index:3;border-bottom:1px solid #dce7e9;overflow:auto;box-shadow:0 4px 14px rgba(7,59,85,.05)}nav button{border:0;background:transparent;color:#526873;padding:10px 15px;border-radius:9px;font-size:13px;font-weight:800;white-space:nowrap;transition:.15s}nav button:hover{background:#eef7f6;color:var(--navy)}nav button.active{background:var(--navy);color:white;box-shadow:0 3px 10px rgba(7,59,85,.18)}
main{max-width:1320px;margin:auto;padding:18px 14px 30px}.view{display:none}.view.active{display:block}.page-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:4px 2px 5px}.eyebrow{display:block;color:var(--turq-dark);font-size:10px;font-weight:900;letter-spacing:1.5px;margin-bottom:2px}h1{font-size:25px;line-height:1.1;margin:0;color:var(--navy2);letter-spacing:-.4px}h2{font-size:15px;margin:0 0 8px;color:var(--navy)}.hint{color:var(--muted);font-size:12px;margin:7px 2px 15px}.page-badge{font-size:10px;font-weight:900;letter-spacing:1px;padding:6px 9px;border-radius:999px}.out-badge{background:#fff0df;color:#b75c00}.in-badge{background:#e5f6ef;color:#18744f}
.group,.panel{background:var(--white);border:1px solid var(--line);border-radius:13px;margin:10px 0;box-shadow:var(--shadow)}.group{padding:0;overflow:hidden}.group>summary{list-style:none;font-size:14px;font-weight:900;cursor:pointer;padding:11px 14px;color:white;background:linear-gradient(100deg,var(--navy),#0b5870);letter-spacing:.7px;display:flex;align-items:center;justify-content:space-between}.group>summary::-webkit-details-marker{display:none}.group>summary::after{content:"＋";font-size:18px;font-weight:400;color:#bfe8e3}.group[open]>summary::after{content:"−"}.group>.panel{box-shadow:none;border:0;border-radius:0;margin:0;padding:11px;background:#fbfdfd}.panel{padding:13px}.panel>h2{border-left:3px solid var(--orange);padding-left:8px}
#bodegaOut,#bodegaIn,#officeOut,#officeIn{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:8px;align-items:start}.equipment-block{border:1px solid #d9e6e8;border-radius:10px;overflow:hidden;background:#fff;min-width:0}.equipment-block-title{background:#eaf6f4;color:var(--navy);font-weight:900;padding:7px 9px;font-size:11px;letter-spacing:.65px;border-bottom:1px solid #d9e8e6}.equipment-block-body{padding:1px 7px}.item{display:grid;grid-template-columns:minmax(95px,1fr) 45px 101px;gap:4px;align-items:center;padding:4px 0;border-bottom:1px solid #edf2f3;min-height:39px}.item:last-child{border-bottom:0}.item b{font-size:11px;line-height:1.15}.meta{font-size:9px;color:#74878f;margin-top:2px}.qty{font-weight:800;text-align:center;font-size:9px;color:var(--turq-dark)}.stepper{display:flex;align-items:center;justify-content:flex-end;gap:3px}.stepper button{width:27px;height:27px;border:1px solid #d6e1e4;border-radius:7px;background:#f0f5f6;color:var(--navy);font-size:17px;font-weight:700;line-height:1}.stepper button:hover{background:#dff3f0;border-color:#b9ded9}.stepper input{width:39px;height:27px;text-align:center;padding:3px;border:1px solid #cbd9dc;border-radius:7px;background:#fff;font-size:11px;font-weight:800;color:var(--navy)}
.primary,.success{width:100%;padding:11px;border:0;border-radius:9px;color:white;font-size:12px;font-weight:900;letter-spacing:.3px;margin-top:10px;box-shadow:0 4px 12px rgba(7,59,85,.12)}.primary{background:linear-gradient(100deg,var(--navy),#0b6178)}.success{background:linear-gradient(100deg,#177550,var(--green))}.primary:hover,.success:hover{filter:brightness(1.05)}
label{display:block;font-size:11px;font-weight:800;color:#405862;margin:7px 0}label input{display:block;width:100%;padding:9px 10px;border:1px solid #cbd9dc;border-radius:8px;margin-top:4px;background:white;outline:none}label input:focus{border-color:var(--turq);box-shadow:0 0 0 3px rgba(19,173,155,.1)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:13px 0}.card{background:white;border-radius:12px;padding:14px;border:1px solid var(--line);box-shadow:var(--shadow);position:relative;overflow:hidden}.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--turq)}.card:nth-child(2)::before{background:var(--orange)}.card:nth-child(3)::before{background:#e1a329}.card:nth-child(4)::before{background:var(--green)}.card strong{display:block;font-size:25px;line-height:1;color:var(--navy2)}.card span{font-size:10px;color:#71838b;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.tablewrap{overflow:auto;border-radius:9px;border:1px solid #e2eaec}table{border-collapse:collapse;width:100%;background:white}th,td{padding:8px 9px;border-bottom:1px solid #e8edef;text-align:left;font-size:11px}th{font-size:9px;color:#657981;background:#f4f8f8;text-transform:uppercase;letter-spacing:.4px;position:sticky;top:0}.num{text-align:right}.hist{padding:8px 2px;border-bottom:1px solid #edf1f2;font-size:11px;line-height:1.45;color:#50656e}.hist strong{display:inline-block;min-width:60px;color:var(--navy);font-size:9px;letter-spacing:.5px}.empty{text-align:center;color:#71838b;padding:18px}
.inventory-zone{margin-bottom:15px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:8px;align-items:start}.inventory-zone>h2{grid-column:1/-1;margin:10px 0 0;background:#edf6f5;border-radius:8px;padding:8px 10px;color:var(--navy);font-size:12px;letter-spacing:.7px}.inventory-block .equipment-block-title{background:#f0f5f6}.invrow{display:grid;grid-template-columns:minmax(100px,1fr) 55px 55px 55px;gap:4px;align-items:center;padding:4px 0;border-bottom:1px solid #edf1f2;font-size:10px}.invrow:last-child{border-bottom:0}.invrow label{font-size:8px;margin:1px 0;color:#72848b}.invrow input{width:100%;padding:4px 2px;border:1px solid #ccd9dc;border-radius:6px;font-size:10px;text-align:center;background:white}.invrow input:disabled{background:#f1f4f5;color:#73838a}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#102f3f;color:white;padding:10px 16px;border-radius:9px;display:none;z-index:10;box-shadow:0 8px 30px rgba(0,0,0,.2);font-size:12px;font-weight:800}
@media(min-width:1100px){#bodegaOut,#bodegaIn{grid-template-columns:repeat(4,minmax(0,1fr))}#officeOut,#officeIn{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1450px){#bodegaOut,#bodegaIn{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.app-header{min-height:74px;padding:8px 12px}.logo-shell{width:55px;height:55px}.brand-lockup{gap:9px}.brand{font-size:19px}.sub{font-size:10px}.version{font-size:9px;padding:5px 7px}nav{padding:7px 8px;gap:5px}nav button{padding:9px 11px;font-size:11px}main{padding:13px 8px 25px}h1{font-size:21px}.cards{grid-template-columns:1fr 1fr}.card{padding:12px}.card strong{font-size:22px}#bodegaOut,#bodegaIn,#officeOut,#officeIn{grid-template-columns:1fr}.item{grid-template-columns:minmax(100px,1fr) 44px 101px}.inventory-zone{grid-template-columns:1fr}.page-badge{display:none}}
@media(max-width:390px){.brand-copy .sub{display:none}.logo-shell{width:50px;height:50px}.item{grid-template-columns:minmax(90px,1fr) 40px 98px}.stepper button{width:26px}.stepper input{width:37px}}

/* V1.0.6 — TRAJES : tableau 3 colonnes x 2 lignes */
.traje-block{grid-column:1/-1}
.traje-table{display:grid;grid-template-columns:minmax(82px,.7fr) repeat(3,minmax(130px,1fr));gap:1px;background:#dbe5ea;border:1px solid #dbe5ea;border-radius:10px;overflow:hidden}
.traje-head,.traje-sex,.traje-cell{background:#fff;padding:9px 8px}
.traje-head{text-align:center;font-weight:800;color:#0b3d5c;font-size:.78rem;letter-spacing:.04em}
.traje-sex{display:flex;align-items:center;font-weight:800;color:#0b3d5c;font-size:.78rem}
.traje-cell .meta{text-align:center;margin-bottom:6px}
.traje-cell .stepper{justify-content:center}
.traje-cell .stepper input{width:42px}
@media(max-width:620px){.traje-table{grid-template-columns:68px repeat(3,minmax(92px,1fr));font-size:.82rem}.traje-head,.traje-sex,.traje-cell{padding:7px 4px}.traje-cell .stepper button{width:28px}.traje-cell .stepper input{width:34px}}

/* V1.0.7 — ALETAS : 2 colonnes Ajustables / Rígidas */
.aletas-block{grid-column:span 2}
.aletas-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.aletas-column{border:1px solid #dbe5ea;border-radius:10px;overflow:hidden;background:#fff}
.aletas-column-title{text-align:center;font-weight:900;color:#0b3d5c;background:#f1f7f7;padding:8px;font-size:.76rem;letter-spacing:.05em;border-bottom:1px solid #dbe5ea}
.aletas-column .item{border-radius:0;border-left:0;border-right:0;border-top:0;box-shadow:none}
.aletas-column .item:last-child{border-bottom:0}
@media(max-width:760px){.aletas-block{grid-column:1/-1}.aletas-grid{grid-template-columns:1fr 1fr;gap:6px}.aletas-column .item{grid-template-columns:minmax(58px,1fr) 0 96px;padding:7px 5px}.aletas-column .stepper button{width:27px}.aletas-column .stepper input{width:32px}.aletas-column-title{font-size:.68rem;padding:7px 3px}}


/* V1.0.8 — REG : bulles numérotées avec état direct */
.reg-block{grid-column:1/-1}
.reg-bubble-panel{padding:10px}
.unit-bubble-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:7px}
.unit-bubble{aspect-ratio:1/1;max-width:54px;width:100%;justify-self:center;border-radius:999px;border:2px solid transparent;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;background:#e9f7f4;color:#0a6f68;border-color:#b8e4dc}
.unit-bubble.available{background:#e6f7f3;color:#087b70;border-color:#9eddd3}
.unit-bubble.out{background:#fff0df;color:#b75c00;border-color:#ffc47f}
.unit-bubble.maintenance{background:#fde8e8;color:#b42318;border-color:#f4a3a3}
.unit-bubble.clickable{cursor:pointer;box-shadow:0 2px 7px rgba(7,59,85,.10)}
.unit-bubble.clickable:hover{transform:translateY(-1px);filter:brightness(.98);box-shadow:0 5px 12px rgba(7,59,85,.16)}
.unit-bubble:disabled{cursor:default;opacity:1}
.unit-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;padding-top:8px;border-top:1px solid #edf2f3;color:#667a84;font-size:9px;font-weight:800}
.unit-legend span{display:inline-flex;align-items:center;gap:5px}
.legend-dot{width:9px;height:9px;border-radius:999px;display:inline-block;border:1px solid transparent}.legend-dot.available{background:#e6f7f3;border-color:#9eddd3}.legend-dot.out{background:#fff0df;border-color:#ffc47f}.legend-dot.maintenance{background:#fde8e8;border-color:#f4a3a3}
@media(max-width:520px){.unit-bubble-wrap{grid-template-columns:repeat(7,1fr);gap:5px}.unit-bubble{font-size:11px;max-width:42px}.reg-bubble-panel{padding:8px 6px}.unit-legend{gap:8px;font-size:8px}}


/* V1.0.9 — COMPU : même logique de bulles que REG */
.unit-status-block{grid-column:1/-1}

/* V1.0.10 — rangement ergonomique + symboles */
.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:4px;border-radius:6px;background:#edf6f5;color:var(--navy);font-size:11px;line-height:1;vertical-align:-2px}
nav button.active .nav-icon{background:rgba(255,255,255,.16);color:#fff}
.equipment-block-title{display:flex;align-items:center;gap:7px;min-height:34px}
.category-symbol{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px;border-radius:7px;background:#fff;color:var(--turq-dark);border:1px solid #cfe6e2;font-size:12px;font-weight:900}

/* Ordinateur : chaque catégorie garde une place stable pour éviter l'effet mosaïque désordonné */
@media(min-width:1100px){
  #bodegaOut,#bodegaIn{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row;}
  #bodegaOut .category-bcd,#bodegaIn .category-bcd{grid-column:span 1;grid-row:span 1}
  #bodegaOut .category-trajes,#bodegaIn .category-trajes{grid-column:span 3}
  #bodegaOut .category-reg,#bodegaIn .category-reg{grid-column:1/-1}
  #bodegaOut .category-aletas,#bodegaIn .category-aletas{grid-column:span 2}
  #bodegaOut .category-plomos,#bodegaIn .category-plomos{grid-column:span 1}
  #bodegaOut .category-mascaras,#bodegaIn .category-mascaras{grid-column:span 1}
  #bodegaOut .category-cinturones,#bodegaIn .category-cinturones,
  #bodegaOut .category-botas,#bodegaIn .category-botas,
  #bodegaOut .category-bolsas,#bodegaIn .category-bolsas,
  #bodegaOut .category-tubos,#bodegaIn .category-tubos{grid-column:span 1}

  #officeOut,#officeIn{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row}
  #officeOut .category-compu,#officeIn .category-compu{grid-column:1/-1}
  #officeOut .category-lamparas,#officeIn .category-lamparas,
  #officeOut .category-pilas,#officeIn .category-pilas,
  #officeOut .category-kit-oxy,#officeIn .category-kit-oxy,
  #officeOut .category-compas,#officeIn .category-compas,#officeOut .category-donas,#officeIn .category-donas,#officeOut .category-adaptador-din,#officeIn .category-adaptador-din{grid-column:span 1}
}

/* Tablette : 2 colonnes propres, les grands tableaux prennent toute la largeur */
@media(min-width:761px) and (max-width:1099px){
  #bodegaOut,#bodegaIn,#officeOut,#officeIn{grid-template-columns:repeat(2,minmax(0,1fr))}
  #bodegaOut .category-trajes,#bodegaIn .category-trajes,
  #bodegaOut .category-reg,#bodegaIn .category-reg,
  #bodegaOut .category-aletas,#bodegaIn .category-aletas,
  #officeOut .category-compu,#officeIn .category-compu{grid-column:1/-1}
}

/* Petits blocs : mêmes hauteurs et commandes centrées pour une lecture plus rapide */
.category-plomos .item,.category-mascaras .item,.category-cinturones .item,.category-botas .item,.category-bolsas .item,.category-tubos .item,
.category-lamparas .item,.category-pilas .item,.category-kit-oxy .item,.category-compas .item,.category-donas .item,.category-adaptador-din .item{min-height:42px}
.category-mascaras .equipment-block-body,.category-cinturones .equipment-block-body,.category-botas .equipment-block-body,.category-bolsas .equipment-block-body,.category-tubos .equipment-block-body,
.category-lamparas .equipment-block-body,.category-pilas .equipment-block-body,.category-kit-oxy .equipment-block-body,.category-compas .equipment-block-body,.category-donas .equipment-block-body,.category-adaptador-din .equipment-block-body{padding-top:4px;padding-bottom:4px}

/* Les deux tableaux complexes restent visuellement alignés */
.traje-block,.aletas-block{align-self:start}
.traje-table,.aletas-grid{height:100%}

@media(max-width:760px){
  .nav-icon{width:16px;height:16px;margin-right:2px;font-size:10px}
  .equipment-block-title{min-height:32px}
  .category-symbol{width:20px;height:20px;flex-basis:20px;font-size:11px}
}

/* V1.0.11 — validation groupée BODEGA, y compris REG */
.unit-bubble.selected{background:#0b4963;color:#fff;border-color:#0b4963;box-shadow:0 0 0 3px rgba(239,127,39,.28),0 4px 10px rgba(7,59,85,.18)}
.legend-dot.selected{background:#0b4963;border-color:#0b4963}

/* V1.0.14 — BODEGA sur un seul écran ordinateur
   Objectif : voir toutes les catégories BODEGA sans défilement vertical sur un écran ordinateur standard,
   sans modifier le fonctionnement ni la disposition mobile. */
@media (min-width:1100px){
  .app-header{min-height:68px;padding-top:6px;padding-bottom:6px}
  .logo-shell{width:52px;height:52px}
  .brand-lockup{gap:10px}.brand{font-size:21px}.sub{font-size:10px;margin-top:1px}.version{padding:5px 8px;font-size:9px}
  nav{padding-top:6px;padding-bottom:6px}nav button{padding:8px 12px;font-size:12px}
  main{max-width:1500px;padding-top:9px;padding-bottom:22px}
  .page-title{margin-top:0;margin-bottom:2px}.eyebrow{font-size:8px;margin-bottom:0}h1{font-size:20px}
  .hint{font-size:10px;margin:4px 2px 7px}
  .group,.panel{margin:6px 0;border-radius:10px}
  .group>summary{padding:8px 12px;font-size:12px}.group>summary::after{font-size:15px}
  .group>.panel{padding:7px}.group>.panel>h2{display:none}

  #bodegaOut,#bodegaIn{
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:6px;
    grid-auto-flow:row dense;
  }
  #bodegaOut .category-bcd,#bodegaIn .category-bcd{grid-column:span 3}
  #bodegaOut .category-trajes,#bodegaIn .category-trajes{grid-column:span 3}
  #bodegaOut .category-reg,#bodegaIn .category-reg{grid-column:span 3}
  #bodegaOut .category-aletas,#bodegaIn .category-aletas{grid-column:span 2}
  #bodegaOut .category-plomos,#bodegaIn .category-plomos{grid-column:span 1}
  #bodegaOut .category-mascaras,#bodegaIn .category-mascaras,
  #bodegaOut .category-cinturones,#bodegaIn .category-cinturones,
  #bodegaOut .category-botas,#bodegaIn .category-botas,
  #bodegaOut .category-bolsas,#bodegaIn .category-bolsas{grid-column:span 1}
  #bodegaOut .category-tubos,#bodegaIn .category-tubos{grid-column:span 2}

  .equipment-block{border-radius:8px}
  .equipment-block-title{min-height:27px;padding:4px 7px;font-size:9px;gap:5px}
  .category-symbol{width:18px;height:18px;flex-basis:18px;border-radius:5px;font-size:9px}
  .equipment-block-body{padding:0 5px}
  .item{grid-template-columns:minmax(70px,1fr) 36px 84px;min-height:31px;padding:2px 0;gap:2px}
  .item b{font-size:9px}.meta{font-size:7px;margin-top:0}.qty{font-size:7px}
  .stepper{gap:2px}.stepper button{width:23px;height:23px;border-radius:5px;font-size:14px}.stepper input{width:32px;height:23px;border-radius:5px;font-size:9px;padding:1px}

  /* V1.0.15 — BCD : 9 tailles affichées sur 2 colonnes. */
  #bodegaOut .category-bcd .equipment-block-body,#bodegaIn .category-bcd .equipment-block-body{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:7px;
  }
  #bodegaOut .category-bcd .item,#bodegaIn .category-bcd .item{border-bottom:1px solid #edf2f3}

  /* TRAJES plus compact. */
  .traje-table{grid-template-columns:62px repeat(3,minmax(90px,1fr))}
  .traje-head,.traje-sex,.traje-cell{padding:5px 4px}
  .traje-head,.traje-sex{font-size:9px}.traje-cell .meta{margin-bottom:3px}
  .traje-cell .stepper input{width:32px}

  /* V1.0.15 — REG légèrement descendu pour mieux séparer visuellement les blocs. */
  #bodegaOut .category-reg,#bodegaIn .category-reg{margin-top:8px}
  .reg-bubble-panel{padding:6px}
  .unit-bubble-wrap{grid-template-columns:repeat(9,minmax(0,1fr));gap:4px}
  .unit-bubble{max-width:34px;font-size:9px;border-width:1px}
  .unit-legend{margin-top:5px;padding-top:4px;gap:8px;font-size:7px}
  .legend-dot{width:7px;height:7px}

  /* ALETAS : conserver 2 colonnes, mais réduire la hauteur. */
  .aletas-grid{gap:5px}.aletas-column-title{padding:5px;font-size:9px}
  .aletas-column .item{min-height:27px;padding:2px 3px;grid-template-columns:minmax(48px,1fr) 0 80px}
  .aletas-column .stepper button{width:22px;height:22px}.aletas-column .stepper input{width:30px;height:22px}

  .category-plomos .item,.category-mascaras .item,.category-cinturones .item,.category-botas .item,.category-bolsas .item,.category-tubos .item{min-height:31px}
  .category-mascaras .equipment-block-body,.category-cinturones .equipment-block-body,.category-botas .equipment-block-body,.category-bolsas .equipment-block-body,.category-tubos .equipment-block-body{padding-top:0;padding-bottom:0}

  .primary,.success{padding:8px;margin-top:6px;font-size:10px;border-radius:7px}
}

/* V1.0.16 — OFICINA : sélection d'abord, nom demandé seulement à la validation */
.modal-overlay[hidden]{display:none}
.modal-overlay{position:fixed;inset:0;z-index:50;background:rgba(5,45,66,.58);display:flex;align-items:center;justify-content:center;padding:18px}
.modal-card{width:min(420px,100%);background:#fff;border:1px solid #d7e5e7;border-radius:16px;padding:20px;box-shadow:0 24px 70px rgba(5,45,66,.28)}
.modal-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#e9f7f4;margin-bottom:10px;font-size:20px}
.modal-card h2{font-size:19px;margin:0 0 5px;color:var(--navy2)}
.modal-card p{font-size:12px;color:var(--muted);margin:0 0 12px}
.modal-card label{font-size:11px;margin:0}.modal-card label input{font-size:15px;padding:11px 12px}
.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.modal-actions button{border:0;border-radius:9px;padding:11px 12px;font-size:12px;font-weight:900}
.modal-cancel{background:#edf3f4;color:#50656e}.modal-confirm{background:linear-gradient(100deg,var(--navy),#0b6178);color:#fff}
@media(max-width:520px){.modal-card{padding:16px;border-radius:14px}.modal-actions{grid-template-columns:1fr}}

/* V1.0.17 — Nouvel onglet Inventaire journalier BODEGA */
.daily-badge{background:#e8f6f4;color:#087b70}
.daily-toolbar{display:grid;grid-template-columns:170px minmax(220px,1fr) auto;gap:10px;align-items:end}
.daily-toolbar label{font-size:9px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.45px}
.daily-toolbar input{display:block;width:100%;margin-top:4px;height:36px;border:1px solid #cbd9dc;border-radius:8px;background:#fff;padding:7px 9px;font-size:12px;color:var(--navy2)}
.daily-toolbar-actions{display:flex;gap:7px;align-items:center}
.daily-toolbar-actions button{height:36px;border:0;border-radius:8px;padding:0 12px;font-size:10px;font-weight:900;white-space:nowrap}
.compact-action{width:auto;margin:0;box-shadow:none}
.secondary-action{background:#edf3f4;color:#50656e}.pdf-action,.pdf-mini{background:#fff0df;color:#a95400;border:1px solid #ffc47f!important}
.pdf-action:disabled{opacity:.45;cursor:not-allowed}
.daily-panel{padding:7px!important}
#dailyInventoryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:8px;align-items:start}
.daily-block-body{padding:4px 7px}
.daily-item{display:grid;grid-template-columns:minmax(88px,1fr) 58px;gap:6px;align-items:center;min-height:37px;padding:3px 0;border-bottom:1px solid #edf2f3}
.daily-item:last-child{border-bottom:0}.daily-item b{font-size:10px;color:var(--navy2)}
.daily-item input,.daily-traje-cell input,.daily-reg-input{width:100%;height:29px;text-align:center;border:1px solid #bfcfd3;border-radius:7px;background:#fff;font-size:13px;font-weight:900;color:var(--navy);padding:3px}
.daily-item input:focus,.daily-traje-cell input:focus,.daily-reg-input:focus{outline:2px solid rgba(19,173,155,.22);border-color:var(--turq)}
.daily-bcd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px}
.daily-traje-table{display:grid;grid-template-columns:62px repeat(3,minmax(80px,1fr));gap:1px;background:#dbe5ea;border:1px solid #dbe5ea}
.daily-traje-table .traje-head,.daily-traje-table .traje-sex,.daily-traje-cell{background:#fff;padding:5px 4px}
.daily-traje-cell .meta{text-align:center;margin:0 0 3px}.daily-traje-cell input{height:27px}
.daily-reg-count{display:grid;grid-template-columns:1fr 90px;align-items:center;gap:10px;padding:10px}.daily-reg-count strong{font-size:11px;color:var(--navy)}.daily-reg-input{height:36px;font-size:17px}
.daily-aletas-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px}.daily-aletas-column{border:1px solid #dbe5ea;border-radius:8px;overflow:hidden}.daily-aletas-column .daily-item{padding:3px 5px}
.daily-history-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid #edf1f2}.daily-history-row:last-child{border-bottom:0}.daily-history-row strong{display:inline-block;color:var(--navy);font-size:11px;margin-right:9px}.daily-history-row span{font-size:11px;font-weight:800;color:#516771}.daily-history-row small{display:block;color:#7a8c93;font-size:9px;margin-top:2px}.pdf-mini{border-radius:7px;padding:7px 9px;font-size:9px;font-weight:900}
@media(min-width:1100px){
  #dailyInventoryGrid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;grid-auto-flow:row dense}
  #dailyInventoryGrid .category-bcd{grid-column:span 3}
  #dailyInventoryGrid .category-trajes{grid-column:span 3}
  #dailyInventoryGrid .category-reg{grid-column:span 3;margin-top:8px}
  #dailyInventoryGrid .category-aletas{grid-column:span 2}
  #dailyInventoryGrid .category-plomos{grid-column:span 1}
  #dailyInventoryGrid .category-mascaras,#dailyInventoryGrid .category-cinturones,#dailyInventoryGrid .category-botas,#dailyInventoryGrid .category-bolsas{grid-column:span 1}
  #dailyInventoryGrid .category-tubos{grid-column:span 2}
  .daily-item{min-height:30px}.daily-item input{height:24px;font-size:11px}.daily-traje-cell input{height:24px}.daily-reg-count{padding:7px}.daily-reg-input{height:30px}
}
@media(max-width:760px){.daily-toolbar{grid-template-columns:1fr 1fr}.daily-toolbar-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}#dailyInventoryGrid{grid-template-columns:1fr}.daily-bcd-grid{grid-template-columns:1fr 1fr}.daily-history-row{grid-template-columns:1fr}.pdf-mini{width:100%}}
@media(max-width:430px){.daily-toolbar{grid-template-columns:1fr}.daily-toolbar-actions{grid-column:auto}.daily-bcd-grid{grid-template-columns:1fr}.daily-traje-table{grid-template-columns:58px repeat(3,minmax(62px,1fr))}}

/* V1.0.19 — date automatique + inventaire OFICINA */
.daily-auto-date{height:56px;border:1px solid #cbd9dc;border-radius:9px;background:#f7fbfb;padding:6px 9px;display:flex;flex-direction:column;justify-content:center}.daily-auto-date span{font-size:9px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.45px}.daily-auto-date strong{font-size:14px;color:var(--navy);line-height:1.15}.daily-auto-date small{font-size:8px;color:#73878d;margin-top:1px}#dailyOfficeInventoryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;align-items:start}@media(min-width:1180px){#dailyOfficeInventoryGrid{grid-template-columns:repeat(5,minmax(0,1fr))}#dailyOfficeInventoryGrid .category-compu{grid-column:span 2}#dailyOfficeInventoryGrid .category-lamparas,#dailyOfficeInventoryGrid .category-pilas,#dailyOfficeInventoryGrid .category-kit-oxy{grid-column:span 1}#dailyOfficeInventoryGrid .category-compas{grid-column:span 1}}@media(max-width:760px){#dailyOfficeInventoryGrid{grid-template-columns:1fr}}


/* V1.0.20 — Donas + Adaptador DIN dans tous les modules OFICINA */
@media(min-width:1180px){#dailyOfficeInventoryGrid .category-donas,#dailyOfficeInventoryGrid .category-adaptador-din{grid-column:span 1}}


/* V1.0.21 — Historique des mouvements dédié */
.movement-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.movement-history-column{margin:0;min-width:0}
.history-column-title{display:flex;align-items:center;gap:10px;padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid #e4ecee}
.history-column-title h2{margin:1px 0 0;font-size:17px;color:var(--navy)}
.history-column-title div>span{font-size:9px;font-weight:900;letter-spacing:.12em;color:#75888f}
.history-arrow{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:19px;font-weight:900}
.out-arrow{background:#fff1e8;color:#ed6f28}
.in-arrow{background:#e5f7f3;color:#078f82}
.history-badge{background:#edf5f7;color:var(--navy)}
.movement-history-list{display:grid;gap:7px}
.movement-history-item{border:1px solid #e1eaec;border-radius:10px;padding:9px 10px;background:#fff}
.movement-history-item.out{border-left:3px solid #ed6f28}
.movement-history-item.in{border-left:3px solid #0aa493}
.movement-history-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:7px}
.history-zone{font-size:8px;font-weight:900;letter-spacing:.08em;padding:3px 6px;border-radius:5px;background:#edf4f5;color:#31525f}
.movement-history-meta time{font-size:9px;font-weight:800;color:#6b7f87}
.history-person{font-size:9px;font-weight:800;color:#365c68;margin-left:auto}
.movement-history-lines{display:grid;gap:3px}
.history-equipment-line{display:grid;grid-template-columns:auto 1fr;gap:5px;align-items:baseline;font-size:10px;color:#304d59}
.history-equipment-line strong{color:var(--navy)}
@media(max-width:760px){.movement-history-grid{grid-template-columns:1fr}.history-person{margin-left:0}}

/* V1.0.23 — Tableau de bord visuel par familles */
.dashboard-kpis{margin-bottom:12px}
.dashboard-kpi{display:flex;align-items:center;gap:11px;min-height:74px;padding:12px 14px}
.dashboard-kpi .kpi-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef5f6;color:var(--navy);font-size:18px;font-weight:900;flex:0 0 auto}
.dashboard-kpi>div{display:flex;flex-direction:column}
.dashboard-kpi strong{font-size:25px;line-height:1;color:var(--navy2)}
.dashboard-kpi span:not(.kpi-icon){font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--muted);margin-top:4px}
.dashboard-kpi.out .kpi-icon{background:#fff0df;color:#bb6205}
.dashboard-kpi.maintenance .kpi-icon{background:#fdeaea;color:#b72f38}
.dashboard-kpi.available .kpi-icon{background:#e5f6f2;color:#087e72}
.dashboard-kpi.available strong{color:#087e72}
.dashboard-zone-heading{display:flex;align-items:baseline;gap:9px;margin:15px 2px 7px;padding-bottom:6px;border-bottom:2px solid rgba(16,152,139,.20)}
.dashboard-zone-heading>span{font-size:12px;font-weight:950;color:var(--navy);letter-spacing:.08em}
.dashboard-zone-heading small{font-size:9px;color:var(--muted);font-weight:800}
.dashboard-zone-heading.office{border-bottom-color:rgba(230,128,32,.20);margin-top:18px}
.dashboard-stock-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:start}
.dashboard-category-card{background:#fff;border:1px solid #dce7e9;border-radius:11px;overflow:hidden;min-width:0}
.dashboard-category-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 9px 6px;background:linear-gradient(180deg,#fbfdfd,#f6fafb);border-bottom:1px solid #e8eff0}
.dashboard-category-title{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:950;color:var(--navy);letter-spacing:.025em}
.dashboard-category-title .category-symbol{width:23px;height:23px;border-radius:7px;background:#e6f5f2;display:grid;place-items:center;color:#078678;font-size:12px}
.dashboard-category-available{display:flex;align-items:baseline;gap:3px;white-space:nowrap}
.dashboard-category-available strong{font-size:19px;line-height:1;color:#078678}
.dashboard-category-available span{font-size:7px;text-transform:uppercase;color:#72868d;font-weight:900}
.dashboard-category-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:5px 7px;background:#fbfcfc;border-bottom:1px solid #edf2f3}
.dashboard-category-stats span{text-align:center;font-size:7px;color:#7a8c92;text-transform:uppercase;font-weight:800;white-space:nowrap}
.dashboard-category-stats b{display:block;font-size:10px;color:var(--navy2);margin-top:1px}
.dashboard-category-stats .stat-out b{color:#bb6205}.dashboard-category-stats .stat-maint b{color:#b72f38}
.dash-item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:6px}
.dash-item{position:relative;min-height:49px;border:1px solid #e3ebed;border-radius:8px;padding:5px 5px 4px;background:#fff;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:4px;align-items:center}
.dash-item-name{font-size:8px;font-weight:900;color:#425b65;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;grid-column:1/2}
.dash-item>strong{font-size:18px;line-height:1;color:#087e72;grid-column:2;grid-row:1/3;align-self:center}
.dash-item>small{font-size:7px;color:#84959b;text-transform:uppercase;font-weight:800;grid-column:1/2}
.dash-item.low-stock{border-color:#f4c27e;background:#fffaf3}.dash-item.low-stock>strong{color:#c06a0c}
.dash-item.empty-stock{border-color:#efb2b6;background:#fff7f7}.dash-item.empty-stock>strong{color:#b72f38}
.dash-item-flags{grid-column:1/-1;display:flex;gap:4px;margin-top:3px}
.dash-item-flags span{font-size:7px;font-weight:900;border-radius:4px;padding:1px 3px}
.flag-out{background:#fff0df;color:#a95607}.flag-maint{background:#fdeaea;color:#ad2d36}
.dash-unit-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;padding:7px}
.dash-unit{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;font-size:8px;font-weight:950;border:1px solid transparent;max-width:29px;width:100%;justify-self:center}
.dash-unit.available{background:#e4f6f2;color:#087e72;border-color:#a9ddd5}.dash-unit.out{background:#fff0df;color:#ad5c08;border-color:#f1c083}.dash-unit.maintenance{background:#fde8e9;color:#b62f38;border-color:#ebb1b5}
.dashboard-stock-grid .category-bcd{grid-column:span 2}.dashboard-stock-grid .category-trajes{grid-column:span 2}.dashboard-stock-grid .category-reg{grid-column:span 2}
.dashboard-stock-grid .category-aletas{grid-column:span 2}.dashboard-stock-grid .category-plomos{grid-column:span 1}
.dashboard-stock-grid .category-mascaras,.dashboard-stock-grid .category-cinturones,.dashboard-stock-grid .category-botas,.dashboard-stock-grid .category-bolsas{grid-column:span 1}
.dashboard-stock-grid .category-tubos{grid-column:span 2}
.dashboard-office-grid .category-compu{grid-column:span 2}.dashboard-office-grid .category-lamparas,.dashboard-office-grid .category-pilas,.dashboard-office-grid .category-kit-oxy,.dashboard-office-grid .category-compas,.dashboard-office-grid .category-donas,.dashboard-office-grid .category-adaptador-din{grid-column:span 1}
.dashboard-stock-grid .category-bcd .dash-item-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.dashboard-stock-grid .category-trajes .dash-item-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.dashboard-stock-grid .category-aletas .dash-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1050px){.dashboard-stock-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-stock-grid .category-bcd,.dashboard-stock-grid .category-trajes,.dashboard-stock-grid .category-reg,.dashboard-stock-grid .category-aletas,.dashboard-office-grid .category-compu{grid-column:span 2}.dashboard-stock-grid .category-tubos{grid-column:span 1}}
@media(max-width:700px){.dashboard-stock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-stock-grid .dashboard-category-card{grid-column:span 1}.dashboard-stock-grid .category-bcd,.dashboard-stock-grid .category-trajes,.dashboard-stock-grid .category-reg,.dashboard-stock-grid .category-aletas,.dashboard-office-grid .category-compu{grid-column:1/-1}.dashboard-zone-heading{align-items:flex-start;flex-direction:column;gap:2px}.dash-unit-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.dashboard-kpi{min-height:64px}.dashboard-kpi strong{font-size:22px}}
@media(max-width:430px){.dashboard-stock-grid{grid-template-columns:1fr}.dashboard-stock-grid .dashboard-category-card{grid-column:1}.dashboard-stock-grid .category-bcd .dash-item-grid,.dashboard-stock-grid .category-trajes .dash-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-unit-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}

.whatsapp-action{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;background:#1f9d63;color:#fff}.whatsapp-action:disabled{opacity:.45;cursor:not-allowed}.daily-history-actions{display:flex;gap:6px;flex-wrap:wrap}.whatsapp-mini{background:#e9f8f1!important;color:#14764b!important;border-color:#b9e8d2!important}

/* V1.0.27 - Historique en 3 colonnes */
@media (min-width: 1100px){
  .movement-history-grid.history-three-columns{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;}
}
.inventory-history-column{border-top:4px solid #13a6a2;}
.inventory-arrow{background:#e7f7f6;color:#087d79;}
.inventory-history-column .daily-history-row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:12px 0;border-bottom:1px solid #e7ecee;}
.inventory-history-column .daily-history-row:last-child{border-bottom:0;}
.inventory-history-column .daily-history-row>div:first-child{display:grid;gap:2px;min-width:0;}
.inventory-history-column .daily-history-row strong{color:#0a2f3d;}
.inventory-history-column .daily-history-row span,.inventory-history-column .daily-history-row small{display:block;}
.inventory-history-column .daily-history-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;}
.inventory-history-column .pdf-mini{white-space:nowrap;}
/* V1.0.28 — écarts visibles seulement après enregistrement */
.inventory-gap{display:block;margin-top:6px;font-weight:700;line-height:1.35}.inventory-gap.alert{color:#b42318}.inventory-gap.ok{color:#087f78}.inventory-gap.legacy{color:#6b7280;font-weight:500}

/* V1.0.29 — comptage physique par numéros REG / COMPU */
.daily-unit-inventory{padding:10px 12px 12px}
.daily-unit-help{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;color:var(--muted);font-size:.88rem}
.daily-unit-help strong{color:var(--navy);font-weight:700}
.daily-unit-help span{white-space:nowrap;background:#eef5f5;border:1px solid var(--line);border-radius:999px;padding:5px 9px}
.daily-unit-help b{color:var(--turq-dark);font-size:1rem}
.daily-unit-bubble-wrap{display:flex;flex-wrap:wrap;gap:7px}
.daily-unit-bubble{width:38px;height:38px;border-radius:50%;border:2px solid #aebfc4;background:#fff;color:var(--navy);font-weight:800;display:inline-grid;place-items:center;box-shadow:none;transition:.12s ease}
.daily-unit-bubble:hover{border-color:var(--turq);transform:translateY(-1px)}
.daily-unit-bubble.selected{background:var(--turq);border-color:var(--turq-dark);color:#fff;box-shadow:0 3px 8px rgba(19,173,155,.22)}
.daily-unit-bubble:focus-visible{outline:3px solid rgba(255,139,24,.35);outline-offset:2px}
@media (max-width:620px){.daily-unit-help{align-items:flex-start;flex-direction:column}.daily-unit-bubble{width:36px;height:36px}}

/* V1.0.30 — Palette officielle PHOCEA + commentaires */
:root{
  --navy:#064f70;
  --navy2:#043e59;
  --turq:#0fa690;
  --turq-dark:#087f73;
  --orange:#f58818;
  --green:#8fd0a6;
  --line:#d7e8e5;
  --muted:#61777f;
  --shadow:0 8px 24px rgba(6,79,112,.09);
}
body{background:linear-gradient(180deg,#eaf7f3 0,#f7faf9 220px,#f3f7f7 100%)}
.app-header{background:linear-gradient(115deg,#043e59,#064f70);border-bottom-color:#0fa690}
.brand span{color:#8fd0a6}.version{border-color:rgba(245,136,24,.45)}
nav button.active{background:#064f70}nav button:hover{background:#e8f6f2}.eyebrow{color:#087f73}
.group>summary{background:linear-gradient(100deg,#064f70,#08728b)}
.group>summary::after{color:#8fd0a6}.panel>h2{border-left-color:#f58818}
.equipment-block-title{background:#e7f6f2}.category-symbol{color:#087f73;border-color:#bde1d8}
.primary{background:linear-gradient(100deg,#064f70,#08728b)}
.success{background:linear-gradient(100deg,#087f73,#0fa690)}
.out-badge{background:#fff1e3;color:#c26305}.in-badge{background:#e5f7f1;color:#087f73}
.unit-bubble.available,.dash-unit.available{background:#e4f6f1;color:#087f73;border-color:#9fdacb}
.unit-bubble.out,.dash-unit.out{background:#fff0df;color:#b65b05;border-color:#f7bc75}
.unit-bubble.maintenance,.dash-unit.maintenance{background:#fde9e9;color:#b72f38;border-color:#edb0b5}
.legend-dot.available{background:#e4f6f1;border-color:#9fdacb}.legend-dot.out{background:#fff0df;border-color:#f7bc75}
.dashboard-category-title .category-symbol{background:#e3f5ef;color:#087f73}.dashboard-category-available strong,.dash-item>strong,.dashboard-kpi.available strong{color:#087f73}
.inventory-history-column{border-top-color:#0fa690}.inventory-arrow{background:#e5f7f2;color:#087f73}
.whatsapp-action{background:#087f73}.whatsapp-mini{background:#e6f7f1!important;color:#087f73!important;border-color:#aadfd1!important}

.movement-comment-field{margin:10px 0 0;padding:9px 10px;border:1px dashed #b8dcd4;border-radius:10px;background:#f4fbf9;color:#315c66}
.movement-comment-field input{margin-top:5px;border-color:#bcd8d3;background:#fff}
.history-comment{margin-top:7px;padding:7px 8px;border-radius:8px;background:#f2faf7;border-left:3px solid #0fa690;color:#355c65;font-size:10px;font-weight:700;line-height:1.35}
.invrow{grid-template-columns:minmax(100px,1fr) 55px 55px 55px minmax(150px,1.25fr)}
.maintenance-note-label{margin:0!important;font-size:8px!important;color:#8b5b28!important}.maintenance-note-label input{text-align:left!important;padding:5px 7px!important;border-color:#f0c895!important;background:#fffaf3!important}
@media(max-width:760px){.invrow{grid-template-columns:minmax(100px,1fr) 50px 50px 50px}.maintenance-note-label{grid-column:1/-1}.maintenance-note-label input{width:100%!important}}
