/* =====================================================================
   BioTecFarm · Agenda compartilhada de equipamentos
   ===================================================================== */
:root{
  --agenda-zeta:#356C91;
  --agenda-hplc:#B8893F;
  --agenda-ftir:#B45F5F;
  --agenda-balanca:#756E9E;
  --agenda-rota:#4F806E;
  --agenda-cabine-maior:#477F9D;
  --agenda-cabine-menor:#8F5FA8;
}

.agenda-shell{display:grid;gap:16px;}
.agenda-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.agenda-toolbar-left,.agenda-toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.agenda-week-title{font-size:.9rem;font-weight:600;color:var(--ink);min-width:180px;text-align:center;}
.agenda-week-title span{display:block;font-size:.69rem;color:var(--muted);font-weight:400;margin-top:2px;}
.agenda-status{font-size:.72rem;color:var(--muted);min-height:1.1em;}
.agenda-status.ok{color:var(--ok);}.agenda-status.err{color:var(--danger);}

.agenda-switch-link{appearance:none;border:0;background:transparent;padding:0;font:inherit;font-size:.72rem;font-weight:500;color:var(--primary);cursor:pointer;}.agenda-switch-link:hover{color:var(--primary-deep);}

.agenda-userbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:7px;background:#fff;}
.agenda-userbar .who{font-size:.76rem;color:var(--muted);}.agenda-userbar strong{color:var(--ink);font-weight:600;}
.agenda-usergate{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.agenda-usergate input{min-width:220px;border:1px solid var(--border);border-radius:6px;padding:8px 10px;font:inherit;font-size:.82rem;color:var(--ink);}
.agenda-usergate input:focus{outline:none;border-color:var(--primary);}

.agenda-room{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.agenda-room.production{border-top:3px solid #356C91;}
.agenda-room.cells{border-top:3px solid #4F806E;}
.agenda-room-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:17px 18px 14px;border-bottom:1px solid var(--border);}
.agenda-room-title{display:flex;align-items:flex-start;gap:10px;}.agenda-room-title .icon-box{width:32px;height:32px;}
.agenda-room-title h2{font-size:.96rem;line-height:1.3;margin:1px 0 2px;}.agenda-room-title p{font-size:.72rem;color:var(--muted);line-height:1.5;}
.agenda-week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));}
.agenda-day{min-height:150px;border-right:1px solid #EDF1F4;padding:10px;}.agenda-day:last-child{border-right:0;}
.agenda-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:7px;padding-bottom:8px;margin-bottom:7px;border-bottom:1px solid #EEF2F4;}
.agenda-day-name{font-size:.66rem;font-weight:700;color:var(--ink);letter-spacing:.08em;}.agenda-day-date{font-size:.65rem;color:var(--muted);}
.agenda-day-empty{font-size:.68rem;color:#A0A9AE;line-height:1.45;padding:5px 0;}
.agenda-reservation{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--agenda-color,var(--blue-700));background:color-mix(in srgb,var(--agenda-color,var(--blue-700)) 8%,white);border-radius:5px;padding:7px 8px;margin:0 0 7px;cursor:pointer;color:var(--ink);font:inherit;transition:background .15s ease,border-color .15s ease,transform .15s ease;}
.agenda-reservation:hover{background:color-mix(in srgb,var(--agenda-color,var(--blue-700)) 13%,white);transform:translateY(-1px);}
.agenda-reservation .time{display:block;font-size:.66rem;font-weight:600;color:var(--agenda-color,var(--blue-700));font-variant-numeric:tabular-nums;line-height:1.25;letter-spacing:0;font-family:inherit;}
.agenda-reservation .equipment{display:block;font-size:.77rem;font-weight:600;margin-top:2px;line-height:1.35;font-family:inherit;}
.agenda-reservation .responsible{display:block;font-size:.65rem;font-weight:400;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit;}

.eq-zeta{--agenda-color:var(--agenda-zeta);}.eq-hplc{--agenda-color:var(--agenda-hplc);}.eq-ftir{--agenda-color:var(--agenda-ftir);}.eq-balanca{--agenda-color:var(--agenda-balanca);}.eq-rotaevaporador{--agenda-color:var(--agenda-rota);}.eq-cabine-maior{--agenda-color:var(--agenda-cabine-maior);}.eq-cabine-menor{--agenda-color:var(--agenda-cabine-menor);}

.agenda-legends{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:2px;}
.agenda-legend-box{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px 14px;}
.agenda-legend-box h3{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:8px;}
.agenda-legend-list{display:flex;gap:8px 14px;flex-wrap:wrap;}.agenda-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;color:#52606B;}
.agenda-color-dot{width:8px;height:8px;border-radius:50%;background:var(--agenda-color);flex:0 0 auto;}

.agenda-modal{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(20,30,38,.34);}
.agenda-modal.open{display:flex;}
.agenda-modal-card{width:min(560px,100%);max-height:92vh;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 18px 50px rgba(18,38,58,.18);}
.agenda-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--border);}
.agenda-modal-head h2{font-size:1rem;}.agenda-modal-head p{font-size:.72rem;color:var(--muted);margin-top:3px;}
.agenda-close{appearance:none;border:0;background:transparent;font:inherit;font-size:1.15rem;line-height:1;color:var(--muted);cursor:pointer;padding:2px 4px;}
.agenda-form{padding:18px 20px 20px;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.agenda-field{display:flex;flex-direction:column;gap:5px;}.agenda-field.full{grid-column:1/-1;}.agenda-field label{font-size:.67rem;font-weight:600;color:var(--muted);}
.agenda-field input,.agenda-field select,.agenda-field textarea{width:100%;border:1px solid var(--border);border-radius:6px;padding:9px 10px;font:inherit;font-size:.82rem;color:var(--ink);background:#fff;}
.agenda-field textarea{min-height:72px;resize:vertical;}.agenda-field input:focus,.agenda-field select:focus,.agenda-field textarea:focus{outline:none;border-color:var(--primary);}
.agenda-readonly{background:#F7F9FA!important;color:#5F6971!important;}
.agenda-form-actions{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:3px;padding-top:12px;border-top:1px solid var(--border);}
.agenda-form-actions .right{display:flex;gap:8px;}.agenda-delete{appearance:none;border:0;background:transparent;color:var(--danger);font:inherit;font-size:.73rem;font-weight:500;cursor:pointer;padding:7px 0;}
.agenda-error{grid-column:1/-1;display:none;padding:9px 11px;background:var(--danger-soft);border:1px solid #EBCFCF;border-radius:6px;color:#8E3636;font-size:.73rem;line-height:1.5;}.agenda-error.show{display:block;}

.agenda-empty-page{padding:30px 20px;text-align:center;color:var(--muted);font-size:.8rem;}

@media(max-width:900px){.agenda-week-grid{grid-template-columns:1fr;}.agenda-day{min-height:0;border-right:0;border-bottom:1px solid #EDF1F4;padding:10px 14px;}.agenda-day:last-child{border-bottom:0;}.agenda-legends{grid-template-columns:1fr;}}
@media(max-width:700px){.agenda-toolbar{align-items:stretch;}.agenda-toolbar-left,.agenda-toolbar-right{width:100%;justify-content:space-between;}.agenda-week-title{min-width:0;flex:1;}.agenda-room-head{padding:15px 14px 12px;}.agenda-form{grid-template-columns:1fr;padding:16px;}.agenda-field.full,.agenda-form-actions,.agenda-error{grid-column:1;}.agenda-form-actions{align-items:flex-start;flex-direction:column;}.agenda-form-actions .right{width:100%;justify-content:flex-end;}.agenda-userbar{align-items:flex-start;}.agenda-usergate{width:100%;}.agenda-usergate input{min-width:0;flex:1;}}
@media(prefers-reduced-motion:reduce){.agenda-reservation{transition:none;}}


/* ===== V4 · reservas compartilhadas ===== */
.agenda-userbar [hidden]{display:none !important;}
.agenda-userbar{min-height:58px;}
.agenda-userbar .who{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.agenda-status.ok{font-weight:500;}
.agenda-day-head>div{display:flex;align-items:baseline;gap:8px;}
.agenda-day-add{appearance:none;border:1px solid transparent;background:transparent;color:#8A969D;width:24px;height:24px;border-radius:5px;cursor:pointer;font:600 .85rem/1 inherit;display:grid;place-content:center;transition:all .15s ease;}
.agenda-day-add:hover{border-color:var(--border);background:#fff;color:var(--primary);}
.agenda-day-empty-action{appearance:none;border:0;background:transparent;width:100%;text-align:left;cursor:pointer;font-family:inherit;}
.agenda-day-empty-action:hover{color:var(--primary);}
.agenda-reservation{background:color-mix(in srgb,var(--agenda-color) 9%,white);}
.agenda-reservation:hover{background:color-mix(in srgb,var(--agenda-color) 14%,white);}
.agenda-reservation .responsible{font-weight:400;color:#4D5961;}
.agenda-reservation .activity{display:block;font-size:.61rem;font-weight:400;color:#768087;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit;}
.agenda-legend-item.eq-hplc .agenda-color-dot,.agenda-legend-item.eq-ftir .agenda-color-dot,.agenda-legend-item.eq-balanca .agenda-color-dot,.agenda-legend-item.eq-rotaevaporador .agenda-color-dot,.agenda-legend-item.eq-cabine-maior .agenda-color-dot,.agenda-legend-item.eq-cabine-menor .agenda-color-dot,.agenda-legend-item.eq-zeta .agenda-color-dot{background:var(--agenda-color);}
@media(max-width:900px){.agenda-day-head>div{gap:10px;}.agenda-day-add{margin-left:auto;}}

/* ===== V5 · tipografia consistente das reservas ===== */
.agenda-reservation,
.agenda-reservation *{
  font-family:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  font-style:normal;
  letter-spacing:0;
}
.agenda-reservation .time{font-size:.63rem;font-weight:600;line-height:1.25;}
.agenda-reservation .equipment{font-size:.73rem;font-weight:600;line-height:1.3;}
.agenda-reservation .responsible{font-size:.61rem;font-weight:400;line-height:1.3;}
.agenda-reservation .activity{font-size:.58rem;font-weight:400;line-height:1.3;}


/* ===== V20 · terceira agenda de reuniões ===== */
.agenda-room.meetings{border-top:3px solid #7A628F;}
.agenda-room-title .icon-box.meeting{background:#F1ECF7;color:#7A628F;}
.agenda-legends{grid-template-columns:repeat(3,1fr);}
.eq-reuniao-laboratorio{--agenda-color:#7A628F;}
.agenda-legend-item.eq-reuniao-laboratorio .agenda-color-dot{background:var(--agenda-color);}
@media(max-width:1100px){.agenda-legends{grid-template-columns:1fr;}}


/* ===== V21 · diferenciação visual das áreas ===== */
.agenda-room-title .icon-box.production{background:#EAF2F7;color:#356C91;}
.agenda-room-title .icon-box.cells{background:#EDF5F1;color:#4F806E;}
