/* Operations & Logistics (the dashboard's Ops box, drawn by
   app/event-operations/tab.js, and its sections) and the edit form, drawn
   by app/event-operations/logistics.js. Loaded after event-dashboard-view.css; it reuses
   that sheet's .event-dashboard-block, heading and note, and the shared
   .field, .form-grid and .button rules, and adds no colour tokens. */
.event-logistics{display:grid;gap:16px;margin-bottom:18px}
.event-logistics>*{min-width:0;margin:0}
.event-logistics-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 18px}
.event-logistics-head h3{margin:0 0 2px;color:var(--ink);font:600 16px "Poppins",sans-serif}
.event-logistics-head p{margin:0;color:var(--muted);font-size:13.5px}
.event-logistics-block h3 .button{font-size:12.5px}

.event-logistics-list{display:grid;margin:0}
.event-logistics-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:4px 12px;padding:8px 0;border-top:1px solid #eeecf0}
.event-logistics-row:first-child{border-top:0;padding-top:0}
.event-logistics-row dt{color:var(--muted);font:500 13px/1.45 "Bricolage Grotesque",sans-serif}
.event-logistics-row dd{margin:0;color:var(--ink);font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.event-logistics-row dd a{color:var(--accent-text);text-underline-offset:3px}
.event-logistics-row dd small{display:block;color:var(--muted);font-size:12.5px}
.event-logistics-missing{color:var(--muted)}
.event-logistics-paid{color:#17613c;font-weight:600}

.event-logistics-form-heading{margin:18px 0 10px;color:var(--ink);font:600 14px "Poppins",sans-serif}
.event-logistics-form-heading:first-child{margin-top:0}
/* The videographer fields show only while videography is Yes. A browser
   without :has() shows them all the time, which is still correct. */
.event-logistics-form:not(:has(select[name="videographyRequired"] option[value="yes"]:checked)) .event-logistics-video{display:none}

/* Team members attending and the hotel booking (team-travel.js). */
.event-team-travel{display:grid;gap:16px;margin-bottom:18px}
.event-team-travel>*{min-width:0;margin:0}
.event-team-attending{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.event-team-attending li{padding:3px 10px;border-radius:999px;background:#f3f1f5;font-size:13.5px}
.event-team-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 14px}
.event-team-choice{display:flex;align-items:flex-start;gap:8px;font-size:14px;cursor:pointer}
.event-team-choice input{margin-top:3px}
.event-team-choice small{color:var(--muted);font-size:12px}

/* The Ops box (tab.js box): Hotel, Venue and Team as soft rows, one under
   the other, from her playground (style "new", no icons on the rows). A
   line with nothing saved yet is the dashboard's watch yellow. Show
   everything draws the whole of Operations & Logistics under them. */
.event-ops-tiles{display:grid;gap:10px}
.event-ops-tile{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px 14px;border-radius:18px;background:#f6f6f3}
.event-ops-tile-name{color:var(--muted);font:500 12.5px/1.3 "Bricolage Grotesque",sans-serif}
.event-ops-tile-value{color:var(--ink);font:600 14px/1.25 "Poppins",sans-serif;overflow-wrap:anywhere}
.event-ops-tile-detail{color:var(--muted);font-size:12.5px;line-height:1.4;overflow-wrap:anywhere}
.event-ops-tile.is-watch{background:#fbf1d9}
.event-ops-tile.is-watch .event-ops-tile-name,.event-ops-tile.is-watch .event-ops-tile-value{color:#9a6817}
.event-ops-everything{display:grid;gap:16px;margin-top:16px}
.event-ops-everything>*{min-width:0;margin:0}
.event-ops-everything .event-dashboard-block{border-radius:12px}

@media(max-width:760px){.event-logistics-row{grid-template-columns:1fr}.event-logistics-spacer{display:none}}
