/* ==========================================================================================================
   The chassis: where things stand and when they show — nothing about how they look (2026-10-01)
   ==========================================================================================================
   The owner: 可以把旧的class都先删了吗 — the old rooms' stylesheets went (39 files). These few rules were the
   only parts of them the folio's rooms stood on: the menu drawer kept off the screen until opened, the trip's
   Contents drawer and its scrim, the trip page as a column the height of the screen, and the map's plate taking
   the room while the sheet steps aside. Taken out of 17b, 17zc and 17j as they were, without their dress. A
   room still in the old world now shows unstyled; that is the owner's call for the test address. */

/* The menu drawer, from the left. */
.sidebar { position: fixed; top: 0; left: -300px; width: 300px; height: 100vh; height: 100dvh; z-index: 2000; overflow-y: auto; display: flex; flex-direction: column; background: var(--fo-paper, #F7F6F3); transition: left .3s ease; }
.sidebar.active { left: 0; }
.sidebar-overlay { display: none; position: fixed; inset: 0; z-index: 1999; background: rgba(26,22,20,0.42); }
.sidebar-overlay.active { display: block; }

/* The trip's Contents drawer, from the right, over its scrim. */
#tripDetailsBackdrop { position: fixed; inset: 0; z-index: 40; background: rgba(26,22,20,0.42); opacity: 0; pointer-events: none; transition: opacity .3s; }
#tripDetailsBackdrop.open { opacity: 1; pointer-events: auto; }
#tripDetailsDrawer { position: fixed; top: 0; right: 0; bottom: 0; width: 82%; max-width: 340px; z-index: 41; display: flex; flex-direction: column; overflow: hidden; transform: translateX(100%); visibility: hidden; transition: transform .3s ease, visibility 0s linear .3s; }
#tripDetailsDrawer.open { visibility: visible; transform: translateX(0); transition: transform .3s ease; }

/* The trip page: a column the screen's height; on the map the plate takes the room and the sheet steps aside. */
#tripMapPage.active { display: flex; flex-direction: column; height: 100vh; height: 100dvh; min-height: 0; overflow: clip; }
#tripMapPage .tp-plate { display: none; position: relative; overflow: hidden; }
#tripMapPage.is-map .tp-plate { display: block; flex: 1; min-height: 0; }
#tripMapPage .tp-canvas { position: absolute; inset: 0; }
#tripMapPage.is-map .tp-sheet, #tripMapPage.is-map .tp-tally-block { display: none; }
#tripMapPage .tp-near { display: none; }
#tripMapPage.is-map .tp-near { display: block; position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 2; width: max-content; max-width: calc(100% - 32px); pointer-events: none; }
#tripMapPage.is-map .tp-near > * { pointer-events: auto; }
#tripMapPage .tp-near[hidden] { display: none; }
