/* Loaded last; scoped to the new controls and existing apartment dialog only. */
.meeting-dialog { color:#153653; background:#fff; border:1px solid #d7e5f3; border-radius:20px; padding:0; width:min(1320px,96vw); max-width:96vw; max-height:94vh; max-height:94dvh; box-shadow:0 24px 90px #102e544d; }
.meeting-dialog::backdrop { background:rgba(7,26,48,.65); }
.meeting-dialog-header { display:flex; align-items:center; gap:12px; position:sticky; top:0; z-index:20; background:#fff; padding:14px 20px; border-bottom:1px solid #dce7f1; }
.meeting-dialog-header h2 { margin:0; font-size:20px; line-height:1.3; flex:1; min-width:0; }
.meeting-dialog-header button { min-height:44px; flex-shrink:0; }
.meeting-dialog-content { min-height:0; padding:20px; }
.meeting-fullscreen-dialog[open] { position:fixed; inset:0; width:100vw; max-width:100vw; height:100vh; height:100dvh; max-height:100vh; max-height:100dvh; margin:0; border:0; border-radius:0; display:flex; flex-direction:column; }
.meeting-fullscreen-dialog > .meeting-dialog-content { flex:1; display:flex; flex-direction:column; overflow:hidden; padding:12px; }
.meeting-map-toolbar { position:relative; z-index:1001; display:flex; align-items:center; gap:8px; flex-wrap:wrap; width:100%; box-sizing:border-box; margin:0 0 8px; pointer-events:auto; }
.meeting-map-toolbar button { min-height:44px; max-width:100%; pointer-events:auto; }
#map-view > .map-summary { position:relative!important; inset:auto!important; z-index:2; display:block; align-self:flex-start; width:fit-content; max-width:min(100%,720px); box-sizing:border-box; margin:0 0 10px!important; padding:8px 12px; border:1px solid #d7e5f3; border-radius:12px; background:#f7fbff; box-shadow:none; color:#274b70; font-size:13px; line-height:1.4; overflow-wrap:anywhere; pointer-events:none; }
#meeting-map-dialog #map-view { display:flex; flex-direction:column; min-height:0; flex:1; }
#meeting-map-dialog #projects-map { flex:1; height:auto; min-height:0; border-radius:12px; }
#meeting-map-dialog #map-view > .map-summary { flex:none; margin:0 0 8px!important; }
#meeting-map-dialog #map-view[hidden] { display:none; }
.meeting-project-nav { position:sticky; top:0; z-index:1100; display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px 12px; background:#fff; border:1px solid #cdddec; border-radius:12px; box-shadow:0 4px 18px #12345b16; margin:0 0 12px; }
.meeting-project-nav[hidden] { display:none; }
.meeting-project-nav button { min-height:44px; }
.meeting-project-nav-title { margin-right:auto; overflow-wrap:anywhere; }
#board, #apartments-panel, .filters, #map-view, #empty { scroll-margin-top:calc(var(--meeting-nav-height, 72px) + 12px); }
#board[tabindex="-1"], #apartments-panel[tabindex="-1"], .filters[tabindex="-1"], #map-view[tabindex="-1"] { outline-offset:4px; }
.meeting-project-overview { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr); gap:24px; }
.meeting-project-visual { display:grid; place-items:center; min-height:300px; border-radius:14px; overflow:hidden; background:#eef4fa; }
.meeting-project-visual img { width:100%; max-height:72vh; object-fit:contain; display:block; }
.meeting-project-info { min-width:0; }
.meeting-project-developer { font-size:18px; font-weight:700; color:#174777; }
.meeting-project-scope { color:#526980; font-size:13px; }
.meeting-project-facts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }
.meeting-project-facts dt { color:#526980; }
.meeting-project-facts dd { margin:0; font-weight:700; }
.meeting-project-actions { display:flex; flex-direction:column; gap:10px; }
.meeting-project-actions button { min-height:48px; }
.meeting-overview-button { min-height:44px; }
.complex-cover[role="button"] { cursor:pointer; }
#modal.meeting-apartment-dialog { width:min(1440px,96vw); max-width:96vw; max-height:94vh; max-height:94dvh; inset:0; padding:0; border-radius:20px; }
#modal.meeting-apartment-dialog .meeting-dialog-header .close { position:static; display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:10px; background:#edf3f9; color:#123a66; font-size:26px; }
#modal.meeting-apartment-dialog #detail { padding:20px; }
#modal.meeting-apartment-dialog #detail.meeting-has-plan { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(310px,1fr); gap:24px; align-items:start; }
.meeting-detail-plan { margin:0; min-width:0; position:sticky; top:82px; display:flex; flex-direction:column; gap:10px; }
.meeting-detail-info { min-width:0; }
#detail .meeting-detail-plan .plan-image { display:block!important; width:100%!important; height:auto!important; max-height:calc(94vh - 200px)!important; max-height:calc(94dvh - 200px)!important; min-height:0!important; object-fit:contain!important; margin:0!important; cursor:zoom-in; }
#detail .meeting-detail-plan .plan-image[hidden] { display:none!important; }
#modal.meeting-apartment-dialog .detail-heart { position:static; width:auto; height:auto; }
#modal.meeting-apartment-dialog.meeting-detail-expanded { width:100vw; max-width:100vw; height:100vh; height:100dvh; max-height:100vh; max-height:100dvh; margin:0; border:0; border-radius:0; }
.meeting-plan-tools { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px; padding:0 0 10px; }
.meeting-plan-tools button { min-width:44px; min-height:44px; }
.meeting-plan-status { color:#395b79; min-width:60px; }
.meeting-plan-viewport { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; background:#eaf0f7; border-radius:12px; }
.meeting-plan-stage { display:grid; place-items:center; min-width:100%; min-height:100%; box-sizing:border-box; padding:16px; }
.meeting-plan-image { display:block; max-width:none; max-height:none; object-fit:contain; background:#fff; user-select:none; -webkit-user-drag:none; }
.meeting-plan-viewport.is-zoomed { cursor:grab; }
.meeting-plan-viewport.is-zoomed:active { cursor:grabbing; }
@media(max-width:900px) {
  #modal.meeting-apartment-dialog #detail.meeting-has-plan, .meeting-project-overview { grid-template-columns:1fr; }
  .meeting-detail-plan { position:static; }
  #detail .meeting-detail-plan .plan-image { max-height:50vh!important; max-height:50dvh!important; }
  .meeting-project-visual { min-height:180px; }
  .meeting-project-visual img { max-height:48vh; }
  .meeting-project-nav-title { flex-basis:100%; order:-1; }
}
@media(max-width:600px) {
  .meeting-dialog-header { padding:10px; gap:6px; }
  .meeting-dialog-header h2 { font-size:16px; }
  .meeting-dialog-header button { font-size:13px; padding:8px; }
  .meeting-dialog-content, #modal.meeting-apartment-dialog #detail { padding:12px; }
  .meeting-project-nav { gap:6px; padding:8px; }
  .meeting-project-nav button { font-size:12px; padding:8px; }
  #modal.meeting-apartment-dialog { width:98vw; max-width:98vw; }
  .meeting-map-toolbar { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr)); }
  .meeting-map-toolbar button { width:100%; min-width:0; }
  #map-view > .map-summary { width:100%; max-width:100%; }
}

/* USER_PATH_PLAN_CARD_20261104_CSS */
#modal.meeting-apartment-dialog #detail.meeting-has-plan {
  grid-template-columns:minmax(340px,.9fr) minmax(0,1.35fr);
  gap:20px;
  align-items:start;
}
#modal.meeting-apartment-dialog .meeting-detail-info { grid-column:1; min-width:0; }
#modal.meeting-apartment-dialog .meeting-detail-plan { grid-column:2; top:76px; min-height:0; padding:12px; border:1px solid #dce7f1; border-radius:14px; background:#f7fafc; }
#modal.meeting-apartment-dialog .meeting-detail-info > .detail-kicker { display:block; margin-bottom:8px; }
#modal.meeting-apartment-dialog .meeting-detail-info .detail-hero { margin:0 0 12px; padding:14px 16px; }
#modal.meeting-apartment-dialog .meeting-detail-info .detail-facts { margin:12px 0; }
#modal.meeting-apartment-dialog .detail-actions { display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; margin-top:16px; }
#modal.meeting-apartment-dialog .detail-actions > * { flex:1 1 180px; margin:0; min-height:46px; }
#modal.meeting-apartment-dialog .detail-heart { display:inline-flex; width:auto; max-width:100%; align-self:flex-start; }
.meeting-plan-load-state { margin:0; color:#526980; font-size:13px; text-align:center; }
.meeting-plan-enlarge { align-self:center; }
.meeting-detail-state { min-height:260px; display:grid; place-content:center; justify-items:center; gap:10px; padding:32px; text-align:center; color:#284b6d; }
.meeting-detail-state p { margin:0; color:#60778d; }
.meeting-detail-state.is-error { color:#8b2e2e; }
.meeting-detail-spinner { width:34px; height:34px; border:3px solid #cfe0ef; border-top-color:#1674d1; border-radius:50%; animation:meeting-detail-spin .8s linear infinite; }
@keyframes meeting-detail-spin { to { transform:rotate(360deg); } }
.meeting-house-switcher { display:flex; align-items:center; gap:7px; color:#526980; font-size:13px; }
.meeting-house-switcher select { min-height:42px; max-width:260px; padding:8px 34px 8px 10px; border:1px solid #b8cee2; border-radius:9px; background:#fff; color:#123a66; }
#modal.meeting-apartment-dialog.meeting-detail-expanded #detail.meeting-has-plan { grid-template-columns:minmax(380px,.75fr) minmax(0,1.55fr); }
#modal.meeting-apartment-dialog.meeting-detail-expanded .meeting-detail-plan { max-height:calc(100dvh - 92px); }
#modal.meeting-apartment-dialog.meeting-detail-expanded .meeting-detail-plan .plan-image { max-height:calc(100dvh - 190px)!important; }
@media(max-width:900px) {
  #modal.meeting-apartment-dialog #detail.meeting-has-plan,
  #modal.meeting-apartment-dialog.meeting-detail-expanded #detail.meeting-has-plan { grid-template-columns:1fr; }
  #modal.meeting-apartment-dialog .meeting-detail-info { grid-column:1; grid-row:1; }
  #modal.meeting-apartment-dialog .meeting-detail-plan { grid-column:1; grid-row:2; position:static; }
  .meeting-house-switcher { flex:1 1 100%; order:3; }
  .meeting-house-switcher select { flex:1; max-width:none; }
}
@media(max-width:600px) {
  #modal.meeting-apartment-dialog .detail-facts { grid-template-columns:1fr 1fr; }
  #modal.meeting-apartment-dialog .detail-actions { flex-direction:column; }
  #modal.meeting-apartment-dialog .detail-actions > * { flex-basis:auto; width:100%; }
  .meeting-detail-state { min-height:220px; padding:20px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  .meeting-detail-spinner { animation-duration:1.5s; }
}



/* Archive, robust plan loading, and event editor additions (2026-11-04). */
.meeting-plan-load-state.is-ready{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.meeting-plan-retry{align-self:center}.meeting-plan-unavailable{margin:auto;padding:24px;text-align:center;color:#64748b}
.archive-panel{width:min(1180px,96vw);max-height:90vh;overflow:auto;padding:22px;background:#fff;border-radius:20px}
.archive-panel>header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.archive-panel h2{margin:0}.archive-panel header p{margin:.4rem 0;color:#64748b}
.archive-panel>label{display:block;margin:16px 0}.archive-panel input{width:100%;padding:10px 12px;border:1px solid #cbdcf2;border-radius:10px}
.archive-table-wrap{overflow:auto}.archive-panel table{width:100%;border-collapse:collapse}.archive-panel th,.archive-panel td{padding:10px;border-bottom:1px solid #e4edf7;text-align:left;vertical-align:top}.archive-panel td small{display:block;color:#64748b;margin-top:3px}
@media(max-width:700px){.archive-panel{padding:14px}.archive-panel th:nth-child(4),.archive-panel td:nth-child(4){display:none}}
