:root {
  color-scheme: light;
  --ink: #211a17;
  --muted: #736b66;
  --line: #e4ddd8;
  --paper: #f7f7f7;
  --white: #fff;
  --green: #F79C2A;
  --green-dark: #c56a0a;
  --lime: #fff0d8;
  --orange: #F79C2A;
  --danger: #a53d2f;
  --shadow: 0 20px 70px rgba(48, 34, 24, .10);
  font-family: "Inter", sans-serif;
  color: var(--ink);
  background: var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: calc(100 * var(--vh)); background: var(--paper); }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
.topbar { height: 76px; display: flex; align-items: center; padding: 0 calc(4 * var(--vw)); gap: clamp(20px, calc(3 * var(--vw)), 48px); background: var(--orange); color: white; position: sticky; top: 0; z-index: 20; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-family: "Nunito", sans-serif; font-size: 16px; font-weight: 800; white-space: nowrap; }
.brand-logo { display: block; width: 40px; height: 40px; padding: 0; object-fit: contain; background: transparent; border: 0; border-radius: 0; }
.topbar .brand, .topbar .brand strong { color: white; }
.brand strong { color: var(--green-dark); font-weight: 800; }
.brand-light { color: var(--muted); font-weight: 500; }
.primary-nav { display: flex; align-self: stretch; align-items: center; gap: clamp(16px, calc(2.4 * var(--vw)), 32px); flex: 1; }
.primary-nav a, .nav-muted { height: 100%; display: flex; align-items: center; color: rgba(255,255,255,.8); font-size: 12px; font-weight: 500; border-bottom: 3px solid transparent; padding: 2px 0 0; white-space: nowrap; }
.primary-nav a.module-nav { display: flex; }
.mobile-nav-label { display: none; }
.module-nav img { width: 18px; height: 18px; object-fit: contain; }
.primary-nav a:hover { color: white; border-bottom-color: white; }
.primary-nav a.is-active { color: var(--ink); border-bottom-color: var(--ink); font-weight: 700; }
.nav-muted { opacity: .58; }
.account-menu { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.88); font-size: 12px; }
.account-menu form { margin: 0; }
.nav-signout { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.55); background: transparent; color: white; font-size: 11px; font-weight: 600; }
.nav-signout:hover { background: white; color: var(--green-dark); }
.page-shell { width: min(1500px, calc(94 * var(--vw))); margin: 0 auto; padding: 42px 0 72px; }
.page-public { position: relative; width: 100%; min-height: calc(100 * var(--vh)); display: grid; place-items: stretch; padding: 0; }
.page-public > .flash-stack { position: absolute; z-index: 30; top: 16px; left: 50%; width: min(640px, calc(100% - 32px)); margin: 0; transform: translateX(-50%); }
.page-public > .flash-stack .flash { box-shadow: 0 8px 28px rgba(48,34,24,.12); }
.page-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 34px; }
.page-heading h1, .setup-panel h2, .login-panel h2 { font-family: "Nunito", sans-serif; font-size: clamp(30px, calc(4 * var(--vw)), 43px); letter-spacing: -.035em; line-height: 1.05; margin: 11px 0 9px; font-weight: 800; }
.page-heading p { margin: 0; }
.dashboard-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin: 0 0 28px; }
.dashboard-heading h1 { margin: 8px 0 5px; font: 800 36px/1.05 "Nunito", sans-serif; }
.dashboard-heading-actions { display: flex; align-items: center; gap: 18px; }
.dashboard-count, .project-version { color: var(--muted); font: 10px "DM Mono", monospace; }
.project-table-wrap { overflow-x: auto; background: white; border: 1px solid var(--line); }
.project-table { width: 100%; min-width: 680px; table-layout: fixed; border-collapse: collapse; text-align: left; }
.project-table th:nth-child(1) { width: 24%; }
.project-table th:nth-child(2) { width: 19%; }
.project-table th:nth-child(3) { width: 42%; }
.project-table th:nth-child(4) { width: 15%; }
.project-table th { padding: 14px 18px; background: #fff3e1; border-bottom: 1px solid var(--line); color: var(--muted); font: 700 10px "DM Mono", monospace; text-transform: uppercase; }
.project-table td { padding: 17px 18px; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 13px; }
.project-table tbody tr:last-child td { border-bottom: 0; }
.project-table tbody tr:hover td { background: #fffaf3; }
.project-name { display: block; font: 700 17px "Nunito", sans-serif; }
.project-name:hover, .project-open:hover { color: var(--green-dark); }
.project-version { display: block; margin-top: 4px; font-size: 9px; }
.project-table-date { display: block; white-space: nowrap; }
.room-count { color: var(--green-dark); font: 600 14px "DM Mono", monospace; }
.project-location-cell > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-open { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.project-empty { display: flex; align-items: center; gap: 24px; min-height: 160px; padding: 26px 4px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.project-empty .empty-index { color: var(--green-dark); font: 12px "DM Mono", monospace; }
.project-empty h2 { margin: 0 0 4px; font: 700 22px "Nunito", sans-serif; }
.project-empty p { margin: 0; color: var(--muted); font-size: 13px; }
.project-empty .button { margin-left: auto; }
.project-hero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); min-height: 310px; margin: 23px 0 0; background: var(--orange); }
.project-hero-copy { display: flex; flex-direction: column; align-items: start; padding: clamp(24px, calc(4 * var(--vw)), 48px); }
.project-hero-copy .eyebrow { color: rgba(33,26,23,.68); }
.project-hero h1 { margin: 16px 0 8px; font: 800 clamp(30px, calc(3.2 * var(--vw)), 44px)/1.04 "Nunito", sans-serif; }
.project-date-range { margin: 0; font: 12px "DM Mono", monospace; }
.project-date-range span { padding: 0 5px; }
.project-hero-location { margin: 8px 0 24px; color: rgba(33,26,23,.74); font-size: 13px; }
.project-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.project-hero-actions .button-primary { background: white; }
.project-hero-actions .button-primary:hover { background: var(--green-dark); }
.project-map { min-height: 310px; background: #e6e1d8; }
.project-map-empty { display: flex; flex-direction: column; justify-content: center; gap: 7px; padding: 30px; color: var(--muted); }
.project-map-empty span:first-child { font: 10px "DM Mono", monospace; }
.project-map-empty strong { color: var(--ink); font: 700 17px "Nunito", sans-serif; }
.project-map-empty span:last-child { font-size: 11px; }
.project-module-nav { display: flex; gap: clamp(20px, calc(4 * var(--vw)), 48px); margin: 0 0 22px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.project-module-nav a { display: grid; flex: 0 0 auto; gap: 3px; padding: 16px 0 12px; border-bottom: 3px solid transparent; font: 700 12px "Nunito", sans-serif; }
.project-module-nav a:hover { border-bottom-color: var(--orange); }
.project-module-nav span { color: var(--muted); font: 9px "DM Mono", monospace; }
.project-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 52px; border-bottom: 1px solid var(--line); }
.project-stats > div { display: grid; gap: 7px; padding: 17px 18px 17px 0; border-right: 1px solid var(--line); }
.project-stats > div + div { padding-left: 18px; }
.project-stats > div:last-child { border-right: 0; }
.project-stats span { color: var(--muted); font: 9px "DM Mono", monospace; }
.project-stats strong { font: 700 18px "Nunito", sans-serif; }
.project-module { padding: 0 0 42px; margin: 0 0 42px; border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.module-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.module-heading h2 { margin: 5px 0 3px; font: 700 25px "Nunito", sans-serif; }
.module-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.project-room-row { display: grid; grid-template-columns: 24px 32px minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.project-room-row:first-child { border-top: 1px solid var(--line); }
.room-drag-handle { padding-top: 2px; color: var(--muted); cursor: grab; font-size: 18px; user-select: none; }
.room-number { padding-top: 3px; color: var(--orange); font: 11px "DM Mono", monospace; }
.project-room-main { min-width: 0; }
.project-room-main h3 { margin: 0; font: 700 17px "Nunito", sans-serif; }
.project-room-main > span { display: block; margin-top: 3px; color: var(--muted); font: 10px "DM Mono", monospace; }
.room-section-summary { display: grid; gap: 5px; margin-top: 12px; }
.room-section-preview { display: grid; grid-template-columns: minmax(115px, .25fr) minmax(0, 1fr); gap: 12px; font-size: 11px; }
.room-section-preview strong { font-weight: 600; }
.room-section-preview span { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.project-room-actions { display: flex; align-items: center; gap: 8px; }
.project-room-actions form { margin: 0; }
.room-share-status { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); }
.room-share-status > div { display: flex; align-items: center; gap: 12px; min-height: 38px; border-bottom: 1px solid var(--line); font-size: 11px; }
.room-share-status > div > span { color: var(--muted); }
.room-share-status form { margin-left: auto; }
.room-order-status { min-height: 20px; margin-top: 8px; color: var(--muted); font-size: 11px; }
.project-entry-grid { display: grid; align-items: end; gap: 8px; padding: 14px 0; border-top: 1px solid var(--line); }
.event-entry { grid-template-columns: 1.5fr .9fr .7fr .7fr 1fr .8fr auto; }
.people-entry { grid-template-columns: .9fr .9fr 1fr 1.3fr 1fr auto; }
.stay-entry { grid-template-columns: 1.1fr 1.5fr 1.1fr .8fr .8fr auto; }
.project-entry-grid input, .project-entry-grid select { width: 100%; min-width: 0; min-height: 36px; padding: 0 9px; border: 1px solid var(--line); background: white; color: var(--ink); font: 11px "Inter", sans-serif; }
.schedule-list, .people-table, .stay-list { border-top: 1px solid var(--line); }
.schedule-row, .people-row, .stay-row { min-height: 58px; display: flex; align-items: center; gap: 13px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.schedule-date, .schedule-time { min-width: 58px; color: var(--green-dark); font: 10px "DM Mono", monospace; }
.schedule-row-main, .stay-main { min-width: 130px; flex: 1; display: grid; gap: 3px; }
.schedule-row-main strong, .stay-main strong { font-size: 12px; }
.schedule-row-main span, .stay-main span, .schedule-attendees, .stay-guests { color: var(--muted); font-size: 10px; }
.schedule-attendees { min-width: 120px; text-align: right; }
.people-row > strong { min-width: 150px; font-size: 12px; }
.people-row > span:not(.person-initial) { min-width: 100px; flex: 1; color: var(--muted); font-size: 10px; }
.stay-guests { min-width: 140px; display: grid; gap: 3px; }
.project-export-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.room-sort-ghost { opacity: .35; }
.event-create-section { padding-top: 20px; border-top: 1px solid var(--line); }
.event-editor-form { padding: 18px; background: white; border: 1px solid var(--line); }
.event-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.event-form-grid label { align-content: start; }
.event-form-grid input:not([type=checkbox]), .event-form-grid select, .event-form-grid textarea { width: 100%; min-width: 0; min-height: 36px; padding: 0 9px; border: 1px solid var(--line); background: white; color: var(--ink); font: 11px "Inter", sans-serif; }
.event-form-grid textarea { min-height: 66px; padding: 9px; resize: vertical; }
.event-title-field, .event-address-field { grid-column: span 2; }
.event-wide-field { grid-column: 1 / -1; }
.event-people-field { margin: 0; padding: 12px; border: 1px solid var(--line); }
.event-people-field legend { padding: 0 5px; color: var(--muted); font: 10px "DM Mono", monospace; }
.event-participant-options { display: flex; flex-wrap: wrap; gap: 7px 16px; }
.event-participant-options label, .event-all-toggle { display: flex; align-items: center; gap: 6px; color: var(--ink); font-size: 11px; }
.event-participant-options input, .event-all-toggle input { accent-color: var(--orange); }
.event-all-toggle { margin-top: 12px; color: var(--muted); }
.event-editor-actions { display: flex; justify-content: end; gap: 8px; padding-top: 14px; }
.managed-event-list { border-top: 1px solid var(--line); }
.managed-event { padding: 16px 0; border-bottom: 1px solid var(--line); }
.managed-event-summary { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.managed-event-summary h3 { margin: 5px 0; font: 700 16px "Nunito", sans-serif; }
.managed-event-summary p { margin: 0; color: var(--muted); font-size: 11px; }
.event-tag-chip { display: inline-flex; align-items: center; padding: 4px 8px; background: #fff0d8; color: var(--green-dark); font-size: 9px; font-weight: 700; }
.event-edit-details { margin-top: 9px; }
.event-edit-details summary { color: var(--green-dark); cursor: pointer; font-size: 10px; }
.event-edit-details .event-editor-form { margin-top: 10px; }
.tag-create-form { display: grid; grid-template-columns: minmax(180px, 1fr) 100px 100px auto; align-items: end; gap: 10px; }
.tag-create-form label { align-content: start; }
.tag-create-form input:not([type=color]) { width: 100%; min-height: 36px; padding: 0 9px; border: 1px solid var(--line); background: white; font-size: 11px; }
.tag-create-form input[type=color] { width: 100%; height: 36px; border: 1px solid var(--line); background: white; padding: 3px; }
.event-tag-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 15px; }
.event-tag-list > div { display: flex; align-items: center; gap: 7px; padding: 5px 8px; border: 1px solid var(--line); }
.global-list-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin: 0 0 14px; }
.global-list-toolbar h2 { margin: 4px 0 0; font: 700 22px "Nunito", sans-serif; }
.global-equipment-table { min-width: 1120px; }
.global-equipment-table th, .global-equipment-table td { padding: 12px 13px; }
.equipment-name { display: block; font-size: 12px; }
.equipment-description { display: block; max-width: 240px; margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.equipment-inactive { opacity: .58; }
.inventory-number { font: 11px "DM Mono", monospace !important; text-align: center; }
.inventory-number.is-negative { color: var(--danger); font-weight: 700; }
.equipment-projects summary { cursor: pointer; color: var(--green-dark); font-size: 10px; white-space: nowrap; }
.equipment-projects span { display: block; padding-top: 5px; color: var(--muted); font-size: 9px; white-space: nowrap; }
.equipment-edit summary { cursor: pointer; color: var(--green-dark); font-size: 10px; }
.equipment-edit form { display: grid; gap: 7px; min-width: 210px; padding: 10px; }
.equipment-edit input { width: 100%; min-height: 32px !important; font-size: 10px !important; }
.team-global-tools { display: grid; gap: 16px; margin-bottom: 26px; padding: 16px 0 22px; border-bottom: 1px solid var(--line); }
.team-filter-form { display: flex; align-items: end; gap: 10px; }
.team-filter-form label { min-width: 160px; }
.team-filter-form input, .team-filter-form select { min-height: 36px !important; font-size: 11px !important; }
.team-global-add { display: grid; grid-template-columns: 1fr 1fr 1fr 1.2fr 1fr 1fr auto; align-items: end; gap: 8px; }
.team-global-add > .eyebrow { grid-column: 1 / -1; }
.team-global-add input, .team-global-add select { width: 100%; min-width: 0; min-height: 36px; padding: 0 8px; border: 1px solid var(--line); background: white; font: 10px "Inter", sans-serif; }
.team-global-table { min-width: 1000px; }
.team-global-table td { vertical-align: middle; }
.team-contact { display: block; color: var(--muted); font-size: 10px; }
.team-global-actions { display: flex; align-items: center; gap: 8px; }
.team-global-actions form { margin: 0; }
.team-directory, .stay-manage-list { display: grid; gap: 12px; }
.team-person-row, .stay-manage-card { padding: 17px; background: white; border: 1px solid var(--line); }
.team-person-row.is-disabled { opacity: .7; }
.team-person-heading, .stay-manage-heading { display: flex; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.team-person-heading > div, .stay-manage-heading > div { display: grid; flex: 1; gap: 3px; }
.team-person-heading strong, .stay-manage-heading h2 { font: 700 15px "Nunito", sans-serif; }
.team-person-heading > div > span, .stay-manage-heading p { margin: 0; color: var(--muted); font: 10px "DM Mono", monospace; }
.team-profile-form, .stay-edit-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 10px; padding-top: 13px; }
.team-profile-form input, .stay-edit-form input, .stay-assign-form input, .stay-assignment-row input, .stay-assign-form select { width: 100%; min-width: 0; min-height: 34px; padding: 0 8px; border: 1px solid var(--line); background: white; font: 10px "Inter", sans-serif; }
.team-person-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding-top: 3px; }
.team-person-actions form { margin: 0; }
.stay-create-section { margin: 0 0 24px; padding: 18px; background: white; border: 1px solid var(--line); }
.stay-create-form { display: grid; grid-template-columns: 1fr 1.5fr auto; align-items: end; gap: 10px; }
.stay-create-form input, .stay-assign-form select { width: 100%; min-width: 0; min-height: 36px; padding: 0 9px; border: 1px solid var(--line); background: white; font-size: 11px; }
.stay-assignment-heading { display: flex; justify-content: space-between; padding: 14px 0 6px; border-bottom: 1px solid var(--line); font: 700 10px "DM Mono", monospace; text-transform: uppercase; }
.stay-assignment-heading span:last-child { color: var(--muted); }
.stay-assignment-row { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(0, 2fr) 32px; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.stay-assignment-row > strong { font-size: 11px; }
.stay-assignment-row > form { display: flex; align-items: end; gap: 7px; }
.stay-assignment-row > form label { min-width: 100px; flex: 1; }
.stay-assign-form { display: grid; grid-template-columns: minmax(180px, 1.5fr) 1fr 1fr auto; align-items: end; gap: 8px; padding-top: 12px; }
.export-center-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr); align-items: start; gap: 22px; }
.export-config, .export-downloads { padding: 20px; background: white; border: 1px solid var(--line); }
.export-config-heading { margin-bottom: 15px; }
.export-config-heading h2 { margin: 4px 0 0; font: 700 20px "Nunito", sans-serif; }
.pdf-template-list { display: grid; border-top: 1px solid var(--line); }
.pdf-template-option { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.export-config-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.export-options { display: grid; gap: 2px; }
.export-options .export-external-toggle { margin: 0; }
.export-group { margin: 18px 0 6px; font: 700 11px "DM Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
#export-dialog { width: min(560px, calc(92 * var(--vw))); }
#export-dialog .export-rooms { margin-top: 12px; }
#export-dialog h2 { margin: 0 0 4px; font: 700 20px "Nunito", sans-serif; }
.pdf-template-option input, .export-room-list input, .export-rooms-heading input, .export-external-toggle input { accent-color: var(--orange); }
.pdf-template-option span { display: grid; gap: 3px; }
.pdf-template-option strong { color: var(--ink); font-size: 12px; }
.pdf-template-option small { color: var(--muted); font-size: 10px; font-weight: 400; }
.export-rooms { margin-top: 18px; padding: 14px; border: 1px solid var(--line); }
.export-rooms.is-disabled { opacity: .48; }
.export-rooms.has-error { border-color: var(--danger); }
.export-rooms-heading { display: flex; justify-content: space-between; align-items: center; }
.export-rooms-heading h3 { margin: 0; font: 700 12px "Nunito", sans-serif; }
.export-rooms-heading label, .export-room-list label, .export-external-toggle { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; }
.export-room-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 9px; margin-top: 12px; }
.export-external-toggle { margin: 16px 0; }
.export-submit { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--line); }
.export-submit span { color: var(--danger); font-size: 10px; }
.export-downloads { display: grid; }
.export-logo { display: grid; gap: 10px; padding-bottom: 6px; }
.export-logo img { max-width: 100%; max-height: 80px; object-fit: contain; justify-self: start; }
.export-logo form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.export-logo input[type=file] { max-width: 100%; font-size: 11px; }
.export-downloads > a { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.export-downloads > a span { display: grid; gap: 4px; }
.export-downloads strong { font-size: 12px; }
.export-downloads small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.export-downloads b { color: var(--green-dark); font: 14px "DM Mono", monospace; }
.sheet-form-wide { grid-column: 1 / -1; }
.mapping-step { color: var(--green-dark); font: 10px "DM Mono", monospace; }
.mapping-layout { display: grid; grid-template-columns: minmax(340px, .75fr) minmax(0, 1.25fr); align-items: start; gap: 20px; }
.mapping-panel, .mapping-preview { min-width: 0; padding: 20px; background: white; border: 1px solid var(--line); }
.mapping-fields { border-top: 1px solid var(--line); }
.mapping-field { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(0, 1.2fr); align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.mapping-field > span { color: var(--ink); font-size: 11px; }
.mapping-field > span strong { padding-left: 3px; color: var(--danger); }
.mapping-field select { width: 100%; min-width: 0; min-height: 36px; border: 1px solid var(--line); background: white; color: var(--ink); font: 11px "Inter", sans-serif; }
.mapping-actions { display: flex; justify-content: end; gap: 8px; padding-top: 15px; }
.mapping-table-wrap { max-width: 100%; overflow: auto; border-top: 1px solid var(--line); }
.mapping-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.mapping-table th { padding: 9px 10px; background: #fff3e1; color: var(--muted); font: 9px "DM Mono", monospace; text-align: left; white-space: nowrap; }
.mapping-table td { max-width: 240px; padding: 8px 10px; border-top: 1px solid var(--line); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dispatch-page-heading { align-items: end; }
.dispatch-page-actions { display: flex; align-items: center; gap: 18px; }
.ata-mode-toggle { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.ata-mode-toggle input { accent-color: var(--orange); }
.dispatch-status { min-height: 22px; color: var(--muted); font: 10px "DM Mono", monospace; }
.dispatch-status.is-error { color: var(--danger); }
.dispatch-room { margin: 0 0 35px; border-top: 2px solid var(--orange); background: white; }
.dispatch-room > header { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border-bottom: 1px solid var(--line); background: #fffaf3; }
.dispatch-room > header h2 { margin: 0; font: 700 17px "Nunito", sans-serif; }
.dispatch-room > header span:last-child { color: var(--muted); font: 9px "DM Mono", monospace; }
.dispatch-section-title { padding: 9px 14px; color: var(--green-dark); font: 700 10px "DM Mono", monospace; }
.dispatch-table-wrap { overflow-x: auto; }
.dispatch-table { width: 100%; min-width: 850px; border-collapse: collapse; }
.dispatch-table th { padding: 10px 12px; background: #fff3e1; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font: 9px "DM Mono", monospace; text-align: left; text-transform: uppercase; }
.dispatch-table td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.dispatch-table td:first-child { min-width: 170px; }
.dispatch-table td:first-child strong, .dispatch-table td:first-child span, .dispatch-table td:first-child small { display: block; }
.dispatch-table td:first-child strong { font-size: 12px; }
.dispatch-table td:first-child span, .dispatch-table td:first-child small, .dispatch-description { margin-top: 3px; color: var(--muted); font-size: 10px; }
.dispatch-quantity { width: 80px; font: 600 12px "DM Mono", monospace; text-align: center; }
.dispatch-check { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.dispatch-check input { accent-color: var(--orange); }
.dispatch-check span { color: var(--muted); font-size: 10px; }
.dispatch-freight { width: 120px; min-height: 34px !important; font-size: 10px !important; }
.dispatch-table .ata-column { display: none; min-width: 430px; }
.dispatch-page.ata-mode .ata-column { display: table-cell; }
.dispatch-page.ata-mode .dispatch-description { display: none; }
.ata-lines { display: grid; gap: 6px; }
.ata-line { display: grid; grid-template-columns: minmax(100px, 1fr) 64px minmax(90px, .7fr) 100px 30px; gap: 5px; }
.ata-line input { min-width: 0; min-height: 31px !important; padding: 0 7px !important; font-size: 10px !important; }
.ata-line .is-invalid { border-color: var(--danger) !important; }
.ata-value-wrap { position: relative; display: flex; align-items: center; }
.ata-value-wrap span { position: absolute; left: 7px; color: var(--muted); font-size: 10px; }
.ata-value-wrap input { padding-left: 19px !important; }
.ata-reconciliation { min-height: 14px; margin-top: 4px; color: var(--danger); font-size: 9px; }
.add-ata-line { margin: 4px 0; padding-left: 0; }
.quantity-heading-actions { display: flex; align-items: center; gap: 15px; }
.quantity-section { margin: 0 0 40px; }
.quantity-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.quantity-section-heading h2 { margin: 5px 0 0; font: 700 22px "Nunito", sans-serif; }
.quantity-explainer { color: var(--muted); font-size: 10px; }
.quantity-table td { vertical-align: middle; }
.quantity-item-name { display: block; font-size: 12px; }
.quantity-description { display: block; max-width: 350px; margin-top: 3px; color: var(--muted); font-size: 10px; }
.quantity-rooms { color: var(--muted); font-size: 10px !important; }
.quantity-number { font: 11px "DM Mono", monospace !important; text-align: center; }
.quantity-count { width: 100px; min-height: 34px !important; font: 11px "DM Mono", monospace !important; text-align: center; }
.quantity-delta { font: 11px "DM Mono", monospace !important; text-align: center; }
.quantity-delta.is-negative { color: var(--danger); font-weight: 700; }
.quantity-delta.is-confirmed { color: var(--green-dark); }
.room-editor-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 22px 0 26px; }
.room-editor-heading h1 { margin: 8px 0 4px; font: 800 34px/1.05 "Nunito", sans-serif; }
.room-editor-heading .muted { margin: 0; }
.room-save-state { color: var(--muted); font: 10px "DM Mono", monospace; }
.room-save-state.is-dirty { color: var(--danger); }
.room-comment-field { margin-bottom: 30px; }
.room-comment-field textarea, .note-text { width: 100%; min-height: 60px; padding: 10px 12px; border: 1px solid var(--line); background: white; color: var(--ink); resize: vertical; font: 12px "Inter", sans-serif; }
.room-editor-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 18px; padding-bottom: 12px; border-bottom: 2px solid var(--orange); }
.room-editor-hint { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.room-sections-editor { display: grid; gap: 16px; }
.room-section-editor { background: white; border: 1px solid var(--line); }
.room-section-heading { display: flex; align-items: center; gap: 10px; padding: 11px 14px; background: #fff3e1; border-bottom: 1px solid var(--line); }
.section-drag-handle, .item-drag-handle { color: var(--muted); font-size: 17px; cursor: grab; user-select: none; }
.section-title { flex: 1; min-width: 100px; min-height: 36px !important; font: 700 15px "Nunito", sans-serif !important; }
.section-destination { width: 145px; min-height: 36px; border: 1px solid var(--line); background: white; color: var(--muted); font-size: 11px; }
.danger-text { color: var(--danger); font-size: 11px; }
.room-section-items { display: grid; padding: 0 14px; }
.room-item-row { display: grid; grid-template-columns: 20px minmax(180px, 1fr) 88px 78px minmax(110px, .7fr) 88px 32px; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.material-identity { position: relative; display: grid; gap: 4px; min-width: 0; }
.material-name, .material-quantity, .material-comment { width: 100%; min-width: 0; min-height: 36px !important; font-size: 11px !important; }
.material-reference { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.field-label { display: block; margin-bottom: 4px; color: var(--muted); font: 9px "DM Mono", monospace; text-transform: uppercase; }
.quantity-field, .available-field { display: block; color: var(--muted); font-size: 10px; }
.material-quantity { text-align: center; }
.material-available { display: block; color: var(--ink); font: 600 12px "DM Mono", monospace; text-align: center; }
.material-available.is-short { color: var(--danger); }
.external-toggle { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; }
.external-toggle input { accent-color: var(--orange); }
.material-suggestions { display: none; position: absolute; z-index: 12; top: 38px; left: 0; right: 0; max-height: 240px; overflow-y: auto; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.material-suggestions:not(:empty) { display: grid; }
.material-suggestion { width: 100%; padding: 9px 11px; border: 0; border-bottom: 1px solid var(--line); background: white; color: var(--ink); font-size: 11px; text-align: left; }
.material-suggestion:hover, .material-suggestion:focus { background: #fff3e1; }
.note-row { grid-template-columns: 20px minmax(0, 1fr) 32px; }
.room-section-actions { display: flex; gap: 8px; padding: 11px 14px; }
.room-editor-footer { position: sticky; bottom: 0; display: flex; justify-content: end; gap: 8px; padding: 12px 0; margin-top: 24px; background: rgba(247,247,247,.96); border-top: 1px solid var(--line); }
.sortable-ghost { opacity: .35; }
.sortable-chosen { box-shadow: 0 8px 25px rgba(48,34,24,.12); }
.eyebrow, .panel-kicker { font: 700 10px "Inter", sans-serif; letter-spacing: .08em; color: var(--muted); }
.muted { color: var(--muted); font-size: 14px; line-height: 1.65; }
.button { min-height: 40px; padding: 0 15px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 2px; background: transparent; font-size: 12px; font-weight: 700; transition: background .16s ease, color .16s ease, border-color .16s ease; }
.button:hover { transform: none; }
.button:focus-visible, .icon-button:focus-visible, .nav-signout:focus-visible, .text-link-button:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.button-primary { color: var(--ink); background: var(--green); }
.button-primary:hover { color: white; background: var(--green-dark); }
.button-outline { border-color: rgba(33,26,23,.32); background: transparent; color: var(--ink); }
.button-outline:hover { border-color: var(--ink); background: rgba(247,156,42,.12); }
.button-quiet { color: var(--muted); }
.button-small { min-height: 34px; padding: 0 11px; font-size: 10px; }
.button-wide { width: 100%; margin-top: 5px; }
.project-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(255px, 1fr)); gap: 14px; }
.project-card { background: white; min-height: 224px; padding: 20px 21px 17px; border: 1px solid var(--line); display: flex; flex-direction: column; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.project-card:hover { border-color: #d9a25e; box-shadow: var(--shadow); transform: translateY(-2px); }
.project-card-top, .project-card-bottom { display: flex; justify-content: space-between; align-items: center; }
.project-date, .project-card-bottom, .room-main span { font: 10px "DM Mono", monospace; color: var(--muted); }
.card-arrow { color: var(--green); font-size: 19px; }
.project-card h2 { margin: 27px 0 4px; font-family: "Nunito", sans-serif; font-size: 21px; font-weight: 800; letter-spacing: -.025em; }
.project-location { color: var(--muted); font-size: 12px; margin: 0 0 auto; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-card-bottom { border-top: 1px solid var(--line); padding-top: 13px; margin-top: 19px; }
.empty-state { background: var(--green-dark); color: white; min-height: 340px; padding: clamp(27px, calc(6 * var(--vw)), 66px); position: relative; overflow: hidden; }
.empty-state::after { content: ""; position: absolute; width: 300px; height: 300px; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; right: 7%; top: -30%; box-shadow: 0 0 0 38px rgba(255,255,255,.035), 0 0 0 78px rgba(255,255,255,.025); }
.empty-index { color: var(--lime); font: 12px "DM Mono", monospace; }
.empty-state h2 { font-size: clamp(24px, calc(4 * var(--vw)), 37px); font-weight: 500; margin: 37px 0 8px; letter-spacing: -.025em; }
.empty-state p { color: rgba(255,255,255,.72); max-width: 410px; line-height: 1.6; font-size: 14px; margin-bottom: 25px; }
.empty-state .button-primary { background: var(--lime); color: var(--ink); position: relative; z-index: 1; }
.archive-count { color: var(--muted); font: 11px "DM Mono", monospace; margin-top: 26px; }
.modal { width: min(540px, calc(calc(100 * var(--vw)) - 28px)); max-height: calc(calc(100 * var(--vh)) - 28px); padding: 0; border: 1px solid var(--line); box-shadow: var(--shadow); }
.modal::backdrop { background: rgba(19,31,26,.48); backdrop-filter: blur(3px); }
.modal-form { padding: clamp(22px, calc(5 * var(--vw)), 37px); display: grid; gap: 17px; }
.modal-heading { display: flex; align-items: start; justify-content: space-between; margin-bottom: 4px; }
.modal-heading h2 { font-size: 25px; margin: 5px 0 0; font-weight: 600; }
.form-stack { display: grid; gap: 17px; margin-top: 26px; }
label { display: grid; gap: 7px; color: #43524b; font-size: 12px; font-weight: 600; }
input:not([type=file]) { min-height: 43px; padding: 0 12px; background: #fff; color: var(--ink); border: 1px solid var(--line); outline: none; border-radius: 0; }
input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(247,156,42,.16); }
.location-field { position: relative; }
.location-results { display: grid; position: absolute; z-index: 8; top: calc(100% - 1px); left: 0; right: 0; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.location-results:empty { display: none; }
.location-status { padding: 11px 12px; color: var(--muted); font-size: 11px; }
.location-option { padding: 10px 12px; text-align: left; border: 0; border-bottom: 1px solid var(--line); background: white; color: var(--ink); font-size: 11px; line-height: 1.5; }
.location-option:last-child { border-bottom: 0; }
.location-option:hover, .location-option:focus { background: #fff3e1; }
input[type=file] { min-height: 45px; width: 100%; color: var(--muted); font-size: 12px; }
label small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.field-grid-equal { grid-template-columns: 1fr 1fr; }
.modal-actions { display: flex; justify-content: end; gap: 8px; margin-top: 8px; padding-top: 13px; border-top: 1px solid var(--line); }
.icon-button { border: 1px solid transparent; border-radius: 2px; background: transparent; min-width: 32px; min-height: 32px; color: var(--muted); font-size: 18px; }
.icon-button:hover { color: var(--ink); background: #fff3e1; }
.icon-button.danger:hover { color: var(--danger); }
.flash-stack { display: grid; gap: 8px; margin-bottom: 22px; }
.flash { padding: 12px 15px; border-left: 3px solid var(--green); background: #fff3e1; font-size: 13px; }
.flash-error { border-color: var(--danger); background: #faece8; }
.flash-success { border-color: var(--green); }
.setup-layout, .login-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); width: 100%; min-height: calc(100 * var(--vh)); background: white; }
.setup-aside, .login-art { padding: 38px; color: var(--ink); background: var(--orange); display: flex; flex-direction: column; position: relative; overflow: hidden; }
.setup-aside::after, .login-art::after { content: ""; position: absolute; width: 420px; height: 420px; border: 1px solid rgba(33,26,23,.18); border-radius: 50%; right: -210px; bottom: -180px; box-shadow: 0 0 0 35px rgba(33,26,23,.035), 0 0 0 75px rgba(33,26,23,.025); }
.brand-dark { color: var(--ink); position: relative; z-index: 1; }
.brand-dark .brand-logo { border: 0; }
.brand-dark strong { color: var(--ink); }
.setup-aside-copy { margin: auto 0; position: relative; z-index: 1; }
.setup-aside-copy .eyebrow { color: rgba(33,26,23,.72); }
.setup-aside-copy h1, .login-art h1 { font-family: "Nunito", sans-serif; font-size: clamp(33px, calc(4.5 * var(--vw)), 50px); line-height: 1.04; letter-spacing: -.035em; font-weight: 800; margin: 15px 0; }
.setup-aside-copy p { color: rgba(33,26,23,.78); max-width: 300px; font-size: 13px; line-height: 1.7; }
.setup-progress { display: grid; grid-template-columns: 10px 1fr 10px 1fr 10px; align-items: center; position: relative; z-index: 1; margin-top: auto; }
.progress-dot { width: 8px; height: 8px; border: 1px solid rgba(33,26,23,.45); border-radius: 50%; }
.progress-dot.is-current { background: var(--ink); border-color: var(--ink); }
.progress-line { border-top: 1px solid rgba(33,26,23,.25); }
.setup-progress small { grid-column: 1 / -1; color: rgba(33,26,23,.72); font: 600 9px "Inter", sans-serif; margin-top: 10px; }
.setup-panel, .login-panel { padding: clamp(28px, calc(5 * var(--vw)), 58px); align-self: center; }
.panel-kicker { display: flex; align-items: center; gap: 8px; }
.status-pip { width: 7px; height: 7px; border-radius: 50%; background: #8db351; }
.setup-panel h2, .login-panel h2 { font-size: 31px; margin-top: 21px; }
.setup-panel .muted, .login-panel .muted { margin: 0; }
.setup-note { display: grid; gap: 4px; border: 1px solid var(--line); padding: 12px 14px; background: #fcfaf8; }
.setup-note strong { font-size: 11px; }
.setup-note span { color: var(--muted); font-size: 11px; line-height: 1.5; }
.setup-panel code { font: 10px "DM Mono", monospace; color: var(--green-dark); }
.login-layout { min-height: 485px; }
.login-art .eyebrow { color: rgba(33,26,23,.72); margin-top: auto; }
.login-art h1 { margin: 17px 0 0; position: relative; z-index: 1; }
.login-art-foot { color: rgba(33,26,23,.72); font: 600 10px "Inter", sans-serif; display: flex; gap: 10px; margin-top: auto; position: relative; z-index: 1; }
.back-link { color: var(--muted); font-size: 12px; }
.back-link:hover { color: var(--green); }
.project-heading { margin-top: 22px; }
.section-tabs { display: flex; flex-wrap: wrap; gap: 26px; border-bottom: 1px solid var(--line); margin-bottom: 43px; }
.section-tabs a { display: flex; gap: 7px; padding: 0 0 13px; color: var(--muted); font-size: 12px; }
.section-tabs a:hover { color: var(--green); border-bottom: 2px solid var(--green); }
.section-tabs span { color: var(--green); font: 10px "DM Mono", monospace; }
.section-block { padding: 0 0 38px; margin-bottom: 36px; border-bottom: 1px solid var(--line); scroll-margin-top: 95px; }
.section-heading { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin-bottom: 17px; }
.section-heading h2, .section-placeholder h2 { margin: 5px 0 0; font-size: 24px; font-weight: 600; letter-spacing: -.02em; }
.inline-form { display: flex; gap: 7px; }
.inline-form input { width: min(220px, calc(42 * var(--vw))); min-height: 36px; }
.room-list { border-top: 1px solid var(--line); }
.room-row { display: flex; align-items: center; gap: 15px; min-height: 68px; border-bottom: 1px solid var(--line); }
.room-number { font: 11px "DM Mono", monospace; color: var(--orange); width: 28px; }
.room-main { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.room-rename { display: flex; align-items: center; gap: 4px; flex: 1; min-width: 130px; }
.room-rename input { min-width: 80px; width: min(230px, calc(30 * var(--vw))); min-height: 34px; font-size: 12px; font-weight: 600; }
.room-order { display: flex; }
.room-order form { margin: 0; }
.room-order button:disabled { opacity: .25; cursor: default; }
.room-main h3 { margin: 0; font-size: 14px; font-weight: 600; }
.text-link { color: var(--green); font-size: 11px; }
.inline-empty { padding: 22px; background: white; border: 1px dashed #c3d0c8; color: var(--muted); font-size: 13px; }
.section-placeholder { display: flex; align-items: center; justify-content: space-between; }
.section-placeholder p { margin-bottom: 0; }
.coming-mark { color: #c4d2c8; font: 34px "DM Mono", monospace; }
.share-page { width: min(720px, 100%); align-self: start; margin-top: calc(5 * var(--vh)); padding: clamp(25px, calc(6 * var(--vw)), 64px); background: white; border-top: 3px solid var(--green); }
.share-brand { display: flex; align-items: center; gap: 9px; margin-bottom: 34px; font-family: "Nunito", sans-serif; font-size: 15px; font-weight: 800; }
.share-brand img { width: 32px; height: 32px; object-fit: contain; }
.share-page h1 { font-size: 36px; margin: 12px 0 7px; }
.share-rule { border-top: 1px solid var(--line); margin: 35px 0; }
.share-empty { color: var(--muted); min-height: 90px; font-size: 13px; }
.share-page footer { padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font: 10px "DM Mono", monospace; }
.share-page footer span { padding: 0 6px; }
.participant-portal { width: min(760px, 100%); }
.participant-welcome { padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.participant-welcome h1 { margin: 8px 0; font: 800 34px "Nunito", sans-serif; }
.participant-welcome p { color: var(--muted); font-size: 12px; line-height: 1.5; }
.participant-welcome .button { margin-top: 8px; }
.portal-section { padding: 25px 0; border-bottom: 1px solid var(--line); }
.portal-section-heading { margin-bottom: 13px; }
.portal-section-heading h2 { margin: 4px 0 0; font: 700 22px "Nunito", sans-serif; }
.portal-event-list, .portal-stays { border-top: 1px solid var(--line); }
.portal-event { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: start; gap: 13px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.portal-event time { display: grid; justify-items: center; padding: 5px 0; background: #fff3e1; color: var(--green-dark); }
.portal-event time strong { font: 700 18px "Nunito", sans-serif; }
.portal-event time span { font: 9px "DM Mono", monospace; text-transform: uppercase; }
.portal-event h3 { margin: 0 0 5px; font: 700 14px "Nunito", sans-serif; }
.portal-event p, .portal-event div > span { display: block; margin: 3px 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.portal-event-tag { padding: 4px 8px; font-size: 9px; white-space: nowrap; }
.portal-stays article { display: grid; gap: 4px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.portal-stays strong { font-size: 12px; }
.portal-stays span, .portal-stays small { color: var(--muted); font-size: 11px; }
.participant-footer { display: flex; justify-content: space-between; gap: 16px; padding-top: 18px; color: var(--muted); font: 9px "DM Mono", monospace; }
.participant-state { color: var(--muted); font: 9px "DM Mono", monospace; }
.settings-link { margin-left: auto; }
.module-room { padding: 17px 0 22px; border-top: 1px solid var(--line); }
.module-room-title { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.module-room-title h3 { margin: 0; font-size: 15px; font-weight: 600; }
.mono-note { color: var(--muted); font: 10px "DM Mono", monospace; }
.text-link-button { border: 0; padding: 5px 8px; background: transparent; color: var(--green-dark); font-size: 10px; font-weight: 700; margin-left: auto; }
.text-link-button:hover { background: #fff3e1; }
.equipment-list, .event-list, .people-list, .stay-list, .share-list, .source-list { border-top: 1px solid var(--line); }
.equipment-row, .event-row, .people-row, .stay-row, .share-row, .source-row { min-height: 60px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); padding: 10px 0; }
.equipment-ident, .event-main, .stay-main, .share-row > div, .source-main { min-width: 130px; flex: 1; display: grid; gap: 3px; }
.equipment-ident strong, .event-main strong, .stay-main strong, .share-row strong, .source-main strong { font-size: 12px; font-weight: 600; }
.equipment-ident span, .event-main span, .stay-main span, .share-row span, .source-main span, .source-main small { color: var(--muted); font-size: 10px; }
.equipment-count { display: grid; gap: 2px; min-width: 62px; font: 10px "DM Mono", monospace; color: var(--muted); }
.equipment-count b { color: var(--ink); font-size: 14px; }
.equipment-count small { font: inherit; }
.dispatch-form { display: flex; align-items: center; gap: 7px; }
.dispatch-form > input[name=freight] { width: 90px; min-height: 34px; font-size: 11px; }
.check-label { display: flex; grid-auto-flow: column; align-items: center; gap: 5px; font-size: 10px; white-space: nowrap; }
.check-label input { accent-color: var(--green); }
.ata-editor { position: relative; }
.ata-editor summary { cursor: pointer; color: var(--green); font: 10px "DM Mono", monospace; white-space: nowrap; }
.ata-lines { position: absolute; z-index: 4; right: 0; top: 24px; width: min(600px, calc(85 * var(--vw))); padding: 12px; display: grid; gap: 7px; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); }
.ata-line { display: grid; grid-template-columns: 1.4fr .5fr 1fr .7fr; gap: 6px; }
.ata-line input { min-width: 0; min-height: 34px; font-size: 11px; }
.equipment-add, .data-entry-grid, .sheet-source-form { display: grid; grid-template-columns: 1.4fr 1fr .8fr .55fr .55fr auto auto; align-items: end; gap: 7px; padding: 12px 0; }
.equipment-add input { min-width: 0; min-height: 36px; font-size: 11px; }
.data-entry-grid { grid-template-columns: 1.5fr .9fr .7fr .7fr 1fr .8fr 1fr auto; margin-bottom: 8px; }
.data-entry-grid input, .data-entry-grid select, .sheet-source-form input, .sheet-source-form select, .sheet-source-form textarea { width: 100%; min-width: 0; min-height: 36px; padding: 0 9px; border: 1px solid var(--line); background: white; color: var(--ink); font: 11px "DM Sans", sans-serif; }
.data-entry-grid select[multiple] { min-height: 40px; }
.people-entry { grid-template-columns: .8fr 1fr .9fr 1.2fr 1fr auto; }
.stay-entry { grid-template-columns: 1.1fr 1.5fr 1.1fr .8fr .8fr auto; }
.equipment-add .button, .data-entry-grid .button { white-space: nowrap; }
.event-date, .event-time { color: var(--green); font: 10px "DM Mono", monospace; min-width: 54px; }
.event-people, .stay-guests { color: var(--muted); font-size: 10px; }
.person-initial, .stay-mark { width: 31px; height: 31px; display: grid; place-items: center; background: #fff0d8; color: var(--green-dark); font: 10px "DM Mono", monospace; }
.people-row > strong { min-width: 130px; font-size: 12px; }
.people-row > span:not(.person-initial) { color: var(--muted); font-size: 10px; flex: 1; }
.share-created { display: flex; align-items: center; gap: 10px; padding: 12px 14px; margin: 22px 0; background: #e9f1eb; border-left: 3px solid var(--green); }
.share-created > div { display: grid; gap: 3px; margin-right: auto; }
.share-created strong { font-size: 12px; }
.share-created span { color: var(--muted); font-size: 10px; }
.share-created input { min-width: 0; width: 35%; min-height: 34px; font: 10px "DM Mono", monospace; }
.share-item { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.share-item strong { font: 11px "DM Mono", monospace; }
.share-item small { display: block; color: var(--muted); font-size: 10px; margin-top: 4px; }
.sheet-source-form { grid-template-columns: 1fr 1fr; gap: 14px; max-width: 850px; }
.sheet-source-form label { align-content: start; }
.sheet-source-form textarea { height: auto; padding: 10px; resize: vertical; font: 11px "DM Mono", monospace; }
.sheet-source-form label:has(textarea) { grid-column: 1 / -1; }
.source-kind { min-width: 88px; color: var(--orange); font: 9px "DM Mono", monospace; }
.source-main small { font-family: "DM Mono", monospace; }
.section-block h2 { scroll-margin-top: 100px; }
.project-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; justify-content: end; }
.user-create-form { display: grid; grid-template-columns: 1.3fr 1.2fr .8fr auto; align-items: end; gap: 10px; }
.user-row { display: flex; align-items: center; gap: 12px; min-height: 67px; border-bottom: 1px solid var(--line); }
.user-state { width: 8px; height: 8px; border-radius: 50%; background: #d3a89d; }
.user-state.is-active { background: #87a958; }
.user-main { min-width: 190px; flex: 1; display: grid; gap: 4px; }
.user-main strong { font-size: 12px; }
.user-main span { color: var(--muted); font: 10px "DM Mono", monospace; }
.user-password-form { display: flex; gap: 5px; }
.user-password-form input { width: 180px; min-height: 34px; font-size: 10px; }
.print-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.print-report { padding: clamp(24px, calc(5 * var(--vw)), 52px); background: white; box-shadow: var(--shadow); }
.print-header { padding-bottom: 22px; border-bottom: 2px solid var(--green); }
.print-logo { width: 42px; height: 42px; object-fit: contain; float: right; }
.print-header h1 { margin: 11px 0 6px; font-size: 34px; }
.print-header p { color: var(--muted); font-size: 12px; }
.print-section { margin: 25px 0; break-inside: avoid; }
.print-section h2 { font-size: 18px; border-bottom: 1px solid var(--line); padding-bottom: 7px; }
.print-section h3 { font-size: 13px; }
.print-section table { width: 100%; border-collapse: collapse; font-size: 10px; }
.print-section th { text-align: left; color: var(--muted); font: 9px "DM Mono", monospace; padding: 7px 5px; border-bottom: 1px solid var(--line); }
.print-section td { padding: 7px 5px; border-bottom: 1px solid #edf1ed; }
.print-subrow td { color: var(--muted); font-size: 9px; }
@media print {
  @page { margin: 14mm; }
  body, .page-shell { background: white !important; width: auto !important; padding: 0 !important; margin: 0 !important; }
  .topbar, .print-toolbar, .flash-stack { display: none !important; }
  .print-report { padding: 0; box-shadow: none; }
  .print-section { break-inside: avoid; }
}
@media (max-width: 760px) {
  .topbar { height: auto; min-height: 60px; padding: 7px calc(5 * var(--vw)) 0; gap: 10px 16px; flex-wrap: wrap; }
  .brand { font-size: 14px; }
  .brand-logo { width: 34px; height: 34px; }
  .primary-nav { order: 3; width: calc(100% + calc(10 * var(--vw))); height: 39px; gap: 12px; overflow-x: auto; flex: 1 0 calc(100% + calc(10 * var(--vw))); margin: 0 calc(-5 * var(--vw)); padding: 0 calc(5 * var(--vw)); }
  .primary-nav a, .nav-muted { font-size: 11px; }
  .settings-link { margin-left: 0; }
  .desktop-nav-label { display: none; }
  .mobile-nav-label { display: inline; }
  .account-menu { margin-left: auto; }
  .account-menu span { display: none; }
  .nav-signout { padding: 5px 7px; font-size: 10px; }
  .nav-signout span:first-child { display: inline; }
  .nav-signout span:last-child { display: none; }
  .page-shell { padding-top: 34px; }
  .dashboard-heading { align-items: start; flex-direction: column; }
  .dashboard-heading-actions { width: 100%; justify-content: space-between; }
  .project-empty { align-items: start; flex-wrap: wrap; }
  .project-empty .button { margin-left: 0; }
  .room-editor-heading { align-items: start; flex-direction: column; }
  .room-editor-toolbar { align-items: start; flex-direction: column; }
  .room-section-heading { flex-wrap: wrap; }
  .section-title { flex-basis: calc(100% - 34px); }
  .section-destination { flex: 1; }
  .room-item-row { grid-template-columns: 18px minmax(0, 1fr) 70px 65px 30px; gap: 7px; }
  .room-item-row .material-identity { grid-column: 2 / -1; }
  .room-item-row .quantity-field { grid-column: 2; }
  .room-item-row .available-field { grid-column: 3; }
  .room-item-row .material-comment { grid-column: 2 / 4; }
  .room-item-row .external-toggle { grid-column: 4; }
  .room-item-row .remove-item { grid-column: 5; grid-row: 3 / span 2; }
  .note-row { grid-template-columns: 18px minmax(0, 1fr) 30px; }
  .note-row .note-text { grid-column: 2; }
  .note-row .remove-item { grid-column: 3; grid-row: 1; }
  .page-heading { align-items: start; }
  .page-heading > .button { align-self: center; white-space: nowrap; }
  .setup-layout, .login-layout { grid-template-columns: 1fr; }
  .setup-aside, .login-art { min-height: 235px; padding: 24px; }
  .setup-aside-copy { margin: 34px 0 8px; }
  .setup-aside-copy h1, .login-art h1 { font-size: 34px; }
  .setup-progress { display: none; }
  .setup-panel, .login-panel { padding: 28px 24px; }
  .field-grid, .field-grid-equal { grid-template-columns: 1fr; }
  .section-heading { align-items: start; flex-direction: column; }
  .inline-form { width: 100%; }
  .inline-form input { flex: 1; width: auto; }
  .equipment-add, .data-entry-grid, .people-entry, .stay-entry { grid-template-columns: 1fr 1fr; }
  .equipment-row, .event-row, .people-row, .stay-row, .share-row, .source-row { flex-wrap: wrap; }
  .dispatch-form { flex-wrap: wrap; }
  .share-created { flex-wrap: wrap; }
  .share-created > div { flex-basis: 100%; }
  .share-created input { flex: 1; width: 100%; }
  .user-create-form { grid-template-columns: 1fr 1fr; }
  .user-row { flex-wrap: wrap; padding: 10px 0; }
  .user-main { min-width: 60%; }
  .user-password-form { flex: 1; }
  .user-password-form input { flex: 1; width: auto; }
  .project-actions { justify-content: start; }
  .project-hero { grid-template-columns: 1fr; }
  .project-map { min-height: 210px; }
  .project-stats { grid-template-columns: repeat(2, 1fr); }
  .project-stats > div:nth-child(2) { border-right: 0; }
  .project-stats > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .project-stats > div:nth-child(3) { padding-left: 0; }
  .module-heading { align-items: start; flex-direction: column; }
  .project-room-row { grid-template-columns: 18px 25px minmax(0, 1fr); gap: 8px; }
  .project-room-actions { grid-column: 3; flex-wrap: wrap; }
  .room-section-preview { grid-template-columns: 1fr; gap: 2px; }
  .event-entry, .people-entry, .stay-entry { grid-template-columns: 1fr 1fr; }
  .schedule-row, .people-row, .stay-row { flex-wrap: wrap; }
  .schedule-attendees { flex: 1; text-align: left; }
  .project-export-actions { width: 100%; }
  .team-filter-form { align-items: stretch; flex-wrap: wrap; }
  .team-filter-form label { min-width: 130px; flex: 1; }
  .team-global-add { grid-template-columns: 1fr 1fr; }
  .team-global-add > .eyebrow { grid-column: 1 / -1; }
  .event-form-grid { grid-template-columns: 1fr 1fr; }
  .event-title-field, .event-address-field { grid-column: 1 / -1; }
  .tag-create-form { grid-template-columns: 1fr 1fr; }
  .export-center-grid { grid-template-columns: 1fr; }
  .dispatch-page-heading { align-items: start; }
  .dispatch-page-actions { align-items: start; flex-direction: column; gap: 8px; }
  .quantity-heading-actions { width: 100%; justify-content: space-between; }
  .quantity-section-heading { align-items: start; flex-direction: column; }
  .portal-event { grid-template-columns: 40px minmax(0, 1fr); }
  .portal-event-tag { grid-column: 2; justify-self: start; }
  .mapping-layout { grid-template-columns: 1fr; }
  .mapping-field { grid-template-columns: minmax(110px, .8fr) minmax(0, 1.2fr); }
  .team-profile-form { grid-template-columns: 1fr 1fr; }
  .stay-create-form, .stay-assign-form { grid-template-columns: 1fr 1fr; }
  .stay-assignment-row { grid-template-columns: minmax(0, 1fr) 32px; }
  .stay-assignment-row > form { grid-column: 1 / -1; flex-wrap: wrap; }
}

/* Harmonisation des champs, boutons et tableaux (style Planner/Schedule). */
:root { --control-h: 40px; --control-h-sm: 34px; --control-font: 13px; }
input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):not([type=hidden]),
select, textarea {
  min-height: var(--control-h) !important; padding: 0 12px !important; border: 1px solid var(--line) !important; border-radius: 2px !important;
  background-color: #fff; color: var(--ink); font: 400 var(--control-font)/1.3 "Inter", sans-serif !important; outline: none; box-sizing: border-box;
}
input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):not([type=hidden])::placeholder, textarea::placeholder { color: #a39b95; }
select { appearance: none; -webkit-appearance: none; padding-right: 32px !important; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23736b66' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; }
select[multiple] { background-image: none; padding: 6px 8px !important; }
textarea { padding: 10px 12px !important; min-height: 72px !important; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--orange) !important; box-shadow: 0 0 0 3px rgba(247,156,42,.16); }
input[type=checkbox], input[type=radio] { width: 16px; height: 16px; margin: 0; flex: none; accent-color: var(--orange); }
input[type=color] { min-height: var(--control-h); padding: 3px !important; }
input[type=file] { padding: 8px 0; }
label { font-size: 12px; font-weight: 600; color: var(--ink); }
label:has(> input[type=checkbox]), label:has(> input[type=radio]) { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.dispatch-table input:not([type=checkbox]), .quantity-table input, .global-equipment-table input, .equipment-edit input, .ata-line input,
.team-global-table input, .team-global-table select, .team-profile-form input, .stay-edit-form input, .stay-assign-form input, .stay-assign-form select,
.stay-assignment-row input, .user-password-form input, .equipment-edit select, .section-destination, .team-filter-form select, .team-filter-form input {
  min-height: var(--control-h-sm) !important; font-size: 12px !important; padding: 0 9px !important;
}
.dispatch-table select { min-height: var(--control-h-sm) !important; font-size: 12px !important; }
.button { min-height: var(--control-h); font-size: 13px; }
.button-small { min-height: var(--control-h-sm); font-size: 12px; }
.nav-signout { font-size: 12px; }
/* Grilles de formulaires : champs et boutons alignés en bas, même hauteur. */
.tag-create-form, .team-global-add, .stay-create-form, .stay-assign-form, .user-create-form, .project-entry-grid { align-items: end; }
.tag-create-form .button, .team-global-add .button, .stay-create-form .button, .stay-assign-form .button, .user-create-form .button, .project-entry-grid .button { min-height: 36px; align-self: end; }
/* Tableaux : en-têtes et cellules lisibles, nombres centrés avec leur en-tête. */
.project-table th, .dispatch-table th, .mapping-table th { font-size: 11px; letter-spacing: .04em; vertical-align: middle; }
.project-table td, .dispatch-table td, .mapping-table td { vertical-align: middle; font-size: 13px; }
.global-equipment-table th, .global-equipment-table td, .team-global-table th, .team-global-table td, .quantity-table th, .quantity-table td { vertical-align: middle; }
.global-equipment-table th.num, .quantity-table th.num { text-align: center; }
.inventory-number, .quantity-number, .quantity-delta { font-size: 13px !important; }
.equipment-name, .quantity-item-name, .dispatch-table td:first-child strong { font-size: 13px; }
.equipment-description, .quantity-description, .team-contact, .dispatch-description { font-size: 11px; }
.schedule-row-main strong, .stay-main strong, .people-row > strong, .stay-assignment-row > strong { font-size: 13px; }
.schedule-row-main span, .stay-main span, .schedule-attendees, .stay-guests, .people-row > span:not(.person-initial) { font-size: 11px; }
.eyebrow, .panel-kicker { font-size: 11px; }
.primary-nav a, .nav-muted, .account-menu { font-size: 13px; }
.global-equipment-table, .quantity-table { table-layout: auto; }
.global-equipment-table th, .quantity-table th { width: auto !important; }
.global-equipment-table th:nth-child(n+5):nth-child(-n+7), .quantity-table th:nth-child(n+3) { text-align: center; }
.global-equipment-table td:nth-child(n+5):nth-child(-n+7), .quantity-table td:nth-child(n+3) { text-align: center; }
.global-equipment-table summary, .equipment-edit summary, .equipment-projects summary { white-space: nowrap; font-size: 12px; }
.inventory-number, .quantity-number, .quantity-delta, .material-available, .quantity-count { font-family: "Inter", sans-serif !important; font-variant-numeric: tabular-nums; }
.text-link-button { font-size: 12px; }
.team-filter-form input, .team-filter-form select { min-height: var(--control-h) !important; font-size: var(--control-font) !important; padding-left: 12px !important; }
.team-filter-form label:first-child { min-width: 320px; }
.team-filter-form .button { min-height: var(--control-h); }
.team-global-add input, .team-global-add select { font-size: var(--control-font) !important; }
.sheet-source-form { align-items: start; max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sheet-source-form .sheet-form-wide { grid-column: 1 / -1; }
.sheet-source-form > .button, .sheet-source-form > div:has(> .button) { justify-self: start; }
.source-row { min-height: 64px; }
.source-main strong { font-size: 13px; }
.source-main span, .source-main small { font-size: 11px; }
.source-kind { font-size: 10px; letter-spacing: .06em; }
.mapping-panel .muted, .mapping-panel p { font-size: 12px; line-height: 1.5; }
.mapping-field > span { font-size: 12px; font-weight: 600; }
.mapping-field select { min-height: var(--control-h) !important; }
.user-password-form { align-items: center; }
.user-password-form input { min-height: var(--control-h) !important; font-size: var(--control-font) !important; }
.user-main strong { font-size: 13px; }
.user-main span { font-size: 11px; }
.event-form-grid .event-address-field { grid-column: 1 / -1; }
.event-people-field .muted, .event-people-field p { font-size: 12px; margin: 0 0 8px; }
.event-participant-options label, .event-all-toggle { font-size: 12px; }
.event-editor-form { padding: 22px; }
.event-editor-actions { padding-top: 18px; }
.event-form-grid input[type=date], .event-form-grid input[type=time] { font-family: "Inter", sans-serif !important; }
.pdf-template-option strong, .export-downloads strong { font-size: 13px; }
.pdf-template-option small, .export-downloads small, .export-rooms-heading label, .export-room-list label, .export-external-toggle { font-size: 12px; }
.export-rooms-heading h3 { font-size: 13px; }
.export-downloads b { font-family: "Inter", sans-serif; }
.section-title, .section-destination { min-height: var(--control-h) !important; }
.section-title { font-size: 15px !important; }
.section-destination { width: 170px; font-size: 13px !important; color: var(--ink);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23736b66' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center !important; }
.room-section-heading { gap: 10px; }
.room-section-heading .button, .room-section-actions .button { min-height: var(--control-h-sm); }
.room-save-state, .dispatch-status { font-size: 11px; }
.room-item-row .material-name, .room-item-row .material-quantity, .room-item-row .material-comment { min-height: var(--control-h) !important; font-size: 13px !important; }
select:not([multiple]) { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23736b66' stroke-width='1.5'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 12px center !important; }
.back-link { display: inline-block; margin-bottom: 14px; }
.planner-dash { margin: 6px 0 22px; }
.planner-dash h1 { margin: 0 0 20px; font: 700 32px/1.1 "Inter", sans-serif; letter-spacing: 0; }
.planner-dash-actions { display: flex; gap: 10px; }
.button-upper { text-transform: uppercase; letter-spacing: .02em; font-size: 12px; min-height: 36px; padding: 0 14px; }
.button-outline-orange { border-color: var(--orange); color: var(--orange); background: transparent; }
.button-outline-orange:hover { background: rgba(247,156,42,.12); }
.planner-dash-subtitle { margin: 0 0 14px; font: 600 24px/1.2 "Inter", sans-serif; }
.planner-table { table-layout: auto; min-width: 0; }
.planner-table th { width: auto !important; padding: 10px 12px; background: #fff; border-bottom: 1px solid var(--line); color: var(--ink); font: 700 12px "Inter", sans-serif; letter-spacing: 0; text-transform: none; }
.planner-table td { padding: 9px 12px; font-size: 13px; }
.planner-table th:nth-child(1) { width: 16% !important; }
.planner-table th:nth-child(2), .planner-table th:nth-child(3) { width: 9% !important; }
.planner-table th:nth-child(5) { width: 1%; white-space: nowrap; }
.planner-table .project-name { font: 400 13px "Inter", sans-serif; }
.planner-table .project-name:hover { color: var(--orange); }
.planner-table tbody tr:hover td { background: #eee; }
.planner-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.planner-actions form { margin: 0; }
.button-mini { display: inline-flex; align-items: center; height: 26px; padding: 0 8px; border: 1px solid var(--orange); border-radius: 3px; background: #fff; color: var(--orange); font: 500 11px "Inter", sans-serif; text-transform: uppercase; }
.button-mini:hover { background: var(--orange); color: #fff; }
.button-mini-danger { border-color: #dc3545; color: #dc3545; }
.button-mini-danger:hover { background: #dc3545; color: #fff; }
.planner-table { table-layout: fixed; width: 100%; }
.planner-table th:nth-child(1) { width: 18% !important; }
.planner-table th:nth-child(2), .planner-table th:nth-child(3) { width: 112px !important; }
.planner-table th:nth-child(5) { width: 150px !important; }
.planner-table td:nth-child(2), .planner-table td:nth-child(3), .planner-table th { white-space: nowrap; }
.planner-table td:nth-child(1), .planner-table td:nth-child(4) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.proj-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin: 0 0 22px; }
.proj-head h1 { margin: 0; font: 700 32px/1.1 "Inter", sans-serif; letter-spacing: 0; }
.proj-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.button-mini-lg { height: 32px; padding: 0 12px; font-size: 12px; cursor: pointer; }
.button-mini-dark { border-color: var(--ink); color: var(--ink); }
.button-mini-dark:hover { background: var(--ink); color: #fff; }
.proj-info { display: grid; gap: 10px; margin: 0 0 18px; }
.proj-info > div { display: flex; gap: 8px; font-size: 14px; }
.proj-info dt { font-weight: 700; }
.proj-info dd { margin: 0; }
.proj-map { min-height: 320px; margin: 0 0 26px; border: 1px solid var(--line); }
.proj-note { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin: 0 0 26px; }
.proj-note h2 { margin: 0 0 8px; font: 600 16px "Inter", sans-serif; }
.proj-note p { margin: 0; color: var(--muted); font-size: 13px; white-space: pre-line; }
.proj-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 34px; }
.proj-card { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--orange); }
.proj-card-figure { font: 700 28px/1.1 "Inter", sans-serif; }
.proj-card-figure small { font-size: 13px; font-weight: 500; color: var(--muted); }
.proj-card p { margin: 0 0 6px; color: var(--muted); font-size: 13px; }
.proj-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
@media (max-width: 900px) { .proj-cards { grid-template-columns: 1fr; } }
.page-heading, .room-editor-heading { align-items: center; margin-bottom: 24px; }
.page-heading h1, .room-editor-heading h1 { margin: 6px 0 4px; font: 700 32px/1.1 "Inter", sans-serif; letter-spacing: 0; }
.page-heading .proj-actions, .room-editor-heading .proj-actions, .dispatch-page-actions, .quantity-heading-actions { align-items: center; justify-content: flex-end; }
.project-context { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin: -14px 0 22px; padding: 10px 14px; background: #fff3e1; border-left: 3px solid var(--orange); font-size: 13px; }
.project-context strong { font: 700 15px "Inter", sans-serif; }
.project-context-label { color: var(--muted); font: 700 11px "Inter", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.project-context-place { min-width: 0; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.planner-rooms-bar { display: flex; justify-content: space-between; align-items: center; margin: 0 0 12px; }
.planner-rooms-bar h2 { margin: 0; font: 600 20px "Inter", sans-serif; }
.planner-rooms { display: grid; gap: 6px; }
.planner-room { background: #fff; border: 1px solid var(--line); border-radius: 3px; }
.planner-room-head { display: flex; align-items: center; gap: 10px; padding: 8px 12px; }
.planner-room-head h3 { flex: 1; min-width: 0; margin: 0; font: 600 14px "Inter", sans-serif; text-transform: uppercase; cursor: pointer; }
.planner-toggle { width: 22px; height: 22px; padding: 0; border: 1px solid var(--line); border-radius: 2px; background: #fff; color: var(--ink); font-size: 12px; line-height: 1; }
.planner-toggle:hover { border-color: var(--orange); color: var(--orange); }
.planner-room-actions { display: flex; align-items: center; gap: 6px; }
.planner-room-actions form { margin: 0; }
.planner-room .button-mini { cursor: pointer; }
.planner-warning { margin: 0; padding: 0 12px 8px 44px; color: var(--danger); font-size: 12px; }
.planner-room-body { padding: 4px 12px 12px; border-top: 1px solid var(--line); }
.planner-room-comment { margin: 8px 0; color: var(--muted); font-size: 12px; white-space: pre-line; }
.planner-section { margin-top: 10px; padding: 10px 14px; background: #f8f9fa; border: 1px solid var(--line); border-radius: 3px; }
.planner-section > header { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.planner-section h4 { margin: 0; font: 700 12px "Inter", sans-serif; text-transform: uppercase; }
.planner-section-actions { display: flex; gap: 6px; }
.planner-lines { margin: 0; padding: 0; list-style: none; }
.planner-line { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 2px 0; font-size: 12px; }
.planner-line strong { font-weight: 700; }
.planner-line em { font-style: italic; color: var(--ink); }
.planner-line small { display: block; color: var(--muted); font-size: 11px; }
.planner-ext { margin-left: 6px; padding: 1px 6px; background: #fff0d8; color: var(--green-dark); font-size: 10px; font-weight: 700; }
.planner-avail { flex: none; color: var(--muted); font-size: 11px; white-space: nowrap; }
.planner-avail.is-short { color: var(--danger); font-weight: 700; }
.planner-empty { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.page-shell:not(.page-public) { display: flex; flex-direction: column; }
.page-shell > .flash-stack { order: -3; }
.page-shell > .page-heading, .page-shell > .room-editor-heading { order: -2; align-items: flex-start; margin: 0 0 22px; }
.page-shell > .project-context { order: -1; margin: 0 0 22px; }
.page-heading .eyebrow, .room-editor-heading .eyebrow { display: none; }
.page-heading h1, .room-editor-heading h1 { margin: 0 0 4px; }
.page-heading .proj-actions, .room-editor-heading .proj-actions, .dispatch-page-actions, .quantity-heading-actions { align-items: center; min-height: 35px; }
.material-suggestions { max-height: 340px; }
.room-item-row:not(.note-row) { grid-template-columns: 20px minmax(220px, 1.5fr) 88px 84px minmax(160px, 1fr) 96px 32px; align-items: start; }
.room-item-row .item-drag-handle { margin-top: 20px; }
.room-item-row .field-label { height: 13px; margin: 0 0 4px; line-height: 13px; font-size: 10px; }
.room-item-row .material-identity, .room-item-row .quantity-field, .room-item-row .available-field, .room-item-row .comment-field { display: block; }
.room-item-row .material-suggestions { top: 56px; }
.room-item-row .material-available { display: flex; align-items: center; justify-content: center; height: var(--control-h); font-size: 14px; }
.room-item-row .external-toggle { height: var(--control-h); margin-top: 17px; font-size: 12px; }
.room-item-row .remove-item { margin-top: 17px; height: var(--control-h); }
.room-item-row .material-reference { display: block; margin-top: 4px; }
.room-item-row .material-comment { width: 100%; }
@media (max-width: 760px) { .room-item-row .material-comment, .room-item-row .comment-field { grid-column: 2 / 4; } }
.room-item-row .material-reference { margin-top: 6px; color: #5f5852; font-size: 12px; line-height: 1.45; text-overflow: clip; white-space: normal; overflow: visible; }
.room-item-row .field-label { font-size: 11px; height: 14px; line-height: 14px; margin-bottom: 4px; }
.room-item-row .external-toggle, .room-item-row .remove-item { margin-top: 18px; }
.material-units { margin-top: 6px; }
.unit-toggle { margin: 0; padding: 0; font-size: 12px; }
.unit-editor { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; }
.unit-editor[hidden] { display: none; }
.unit-chips { display: contents; }
.unit-chip { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 4px 0 10px; background: #fff0d8; border: 1px solid #f0c98e; border-radius: 14px; color: var(--ink); font-size: 12px; font-weight: 600; }
.unit-chip-remove { width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--muted); font-size: 14px; line-height: 1; }
.unit-chip-remove:hover { background: #fff; color: var(--danger); }
.unit-editor .unit-input { flex: 1 1 200px; min-width: 160px; min-height: var(--control-h-sm) !important; font-size: 12px !important; }
.planner-units { color: var(--green-dark) !important; font-weight: 600; }
.planner-room.is-highlighted { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(247,156,42,.2); }
.global-list-tools { display: flex; align-items: center; gap: 14px; }
.catalog-search { display: block; }
.catalog-search input { width: 360px; max-width: 100%; }
.catalog-count { min-width: 70px; color: var(--muted); font-size: 12px; text-align: right; white-space: nowrap; }
.no-unique-id { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.global-equipment-table tr[hidden] { display: none; }
.global-equipment-table { min-width: 0; }
.global-equipment-table th:nth-child(n+6), .global-equipment-table td:nth-child(n+6) { text-align: left; }
.global-equipment-table th:last-child, .global-equipment-table td:last-child { width: 1%; white-space: nowrap; text-align: right; }
.source-chip { display: inline-block; margin: 0 6px 4px 0; padding: 3px 9px; background: #fff0d8; border: 1px solid #f0c98e; border-radius: 12px; color: var(--ink); font-size: 12px; font-weight: 600; white-space: nowrap; }
.modal-actions .modal-spacer { flex: 1; }
.edit-imported-note { margin: 0; font-size: 12px; }
[hidden] { display: none !important; }
input[readonly], textarea[readonly] { background-color: #f3f1ee !important; color: var(--muted); cursor: default; }
input[readonly]:focus, textarea[readonly]:focus { border-color: var(--line) !important; box-shadow: none; }
.kits-table { min-width: 0; }
.kits-table th:nth-child(1) { width: 28%; }
.kits-table th:nth-child(2) { width: auto; }
.kits-table th:nth-child(3) { width: 150px; }
.kits-table td { vertical-align: top; }
.kit-items { display: grid; gap: 0; background: #fff; border: 1px solid var(--line); margin-bottom: 18px; }
.kit-row { display: grid; grid-template-columns: minmax(260px, 2fr) 100px minmax(260px, 2fr) 32px; align-items: start; gap: 14px; padding: 14px; border-bottom: 1px solid var(--line); }
.kit-row:last-child { border-bottom: 0; }
.kit-field { display: block; min-width: 0; }
.kit-field .field-label { display: block; height: 14px; margin: 0 0 4px; font-size: 11px; line-height: 14px; }
.kit-row .kit-material, .kit-row .kit-quantity { width: 100%; }
.kit-row .material-reference { display: block; margin-top: 6px; color: #5f5852; font-size: 12px; line-height: 1.45; }
.kit-row .unit-editor { margin-top: 0; }
.kit-remove { margin-top: 18px; height: var(--control-h); }
@media (max-width: 900px) { .kit-row { grid-template-columns: 1fr 90px; } .kit-row .kit-field:nth-child(3) { grid-column: 1 / -1; } }
.kit-preview { margin: 0; font-size: 13px; line-height: 1.5; }
#kit-editor .field-grid { margin-bottom: 26px; }
#kit-editor .room-editor-toolbar { margin-bottom: 0; }
.room-editor-footer .room-save-state { margin-right: auto; align-self: center; }

.section-tabs { display: flex; gap: 4px; margin: 0 0 18px; border-bottom: 1px solid var(--line); }
.section-tabs a { padding: 10px 18px; margin-bottom: -1px; border-bottom: 2px solid transparent; color: var(--muted); font: 600 13px/1 "Inter", sans-serif; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; }
.section-tabs a:hover { color: var(--ink); }
.section-tabs a.is-active { color: var(--ink); border-bottom-color: var(--orange); }

.global-equipment-table th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
.global-equipment-table th[data-sort]:hover { color: var(--ink); }
.global-equipment-table th[data-sort]::after { content: "↕"; margin-left: 6px; opacity: .35; }
.global-equipment-table th[aria-sort="ascending"]::after { content: "↑"; opacity: 1; color: var(--orange); }
.global-equipment-table th[aria-sort="descending"]::after { content: "↓"; opacity: 1; color: var(--orange); }

/* Les tailles sont en px : on agrandit l'interface sur grands écrans. */
/* zoom multiplie aussi les unités vw/vh : on les divise par le zoom (--vw, --vh) pour rester dans la fenêtre. */
:root { --vw: 1vw; --vh: 1vh; }
@media (min-width: 1500px) { :root { --vw: calc(1vw / 1.15); --vh: calc(1vh / 1.15); } body { zoom: 1.15; } }
@media (min-width: 1900px) { :root { --vw: calc(1vw / 1.3); --vh: calc(1vh / 1.3); } body { zoom: 1.3; } }
@media (min-width: 2400px) { :root { --vw: calc(1vw / 1.6); --vh: calc(1vh / 1.6); } body { zoom: 1.6; } }
.catalog-filter select { min-height: 36px; padding: 0 9px; border: 1px solid var(--line); background: white; color: var(--ink); font: 12px "Inter", sans-serif; }

.kit-contents { margin: 0; padding-left: 18px; list-style: disc; font-size: 13px; }
.kit-contents li { padding: 2px 0; }
.kit-unit { margin-left: 8px; color: var(--muted, #6b6b6b); font-size: 12px; }
.kit-qty { margin-left: 8px; font-weight: 700; }

/* Éditeur de salle : lignes compactes, repliables, fort contraste */
:root { --room-cols: 20px minmax(240px, 1.6fr) 84px 72px minmax(160px, 1fr) 92px 28px; }
.fold-toggle { width: 24px; height: 24px; padding: 0; border: 0; background: transparent; color: inherit; font-size: 14px; cursor: pointer; opacity: .8; }
.fold-toggle:hover { opacity: 1; }
.fold-count { font-size: 12px; opacity: .75; white-space: nowrap; }

.room-section-editor { border: 1px solid var(--line); background: white; margin-bottom: 18px; }
.room-section-heading { background: #fff3e1; color: var(--ink); border-bottom: 1px solid var(--line); padding: 8px 14px; }

.room-columns { display: grid; grid-template-columns: var(--room-cols); gap: 10px; padding: 6px 14px; background: #faf7f2; border-bottom: 1px solid var(--line); color: var(--muted); font: 700 10px "DM Mono", monospace; text-transform: uppercase; }
.room-columns span:nth-child(1) { grid-column: 2; }
.room-columns span:nth-child(2), .room-columns span:nth-child(3) { text-align: center; }
.room-columns span:nth-child(4) { grid-column: 5; }

.room-section-items { display: block; padding: 0; }
.room-section-actions { border-top: 1px solid var(--line); }
.room-section-editor.is-collapsed > .room-columns, .room-section-editor.is-collapsed > .room-section-items,
.room-section-editor.is-collapsed > .room-section-actions, .kit-group.is-collapsed > .kit-group-items { display: none; }

.room-item-row:not(.note-row) { display: grid; grid-template-columns: var(--room-cols); align-items: start; gap: 10px; padding: 6px 14px; border-bottom: 1px solid #efe9df; }
.room-item-row:not(.note-row):hover { background: #fffaf3; }
.room-item-row:not(.note-row) .field-label { display: none; }
.room-item-row .item-drag-handle, .room-item-row .external-toggle, .room-item-row .remove-item { margin-top: 0; align-self: start; }
.room-item-row .item-drag-handle { padding-top: 6px; }
.room-item-row .external-toggle { height: 32px; font-size: 12px; }
.room-item-row .remove-item { height: 32px; }
.room-item-row .quantity-field, .room-item-row .available-field { display: block; }
.room-item-row .material-name, .room-item-row .material-quantity, .room-item-row .material-comment { min-height: 32px !important; height: 32px; font-size: 13px !important; }
.room-item-row .material-available { height: 32px; font-size: 14px; }
.room-item-row .material-suggestions { top: 34px; }
.room-item-row .material-identity { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; position: relative; min-width: 0; }
.room-item-row .material-identity > .material-name { flex: 1 0 100%; }
.room-item-row .material-reference { flex: 0 0 140px; margin: 0; font: 11px "DM Mono", monospace; color: #6a625a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.room-item-row .material-units { flex: 1 1 0; min-width: 0; margin: 0; }
.room-item-row .unit-editor { display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; margin: 0; }
.room-item-row .unit-editor[hidden] { display: flex; }
.room-item-row .unit-chips { display: flex; flex-wrap: wrap; gap: 2px 12px; align-items: center; }
.room-item-row .unit-chip { display: inline-flex; align-items: center; height: auto; padding: 0; background: none; border: 0; border-radius: 0; color: var(--ink); font: 600 11px "DM Mono", monospace; }
.room-item-row .unit-chip-remove { width: 16px; height: 16px; margin-left: 2px; background: none; border: 0; color: #a39a90; cursor: pointer; }
.room-item-row .unit-chip-remove:hover { color: #b3261e; background: none; }
.room-item-row .unit-editor .unit-input { flex: 0 0 220px; min-height: 26px !important; height: 26px; font-size: 11px !important; }

.kit-group { margin: 0; border-left: 3px solid var(--orange, #f79c2a); border-bottom: 1px solid var(--line); background: white; }
.kit-group-heading { display: flex; align-items: center; gap: 12px; padding: 6px 14px 6px 10px; background: #faf7f2; border-bottom: 1px solid #efe9df; }
.kit-group-name { font: 700 14px "Nunito", sans-serif; }
.kit-group-spacer { flex: 1; }
.kit-group-items { display: block; padding: 0; }
.kit-group-items > .room-item-row:not(.note-row) { padding-left: 10px; }
.kit-suggestion { font-weight: 700; }
.room-item-row.note-row { padding: 6px 14px; }
.room-item-row .material-identity { align-items: center; row-gap: 2px; }
.room-item-row .material-reference, .room-item-row .material-units, .room-item-row .unit-editor, .room-item-row .unit-chips, .room-item-row .unit-chip { min-height: 26px; line-height: 26px; align-items: center; }
.room-item-row .unit-editor .unit-input { margin: 0; line-height: normal; }
.room-item-row .unit-chip-remove { line-height: 1; }
.room-item-row .unit-editor { width: 100%; }
.room-item-row .unit-editor .unit-input { flex: 0 0 140px; width: 140px; }
.room-item-row .unit-chips { margin-left: auto; justify-content: flex-end; }
.room-item-row .unit-chip { font: 11px "DM Mono", monospace; color: #6a625a; }
.room-item-row .unit-chip-remove { color: #6a625a; }
.room-item-row .unit-editor .unit-input { flex: 0 0 90px; width: 90px; min-width: 0; padding: 0 6px; }
.room-item-row .unit-editor .unit-input { flex: 0 0 140px; width: 140px; padding: 0 8px; height: 22px; min-height: 22px !important; font-size: 11px !important; }
.room-item-row .unit-editor .unit-input { flex: 0 0 220px; width: 220px; height: 20px; min-height: 20px !important; padding: 0 6px; border-width: 0 0 1px; border-radius: 0; background: transparent; box-shadow: none; font-size: 11px !important; line-height: 18px; }
.room-item-row .unit-editor .unit-input:focus { outline: 0; border-bottom-color: var(--orange, #f79c2a); box-shadow: none; }
.room-item-row .unit-editor .unit-input::placeholder { color: #b0a79c; }
.room-item-row .unit-editor .unit-input { box-sizing: border-box; height: 16px !important; min-height: 16px !important; max-height: 16px; padding: 0 4px !important; font: 11px/16px "DM Mono", monospace !important; color: #6a625a; border: 0 !important; border-bottom: 1px solid #d9d0c3 !important; background: transparent !important; }
.room-item-row .unit-editor .unit-input:focus { border-bottom-color: var(--orange) !important; box-shadow: none; }
.room-item-row .material-units, .room-item-row .unit-editor { min-height: 16px; line-height: 16px; }
.room-item-row .material-reference { line-height: 16px; min-height: 16px; }

.planner-kit-heading { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 5px 10px; border-left: 3px solid var(--orange, #f79c2a); background: #faf7f2; font-size: 13px; }
.planner-line.in-kit { margin-left: 3px; padding-left: 20px; border-left: 3px solid var(--orange, #f79c2a); }
.planner-kit-heading { margin: 8px 0 0; padding: 5px 10px; border-left: 3px solid var(--orange, #f79c2a); }
.planner-line.in-kit { margin: 0; padding: 2px 10px; border-left: 3px solid var(--orange, #f79c2a); }
.brand > span { display: block; white-space: normal; width: min-content; text-transform: uppercase; letter-spacing: .06em; font-size: 17px; line-height: 20px; font-weight: 800; }
.brand > span { position: relative; top: 5px; }
.brand > span { font-size: 20px; line-height: 23px; top: 3px; letter-spacing: .05em; }
.topbar .brand, .topbar .brand strong, .brand, .brand strong { color: var(--ink); }

.team-status { border: 0; background: none; cursor: pointer; font: inherit; }
.team-status.is-off { color: var(--muted); text-decoration: line-through; }
.team-global-table td .team-contact { display: block; }
.coordinator-badge { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 4px; border-radius: 3px; background: #f89d2a; color: #1d1d1d; font: 700 10px var(--font-mono, monospace); vertical-align: middle; }
.team-global-table { min-width: 900px; }
.team-global-table th:nth-child(1) { width: 22%; }
.team-global-table th:nth-child(2) { width: 14%; }
.team-global-table th:nth-child(3) { width: 22%; }
.team-global-table th:nth-child(4) { width: 26%; }
.team-global-table th:nth-child(5) { width: 9%; }
.team-global-table th:nth-child(6) { width: 7%; }
.team-global-table .team-contact { overflow-wrap: anywhere; }

.io-switch { position: relative; width: 46px; height: 22px; min-height: 0 !important; padding: 0; border: 0; border-radius: 11px; background: #d9d3ca; cursor: pointer; transition: background .15s; }
.io-switch::before { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.3); transition: transform .15s; }
.io-switch span { position: absolute; top: 0; bottom: 0; display: grid; place-items: center; width: 22px; font: 700 9px "DM Mono", monospace; letter-spacing: 0; color: #fff; }
.io-switch span:first-child { left: 0; opacity: 0; }
.io-switch span:last-child { right: 0; color: #8b8378; }
.io-switch[aria-checked="true"] { background: #f89d2a; }
.io-switch[aria-checked="true"]::before { transform: translateX(24px); }
.io-switch[aria-checked="true"] span:first-child { opacity: 1; color: #1d1d1d; }
.io-switch[aria-checked="true"] span:last-child { opacity: 0; }
.io-switch:disabled { opacity: .6; cursor: wait; }

.assign-dialog { width: min(1100px, calc(94 * var(--vw))); max-height: calc(88 * var(--vh)); padding: 0; border: 1px solid var(--line); background: #fff; color: var(--ink); overflow: hidden; }
.assign-dialog[open] { display: flex; flex-direction: column; }
.assign-dialog::backdrop { background: rgba(29, 29, 29, .45); }
.assign-dialog-head { display: flex; justify-content: space-between; gap: 16px; padding: 22px 26px 16px; border-bottom: 1px solid var(--line); background: #fff3e1; }
.assign-dialog-head h2 { margin: 4px 0; }
.assign-dialog-head p { margin: 0; }
.assign-dialog > .inline-empty { margin: 26px; }
.assign-scroll { overflow: auto; padding: 8px 26px 26px; }
.assign-matrix { border-collapse: separate; border-spacing: 0; }
.assign-matrix th, .assign-matrix td { padding: 0; text-align: center; }
.assign-matrix thead th { position: sticky; top: 0; z-index: 2; background: #fff; vertical-align: bottom; }
.assign-project { height: 150px; min-width: 38px; }
.assign-matrix .assign-head { min-height: 0 !important; padding: 6px; border: 0; background: none; font: 600 12px Inter, sans-serif; color: var(--ink); cursor: pointer; }
.assign-matrix .assign-head:hover { color: #c26a00; }
.assign-project .assign-head { height: 100%; }
.assign-project .assign-head span { display: block; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.assign-person { position: sticky; left: 0; z-index: 1; background: #fff; text-align: right !important; white-space: nowrap; }
.assign-matrix tbody tr:nth-child(odd) th, .assign-matrix tbody tr:nth-child(odd) td { background: #faf7f2; }
.assign-matrix tbody td { width: 38px; height: 36px; }
.assign-toggle { position: relative; width: 22px; height: 22px; min-height: 0 !important; padding: 0 !important; border: 0; border-radius: 50%; background: #d9d3ca; box-shadow: inset 0 1px 2px rgba(0,0,0,.18); cursor: pointer; transition: background .12s, transform .12s; }
.assign-toggle:hover { transform: scale(1.12); }
.assign-toggle[data-state="member"], .assign-toggle[data-state="coordinator"] { background: #f89d2a; box-shadow: 0 0 0 3px rgba(248,157,42,.25); }
.assign-toggle[data-state="coordinator"]::after { content: "C"; position: absolute; inset: 0; display: grid; place-items: center; font: 700 11px "DM Mono", monospace; color: #1d1d1d; }
.assign-toggle:disabled { opacity: .5; cursor: wait; }

.assign-dialog { position: fixed; inset: 0; margin: auto; box-sizing: border-box; width: min(960px, calc(calc(100 * var(--vw)) - 48px)); height: min(720px, calc(calc(100 * var(--vh)) - 48px)); max-height: none; }
.assign-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.assign-dialog-head { box-sizing: border-box; }
.assign-scroll { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 0 26px 26px; }
.assign-matrix { width: max-content; }
.assign-project { height: 130px; }
.assign-matrix thead th { box-shadow: 0 1px 0 var(--line); }
.assign-matrix thead th:first-child { left: 0; z-index: 3; }
.assign-dialog-head .icon-button { flex: none; width: 34px; height: 34px; min-height: 0 !important; padding: 0; border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: 20px; line-height: 1; cursor: pointer; }
body:has(.assign-dialog[open]) { overflow: hidden; }
.assign-filter { vertical-align: bottom !important; padding: 0 12px 10px 0 !important; }
.assign-filter input { width: 200px; min-height: 34px !important; padding: 0 10px; border: 1px solid var(--line); background: #fff; font: 500 12px Inter, sans-serif; }
.assign-row[hidden] { display: none; }
.assign-matrix tbody td { vertical-align: middle; }
.assign-toggle { display: block; margin: 0 auto; box-sizing: border-box; flex: none; }
.assign-toggle[data-state="coordinator"] { font-size: 0; }
.assign-toggle[data-state="coordinator"]::after { line-height: 22px; }
.assign-project { width: 38px; min-width: 38px; padding: 0 !important; }
.assign-colhead { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 8px; height: 100%; padding-bottom: 8px; }
.assign-name { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; font: 600 12px Inter, sans-serif; color: var(--ink); }
.assign-all { margin: 0 !important; }
.assign-dialog[open] { grid-template-rows: auto minmax(0, 1fr) auto; }
.assign-dialog-foot { display: flex; justify-content: flex-end; padding: 14px 26px; border-top: 1px solid var(--line); background: #fff; }
.assign-scroll { padding: 0 !important; }
.assign-matrix thead th { background: #fff; }
.assign-matrix thead th:first-child { position: sticky; left: 0; z-index: 4; padding-left: 26px !important; }
.assign-person { padding-left: 26px !important; padding-right: 10px !important; z-index: 2; }
.assign-matrix th:last-child, .assign-matrix td:last-child { padding-right: 26px !important; box-sizing: content-box; }
.assign-matrix tbody tr:last-child th, .assign-matrix tbody tr:last-child td { padding-bottom: 14px; }
.assign-project { height: 190px; }
.assign-name { max-height: 150px; overflow: hidden; text-overflow: ellipsis; }
.team-row[hidden] { display: none; }
.team-project-add { grid-template-columns: minmax(0, 360px) auto; }
.team-project-table { min-width: 0; table-layout: fixed; }
.team-project-table th:nth-child(1) { width: 20%; }
.team-project-table th:nth-child(2) { width: 13%; }
.team-project-table th:nth-child(3) { width: 11%; }
.team-project-table th:nth-child(4) { width: 20%; }
.team-project-table th:nth-child(5) { width: 20%; }
.team-project-table th:nth-child(6) { width: 7%; }
.team-project-table th:nth-child(7) { width: 9%; }
.team-project-table th, .team-project-table td { padding-left: 12px; padding-right: 12px; }
.team-project-table .team-global-actions { flex-wrap: wrap; gap: 4px 10px; }
.nickname-input { width: 100%; min-height: 32px !important; padding: 0 8px; border: 1px solid var(--line); background: #fff; font: 500 12px Inter, sans-serif; }
.nickname-input.is-saved { border-color: #f89d2a; box-shadow: 0 0 0 2px rgba(248,157,42,.25); }
.team-global-table { min-width: 0; }
.team-global-table th:nth-child(1) { width: 22%; }
.team-global-table th:nth-child(2) { width: 14%; }
.team-global-table th:nth-child(3) { width: 24%; }
.team-global-table th:nth-child(4) { width: 26%; }
.team-global-table th:nth-child(5) { width: 8%; }
.team-global-table th:nth-child(6) { width: 6%; }
.team-global-add.team-project-add { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.team-project-add > .eyebrow { flex: 0 0 100%; }
.team-project-add label { flex: 0 1 320px; }
.team-project-add .button { flex: none; width: auto; padding: 0 18px; }
.team-global-add .button { width: auto; justify-self: start; padding: 0 18px; white-space: nowrap; }
.team-project-table th:nth-child(6) { width: 6%; }
.team-project-table th:nth-child(7) { width: 12%; }
.team-project-table th:nth-child(5) { width: 18%; }
.team-project-table .team-global-actions { flex-wrap: nowrap; justify-content: flex-end; gap: 14px; }
.team-global-actions .text-link-button { min-height: 0; padding: 0; line-height: 1.2; }
.team-global-actions form { display: flex; align-items: center; }
.team-global-add .button, .team-global-add .button.button-small { min-height: var(--control-h) !important; height: var(--control-h); box-sizing: border-box; align-self: end; }
.team-global-add input, .team-global-add select { height: var(--control-h); box-sizing: border-box; }
.global-list-toolbar .toolbar-actions { display: flex; align-items: center; gap: 16px; }

/* Event calendar */
.cal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.cal-day { min-height: 110px; padding: 10px; display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid var(--line, #e3ddd3); border-top: 3px solid #f39a24; cursor: pointer; min-width: 0; }
.cal-day:hover { background: #fff8ec; }
.cal-day.outside { border-top-color: #b9b0a4; background: #faf8f5; }
.cal-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.cal-num { font-size: 13px; font-weight: 800; color: #1d1a16; }
.cal-label { font-size: 11px; color: #6b6259; text-transform: uppercase; letter-spacing: .06em; }
.cal-remove { margin-left: auto; padding: 0; border: 0; background: none; color: #d84a2b; font-size: 11px; cursor: pointer; min-height: 0 !important; }
.cal-head form { display: contents; }
.cal-event { display: block; width: 100%; text-align: left; padding: 3px 6px; border: 0; border-radius: 3px; font: 600 11px "Nunito", sans-serif; background: #fff0d8; color: #472b1b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; min-height: 0 !important; }
.cal-add-day { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line, #e3ddd3); }
.cal-add-day .eyebrow { flex-basis: 100%; }
.event-dialog { width: min(880px, calc(94 * var(--vw))); max-height: calc(90 * var(--vh)); padding: 24px; border: 0; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.event-dialog::backdrop { background: rgba(30,20,10,.45); }
.preset-bar { display: flex; gap: 8px; margin: 0 0 16px; }
.preset-chip { padding: 8px 16px; border: 1px solid #d9d2c7; border-radius: 999px; background: #fff; font: 700 13px "Nunito", sans-serif; cursor: pointer; min-height: 0 !important; }
.preset-chip.active { background: #f39a24; border-color: #f39a24; color: #fff; }
.event-editor-form:not([data-preset="custom"]) .event-adv,
.event-editor-form:not([data-preset="custom"]) .event-title,
.event-editor-form:not([data-preset="custom"]) .event-wide-field:not(.event-people-field) { display: none !important; }
.event-editor-form[data-preset="get-in"] .event-addr,
.event-editor-form[data-preset="get-out"] .event-addr { display: none !important; }
.cal-event .cal-tag { display: block; font-size: 10px; font-weight: 700; opacity: .7; text-transform: uppercase; letter-spacing: .05em; }
.cal-event { white-space: normal !important; }

/* Event tags */
.tag-builtin, .tag-custom { margin-top: 22px; }
.tag-builtin-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.tag-builtin-chips .event-tag-chip { padding: 6px 14px; font-size: 12px; }
.tag-custom-list { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; max-width: 560px; }
.tag-custom-list .schedule-tag-row { display: flex; align-items: center; gap: 14px; padding: 8px 12px; border: 1px solid var(--line); background: #fff; }
.tag-row-form { display: flex; align-items: center; gap: 10px; margin: 0; }
.tag-row-form:first-child { flex: 1; }
.tag-row-form input:not([type=color]) { flex: 1; min-width: 0; height: 34px; min-height: 34px !important; padding: 0 10px; border: 1px solid var(--line); background: #fff; font-size: 13px; }
.tag-row-form input[type=color] { width: 34px; height: 34px; min-height: 34px !important; padding: 2px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.tag-row-form .text-link-button { padding: 0; }
.tag-create-form { grid-template-columns: 70px minmax(180px, 1fr) 100px 100px auto !important; }
.emoji-input { width: 100%; text-align: center; }
.tag-row-form input.emoji-input { flex: 0 0 52px; width: 52px; text-align: center; padding: 0; }
.tag-create-form { grid-template-columns: minmax(180px, 1fr) 110px auto !important; }
.tag-create-form input:not([type=color]), .tag-row-form input:not([type=color]) { box-sizing: border-box; height: 40px !important; min-height: 40px !important; padding: 0 12px !important; line-height: 1.2 !important; font-size: 14px !important; }
.tag-create-form input[type=color] { height: 40px !important; }
.tag-create-form { align-items: end !important; }
.tag-create-form input[type=color] { box-sizing: border-box; height: 40px !important; min-height: 40px !important; }
.tag-create-form .button { height: 40px !important; min-height: 40px !important; box-sizing: border-box; padding-top: 0; padding-bottom: 0; }
.tag-row-form input[type=color] { box-sizing: border-box; height: 40px !important; width: 40px; }
input::-webkit-contacts-auto-fill-button, input::-webkit-credentials-auto-fill-button { visibility: hidden; display: none !important; pointer-events: none; position: absolute; right: 0; }
.tag-create-form input:not([type=color]) { overflow: hidden; }
.tag-create-form { align-items: start !important; }
.tag-create-form label { line-height: 16px; height: 63px; align-content: start; grid-template-rows: 16px 40px; gap: 7px; }
.tag-create-form input { height: 40px !important; max-height: 40px; }
.tag-create-form .button { align-self: start; margin-top: 23px; }
.source-edit-dialog{border:1px solid #ddd;border-radius:12px;padding:22px;width:min(420px,calc(92 * var(--vw)))}
.source-edit-dialog form{display:grid;gap:14px}
.source-edit-dialog h3{margin:0}
.source-edit-dialog label{display:grid;gap:6px;font-weight:600}
.source-edit-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px}
.cal-session{display:block;padding:6px 8px;border-radius:8px;font-size:.8rem;text-decoration:none;margin-bottom:4px;line-height:1.3}
.cal-session small{display:block;opacity:.8}
.program-rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;align-items:start}
.program-room{background:#fff;border:1px solid #e6e2dc;border-radius:12px;padding:12px;display:grid;gap:10px}
.program-room h3{margin:0;font-size:1rem}
.program-session{border-left:3px solid #f59a23;background:#faf8f5;border-radius:8px;padding:8px 10px;display:grid;gap:4px}
.program-time{font-family:ui-monospace,monospace;font-size:.78rem;color:#6b645c}
.program-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cal-tag-chip{padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600}
.program-delivery{font-size:.72rem;color:#6b645c}
.program-meta .cal-tag-chip{background:#ece8e2;color:#4a443d}
.tl{border:1px solid #e6e2dc;border-radius:12px;background:#fff}
.tl-row{display:grid;grid-template-columns:130px 1fr;border-top:1px solid #ece8e2}
.tl-head{border-top:0;background:#fdf3e3}
.tl-label{padding:8px 10px;font-weight:700;font-size:.8rem;display:flex;align-items:center;border-right:1px solid #e6e2dc;background:#faf8f5}
.tl-head .tl-label{background:#fdf3e3}
.tl-track{position:relative;height:28px;background-image:linear-gradient(to right,#ece8e2 1px,transparent 1px);background-size:calc(100% / var(--hours)) 100%}
.tl-head .tl-track span{position:absolute;top:6px;transform:translateX(3px);font-family:ui-monospace,monospace;font-size:.68rem;color:#6b645c}
.tl-session{position:absolute;height:46px;box-sizing:border-box;padding:3px 6px;border:0;border-left:3px solid #f59a23;border-radius:6px;background:#fde9cc;color:#3a2a12;text-align:left;font:inherit;font-size:.68rem;line-height:1.2;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;gap:1px;align-items:flex-start}
.tl-session:hover{background:#fbdcaa;z-index:2}
.tl-session strong{font-size:.72rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tl-when{font-family:ui-monospace,monospace;font-size:.62rem;opacity:.75;white-space:nowrap}
.program-techs{display:flex;flex-direction:column;align-items:flex-start;gap:1px;max-width:100%}
.program-techs i{font-style:normal;line-height:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#3a2a12;color:#fff;border-radius:999px;padding:0 6px;font-size:.62rem}
.tl-room{border:0;border-right:1px solid #e6e2dc;text-align:left;font:inherit;font-weight:700;font-size:.8rem;cursor:pointer}
.tl-room:hover{background:#f3ece2}
.tl-session{box-shadow:inset 0 0 0 0 transparent}
.tl-session:hover{height:auto;min-height:46px;min-width:280px;z-index:20;overflow:visible;box-shadow:0 8px 24px rgba(0,0,0,.25);filter:brightness(.97)}
.tl-session:hover strong{display:block;-webkit-line-clamp:unset}
.tl-session[data-flip]:hover{left:auto!important;right:var(--right)}
.tl-session.selected{outline:3px solid #1d1a16;outline-offset:-1px;z-index:5}
.tl-session.selected::after{content:"✓";position:absolute;top:2px;right:5px;font-weight:800}
.tl-session.clash{outline:2px solid #d93025;outline-offset:-2px}
.tl-cat{font-size:.62rem;opacity:.8}
.program-techs i.warn{background:#d93025}
.sel-bar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:50;background:#1d1a16;color:#fff;border-radius:999px;padding:10px 14px 10px 20px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 28px rgba(0,0,0,.35)}
.sel-bar[hidden]{display:none}
.assign-people{display:grid;gap:6px;max-height:calc(50 * var(--vh));overflow:auto;margin:12px 0}
.assign-person{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:8px 10px;border:1px solid #e6e2dc;border-radius:8px}
.assign-person.has-warn{border-color:#d93025;background:#fdecea}
.assign-warn{grid-column:2;color:#b3261e;font-weight:600}
.tl-range{display:inline-flex;align-items:center;gap:6px;font-size:.8rem}.tl-range select{height:32px}
.tl-window-track{position:relative;flex:1;height:22px;border-radius:6px;background:#ece8e2}
.tl-window-sel{position:absolute;top:0;bottom:0;background:#f59a23;border-radius:6px;cursor:grab;touch-action:none}
.tl-window-sel i{position:absolute;top:0;bottom:0;width:10px;cursor:ew-resize}
.tl-window-sel i[data-edge=l]{left:0;border-left:3px solid #1d1a16;border-radius:6px 0 0 6px}
.tl-window-sel i[data-edge=r]{right:0;border-right:3px solid #1d1a16;border-radius:0 6px 6px 0}
.tl-label{gap:6px}
.tl-grip{cursor:grab;color:#9a9188;user-select:none}
.tl-room-row.dragging{opacity:.4}
.tl-room{background:none;padding:0}
.tl-label .tl-room{border-right:0;flex:1;min-width:0}
.tl-window{display:grid;grid-template-columns:130px 1fr;align-items:center;margin-bottom:6px}
.tl-window .tl-window-label{font-family:ui-monospace,monospace;font-size:.75rem;color:#6b645c;padding-left:10px}
.tl-window .tl-window-track{height:16px}
.tl-session>*{flex-shrink:0}.tl-session strong{font-weight:800;width:100%}
.tl-track{cursor:copy}.tl-session{cursor:pointer}
.tl-edit{position:absolute;top:2px;right:4px;font-size:.7rem;opacity:.55;cursor:pointer;padding:0 3px}.tl-edit:hover{opacity:1}
.tl-add{margin-left:auto}
.assign-times{display:flex;gap:10px}.assign-times label{flex:1}
#item-dialog label{display:block;margin-bottom:10px;font-size:.8rem;font-weight:600}
#item-dialog input:not([type=color]),#item-dialog select{display:block;width:100%;margin-top:4px}
.tl-session:hover{height:auto!important;min-height:var(--h,46px);padding-bottom:6px}
.tl-track{cursor:default}
#item-dialog .item-field{display:block;margin-bottom:12px;font-size:.8rem;font-weight:600}
#item-dialog .item-field input:not([type=color]):not([type=checkbox]),#item-dialog .item-field select,#item-dialog .item-field textarea{display:block;width:100%;margin-top:4px;box-sizing:border-box;font:inherit;font-weight:400}
#item-dialog .item-row{display:grid;grid-template-columns:1fr 1fr 64px;gap:12px;align-items:end}
#item-dialog .item-row input[type=time]{height:var(--control-h,40px);padding:0 10px}
#item-dialog .item-color input{display:block;width:64px;height:var(--control-h,40px);margin-top:4px;padding:3px;border:1px solid #d9d4cc;border-radius:8px;background:#fff;cursor:pointer}
#item-dialog .item-check{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:500;margin:0 0 10px}
#item-dialog .item-check input{width:auto;margin:0}
#item-dialog .item-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px 12px;max-height:150px;overflow:auto;margin-top:6px;padding:8px 10px;border:1px solid #e6e2dc;border-radius:8px}
#item-dialog .item-rooms .item-all{grid-column:1/-1;font-weight:700;margin-bottom:4px}
.tl-note{display:none;font-size:.62rem;font-style:italic;white-space:pre-wrap}.tl-session:hover .tl-note{display:block}
#item-dialog{width:min(640px,calc(94 * var(--vw)))}
#item-dialog input[type=checkbox]{display:inline-block;width:16px;height:16px;min-height:0;margin:0;padding:0;flex:none;border-radius:4px;accent-color:var(--orange)}
#item-dialog .item-field input:not([type=color]):not([type=checkbox]),#item-dialog .item-field select,#item-dialog .item-field textarea{display:block;width:100%}
#item-dialog .item-rooms .item-check{margin:0;min-width:0;word-break:normal;white-space:normal;line-height:1.25;padding:3px 0}
#item-dialog .item-newroom{display:flex;gap:8px;margin-top:8px}
#item-dialog .item-newroom input{flex:1;margin-top:0!important}
#item-dialog .item-error{margin:6px 0 0;color:#d93025;font-weight:500}
#room-dialog{width:min(440px,calc(94 * var(--vw)))}
#room-dialog .item-field{display:block;font-size:.8rem;font-weight:600;margin-bottom:10px}
#room-dialog .item-field input{display:block;width:100%;margin-top:4px;box-sizing:border-box}
#room-dialog .item-error{color:#d93025;font-weight:500;margin:0 0 8px}
#item-dialog .item-row{grid-template-columns:1fr 1fr 72px;align-items:start}
#item-dialog .item-row input[type=time],#item-dialog .item-color input[type=color]{box-sizing:border-box!important;height:40px!important;min-height:40px!important;margin-top:4px;border:1px solid #d9d4cc;border-radius:8px;background:#fff;font:inherit;line-height:38px}
#item-dialog .item-row input[type=time]{padding:0 12px!important;text-align:left}
#item-dialog .item-row input[type=time]::-webkit-datetime-edit{padding:0;line-height:38px}
#item-dialog .item-row input[type=time]::-webkit-datetime-edit-fields-wrapper{padding:0}
#item-dialog .item-color input[type=color]{width:72px!important;padding:4px!important}
#item-dialog .item-color input[type=color]::-webkit-color-swatch-wrapper{padding:0}
#item-dialog .item-color input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}
.travel-section{margin-top:18px}
.travel-card{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;min-height:96px;padding:10px 12px;border:1px solid #e6e2dc;border-left:4px solid #f59a23;border-radius:10px;background:#fff;font:inherit;cursor:pointer}
.travel-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.12)}
.travel-card.kind-train{border-left-color:#4a90d9}.travel-card.kind-transfer{border-left-color:#6aa84f}.travel-card.kind-stay{border-left-color:#9b6bc9}
.travel-kind{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b645c}
.travel-card strong{font-size:1rem}
.travel-when,.travel-ref{font-size:.78rem;color:#5b544c}.travel-ref{font-family:ui-monospace,monospace}
.travel-people{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.travel-people i{font-style:normal;font-size:.68rem;background:#3a2a12;color:#fff;border-radius:999px;padding:1px 8px}
.travel-people em{font-size:.72rem;color:#9a9188}
.travel-dialog{width:min(640px,calc(94 * var(--vw)))}
.travel-dialog .tv-field{display:block;margin-bottom:12px;font-size:.8rem;font-weight:600}
.travel-dialog .tv-field input:not([type=checkbox]):not([type=radio]),.travel-dialog .tv-field textarea{display:block;width:100%;margin-top:4px;box-sizing:border-box;font:inherit;font-weight:400}
.travel-dialog input[type=time],.travel-dialog input[type=date]{height:40px;min-height:40px;padding:0 12px;line-height:38px}
.travel-dialog input[type=checkbox]{display:inline-block;width:16px;height:16px;min-height:0;margin:0;padding:0;flex:none;accent-color:var(--orange)}
.travel-dialog .tv-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px}
.travel-dialog .tv-row-2{grid-template-columns:1fr 1fr}
.travel-dialog .tv-kinds{display:flex;gap:8px;margin-top:6px}
.travel-dialog .tv-kind{flex:1;cursor:pointer}
.travel-dialog .tv-kind input{position:absolute;opacity:0;pointer-events:none}
.travel-dialog .tv-kind span{display:block;text-align:center;padding:9px 6px;border:1px solid #d9d4cc;border-radius:8px;font-weight:600;background:#fff}
.travel-dialog .tv-kind input:checked+span{background:#fde9cc;border-color:#f59a23}
.travel-dialog .tv-check{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:500;margin:0;padding:3px 0}
.travel-dialog .tv-people,.travel-dialog .tv-guests{margin-top:6px;padding:8px 10px;border:1px solid #e6e2dc;border-radius:8px;max-height:210px;overflow:auto}
.travel-dialog .tv-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 12px}
.travel-dialog .tv-all{grid-column:1/-1;font-weight:700}
.travel-dialog .tv-guest{display:grid;grid-template-columns:1fr 140px 140px;gap:8px;align-items:center;padding:2px 0}
.travel-dialog .tv-guest input[type=date]{margin:0;width:100%;box-sizing:border-box;height:34px;min-height:34px;line-height:32px;padding:0 8px;font-size:.8rem}
.travel-dialog .tv-guest input[type=date]:disabled{opacity:.35}
.cal-add-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:96px;border:2px dashed #d9d4cc;border-radius:10px;background:transparent;color:#6b645c;font:inherit;font-weight:600;font-size:.85rem;cursor:pointer}
.cal-add-card span{font-size:1.4rem;line-height:1}
.cal-add-card:hover{border-color:#f59a23;color:#f59a23;background:#fffaf2}
.cal-grid>.cal-add-card{grid-column:-2/-1}
.travel-dialog .tv-field input:not([type=checkbox]):not([type=radio]){height:40px;min-height:40px;padding:0 12px;line-height:normal;display:flex;align-items:center}
.travel-dialog input[type=date],.travel-dialog input[type=time]{display:block;line-height:38px}
.travel-dialog input::-webkit-datetime-edit,.travel-dialog input::-webkit-datetime-edit-fields-wrapper{padding:0;margin:0;line-height:normal}
.travel-dialog input::-webkit-datetime-edit-text,.travel-dialog input::-webkit-datetime-edit-month-field,.travel-dialog input::-webkit-datetime-edit-day-field,.travel-dialog input::-webkit-datetime-edit-year-field,.travel-dialog input::-webkit-datetime-edit-hour-field,.travel-dialog input::-webkit-datetime-edit-minute-field{padding:0;color:inherit}
.travel-dialog textarea{padding:10px 12px}
.travel-dialog .tv-guest input[type=date]{height:34px;min-height:34px;padding:0 8px;line-height:32px}
.cal-transport{display:block;width:100%;margin-top:4px;padding:3px 6px;border:0;border-left:3px solid #f59a23;border-radius:4px;background:#fdf1de;font:inherit;font-size:.7rem;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-transport.kind-train{border-left-color:#4a90d9;background:#e8f1fb}.cal-transport.kind-transfer{border-left-color:#6aa84f;background:#edf6e6}
.ap-wrap{position:relative;display:block}
.ap-list{position:absolute;z-index:20;left:0;right:0;top:100%;margin-top:2px;background:#fff;border:1px solid #d9d4cc;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);overflow:hidden}
.ap-list[hidden]{display:none}
.ap-list button{display:flex;gap:10px;align-items:baseline;width:100%;padding:8px 12px;border:0;background:#fff;font:inherit;font-size:.82rem;font-weight:400;text-align:left;cursor:pointer}
.ap-list button:hover{background:#fdf1de}
.ap-list b{font-family:ui-monospace,monospace;min-width:34px;color:#f59a23}
.ap-list span{color:#5b544c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.travel-dialog .tv-kinds{justify-content:flex-start}
.travel-dialog .tv-kind{flex:0 0 auto}
.travel-dialog .tv-kind span{padding:9px 16px}
.travel-dialog .tv-kinds{display:flex!important;justify-content:flex-start!important;gap:8px}
.travel-dialog .tv-kinds .tv-kind{flex:0 0 auto!important;width:auto!important;margin:0!important}
.cal-day .cal-event,.cal-day .cal-session,.cal-day .cal-transport{display:block;box-sizing:border-box;width:100%;margin:0 0 4px;padding:5px 8px;border-radius:6px;font:600 11px/16px "Nunito",sans-serif;text-align:left;text-decoration:none}
.cal-day .cal-transport{border:0;border-left:3px solid #f59a23;height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-day .cal-transport.kind-train{border-left-color:#4a90d9}.cal-day .cal-transport.kind-transfer{border-left-color:#6aa84f}
.cal-day .cal-session small,.cal-day .cal-event .cal-tag{display:block;font:600 10px/14px "Nunito",sans-serif;opacity:.75}
.cal-day{min-height:130px}
.travel-dialog .tv-pax{display:flex;align-items:center;justify-content:space-between;gap:8px}
.travel-dialog .tv-pax .tv-check{flex:1;min-width:0}
.travel-dialog .tv-pickup{width:96px!important;height:30px!important;min-height:30px!important;margin:0!important;padding:0 6px!important;font-size:.8rem;line-height:28px!important}
.travel-dialog .tv-pickup[hidden]{display:none!important}
.travel-dialog .tv-people.pickup-mode{grid-template-columns:1fr}
.travel-dialog [hidden]{display:none!important}
.travel-dialog .tv-stop{margin-bottom:12px;padding:12px;border:1px solid #e6e2dc;border-radius:10px;background:#fcfbf9}
.travel-dialog .tv-stop-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.8rem}
.travel-dialog .tv-stop-del{border:0;background:none;color:#c0392b;font:inherit;font-size:.75rem;font-weight:600;cursor:pointer}
.travel-dialog .tv-stop-row{grid-template-columns:120px 1fr}
.travel-dialog .tv-stop-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0 12px;max-height:150px;overflow:auto}
.travel-dialog #tr-add-stop{margin-top:2px}
.travel-dialog[open]{max-height:calc(calc(100 * var(--vh)) - 48px);overflow-y:auto;overscroll-behavior:contain}
dialog.travel-dialog[open]{position:fixed!important;top:24px!important;bottom:auto!important;left:50%!important;right:auto!important;margin:0!important;transform:translateX(-50%);box-sizing:border-box;max-height:calc(calc(100 * var(--vh)) - 48px)!important;max-height:calc(100dvh - 48px)!important;overflow-y:auto!important;overflow-x:hidden}
body:has(.travel-dialog[open]){overflow:hidden}
dialog.travel-dialog[open]{top:calc(3 * var(--vh))!important;max-height:calc(84 * var(--vh))!important}
.travel-dialog .tv-stop-people{max-height:none;overflow:visible}
.travel-dialog .event-editor-actions{position:sticky;bottom:-24px;z-index:5;margin:0 -24px -24px;padding:12px 24px;background:#fff;border-top:1px solid #e6e2dc}
.travel-dialog .tv-stop-pax{margin-top:8px}
.travel-dialog .tv-stop-pax summary{cursor:pointer;font-size:.8rem;font-weight:600;color:#5b544c;list-style:none;padding:6px 10px;border:1px solid #e6e2dc;border-radius:8px;background:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.travel-dialog .tv-stop-pax summary::-webkit-details-marker{display:none}
.travel-dialog .tv-stop-pax[open] summary{margin-bottom:6px}
dialog.travel-dialog[open]{max-height:calc(70 * var(--vh))!important}
.travel-section .travel-card,.travel-section .cal-add-card{aspect-ratio:1/1;min-height:0;box-sizing:border-box}
.travel-section .travel-card{overflow:hidden;justify-content:flex-start}
.travel-section .travel-card>*{flex-shrink:0;max-width:100%}
.travel-section .travel-card:hover,.travel-section .travel-card:focus-visible{overflow-y:auto;scrollbar-width:thin;box-shadow:0 6px 18px rgba(0,0,0,.18);z-index:2}
.travel-section .travel-card .travel-people{max-width:100%}
.travel-section .travel-card,.travel-section .cal-add-card{aspect-ratio:auto;height:130px;min-height:0;max-height:130px}
.cal-day .cal-transport.kind-stay{border-left-color:#9b6bc9;background:#f1e9f9}
.cal-filter{margin:0 0 10px}.cal-filter select{min-width:200px}
.cal-day [hidden]{display:none!important}

/* Top navigation bar in uppercase */
.topbar .primary-nav a,.topbar .nav-signout,.topbar .account-menu span{text-transform:uppercase;letter-spacing:.03em}
.event-dialog.travel-dialog[id^=edit-],#new-event-dialog.travel-dialog{width:min(880px,calc(94 * var(--vw)))}
.travel-dialog .event-editor-form{padding:0!important;border:0!important;background:transparent}
.travel-dialog .event-editor-form .event-editor-actions{margin-top:14px;padding-top:12px;padding-bottom:12px}
.travel-dialog .event-form-grid input:not([type=checkbox]),.travel-dialog .event-form-grid select{height:40px!important;min-height:40px!important;padding:0 12px!important;box-sizing:border-box;font:12px "Inter",sans-serif!important;line-height:normal!important;display:block}
.travel-dialog .event-form-grid input[type=date],.travel-dialog .event-form-grid input[type=time]{display:flex!important;align-items:center;-webkit-appearance:none;appearance:none}
.travel-dialog .event-form-grid input::-webkit-datetime-edit{padding:0;line-height:normal}
.travel-dialog .event-form-grid input::-webkit-date-and-time-value{text-align:left;margin:0;min-height:0}
.travel-dialog .event-participant-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 12px;margin-top:6px}
.travel-dialog .event-participant-options label{display:flex;align-items:center;gap:8px;margin:0;padding:3px 0;font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.travel-dialog .event-people-field input[type=checkbox]{flex:none;width:16px!important;height:16px!important;min-height:0!important;margin:0;padding:0;accent-color:var(--orange)}
.travel-dialog .event-people-field>label{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.8rem}
.user-row .button{height:34px;min-height:34px;min-width:120px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;box-sizing:border-box}
.user-row form{margin:0;display:flex;align-items:center}
.user-row .user-password-form input{height:34px;margin:0;box-sizing:border-box}
.user-create-form{grid-template-columns:1.4fr 1fr 1fr .8fr auto!important}
.topbar .primary-nav .settings-link~.settings-link{margin-left:0}
.topbar .primary-nav{gap:clamp(16px,calc(2.4 * var(--vw)),32px)}
.topbar .account-menu{gap:clamp(16px,calc(2.4 * var(--vw)),32px)}
input::-webkit-contacts-auto-fill-button,input::-webkit-credentials-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;position:absolute;right:0}
.team-global-add label,.team-filter-form label{align-content:end}
.team-global-add input:focus,.team-filter-form input:focus{border-width:1px;outline:0}
.team-person-delete{margin-top:10px}.team-person-delete .button{color:#c0392b}
.button.button-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #e3b7b0;background:#fdf3f1;color:#b3392b;font-weight:600;border-radius:4px;transition:background .15s,color .15s,border-color .15s}
.button.button-danger:hover:not(:disabled){background:#c0392b;border-color:#c0392b;color:#fff}
.button.button-danger:disabled{opacity:.4;cursor:not-allowed}
.team-person-delete{margin-top:12px}.team-person-delete .button{color:#b3392b}
.team-person-delete .button.button-danger:hover{color:#fff}
.team-global-actions .button,.team-global-table .button.button-outline,.team-project-table .button.button-outline{display:inline-flex;align-items:center;justify-content:center;height:30px;min-height:30px!important;padding:0 14px!important;box-sizing:border-box;line-height:1}
/* I/O switch as a segmented control matching the buttons */
.io-switch{display:inline-grid;grid-template-columns:1fr 1fr;width:62px;height:30px;min-height:30px!important;border:1px solid #b9b3aa;border-radius:4px;background:#fff;overflow:hidden;vertical-align:middle;transition:border-color .15s}
.io-switch::before{display:none}
.io-switch span{position:static!important;width:auto!important;display:grid;place-items:center;font:700 11px "DM Mono",monospace;opacity:1!important;color:#8b8378!important;background:transparent;transition:background .15s,color .15s}
.io-switch:hover{border-color:#1f1b16}
.io-switch[aria-checked="true"] span:first-child{background:#e9a047;color:#1f1b16!important}
.io-switch[aria-checked="false"] span:last-child{background:#ece8e1;color:#1f1b16!important}

.login-code-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line,#eadfce)}
.login-code-label{display:flex;flex-direction:column;min-width:170px}
.login-code-label small{color:#8a7a6a}
.login-code-form input{width:110px;height:30px;text-align:center;letter-spacing:.2em}

.admin-otp{position:relative;display:inline-block;margin:0}
.admin-otp .otp-boxes{display:grid;grid-template-columns:repeat(6,30px);gap:5px;pointer-events:none}
.admin-otp .otp-box{display:flex;align-items:center;justify-content:center;width:30px;height:34px;border:1px solid #d8cdbd;border-radius:8px;background:#fff;font-style:normal;font-weight:700;font-size:16px}
.admin-otp .otp-box.on{border-color:#F79C2A;box-shadow:0 0 0 2px #fde3bf}
.admin-otp .otp-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;padding:0;margin:0;font-size:16px;caret-color:transparent}

.admin-otp.is-off .otp-box{background:#f1ece4;border-color:#e3dacb;color:#b5a999}
.login-code-form button:disabled{opacity:.45;cursor:not-allowed}
.team-project-table th:nth-child(1) { width: 17%; }
.team-project-table th:nth-child(2) { width: 13%; }
.team-project-table th:nth-child(3) { width: 10%; }
.team-project-table th:nth-child(4) { width: 18%; }
.team-project-table th:nth-child(5) { width: 14%; }
.team-project-table th:nth-child(6) { width: 9%; }
.team-project-table th:nth-child(7) { width: 7%; }
.team-project-table th:nth-child(8) { width: 12%; }
.team-project-table .team-contact { overflow-wrap: anywhere; }
.tl-bell{position:absolute;bottom:3px;right:4px;display:none;line-height:0;color:#111;background:rgba(255,255,255,.75);border-radius:6px;cursor:pointer;padding:3px}*:hover>.tl-bell{display:block}.tl-bell:hover{background:#fff}
.item-hint{margin:0;font-size:13px;color:var(--muted)}
#notify-dialog{width:min(480px,calc(94 * var(--vw)))}
#notify-dialog .item-field{display:block;font-size:.8rem;font-weight:600;margin-bottom:12px}
#notify-dialog .item-field select,#notify-dialog .item-field textarea{display:block;width:100%;margin-top:4px;box-sizing:border-box;font:inherit}
#notify-dialog .notify-result{font-weight:600;color:var(--ink)}
#notify-dialog{z-index:10}

.ptl{margin:0 0 34px}
.ptl-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.ptl-date{display:flex;align-items:baseline;gap:8px}
.ptl-date strong{font:800 30px/1 "Inter",sans-serif}
.ptl-date span{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ptl-date em{font-style:normal;font-size:11px;font-weight:700;color:#fff;background:var(--orange);border-radius:999px;padding:2px 9px}
.ptl-date.today strong{color:var(--orange)}
.ptl-nav{display:flex;gap:6px}
.ptl-nav button{cursor:pointer;font:inherit;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--ink)}
.ptl-nav button:hover{border-color:var(--orange)}
.ptl-nav button[hidden],.ptl-panel[hidden],.ptl-pop[hidden]{display:none}
.ptl-empty{color:var(--muted);font-size:13px;margin:6px 0}
.ptl-allday{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.ptl-allday small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ptl-scroll{overflow-x:auto;padding-bottom:8px}
.ptl-chart{position:relative;min-width:100%;padding:0 0 6px}
.ptl-axis{position:relative;height:22px}
.ptl-axis span{position:absolute;top:4px;transform:translateX(-50%);font:500 11px "JetBrains Mono",ui-monospace,monospace;color:var(--muted)}
.ptl-lanes{position:relative;margin-top:6px}
.ptl-grid{position:absolute;top:-4px;bottom:-4px;width:0;border-left:1px dashed var(--line);opacity:.8}
.ptl-pick{font:inherit;cursor:pointer;text-align:left}
.ptl-bar{position:absolute;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;border:0;border-radius:999px;background:var(--bg,#fde8c8);color:var(--fg,#5a3b0a);font-size:12px;font-weight:600;line-height:1;padding:0 12px}
.ptl-bar b{font:700 11px "JetBrains Mono",ui-monospace,monospace;opacity:.8;margin-right:4px}
.ptl-allday .ptl-pick{border:0;border-radius:999px;background:var(--bg,#eef0f3);color:var(--fg,#374151);font-size:12px;font-weight:600;padding:4px 12px}
.ptl-pick:hover,.ptl-pick.open{outline:2px solid var(--orange);outline-offset:-1px;z-index:2}
.ptl-bar.done{opacity:.5}
.ptl-bar.live{box-shadow:0 0 0 2px rgba(247,156,42,.5)}
.ptl-now{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--orange);z-index:3;pointer-events:none}
.ptl-now span{position:absolute;top:2px;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font:700 11px "Inter",sans-serif;border-radius:999px;padding:1px 8px}
.ptl-pop{position:fixed;z-index:30;min-width:200px;max-width:300px;display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.ptl-pop span{font-size:12px;color:var(--muted)}
.ptl-actions{display:flex;gap:6px;margin-top:8px}
.ptl-actions a,.ptl-actions button{font:600 12px "Inter",sans-serif;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:4px 12px;cursor:pointer;text-decoration:none}
.ptl-actions a:hover,.ptl-actions button:hover{border-color:var(--orange);background:#fff7ec}
.ptl-actions a[hidden]{display:none}
.ptl{--ppm:2}
.ptl-hint{align-self:center;margin-right:8px;color:var(--muted);font-size:11px}
.ptl-nav{align-items:center}
.ptl-chart{width:calc(var(--ppm) * 1440px)}
.ptl-scroll{overscroll-behavior-x:contain}
.ptl-date.today strong{color:inherit;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:4px;text-underline-offset:5px}
.ptl-bar em{font-style:normal;font-weight:500;opacity:.7;margin-left:6px}
.ptl-tip{position:fixed;z-index:40;max-width:280px;pointer-events:none;display:flex;flex-direction:column;gap:3px;background:#1f2937;color:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 10px 30px rgba(0,0,0,.3);font-size:12px}
.ptl-tip[hidden]{display:none}
.ptl-tip strong{font-size:13px}
.ptl-tip-when{font-family:"JetBrains Mono",ui-monospace,monospace;opacity:.85}
.ptl-tip-tag{opacity:.7;text-transform:uppercase;letter-spacing:.06em;font-size:10px}
.ptl-tip p{margin:4px 0 0;white-space:pre-wrap;opacity:.9}
.proj-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 26px}
.proj-top .proj-map{margin:0;min-height:0;height:100%}
.proj-visual{position:relative;grid-column:span 2;aspect-ratio:16/9;border-radius:2px;overflow:hidden;background:#f3efe8}
.proj-visual img{width:100%;height:100%;object-fit:cover;display:block}
.proj-visual.empty{display:grid;place-items:center;border:2px dashed var(--line);background:transparent}
.proj-visual-form{display:flex;gap:6px}
.proj-visual:not(.empty) .proj-visual-form{position:absolute;right:10px;bottom:10px;opacity:0;transition:opacity .15s}
.proj-visual:hover .proj-visual-form{opacity:1}
.proj-visual-pick,.proj-visual-remove{font:600 12px "Inter",sans-serif;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:6px 14px;cursor:pointer}
.proj-visual-pick:hover,.proj-visual-remove:hover{border-color:var(--orange)}
.ptl-tip-people{color:#fbd38d}
@media (max-width:800px){.proj-top{grid-template-columns:1fr}.proj-visual{grid-column:auto}}
.proj-visual iframe{width:100%;height:100%;border:0;display:block;background:#fff}
.proj-visual-form a.proj-visual-pick{text-decoration:none}
@media (max-width:800px){.proj-top .proj-map{height:240px}}

.page-nav { justify-content: flex-end; margin: 0 0 14px; }
.button-mini.is-active { background: var(--orange); color: #fff; }

.notify-people { border: 1px solid var(--line); padding: 12px 14px; margin: 0; }
.notify-people legend { padding: 0 6px; font: 600 12px "Inter", sans-serif; }
.notify-people-grid { columns: 210px; column-gap: 14px; max-height: 260px; overflow: auto; }
.notify-person { break-inside: avoid; margin-bottom: 6px; display: flex; align-items: center; gap: 8px; font-size: 13px; }
.notify-person input { width: auto; min-height: 0; }
