:root {
    color-scheme: light;
    --navy: #102b4e;
    --navy-deep: #0b213d;
    --blue: #2474d2;
    --blue-bright: #3286e8;
    --blue-soft: #eaf3ff;
    --ink: #1c2d42;
    --muted: #7e8b9d;
    --line: #e8edf2;
    --surface: #ffffff;
    --canvas: #f5f7f9;
    --green: #17976f;
    --green-soft: #e7f6ef;
    --amber: #c98816;
    --amber-soft: #fff4df;
    --red: #d55252;
    --red-soft: #fff0f0;
    font-family: "DM Sans", sans-serif;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 320px; background: var(--canvas); color: var(--ink); font-size: 14px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
.app-shell { min-height: 100vh; }
.sidebar { position: fixed; z-index: 20; inset: 0 auto 0 0; width: 250px; display: flex; flex-direction: column; padding: 27px 16px 15px; background: var(--navy-deep); color: #d5e2f0; }
.brand { display: flex; align-items: center; gap: 10px; padding: 0 12px; margin-bottom: 46px; color: #fff; }
.brand-mark { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: #fff; }
.brand-mark svg { width: 27px; height: 27px; fill: var(--navy); stroke: var(--navy); stroke-width: 1.5; stroke-linejoin: round; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font: 800 22px/1 "Manrope", sans-serif; letter-spacing: -.6px; }
.brand-copy small { margin-top: 5px; font-size: 9px; font-weight: 700; letter-spacing: 2.7px; color: #a9c2dd; }
.workspace-label { padding: 0 13px; color: #8097b1; font-size: 10px; font-weight: 700; letter-spacing: 1.25px; }
.main-nav { display: flex; flex-direction: column; gap: 4px; }
.nav-link { position: relative; display: flex; align-items: center; gap: 13px; min-height: 44px; padding: 0 13px; color: #bac9d9; border-radius: 6px; transition: background .18s ease, color .18s ease; }
.nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-link.active { color: #fff; background: #1e4774; font-weight: 600; }
.nav-link.active::before { position: absolute; left: -16px; top: 10px; width: 3px; height: 24px; background: #58a3fb; content: ""; }
.nav-icon { width: 20px; color: #a9c0d8; font-size: 20px; line-height: 1; text-align: center; }
.nav-link.active .nav-icon { color: #8bc2ff; }
.nav-count { margin-left: auto; min-width: 22px; padding: 3px 6px; text-align: center; font-size: 10px; color: #c6d9ec; border-radius: 10px; background: rgba(255,255,255,.11); }
.nav-dot { width: 7px; height: 7px; margin-left: auto; border-radius: 50%; background: #efa936; }
.nav-divider { height: 1px; margin: 14px 10px 16px; background: rgba(219,233,247,.13); }
.nav-divider + .workspace-label { margin-bottom: 9px; }
.sidebar-bottom { margin-top: auto; }
.help-card { position: relative; display: flex; gap: 10px; align-items: center; padding: 13px 10px; margin: 0 2px 16px; border: 1px solid rgba(217,232,248,.15); border-radius: 7px; background: rgba(255,255,255,.045); }
.help-icon { display: grid; flex: 0 0 25px; height: 25px; place-items: center; color: #acd4ff; border: 1px solid #5981a8; border-radius: 50%; font-weight: 700; }
.help-card strong, .help-card small { display: block; }
.help-card strong { font-size: 10px; color: #e7f0f8; }
.help-card small { margin-top: 4px; color: #9db2c8; font-size: 10px; }
.help-arrow { margin-left: auto; color: #96b6d6; }
.profile-row { width: 100%; display: flex; align-items: center; gap: 9px; padding: 12px 5px 2px; border: 0; border-top: 1px solid rgba(217,232,248,.15); color: #fff; background: transparent; text-align: left; }
.avatar { display: inline-grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 50%; font-size: 11px; font-weight: 700; }
.avatar-blue { background: #d7eaff; color: #1c5ea5; }
.profile-copy { display: flex; flex: 1; flex-direction: column; gap: 4px; }
.profile-copy strong { font-size: 11px; }
.profile-copy small { color: #a3b7cc; font-size: 10px; }
.profile-more { color: #a3b7cc; letter-spacing: 2px; }
.main-area { min-height: 100vh; margin-left: 250px; }
.topbar { position: sticky; z-index: 10; top: 0; height: 66px; display: flex; align-items: center; justify-content: space-between; padding: 0 38px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); }
.topbar-left, .topbar-right, .breadcrumb { display: flex; align-items: center; }
.breadcrumb { gap: 11px; font-size: 11px; }
.breadcrumb span { color: #96a1ae; font-size: 10px; font-weight: 700; letter-spacing: .8px; }
.breadcrumb b { color: #ccd3db; font-weight: 400; }
.breadcrumb strong { color: #394b5f; font-size: 12px; font-weight: 600; }
.topbar-right { gap: 20px; }
.exchange-rate-widget { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 5px 8px; border: 1px solid #e4eaf0; border-radius: 4px; background: #fff; }
.exchange-rate-copy { display: grid; gap: 2px; min-width: 112px; }
.exchange-rate-copy strong { color: #29445e; font-size: 9px; white-space: nowrap; }
.exchange-rate-copy small { color: #8291a0; font-size: 8px; white-space: nowrap; }
.exchange-rate-state { color: #61798e !important; }
.exchange-rate-state.today { color: #2f8058 !important; }
.exchange-rate-state.warning { color: #9a6a17 !important; }
.exchange-rate-edit { display: flex; align-items: center; gap: 4px; }
.exchange-rate-edit input { width: 64px; height: 25px; padding: 0 5px; border: 1px solid #dfe6ec; border-radius: 3px; color: #344c63; font: 600 9px "DM Sans", sans-serif; }
.exchange-rate-edit button { height: 25px; padding: 0 7px; border: 1px solid #cbdceb; border-radius: 3px; color: #286da8; background: #f5f9fc; font-size: 8px; font-weight: 700; }
.exchange-rate-history { position: relative; color: #65798c; font-size: 8px; }
.exchange-rate-history summary { cursor: pointer; list-style: none; white-space: nowrap; }
.exchange-rate-history summary::-webkit-details-marker { display: none; }
.exchange-rate-history > div { position: absolute; z-index: 30; top: calc(100% + 7px); right: 0; min-width: 230px; padding: 8px; border: 1px solid #dfe6ec; border-radius: 4px; background: #fff; box-shadow: 0 8px 20px rgba(19,45,71,.13); }
.exchange-rate-history p { margin: 0; padding: 6px 2px; border-bottom: 1px solid #eef1f4; color: #64788c; font-size: 8px; }
.exchange-rate-history p:last-child { border-bottom: 0; }
.today-label { color: #8995a2; font-size: 11px; }
.icon-button { position: relative; display: grid; width: 34px; height: 34px; place-items: center; color: #637185; border: 1px solid transparent; border-radius: 6px; background: transparent; font-size: 18px; }
.icon-button:hover { background: #f2f6fa; border-color: #e7edf3; }
.notification-button { font-size: 19px; }
.notification-button i { position: absolute; top: 7px; right: 7px; width: 6px; height: 6px; border: 1px solid white; border-radius: 50%; background: #e36a61; }
.top-divider { height: 24px; border-left: 1px solid var(--line); }
.top-user { display: flex; align-items: center; gap: 9px; padding: 0; border: 0; color: #435369; background: transparent; font-size: 11px; font-weight: 600; }
.top-user .avatar { width: 30px; height: 30px; flex-basis: 30px; }
.chevron { color: #93a0ae; font-size: 17px; }
.mobile-menu { display: none; }
.page-content { max-width: 1600px; padding: 32px 38px 50px; margin: 0 auto; animation: page-in .28s ease both; }
@keyframes page-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 25px; }
.page-heading h1 { margin: 0; color: #192e46; font: 700 24px/1.25 "Manrope", sans-serif; letter-spacing: -.55px; }
.page-heading p { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.heading-actions { display: flex; align-items: center; gap: 9px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 37px; padding: 0 14px; border: 1px solid transparent; border-radius: 5px; font-size: 11px; font-weight: 600; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.button:active { transform: translateY(1px); }
.button-primary { color: #fff; background: var(--blue); box-shadow: 0 3px 8px rgba(36,116,210,.16); }
.button-primary:hover { background: #1766bd; }
.button-secondary { color: #516176; border-color: #dfe5eb; background: #fff; }
.button-secondary:hover { background: #f7f9fb; }
.button-danger { color: #fff; background: #c64f4f; }
.button-danger:hover { background: #ad3f3f; }
.button .plus { font-size: 17px; font-weight: 400; line-height: 1; }
.metric-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 14px; margin-bottom: 21px; }
.metric-card { position: relative; min-width: 0; padding: 17px 17px 15px; overflow: hidden; border: 1px solid #e9edf1; border-radius: 7px; background: #fff; }
.metric-head { display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.metric-label { color: #788697; font-size: 11px; font-weight: 500; }
.metric-icon { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 6px; color: #2474d2; background: #edf5ff; font-size: 16px; }
.metric-value { margin-top: 13px; color: #1b3048; font: 700 22px/1 "Manrope", sans-serif; letter-spacing: -.55px; white-space: nowrap; }
.metric-note { display: flex; align-items: center; gap: 5px; margin-top: 10px; color: #8290a0; font-size: 10px; }
.metric-note .positive { color: #16845f; font-weight: 700; }
.metric-note .warning { color: #c18317; font-weight: 700; }
.dashboard-columns { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(270px,1fr); gap: 18px; align-items: start; }
.stack { display: grid; gap: 18px; }
.panel { min-width: 0; border: 1px solid #e7ecf1; border-radius: 7px; background: #fff; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 17px 19px 14px; border-bottom: 1px solid #eef1f4; }
.panel-title { margin: 0; color: #26394e; font: 700 13px "Manrope", sans-serif; }
.panel-subtitle { margin: 5px 0 0; color: #94a0ad; font-size: 10px; }
.text-link { color: #2874c6; font-size: 10px; font-weight: 600; }
.text-link:hover { text-decoration: underline; }
.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; white-space: nowrap; }
th { padding: 11px 17px; color: #8996a5; font-size: 9px; font-weight: 600; letter-spacing: .25px; background: #fbfcfd; }
td { padding: 12px 17px; color: #536174; border-top: 1px solid #f0f2f5; font-size: 10px; }
tbody tr:hover { background: #fbfdff; }
.person-cell { display: flex; align-items: center; gap: 9px; color: #34485e; font-weight: 600; }
.person-initial { display: grid; flex: 0 0 29px; height: 29px; place-items: center; border-radius: 50%; color: #31699f; background: #e8f2fb; font-size: 9px; font-weight: 700; }
.tour-name { color: #3d5166; font-weight: 600; }
.subtle-cell { display: block; margin-top: 3px; color: #9aa5b0; font-size: 9px; font-weight: 400; }
.status { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 12px; font-size: 9px; font-weight: 600; }
.status::before { width: 5px; height: 5px; border-radius: 50%; background: currentColor; content: ""; }
.status-green { color: #18845f; background: #e8f7ef; }
.status-amber { color: #b47a11; background: #fff5e2; }
.status-red { color: #c64e4e; background: #fff0f0; }
.status-blue { color: #276fbd; background: #eaf3ff; }
.status-gray { color: #737f8d; background: #eef1f4; }
.table-action { padding: 5px 7px; border: 0; color: #2874c6; background: transparent; font-size: 10px; font-weight: 600; }
.table-action:hover { text-decoration: underline; }
.danger-text { color: #bd4b4b; }
.upcoming-list { padding: 4px 17px 10px; }
.upcoming-item { display: flex; align-items: center; gap: 11px; padding: 12px 0; border-bottom: 1px solid #eff2f5; }
.upcoming-item:last-child { border-bottom: 0; }
.date-block { display: flex; flex: 0 0 42px; height: 44px; flex-direction: column; align-items: center; justify-content: center; border-radius: 5px; color: #2772bf; background: #edf5ff; }
.date-block strong { font: 700 15px "Manrope", sans-serif; line-height: 1; }
.date-block small { margin-top: 3px; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.upcoming-info { flex: 1; min-width: 0; }
.upcoming-info strong { display: block; overflow: hidden; color: #405368; font-size: 10px; text-overflow: ellipsis; }
.upcoming-info small { display: block; margin-top: 5px; color: #96a1ad; font-size: 9px; }
.occupancy { width: 44px; text-align: right; }
.occupancy strong { color: #344b62; font-size: 10px; }
.occupancy small { display: block; margin-top: 4px; color: #93a0ae; font-size: 8px; }
.collection-list { padding: 5px 18px 13px; }
.collection-row { display: grid; grid-template-columns: 1fr auto; gap: 6px 8px; padding: 11px 0; border-bottom: 1px solid #eff2f5; }
.collection-row:last-child { border-bottom: 0; }
.collection-row strong { color: #42556a; font-size: 10px; }
.collection-row small { color: #94a0ac; font-size: 9px; }
.collection-row b { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: #263c54; font: 700 11px "Manrope", sans-serif; }
.critical-item { display: flex; align-items: flex-start; gap: 10px; padding: 11px 18px; border-bottom: 1px solid #eff2f5; }
.critical-item:last-child { border-bottom: 0; }
.critical-mark { display: grid; flex: 0 0 24px; height: 24px; place-items: center; border-radius: 50%; color: #bd7d11; background: #fff3db; font-size: 12px; font-weight: 700; }
.critical-mark.red { color: #c75252; background: #ffeded; }
.critical-copy { flex: 1; }
.critical-copy strong { display: block; color: #4a5c70; font-size: 10px; font-weight: 600; }
.critical-copy small { display: block; margin-top: 4px; color: #96a2ae; font-size: 9px; line-height: 1.4; }
.dashboard-section { padding: 14px 16px 16px; margin-bottom: 14px; border: 1px solid #e5ebf0; border-radius: 6px; background: #fff; box-shadow: 0 2px 7px rgba(25,55,82,.035); }
.dashboard-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid #edf1f4; }
.dashboard-section-heading h2 { margin: 0; color: #1d4568; font: 800 12px "Manrope", sans-serif; letter-spacing: .35px; }
.dashboard-section-heading p { margin: 4px 0 0; color: #8493a1; font-size: 9px; }
.dashboard-finance-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 0; padding-top: 12px; }
.dashboard-finance-metric { min-width: 0; padding: 2px 13px; border-right: 1px solid #e9eff3; }
.dashboard-finance-metric:first-child { padding-left: 0; }
.dashboard-finance-metric:last-child { padding-right: 0; border-right: 0; }
.dashboard-finance-metric small, .dashboard-density-stats small { display: block; color: #81909e; font-size: 8px; font-weight: 800; letter-spacing: .35px; }
.dashboard-finance-metric strong { display: block; margin-top: 7px; overflow: hidden; color: #173c5c; font: 800 17px "Manrope", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-eye-button { padding: 0 0 0 5px; border: 0; color: #3479a8; background: transparent; cursor: pointer; font-size: 15px; vertical-align: -1px; }
.dashboard-eye-button:hover { color: #174f78; }
.dashboard-finance-metric span { display: block; margin-top: 5px; color: #8a99a7; font-size: 9px; }
.dashboard-inline-action { display: block; padding: 4px 0 0; border: 0; color: #2474b0; background: transparent; cursor: pointer; font-size: 8px; font-weight: 700; }
.dashboard-density { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,1fr); gap: 22px; align-items: center; padding-top: 12px; }
.dashboard-density-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 11px 16px; }
.dashboard-density-stats div { min-width: 0; }
.dashboard-density-stats strong { display: block; margin-top: 4px; color: #234e70; font: 800 17px "Manrope", sans-serif; }
.dashboard-fill { padding-left: 18px; border-left: 1px solid #e7edf2; }
.dashboard-fill-label { display: flex; align-items: baseline; gap: 9px; color: #718293; font-size: 9px; }
.dashboard-fill-label strong { color: #234e70; font-size: 9px; }
.dashboard-fill-label b { margin-left: auto; color: #2474b0; font-size: 11px; }
.dashboard-fill-label span { color: #8b99a6; font-size: 9px; }
.dashboard-fill-bar { height: 13px; margin-top: 11px; overflow: hidden; border-radius: 3px; background: #e7eef3; }
.dashboard-fill-bar i { display: block; height: 100%; border-radius: inherit; background: #277bb4; }
.dashboard-fill-scale { display: flex; justify-content: space-between; margin-top: 5px; color: #9aa7b2; font-size: 8px; }
.dashboard-lower-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; align-items: start; }
.dashboard-lower-grid .dashboard-section { margin-bottom: 0; }
.dashboard-priority-list { padding-top: 4px; }
.dashboard-priority-row { display: grid; grid-template-columns: 22px minmax(0,1fr) auto 14px; gap: 8px; align-items: center; width: 100%; padding: 10px 2px; border: 0; border-bottom: 1px solid #edf1f4; color: inherit; background: transparent; cursor: pointer; text-align: left; }
.dashboard-priority-row:last-child { border-bottom: 0; }
.dashboard-priority-row:hover { background: #f6fafe; }
.dashboard-priority-row > span { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: #39749e; background: #eaf3f9; font-size: 9px; font-weight: 800; }
.dashboard-priority-row div { min-width: 0; }
.dashboard-priority-row strong { display: block; overflow: hidden; color: #355570; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-priority-row small { display: block; margin-top: 3px; overflow: hidden; color: #909eaa; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-priority-row > b { min-width: 22px; color: #1d679d; font: 800 14px "Manrope", sans-serif; text-align: right; }
.dashboard-priority-row > i { color: #8da1b0; font-size: 18px; font-style: normal; }
.dashboard-upcoming { min-width: 0; }
.dashboard-tour-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; padding-top: 11px; }
.dashboard-tour-card { position: relative; min-width: 0; padding: 11px 10px 9px; border: 1px solid #dfe9f0; border-radius: 5px; color: #36546b; background: #fbfdff; cursor: pointer; text-align: left; }
.dashboard-tour-card:hover { border-color: #6ca0c4; background: #f3f9fd; }
.dashboard-tour-card > strong { display: block; overflow: hidden; color: #21567d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-tour-card > span { display: block; margin-top: 5px; color: #8a99a6; font-size: 8px; }
.dashboard-tour-card > div { display: flex; justify-content: space-between; gap: 5px; padding-top: 11px; color: #536e83; font-size: 8px; }
.dashboard-tour-card > div b { font-weight: 700; white-space: nowrap; }
.dashboard-tour-card > div b.attention { color: #bd7a16; }
.dashboard-tour-card em { display: inline-block; padding: 3px 5px; margin-top: 8px; border-radius: 3px; color: #fff; background: #277bb4; font-size: 7px; font-style: normal; font-weight: 800; letter-spacing: .2px; }
.dashboard-tour-card em.attention { color: #8a5c0d; background: #fff1d5; }
.dashboard-tour-card em.danger { color: #a74141; background: #ffebeb; }
.pending-payment-list { display: grid; gap: 7px; }
.pending-payment-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px; border: 1px solid #e1eaf0; border-radius: 4px; background: #fafdff; }
.pending-payment-row > div:first-child { min-width: 0; }
.pending-payment-row strong, .pending-payment-row span, .pending-payment-row small { display: block; }
.pending-payment-row strong { color: #2b506d; font-size: 10px; }
.pending-payment-row span { margin-top: 3px; color: #60778b; font-size: 9px; }
.pending-payment-row small { margin-top: 4px; color: #8d9ba7; font-size: 8px; }
.pending-payment-row > div:last-child { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; }
.pending-payment-row .status { margin-right: 3px; }
.pending-payment-row .button { min-height: 27px; padding: 0 8px; font-size: 8px; }
.dashboard-review-list { display: grid; gap: 8px; max-height: 58vh; overflow-y: auto; padding-right: 3px; }
.dashboard-review-card { padding: 11px 12px; border: 1px solid #dfe9f0; border-radius: 5px; background: #fbfdff; }
.dashboard-review-head, .dashboard-review-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dashboard-review-head strong { color: #22577d; font: 800 11px "Manrope", sans-serif; }
.dashboard-review-meta { margin-top: 8px; }
.dashboard-review-meta strong { color: #365a74; font-size: 10px; }
.dashboard-review-meta span { color: #8797a4; font-size: 8px; }
.dashboard-review-travelers { display: grid; gap: 3px; padding: 8px 9px; margin-top: 8px; border-left: 3px solid #5d9bc3; background: #f1f7fb; }
.dashboard-review-travelers small, .dashboard-review-detail small { color: #8294a2; font-size: 7px; font-weight: 800; letter-spacing: .4px; }
.dashboard-review-travelers strong { color: #315975; font-size: 10px; line-height: 1.45; }
.dashboard-review-travelers span, .dashboard-review-travelers small { color: #718697; font-size: 8px; }
.dashboard-review-actions { display: flex; justify-content: flex-end; gap: 6px; margin-top: 9px; }
.dashboard-review-actions .button, .dashboard-review-detail + .modal-footer .button { min-height: 28px; padding: 0 9px; font-size: 8px; }
.dashboard-review-detail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.dashboard-review-detail > div { display: grid; gap: 4px; min-width: 0; }
.dashboard-review-detail > div > strong { color: #315975; font-size: 10px; }
.dashboard-review-detail section { grid-column: 1 / -1; padding-top: 11px; border-top: 1px solid #e8eef2; }
.dashboard-review-detail h3 { margin: 0 0 8px; color: #2d5875; font: 700 11px "Manrope", sans-serif; }
.dashboard-review-traveler-list { display: grid; gap: 6px; }
.dashboard-review-traveler { display: grid; gap: 3px; padding: 8px 9px; border: 1px solid #e1ebf1; border-radius: 4px; background: #f8fbfd; }
.dashboard-review-traveler strong { color: #315975; font-size: 9px; }
.dashboard-review-traveler span { color: #758999; font-size: 8px; }
.page-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; border-bottom: 1px solid #edf0f3; }
.toolbar-left, .toolbar-right { display: flex; align-items: center; gap: 9px; }
.search-field { position: relative; }
.search-field::before { position: absolute; left: 10px; top: 7px; color: #98a3b0; content: "⌕"; font-size: 17px; }
.search-field input { width: 220px; height: 32px; padding: 0 10px 0 31px; border: 1px solid #e3e8ed; border-radius: 4px; outline: none; color: #384d62; background: #fff; font-size: 10px; }
.search-field input:focus, .form-control:focus { border-color: #73a9e1; box-shadow: 0 0 0 3px rgba(36,116,210,.09); }
.select-control { height: 32px; padding: 0 27px 0 10px; border: 1px solid #e3e8ed; border-radius: 4px; outline: none; color: #647387; background: #fff; font-size: 10px; }
.table-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 17px; color: #8d99a7; font-size: 10px; }
.pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 15px; border-top: 1px solid #edf0f3; color: #8492a0; font-size: 10px; }
.pagination > div { display: flex; align-items: center; gap: 9px; }
.pagination .small-button { min-width: 28px; min-height: 27px; padding: 3px 7px; font-size: 13px; }
.pagination .small-button:disabled { cursor: default; opacity: .45; }
.table-empty { padding: 35px 15px; color: #8492a0; text-align: center; }
.module-tabs, .detail-tabs { display: flex; gap: 4px; margin: -9px 0 15px; overflow-x: auto; border-bottom: 1px solid #dfe6ed; scrollbar-width: thin; }
.module-tab, .detail-tab { position: relative; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; min-height: 38px; padding: 0 12px; border: 0; color: #718094; background: transparent; font-size: 10px; font-weight: 600; }
.module-tab:hover, .detail-tab:hover { color: #236bb6; background: #f1f6fb; }
.module-tab.active, .detail-tab.active { color: #1d65ad; }
.module-tab.active::after, .detail-tab.active::after { position: absolute; right: 8px; bottom: -1px; left: 8px; height: 2px; background: #2b7ccd; content: ""; }
.module-tab span, .detail-tab span { padding: 2px 5px; border-radius: 10px; color: #647891; background: #edf1f5; font-size: 9px; }
.wide-table { overflow-x: auto; }
.tour-table { min-width: 1510px; }
.tour-table th, .tour-table td { padding-right: 10px; padding-left: 10px; }
.tour-table th[data-sort] { cursor: pointer; }
.tour-table th[data-sort]:hover { color: #2673c2; }
.tour-row-link { padding: 0; text-align: left; font-weight: 700; }
.row-actions { position: relative; }
.row-actions summary { cursor: pointer; color: #2673c2; font-size: 10px; font-weight: 600; list-style: none; }
.row-actions summary::-webkit-details-marker { display: none; }
.row-actions summary::after { margin-left: 5px; content: "⌄"; }
.row-actions > div { position: absolute; z-index: 5; top: 22px; right: 0; display: grid; min-width: 155px; padding: 5px; border: 1px solid #e1e7ed; border-radius: 5px; background: #fff; box-shadow: 0 8px 20px rgba(19,45,71,.13); }
.row-actions button { padding: 7px 9px; border: 0; color: #526579; background: transparent; font-size: 10px; text-align: left; white-space: nowrap; }
.row-actions button:hover { color: #1d65ad; background: #f2f7fc; }
.tour-overview { display: grid; grid-template-columns: minmax(200px,1.2fr) minmax(350px,2fr) auto; gap: 16px; align-items: center; padding: 14px 16px; margin: 7px 0 15px; border: 1px solid #e5ebf0; border-radius: 6px; background: #fff; }
.tour-overview h1 { margin: 4px 0 5px; color: #20364f; font: 700 17px "Manrope", sans-serif; }
.eyebrow { color: #3478b9; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.overview-meta { color: #8290a0; font-size: 10px; }
.overview-meta span { margin-left: 10px; }
.overview-stats { display: grid; grid-template-columns: repeat(4,minmax(70px,1fr)); gap: 12px; }
.overview-stats span, .compact-summary span { color: #8390a0; font-size: 9px; }
.overview-stats strong, .compact-summary strong { display: block; margin-top: 4px; color: #344b63; font: 700 12px "Manrope", sans-serif; white-space: nowrap; }
.overview-actions { display: flex; gap: 6px; }
.overview-actions .button { min-height: 32px; padding: 0 9px; font-size: 9px; white-space: nowrap; }
.back-link { margin-bottom: 3px; }
.compact-summary { display: flex; gap: 28px; padding: 12px 15px; margin-bottom: 12px; border: 1px solid #e5ebf0; border-radius: 5px; background: #fff; }
.panel-footer-actions { display: flex; justify-content: flex-end; gap: 7px; padding: 12px 14px; border-top: 1px solid #edf0f3; }
.notes-panel textarea { min-height: 180px; margin: 15px; width: calc(100% - 30px); }
.field-hint { color: #8996a4; font-size: 10px; line-height: 1.4; }
.multi-select { min-height: 190px; }
.tour-table .status { padding: 4px 7px; }
.tour-overview + .detail-tabs { margin-top: 0; }
.roster-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; padding: 9px 11px; border-bottom: 1px solid #e8edf2; background: #fbfcfd; }
.roster-toolbar .search-field { flex: 1 1 210px; }
.roster-toolbar .search-field input { width: 100%; }
.roster-toolbar .select-control, .roster-toolbar .button { min-height: 30px; height: 30px; font-size: 10px; }
.roster-count { color: #6c7a8b; font-size: 10px; font-weight: 600; white-space: nowrap; }
.roster-filter-menu, .roster-column-menu { position: relative; flex: 0 0 auto; }
.roster-filter-menu summary, .roster-column-menu summary { padding: 8px 10px; border: 1px solid #e1e7ed; border-radius: 4px; color: #526579; background: #fff; cursor: pointer; font-size: 10px; font-weight: 600; list-style: none; white-space: nowrap; }
.roster-filter-menu summary::-webkit-details-marker, .roster-column-menu summary::-webkit-details-marker { display: none; }
.roster-filter-grid { position: absolute; z-index: 15; top: calc(100% + 5px); left: 0; display: grid; grid-template-columns: repeat(3,minmax(125px,1fr)); gap: 7px; width: min(600px,90vw); padding: 11px; border: 1px solid #dfe6ec; border-radius: 5px; background: #fff; box-shadow: 0 8px 22px rgba(19,45,71,.15); }
.roster-filter-grid label { display: grid; gap: 4px; color: #69798c; font-size: 9px; font-weight: 600; }
.roster-filter-grid .select-control { width: 100%; min-width: 0; }
.roster-filter-grid .button { align-self: end; }
.roster-column-menu > div { position: absolute; z-index: 15; top: calc(100% + 5px); right: 0; display: grid; grid-template-columns: repeat(2,minmax(135px,1fr)); gap: 4px 9px; min-width: 310px; max-height: 360px; padding: 11px; overflow: auto; border: 1px solid #dfe6ec; border-radius: 5px; background: #fff; box-shadow: 0 8px 22px rgba(19,45,71,.15); }
.roster-column-menu label { display: flex; align-items: center; gap: 6px; color: #53667b; font-size: 10px; }
.roster-column-menu input, .roster-table input[type="checkbox"] { accent-color: #2878c8; }
.roster-table-wrap { width: 100%; height: auto; max-height: none; min-height: 0; overflow-x: auto; overflow-y: hidden; }
.roster-table { width: max-content; min-width: 2500px; table-layout: fixed; }
.roster-table th { position: sticky; z-index: 2; top: 0; height: 29px; padding: 5px 7px; background: #f5f8fa; font-size: 8px; white-space: nowrap; }
.roster-table th[data-sort-roster] { cursor: pointer; }
.roster-table th[data-sort-roster]:hover { color: #2673c2; }
.roster-table td { height: 31px; max-width: 160px; padding: 4px 7px; font-size: 9px; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; }
.roster-table .person-cell { gap: 5px; font-size: 9px; }
.roster-table .person-initial { width: 22px; height: 22px; flex-basis: 22px; font-size: 8px; }
.roster-table .table-action { padding: 3px 4px; font-size: 9px; }
.roster-table .status { padding: 3px 6px; font-size: 8px; }
.roster-row.has-room-group td:first-child { border-left: 3px solid #58a1c9; }
.room-group-pill { display: inline-flex; flex-direction: column; gap: 2px; padding: 4px 6px; border-left: 2px solid #58a1c9; color: #40576e; background: #f1f7fb; font-size: 8px; }
.room-group-pill small { color: #8292a3; font-size: 7px; }
.bulk-toolbar { display: none; align-items: center; gap: 10px; min-height: 36px; padding: 5px 12px; border-bottom: 1px solid #e7ecf1; color: #53677d; background: #f4f8fc; font-size: 10px; }
.bulk-toolbar.visible { display: flex; }
.bulk-toolbar > span { margin-right: auto; font-weight: 700; }
.tour-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 15px; }
.tour-card { overflow: hidden; border: 1px solid #e5ebf0; border-radius: 7px; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
.tour-card:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(23,51,82,.08); }
.tour-card-top { position: relative; min-height: 116px; padding: 17px; overflow: hidden; color: #fff; background: linear-gradient(115deg, #174c7d, #347ab6); }
.tour-card-top::after { position: absolute; right: -18px; bottom: -57px; width: 165px; height: 165px; border: 1px solid rgba(255,255,255,.19); border-radius: 50%; box-shadow: 0 0 0 18px rgba(255,255,255,.04), 0 0 0 37px rgba(255,255,255,.04); content: ""; }
.tour-card-top.tone-2 { background: linear-gradient(115deg, #235464, #35889a); }
.tour-card-top.tone-3 { background: linear-gradient(115deg, #354f74, #5985ae); }
.tour-card-top.tone-4 { background: linear-gradient(115deg, #334c69, #758da5); }
.tour-card-tag { position: relative; z-index: 1; display: inline-block; padding: 4px 7px; color: #e7f3ff; border: 1px solid rgba(255,255,255,.25); border-radius: 3px; font-size: 8px; font-weight: 600; }
.tour-card-top h3 { position: relative; z-index: 1; max-width: 80%; margin: 17px 0 0; font: 700 17px "Manrope", sans-serif; }
.tour-card-body { padding: 14px 16px 13px; }
.tour-dates { display: flex; justify-content: space-between; gap: 8px; padding-bottom: 12px; color: #8190a0; font-size: 9px; }
.tour-dates span { flex: 1; min-width: 0; }
.tour-dates strong { display: block; overflow: hidden; margin-top: 4px; color: #40546a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.tour-progress-line { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; color: #8693a1; font-size: 9px; }
.tour-progress-line strong { color: #3e5368; }
.progress-track { height: 5px; overflow: hidden; border-radius: 5px; background: #edf1f4; }
.progress-fill { height: 100%; border-radius: inherit; background: #3684d5; }
.tour-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; padding: 14px 0 12px; }
.tour-stat { min-width: 0; }
.tour-stat small { display: block; color: #95a0ad; font-size: 8px; }
.tour-stat strong { display: block; overflow: hidden; margin-top: 5px; color: #3b5066; font-size: 10px; text-overflow: ellipsis; }
.tour-card-footer { display: flex; justify-content: flex-end; padding-top: 10px; border-top: 1px solid #edf0f3; }
.tour-selector-strip { display: flex; align-items: center; gap: 5px; min-height: 40px; padding: 4px 6px; margin: 0 0 5px; overflow-x: auto; overflow-y: hidden; border: 1px solid #dce7f0; border-radius: 5px; background: #f8fbfe; box-shadow: 0 1px 3px rgba(20,57,89,.05); scrollbar-width: thin; }
.tour-selector-tab { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; max-width: 210px; min-height: 30px; padding: 0 10px; overflow: hidden; border: 1px solid #d7e4ef; border-radius: 4px; color: #28628f; background: #fff; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; transition: background .15s ease,border-color .15s ease,color .15s ease; }
.tour-selector-tab span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tour-selector-tab:hover { border-color: #75a8ce; color: #174c7d; background: #eff7fc; }
.tour-selector-tab.active { position: relative; border-color: #1b6098; color: #fff; background: #1f68a4; box-shadow: 0 2px 5px rgba(19,75,120,.17); font-weight: 700; }
.tour-selector-tab.active::before { margin-right: 5px; color: #fff; content: "✓"; font-size: 9px; }
.tour-selector-card { display: flex; flex: 0 0 190px; min-height: 78px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; padding: 10px 12px; border: 1px solid #e0e7ee; border-radius: 5px; color: #52667c; background: #fff; text-align: left; transition: border-color .15s ease, background .15s ease; }
.tour-selector-card:hover { border-color: #91b7d6; background: #f8fbfe; }
.tour-selector-card.active { border-color: #337db8; box-shadow: inset 0 0 0 1px #337db8; background: #f2f8fd; }
.tour-selector-card > span { color: #3376ad; font-size: 9px; font-weight: 700; }
.tour-selector-card strong { overflow: hidden; max-width: 100%; color: #263f58; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.tour-selector-card small { color: #8795a3; font-size: 9px; }
.tour-selected-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 2px 11px; }
.tour-selected-heading h2 { margin: 3px 0; color: #20364f; font: 700 16px "Manrope", sans-serif; }
.tour-selected-heading p { margin: 0; color: #8391a0; font-size: 9px; }
.tour-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; margin-bottom: 5px; }
.tour-summary-card { min-width: 0; padding: 7px; border: 1px solid #dfe8f0; border-radius: 4px; background: #fff; box-shadow: 0 1px 3px rgba(20,57,89,.05); }
.tour-summary-card h2 { display: flex; align-items: center; justify-content: space-between; gap: 5px; margin: 0 0 5px; color: #1f5f92; font-size: 9px; font-weight: 700; }
.tour-summary-card h2 span { color: #7890a6; font-size: 8px; font-weight: 600; }
.tour-summary-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; }
.tour-room-summary .tour-summary-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
.tour-summary-metric { min-width: 0; padding: 3px 4px; border: 1px solid #eef2f5; border-radius: 3px; background: #fafcfd; }
.tour-summary-metric small { display: block; overflow: hidden; color: #8996a3; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.tour-summary-metric strong { display: block; overflow: hidden; margin-top: 3px; color: #2e4962; font: 700 11px "DM Sans", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.tour-summary-metric.tour-money-paid strong { color: #258255; }
.tour-summary-metric.tour-money-balance strong { color: #b64e4e; }
.tour-occupancy-metric { min-width: 0; }
.tour-summary-progress { display: block; height: 5px; margin-top: 5px; overflow: hidden; border-radius: 4px; background: #edf1f4; }
.tour-summary-progress i { display: block; height: 100%; border-radius: inherit; background: #4c98c5; }
.tour-summary-progress i.medium { background: #3186b5; }
.tour-summary-progress i.high { background: #398b68; }
.tour-occupancy-metric em { display: block; margin-top: 4px; overflow: hidden; color: #8293a1; font-size: 7px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.tour-occupancy-metric em::first-letter { color: #4f7088; }
.tour-roster-panel { border: 1px solid #e4eaf0; border-radius: 5px; background: #fff; }
.tour-roster-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border-bottom: 1px solid #edf0f3; }
.tour-roster-heading h2 { margin: 0; color: #1f5f92; font: 700 12px "Manrope", sans-serif; }
.tour-roster-heading span { margin-left: 7px; color: #8b98a5; font-size: 9px; }
.tour-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.tour-actions-label { margin-right: 2px; color: #225d8d; font-size: 8px; font-weight: 800; letter-spacing: .4px; }
.tour-header-actions .button { min-height: 29px; padding: 0 9px; font-size: 9px; }
.tour-other-actions { position: relative; }
.tour-other-actions summary { min-height: 29px; display: inline-flex; align-items: center; gap: 5px; padding: 0 9px; border: 1px solid #dfe7ee; border-radius: 4px; color: #45637e; background: #fff; cursor: pointer; font-size: 9px; font-weight: 600; list-style: none; }
.tour-other-actions summary::-webkit-details-marker { display: none; }
.tour-other-actions > div { position: absolute; z-index: 20; top: calc(100% + 4px); right: 0; display: grid; min-width: 145px; padding: 4px; border: 1px solid #dfe7ee; border-radius: 4px; background: #fff; box-shadow: 0 6px 18px rgba(17,53,86,.12); }
.tour-other-actions button { padding: 7px 8px; border: 0; color: #36546d; background: #fff; font-size: 9px; text-align: left; }
.tour-other-actions button:hover { background: #eef6fc; color: #1e659e; }
.tour-roster-actions { display: flex; align-items: center; gap: 4px; }
.tour-roster-actions .button { min-height: 27px; padding: 0 7px; font-size: 8px; }
.tour-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.tour-actions-label { margin-right: 2px; color: #225d8d; font-size: 8px; font-weight: 800; letter-spacing: .4px; }
.tour-header-actions .button { min-height: 29px; padding: 0 9px; font-size: 9px; }
.tour-other-actions { position: relative; }
.tour-other-actions summary { min-height: 29px; display: inline-flex; align-items: center; gap: 5px; padding: 0 9px; border: 1px solid #dfe7ee; border-radius: 4px; color: #45637e; background: #fff; cursor: pointer; font-size: 9px; font-weight: 600; list-style: none; }
.tour-other-actions summary::-webkit-details-marker { display: none; }
.tour-other-actions > div { position: absolute; z-index: 20; top: calc(100% + 4px); right: 0; display: grid; min-width: 145px; padding: 4px; border: 1px solid #dfe7ee; border-radius: 4px; background: #fff; box-shadow: 0 6px 18px rgba(17,53,86,.12); }
.tour-other-actions button { padding: 7px 8px; border: 0; color: #36546d; background: #fff; font-size: 9px; text-align: left; }
.tour-other-actions button:hover { background: #eef6fc; color: #1e659e; }
.tour-management-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 4px; padding: 5px 7px; margin-bottom: 4px; border: 1px solid #dfe8f0; border-radius: 4px; background: #f8fbfe; box-shadow: 0 1px 3px rgba(20,57,89,.04); }
.tour-quick-filters { width: 100%; display: flex; align-items: center; gap: 4px; padding-bottom: 4px; border-bottom: 1px solid #e5edf3; overflow-x: auto; scrollbar-width: thin; }
.tour-quick-filter { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; min-height: 23px; padding: 0 7px; border: 1px solid #d6e3ed; border-radius: 12px; color: #42627b; background: #fff; font-size: 7px; font-weight: 700; white-space: nowrap; }
.tour-quick-filter span { color: #748ba0; font-size: 7px; }
.tour-quick-filter:hover { border-color: #6da4ce; background: #f0f7fc; }
.tour-quick-filter.active { border-color: #1d6ba7; color: #fff; background: #216fa9; }
.tour-quick-filter.active span { color: #e6f3fc; }
.tour-management-filter-row { display: flex; flex: 1 1 100%; flex-wrap: wrap; align-items: end; gap: 4px; }
.tour-management-table thead > tr:first-child th { position: sticky; z-index: 3; top: 0; height: 28px; padding: 3px 4px; border-bottom: 1px solid #234a6b; color: #fff; background: #173d5e; font-size: 8px; font-weight: 700; white-space: nowrap; }
.tour-management-table thead > tr:first-child th[data-tour-sort]:hover { color: #fff; background: #21577f; }
.tour-column-filter-row th { position: sticky; z-index: 2; top: 28px; height: 27px; padding: 2px 3px; border-bottom: 1px solid #dce7ef; background: #edf5fb; }
.tour-column-filter-row input, .tour-column-filter-row select { width: 100%; min-width: 0; height: 21px; padding: 0 4px; border: 1px solid #d5e1eb; border-radius: 3px; outline: none; color: #496478; background: #fff; font: 8px "DM Sans", sans-serif; }
.tour-column-filter-row input:focus, .tour-column-filter-row select:focus { border-color: #4b91c3; box-shadow: 0 0 0 2px rgba(45,122,174,.12); }
.tour-quick-filters { width: 100%; display: flex; align-items: center; gap: 4px; padding-bottom: 4px; border-bottom: 1px solid #e5edf3; overflow-x: auto; scrollbar-width: thin; }
.tour-quick-filter { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; min-height: 23px; padding: 0 7px; border: 1px solid #d6e3ed; border-radius: 12px; color: #42627b; background: #fff; font-size: 7px; font-weight: 700; white-space: nowrap; }
.tour-quick-filter span { color: #748ba0; font-size: 7px; }
.tour-quick-filter:hover { border-color: #6da4ce; background: #f0f7fc; }
.tour-quick-filter.active { border-color: #1d6ba7; color: #fff; background: #216fa9; }
.tour-quick-filter.active span { color: #e6f3fc; }
.tour-management-filter-row { display: flex; flex: 1 1 100%; flex-wrap: wrap; align-items: end; gap: 4px; }
.tour-filter-caption { align-self: center; margin: 0 3px 5px 1px; color: #1f5f92; font-size: 8px; font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.tour-management-controls .search-field { flex: 1 1 180px; }
.tour-management-controls .search-field input { width: 100%; }
.tour-global-search-field { position: relative; z-index: 15; }
.tour-global-search-results { position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; width: min(360px, 88vw); max-height: 300px; overflow-y: auto; border: 1px solid #d9e5ed; border-radius: 5px; background: #fff; box-shadow: 0 8px 22px rgba(19,45,71,.15); }
.tour-global-search-result { display: grid; width: 100%; gap: 3px; padding: 8px 10px; border: 0; border-bottom: 1px solid #edf1f4; color: #3f5c72; background: #fff; text-align: left; cursor: pointer; }
.tour-global-search-result:last-child { border-bottom: 0; }
.tour-global-search-result:hover { background: #f0f7fc; }
.tour-global-search-result strong { color: #245a81; font-size: 10px; }
.tour-global-search-result span, .tour-global-search-result small { color: #81919f; font-size: 8px; }
.tour-global-search-empty { padding: 12px; color: #8797a4; font-size: 9px; }
.tour-management-table th[data-tour-filter] { position: relative; cursor: pointer; }
.tour-management-table th[data-tour-filter]:hover { background: #21577f; }
.tour-filter-icon { margin-left: 4px; color: #b8d8eb; font-size: 8px; }
.tour-filter-active .tour-filter-icon { color: #72c2ee; }
.tour-header-filter-popover { position: absolute; z-index: 30; top: calc(100% + 4px); left: 3px; display: grid; min-width: 142px; padding: 5px; border: 1px solid #d6e3ec; border-radius: 4px; background: #fff; box-shadow: 0 7px 18px rgba(19,45,71,.16); text-align: left; }
.tour-header-filter-portal { position: fixed; z-index: 45; }
.tour-header-filter-portal .tour-header-filter-popover { position: static; }
.tour-header-filter-popover input { width: 132px; height: 25px; padding: 0 6px; border: 1px solid #d5e1eb; border-radius: 3px; outline: none; color: #405d73; background: #fff; font: 8px "DM Sans", sans-serif; }
.tour-header-filter-popover button { padding: 6px 7px; border: 0; color: #49677d; background: #fff; cursor: pointer; font-size: 8px; text-align: left; white-space: nowrap; }
.tour-header-filter-popover button:hover, .tour-header-filter-popover button.selected { color: #1f6da4; background: #eef6fb; }
.tour-header-filter-popover .tour-header-filter-clear { margin-top: 3px; border-top: 1px solid #edf1f4; color: #a04f4f; }
.inline-edit-value { max-width: 100%; padding: 2px 3px; overflow: hidden; border: 1px solid transparent; border-radius: 3px; color: inherit; background: transparent; cursor: text; font: inherit; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.inline-edit-value::after { color: #8eabbc; content: " ✎"; font-size: 8px; opacity: 0; }
.inline-edit-value:hover { border-color: #bcd5e4; background: #f4f9fc; }
.inline-edit-value:hover::after { opacity: 1; }
.inline-edit-wrap { display: flex; align-items: center; gap: 3px; min-width: 145px; }
.inline-edit-input { width: 100%; min-width: 0; height: 23px; padding: 0 5px; border: 1px solid #6ea5c5; border-radius: 3px; outline: none; color: #36556c; background: #fff; font: 9px "DM Sans", sans-serif; }
.inline-edit-save, .inline-edit-cancel { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 3px; color: #fff; cursor: pointer; font-size: 12px; }
.inline-edit-save { background: #287aae; }
.inline-edit-cancel { background: #b65a5a; }
.passenger-highlight td { animation: passenger-row-highlight 2.6s ease both; }
@keyframes passenger-row-highlight { 0%, 75% { background-color: #dff1fc; } 100% { background-color: transparent; } }
.tour-management-controls label:not(.search-field) { display: grid; gap: 2px; color: #7f8d9b; font-size: 7px; font-weight: 600; }
.tour-management-controls .select-control { height: 26px; min-width: 78px; padding: 0 20px 0 6px; font-size: 8px; }
.tour-management-count { margin: 0 2px 5px auto; color: #63778b; font-size: 8px; white-space: nowrap; }
.tour-roster-wrap { width: 100%; height: auto; max-height: none; min-height: 0; overflow-x: auto; overflow-y: hidden; }
.tour-management-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.tour-management-table col { box-sizing: border-box; }
.tour-management-table thead > tr:first-child th { position: sticky; z-index: 3; top: 0; height: 28px; padding: 3px 4px; border-bottom: 1px solid #234a6b; color: #fff; background: #173d5e; font-size: 8px; font-weight: 700; white-space: nowrap; }
.tour-management-table thead > tr:first-child th[data-tour-sort]:hover { color: #fff; background: #21577f; }
.tour-column-filter-row th { position: sticky; z-index: 2; top: 28px; height: 27px; padding: 2px 3px; border-bottom: 1px solid #dce7ef; background: #edf5fb; }
.tour-column-filter-row input, .tour-column-filter-row select { width: 100%; min-width: 0; height: 21px; padding: 0 4px; border: 1px solid #d5e1eb; border-radius: 3px; outline: none; color: #496478; background: #fff; font: 8px "DM Sans", sans-serif; }
.tour-column-filter-row input:focus, .tour-column-filter-row select:focus { border-color: #4b91c3; box-shadow: 0 0 0 2px rgba(45,122,174,.12); }
.tour-management-table th[data-tour-sort] { cursor: pointer; }
.tour-management-table th[data-tour-sort]:hover { color: #2874b5; }
.tour-management-table td { height: 27px; padding: 2px 4px; border-bottom: 1px solid #eef1f4; color: #465a6f; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tour-management-table [data-tour-col="passport"] .status, .tour-management-table [data-tour-col="visa"] .status { max-width: 66px; padding: 2px 4px; overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.tour-management-table [data-tour-col="address"].tour-address { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tour-roster-row:hover td { background: #f8fbfd; }
.tour-roster-row.room-assigned td { background: var(--room-row-tint); }
.tour-roster-row.room-assigned:hover td { background: var(--room-row-tint); }
.tour-roster-row.room-group-start td { border-top: 2px solid var(--room-row-edge, #c8ddea); }
.tour-roster-row.room-unassigned td { background: #fff; }
.tour-roster-row[data-room-group=""] td:first-child { color: #8b96a2; }
.tour-management-table .money-cell { color: #344c63; font-variant-numeric: tabular-nums; text-align: right; }
.tour-management-table th[data-tour-col="price"], .tour-management-table th[data-tour-col="paid"], .tour-management-table th[data-tour-col="balance"], .tour-management-table td[data-tour-col="price"], .tour-management-table td[data-tour-col="paid"], .tour-management-table td[data-tour-col="balance"] { text-align: center; }
.tour-management-table td.money-cell { text-align: center; }
.tour-room-pill { display: inline-flex; min-width: 92px; flex-direction: column; gap: 1px; padding: 3px 5px; border-left: 2px solid #5794bf; color: #3e5b74; background: #f1f7fb; }
.tour-room-pill strong { font-size: 8px; }
.tour-room-pill > span { font-size: 8px; font-weight: 700; }
.tour-room-pill small { color: #8292a1; font-size: 7px; }
.tour-room-compact { display: grid; justify-items: start; gap: 2px; max-width: 100%; white-space: normal; line-height: 1.05; }
.tour-room-compact strong { color: #40576e; font-size: 8px; font-weight: 700; }
.tour-room-compact small { color: #788d9d; font-size: 7px; }
.application-child-section { background: #fbfdff; }
.application-child-traveler { border-color: #c8dce9; background: #f6fbfe; }
.child-age-preview { margin: 6px 0 0; color: #2e7a59; font-size: 9px; }
.child-age-preview.invalid { color: #b24f4f; }
.application-room-assignment-list { display: grid; gap: 9px; }
.application-room-assignment { padding: 10px; border: 1px solid #dfe8ef; border-radius: 4px; background: #f8fbfd; }
.application-room-assignment h3 { margin: 0 0 5px; color: #315a77; font: 700 10px "Manrope", sans-serif; }
.application-room-assignment label { display: grid; gap: 4px; color: #5f7384; font-size: 9px; font-weight: 600; }
.room-vacancy-warning { display: inline-block; padding: 2px 4px; border: 1px solid #f0d391; border-radius: 3px; color: #875d13; background: #fff6df; font-size: 8px; font-weight: 700; white-space: nowrap; }
.room-full-status { color: #347b55; font-size: 8px; font-weight: 700; }
.passport-flag { display: inline-block; min-width: 16px; text-align: center; font-size: 11px; font-weight: 800; }
.passport-flag.ready { color: #28764d; }
.passport-flag.missing { color: #b33f45; }
.test-data-badge { display: inline-flex; margin-left: 4px; padding: 2px 4px; font-size: 7px; vertical-align: middle; white-space: nowrap; }
.tour-unassigned-room { color: #8c96a1; font-size: 8px; }
.tour-companion { display: inline-block; max-width: 140px; overflow: hidden; color: #5f7285; text-overflow: ellipsis; }
.gift-delivery { padding: 4px 6px; border: 1px solid #e2e8ed; border-radius: 3px; color: #77838e; background: #fff; font-size: 8px; font-weight: 600; white-space: nowrap; }
.gift-delivery:hover { border-color: #9bbbd2; color: #316e9e; }
.gift-delivery.delivered { border-color: #cfe6d9; color: #28734f; background: #f3faf6; }
.detail-hero { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 19px; color: white; border-radius: 7px; background: linear-gradient(115deg, #153d67, #2d75b4); }
.detail-hero h2 { margin: 0; font: 700 20px "Manrope", sans-serif; }
.detail-hero p { margin: 7px 0 0; color: #d0e4f7; font-size: 11px; }
.detail-hero .button { color: #fff; border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.08); }
.detail-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin: 15px 0; }
.detail-metric { padding: 14px 15px; border: 1px solid #e8edf1; border-radius: 6px; background: #fff; }
.detail-metric small { color: #8793a1; font-size: 9px; }
.detail-metric strong { display: block; margin-top: 7px; color: #263c54; font: 700 17px "Manrope", sans-serif; }
.ops-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; padding: 15px; }
.op-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 10px; border: 1px solid #edf0f3; border-radius: 5px; color: #4f6073; font-size: 10px; }
.op-item input { accent-color: #2776ca; }
.op-item.done { border-color: #d7eee4; background: #f4fbf7; }
.operation-select { width: 110px; max-width: 100%; padding-right: 5px; padding-left: 6px; font-size: 9px; }
.notification-list { display: grid; gap: 7px; }
.notification-item { display: block; padding: 11px 12px; border: 1px solid #edf0f3; border-radius: 5px; background: #fff; }
.notification-item:hover { border-color: #cfdfef; background: #f7fbff; }
.notification-item strong, .notification-item small { display: block; }
.notification-item strong { color: #40546a; font-size: 11px; }
.notification-item small { margin-top: 5px; color: #8996a4; font-size: 9px; }
.registration-list { display: grid; gap: 11px; }
.application-queue-panel { overflow: hidden; }
.application-status-tabs { display: flex; gap: 5px; padding: 8px 10px 0; overflow-x: auto; border-bottom: 1px solid #dfe7ee; background: #f8fbfd; scrollbar-width: thin; }
.application-status-tab { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; min-height: 31px; padding: 0 10px; border: 1px solid #d7e3ed; border-bottom: 0; border-radius: 4px 4px 0 0; color: #45657f; background: #fff; font-size: 8px; font-weight: 700; white-space: nowrap; }
.application-status-tab span { min-width: 17px; padding: 2px 4px; border-radius: 9px; color: #28689f; background: #eaf3fa; font-size: 8px; text-align: center; }
.application-status-tab.active { border-color: #276da8; color: #fff; background: #276da8; }
.application-status-tab.active span { color: #1e5d94; background: #fff; }
.application-record-list { display: grid; gap: 7px; padding: 9px 10px 11px; background: #f8fbfd; }
.application-record-card { padding: 9px 10px; border: 1px solid #dfe7ee; border-radius: 4px; background: #fff; box-shadow: 0 1px 2px rgba(20,57,89,.04); }
.application-record-top { display: flex; align-items: center; gap: 7px; color: #5d7083; font-size: 8px; }
.application-record-top > strong { color: #285d87; font-size: 9px; }
.application-record-top time { margin-left: auto; color: #8795a2; }
.application-record-people { display: flex; align-items: baseline; gap: 8px; margin-top: 6px; }
.application-record-people strong { color: #263f56; font-size: 11px; }
.application-record-people > span { color: #82909c; font-size: 8px; }
.application-record-meta { display: flex; flex-wrap: wrap; gap: 5px 14px; margin-top: 6px; color: #687b8e; font-size: 8px; }
.application-record-actions { display: flex; justify-content: flex-end; margin-top: 5px; }
.application-record-actions .button { min-height: 26px; padding: 0 9px; font-size: 8px; }
.application-detail-members { display: grid; gap: 6px; margin-top: 5px; }
.application-detail-members article { display: grid; gap: 3px; padding: 7px 8px; border: 1px solid #e3ebf1; border-radius: 4px; background: #f8fbfd; }
.application-detail-members strong { color: #315876; font-size: 9px; }
.application-detail-members span { color: #64788b; font-size: 8px; }
.registration-card { display: grid; grid-template-columns: minmax(190px,1.2fr) minmax(130px,.8fr) minmax(120px,.7fr) auto; gap: 15px; align-items: center; padding: 15px 17px; border: 1px solid #e7ecf1; border-radius: 6px; background: #fff; }
.registration-card .person-cell { font-size: 11px; }
.registration-meta small { display: block; color: #92a0af; font-size: 9px; }
.registration-meta strong { display: block; margin-top: 5px; color: #4a5c70; font-size: 10px; }
.registration-actions { display: flex; gap: 5px; }
.small-button { padding: 7px 9px; border: 1px solid #e4e9ee; border-radius: 4px; color: #5e6e80; background: #fff; font-size: 9px; font-weight: 600; }
.small-button.approve { color: #19815e; border-color: #d8eee4; background: #f5fbf7; }
.small-button.cancel { color: #c35454; border-color: #f1dada; }
.finance-layout { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(270px,.8fr); gap: 16px; align-items: start; }
.finance-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 16px; }
.finance-summary .metric-card { padding: 15px; }
.finance-summary-extended { grid-template-columns: repeat(5,minmax(0,1fr)); }
.finance-currency-values { display: grid; gap: 3px; margin-top: 11px; }
.finance-currency-values span { color: #718293; font-size: 10px; }
.finance-currency-values strong { color: #1e405d; font: 800 13px "Manrope", sans-serif; }
.finance-account-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 12px 16px; }
.finance-account-grid article { display: grid; gap: 4px; padding: 10px; border: 1px solid #e3ebf0; border-radius: 4px; background: #fbfdff; }
.finance-account-grid strong { color: #315a77; font-size: 10px; }
.finance-account-grid small { color: #8494a1; font-size: 8px; }
.finance-account-grid b { color: #1f4d6c; font: 800 12px "Manrope", sans-serif; }
.finance-status-tabs { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.finance-status-tab { padding: 5px 7px; border: 1px solid #dce6ed; border-radius: 12px; color: #647b8d; background: #fff; cursor: pointer; font-size: 8px; }
.finance-status-tab span { margin-left: 4px; color: #9aa7b2; }
.finance-status-tab.active { color: #fff; border-color: #2674a9; background: #2674a9; }
.finance-module-tabs { display: flex; gap: 5px; margin-bottom: 12px; }
.finance-module-tabs button { padding: 8px 12px; border: 1px solid #dce6ed; border-radius: 4px; color: #5f7587; background: #fff; cursor: pointer; font-size: 9px; font-weight: 700; }
.finance-module-tabs button.active { color: #fff; border-color: #216b9f; background: #216b9f; }
.organization-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }
.organization-summary-grid .metric-card { padding: 14px; }
.organization-summary-grid .metric-card strong { display: block; margin-top: 8px; color: #214e6d; font: 800 20px "Manrope", sans-serif; }
.organization-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 14px; }
.organization-card { display: grid; gap: 12px; padding: 12px; border: 1px solid #e0e9ef; border-radius: 5px; background: #fbfdff; }
.organization-card-head { display: grid; gap: 7px; }
.organization-card-head strong { color: #2b5572; font-size: 11px; }
.organization-card-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; }
.organization-card-stats span { display: grid; gap: 3px; padding: 6px; background: #f2f7fa; }
.organization-card-stats small { color: #8393a0; font-size: 8px; }
.organization-card-stats b { color: #2d5f7c; font-size: 12px; }
.converter { padding: 18px; }
.converter h3 { margin: 0; color: #34485e; font: 700 13px "Manrope", sans-serif; }
.converter p { margin: 6px 0 16px; color: #8b98a6; font-size: 10px; }
.converter-row { display: grid; grid-template-columns: 1fr 89px; gap: 8px; margin-bottom: 10px; }
.converter-row .form-control { min-width: 0; }
.convert-result { display: flex; align-items: center; justify-content: space-between; padding: 13px 12px; border-radius: 5px; background: #f2f7fc; }
.convert-result span { color: #778798; font-size: 10px; }
.convert-result strong { color: #245e98; font: 700 17px "Manrope", sans-serif; }
.role-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; }
.role-card { padding: 17px; border: 1px solid #e5ebf0; border-radius: 6px; background: #fff; }
.role-icon { display: grid; width: 34px; height: 34px; place-items: center; color: #256daF; border-radius: 6px; background: #ecf4fc; font-size: 16px; }
.role-card h3 { margin: 13px 0 5px; color: #34495f; font: 700 13px "Manrope", sans-serif; }
.role-card p { min-height: 32px; margin: 0; color: #8996a4; font-size: 10px; line-height: 1.55; }
.role-card .role-state { display: inline-flex; margin-top: 13px; padding: 5px 7px; color: #738195; border-radius: 3px; background: #f1f3f5; font-size: 8px; font-weight: 700; }
.role-note { margin-top: 16px; padding: 13px 15px; border-left: 3px solid #4789cf; border-radius: 0 4px 4px 0; color: #6e7f90; background: #eef5fc; font-size: 10px; line-height: 1.5; }
.form-control { width: 100%; min-height: 36px; padding: 8px 10px; border: 1px solid #dfe6ec; border-radius: 4px; outline: none; color: #43576b; background: #fff; font-size: 11px; }
textarea.form-control { min-height: 72px; resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px 12px; }
.form-field { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { color: #58697b; font-size: 10px; font-weight: 600; }
.required { color: #d45a5a; }
.modal-root:empty { display: none; }
.modal-root { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(8,24,42,.52); animation: fade-in .15s ease both; }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
.modal { width: min(540px,100%); max-height: min(88vh,760px); overflow-y: auto; border-radius: 8px; background: #fff; box-shadow: 0 22px 70px rgba(7,24,43,.24); animation: modal-in .2s ease both; }
@keyframes modal-in { from { opacity: .6; transform: translateY(8px) scale(.99); } to { opacity: 1; transform: none; } }
.modal-header { position: sticky; z-index: 1; top: 0; display: flex; align-items: flex-start; justify-content: space-between; padding: 18px 21px 15px; border-bottom: 1px solid #edf0f3; background: #fff; }
.modal-header h2 { margin: 0; color: #23384f; font: 700 17px "Manrope", sans-serif; }
.modal-header p { margin: 5px 0 0; color: #8996a4; font-size: 10px; }
.modal-close { display: grid; width: 29px; height: 29px; place-items: center; border: 0; border-radius: 4px; color: #738194; background: #f3f5f7; font-size: 18px; }
.modal-body { padding: 18px 21px 21px; }
.modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding-top: 17px; margin-top: 17px; border-top: 1px solid #edf0f3; }
.toast-region { position: fixed; z-index: 80; right: 20px; bottom: 20px; display: grid; gap: 8px; }
.toast { display: flex; align-items: center; gap: 9px; min-width: 240px; padding: 12px 15px; border: 1px solid #d7e9df; border-radius: 6px; color: #315d49; background: #f5fbf7; box-shadow: 0 8px 25px rgba(28,54,78,.12); font-size: 11px; animation: toast-in .2s ease both; }
.toast::before { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; color: #fff; background: #26956b; content: "✓"; font-size: 11px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.empty-state { padding: 40px 20px; color: #8693a1; text-align: center; font-size: 11px; }
.empty-state strong { display: block; margin-bottom: 5px; color: #42566b; font-size: 13px; }
#public-form-root { min-height: 100vh; background: #f3f6f8; }
.public-form { max-width: 900px; padding: 0 24px 55px; margin: 0 auto; }
.public-header { display: flex; align-items: center; justify-content: space-between; min-height: 68px; padding: 0 2px; border-bottom: 1px solid #dfe6ec; color: #718094; font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.public-header .brand { margin: 0; padding: 0; color: var(--navy); }
.public-header .brand-mark { border: 1px solid #dce5ec; }
.public-header .brand-mark[aria-hidden="true"] { color: var(--navy); font: 800 20px "Manrope", sans-serif; }
.public-intro { padding: 28px 0 18px; }
.public-intro .eyebrow { margin: 0 0 8px; }
.public-intro h1, .public-success h1 { margin: 0; color: #192e46; font: 700 25px/1.3 "Manrope", sans-serif; }
.public-intro > p:last-child, .public-success > p:not(.eyebrow) { margin: 7px 0 0; color: #7e8b9d; font-size: 12px; }
.public-form-panel { padding: 0 22px 18px; border: 1px solid #e3e9ee; border-radius: 6px; background: #fff; }
.public-section { padding: 18px 0; border-bottom: 1px solid #edf0f3; }
.public-section h2 { margin: 0 0 14px; color: #30465d; font: 700 13px "Manrope", sans-serif; }
.application-traveler-list { display: grid; gap: 9px; margin-bottom: 10px; }
.application-traveler { position: relative; min-width: 0; padding: 14px 12px 11px; border: 1px solid #dfe7ee; border-radius: 5px; background: #fbfcfd; }
.application-traveler legend { padding: 0 5px; color: #536b80; font-size: 10px; font-weight: 700; }
.application-traveler .form-grid { padding-top: 4px; }
.application-traveler-remove { position: absolute; top: 7px; right: 8px; width: 26px; height: 26px; border: 1px solid #e2e8ed; border-radius: 4px; color: #9a5050; background: #fff; font-size: 16px; }
.application-group-section > .button { min-height: 32px; }
.application-traveler .form-grid { padding-right: 30px; }
.application-group-section .field-hint { display: block; margin-top: 7px; }
.public-room-summary { display: grid; gap: 4px; padding: 10px 12px; margin-top: 12px; border: 1px solid #d7e6ef; border-left: 3px solid #4b91b9; border-radius: 4px; color: #48677d; background: #f4f9fc; font-size: 9px; }
.public-room-summary strong { color: #2b5d7c; font-size: 9px; letter-spacing: .35px; }
.public-room-summary span, .public-room-summary small { color: #6d8392; font-size: 9px; }
.public-room-summary small { color: #2f7d5c; }
.child-normalize { min-height: 24px; padding: 0 7px; margin-left: 5px; font-size: 8px; }
.public-readonly { display: block; min-height: 36px; padding: 9px 10px; color: #445a70; border: 1px solid #edf0f3; border-radius: 4px; background: #f9fbfc; font-size: 11px; }
.file-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.file-field { display: flex; flex-direction: column; gap: 7px; color: #58697b; font-size: 10px; font-weight: 600; }
.file-field input { max-width: 100%; color: #758395; font-size: 10px; }
.privacy-note { padding: 10px 12px; margin: 13px 0 0; border-left: 3px solid #d3a244; color: #7a6848; background: #fff9ea; font-size: 10px; line-height: 1.5; }
.public-submit { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; }
.public-submit > span, .public-success small { color: #95a0ad; font-size: 9px; }
.public-success { display: flex; min-height: 70vh; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.public-success .eyebrow { margin: 15px 0 8px; }
.public-success > strong { margin-top: 20px; color: #344b63; font-size: 12px; }
.public-success small { margin-top: 8px; }
.success-mark { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: #fff; background: #21976d; font-size: 22px; }
.public-stepper { display: flex; align-items: center; gap: 5px; padding: 11px 0 15px; }
.public-stepper span { display: flex; min-width: 34px; height: 34px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #d6e2eb; border-radius: 50%; color: #81909d; background: #fff; font-size: 10px; font-weight: 800; }
.public-stepper span.active { color: #fff; border-color: #216b9f; background: #216b9f; }
.public-stepper span small { display: none; }
.public-stepper i { flex: 1; height: 1px; background: #dce6ed; }
.identity-entry-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 10px; margin-bottom: 12px; border: 1px solid #dfe9ef; border-radius: 5px; background: #f8fbfd; }
.identity-entry-methods .button { min-height: 34px; font-size: 9px; }
.identity-entry-methods small { grid-column: 1 / -1; color: #8495a2; font-size: 8px; line-height: 1.4; }
.public-step-actions { display: flex; justify-content: space-between; gap: 8px; padding: 16px 0 2px; }
.public-step-actions .button { min-height: 36px; min-width: 110px; }
.public-review-step { display: grid; gap: 12px; }
.public-review-grid { display: grid; gap: 9px; padding: 11px; border: 1px solid #e0e9ef; border-radius: 5px; background: #f8fbfd; }
.public-review-grid > div { display: grid; gap: 3px; }
.public-review-grid small { color: #8193a0; font-size: 8px; font-weight: 800; letter-spacing: .3px; }
.public-review-grid strong, .public-review-grid span { color: #36566e; font-size: 10px; }
.public-review-grid .full { border-top: 1px solid #e8eef2; padding-top: 8px; }
.public-contract-box { display: grid; gap: 8px; padding: 12px; border: 1px solid #d8e5ed; border-radius: 5px; background: #fff; }
.public-contract-box h3 { margin: 0; color: #285a7b; font: 800 11px "Manrope", sans-serif; }
.public-contract-box p { margin: 0; color: #718594; font-size: 9px; line-height: 1.45; }
.public-contract-check { display: flex; align-items: flex-start; gap: 7px; color: #456276; font-size: 10px; line-height: 1.4; }
.public-submit-final { width: 100%; min-height: 42px; }
.public-contract-overlay { position: fixed; z-index: 80; inset: 0; display: grid; place-items: center; padding: 16px; background: rgba(9,30,49,.55); }
.public-contract-overlay article { position: relative; width: min(680px,100%); max-height: 88vh; overflow-y: auto; padding: 22px 20px; border-radius: 7px; background: #fff; box-shadow: 0 18px 55px rgba(8,24,42,.25); }
.public-contract-overlay article > button { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border: 0; border-radius: 4px; color: #65798a; background: #f1f5f7; font-size: 18px; }
.public-contract-overlay h2 { margin: 0 34px 13px 0; color: #234f70; font: 800 15px "Manrope", sans-serif; }
.public-contract-overlay h3 { margin: 17px 0 5px; color: #315f7e; font: 800 10px "Manrope", sans-serif; }
.public-contract-overlay p { margin: 0; color: #586f80; font-size: 10px; line-height: 1.6; }
.auth-screen { display: grid; min-height: 100vh; place-items: center; padding: 24px; background: #f1f6f9; }
.auth-card { width: min(420px,100%); padding: 28px; border: 1px solid #dfe8ee; border-radius: 8px; background: #fff; box-shadow: 0 14px 40px rgba(19,45,71,.1); }
.auth-brand { margin-bottom: 24px; }
.auth-card h1 { margin: 6px 0; color: #183b5b; font: 800 22px "Manrope", sans-serif; }
.auth-description { margin: 0 0 18px; color: #7c8e9c; font-size: 11px; }
.auth-card form { display: grid; gap: 12px; }
.auth-card label { display: grid; gap: 5px; color: #52697b; font-size: 10px; font-weight: 700; }
.auth-card input { height: 38px; padding: 0 10px; border: 1px solid #d8e3ea; border-radius: 4px; outline: none; color: #35536a; background: #fff; font: 12px "DM Sans", sans-serif; }
.auth-card input:focus { border-color: #4b92bc; box-shadow: 0 0 0 3px rgba(45,122,174,.1); }
.auth-error { padding: 9px; margin-bottom: 12px; border: 1px solid #efcaca; border-radius: 4px; color: #a34949; background: #fff3f3; font-size: 10px; }
.auth-success { padding: 9px; margin-bottom: 12px; border: 1px solid #c8e6d2; border-radius: 4px; color: #287247; background: #f1fbf4; font-size: 10px; }
.auth-text-button { justify-self: start; padding: 2px 0; border: 0; color: #28749b; background: transparent; font: 600 10px "DM Sans", sans-serif; cursor: pointer; }
.auth-footnote { display: block; margin-top: 14px; color: #95a2ac; font-size: 8px; line-height: 1.5; }
@media (max-width: 1180px) {
    .sidebar { width: 220px; }
    .main-area { margin-left: 220px; }
    .topbar { padding: 0 26px; }
    .page-content { padding: 28px 26px 42px; }
    .metric-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .tour-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .tour-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .registration-card { grid-template-columns: minmax(150px,1fr) minmax(110px,.8fr) auto; }
    .registration-card .registration-meta:nth-child(3) { display: none; }
}
@media (max-width: 850px) {
    .sidebar { transform: translateX(-100%); transition: transform .22s ease; box-shadow: 12px 0 35px rgba(8,24,42,.17); }
    .sidebar.open { transform: translateX(0); }
    .main-area { margin-left: 0; }
    .mobile-menu { display: grid; margin-right: 8px; }
    .topbar { height: 60px; padding: 0 20px; }
    .page-content { padding: 25px 20px 38px; }
    .dashboard-columns, .finance-layout, .dashboard-lower-grid { grid-template-columns: 1fr; }
    .dashboard-finance-grid { grid-template-columns: repeat(3,minmax(0,1fr)); row-gap: 14px; }
    .dashboard-finance-metric:nth-child(3) { border-right: 0; }
    .dashboard-finance-metric:nth-child(n+4) { padding-top: 10px; border-top: 1px solid #e9eff3; }
    .dashboard-density { grid-template-columns: 1fr; }
    .dashboard-fill { padding: 12px 0 0; border-top: 1px solid #e7edf2; border-left: 0; }
    .detail-metrics { grid-template-columns: repeat(2,1fr); }
    .ops-grid { grid-template-columns: repeat(2,1fr); }
    .role-grid { grid-template-columns: repeat(2,1fr); }
    .tour-overview { grid-template-columns: 1fr; gap: 12px; }
    .overview-actions { justify-content: flex-start; }
}
@media (max-width: 560px) {
    .topbar { padding: 0 13px; }
    .topbar-right { gap: 6px; }
    .today-label, .top-user-name, .top-user .chevron, .top-divider { display: none; }
    .exchange-rate-widget { gap: 4px; padding: 4px; }
    .exchange-rate-title, .exchange-rate-copy small:not(.exchange-rate-state), .exchange-rate-history { display: none; }
    .exchange-rate-copy { min-width: 0; width: 64px; flex: 0 0 64px; }
    .exchange-rate-copy strong:not(.exchange-rate-title) { overflow: hidden; font-size: 8px; text-overflow: clip; }
    .exchange-rate-copy small.exchange-rate-state { display: block; height: 8px; overflow: hidden; font-size: 0; line-height: 8px; }
    .exchange-rate-state.today::before { color: #2f8058; content: "●"; font-size: 8px; }
    .exchange-rate-state.warning::before { color: #9a6a17; content: "⚠"; font-size: 9px; }
    .exchange-rate-edit { gap: 3px; }
    .exchange-rate-edit input { width: 44px; height: 24px; }
    .exchange-rate-edit button { width: 23px; height: 24px; padding: 0; overflow: hidden; font-size: 0; }
    .exchange-rate-edit button::after { color: #286da8; content: "✓"; font-size: 11px; }
    .page-content { padding: 22px 13px 32px; }
    .page-heading { align-items: flex-start; flex-direction: column; margin-bottom: 19px; }
    .page-heading h1 { font-size: 21px; }
    .heading-actions { width: 100%; min-width: 0; flex-wrap: wrap; }
    .heading-actions .button { flex: 1 1 145px; min-width: 0; white-space: normal; }
    .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
    .metric-card { padding: 13px; }
    .metric-value { font-size: 18px; }
    .metric-label { font-size: 10px; }
    .dashboard-section { padding: 12px 11px; margin-bottom: 10px; }
    .dashboard-finance-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dashboard-finance-metric { padding: 2px 8px; }
    .dashboard-finance-metric:nth-child(2), .dashboard-finance-metric:nth-child(4), .dashboard-finance-metric:nth-child(6) { border-right: 0; }
    .dashboard-finance-metric:nth-child(3) { padding-top: 10px; border-top: 1px solid #e9eff3; border-right: 1px solid #e9eff3; }
    .dashboard-finance-metric:nth-child(5) { padding-top: 10px; border-top: 1px solid #e9eff3; }
    .dashboard-finance-metric strong { font-size: 14px; }
    .dashboard-density-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dashboard-tour-grid { grid-template-columns: 1fr; }
    .dashboard-priority-row { grid-template-columns: 20px minmax(0,1fr) auto 10px; gap: 6px; }
    .pending-payment-row { align-items: flex-start; flex-direction: column; }
    .pending-payment-row > div:last-child { width: 100%; flex-wrap: wrap; }
    .dashboard-columns { gap: 13px; }
    .panel-header { padding: 14px; }
    th, td { padding-right: 12px; padding-left: 12px; }
    .page-toolbar { align-items: stretch; flex-direction: column; }
    .toolbar-left, .toolbar-right { width: 100%; }
    .toolbar-right { flex-wrap: wrap; }
    .export-extra-controls { display: inline-flex; flex-wrap: wrap; gap: 4px; }
    .search-field, .search-field input { width: 100%; }
    .toolbar-right .select-control { flex: 1; }
    .tour-grid { grid-template-columns: 1fr; }
    .tour-summary-grid { grid-template-columns: 1fr; }
    .tour-room-summary .tour-summary-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .tour-selector-card { flex-basis: 165px; }
    .tour-selector-tab { max-width: 175px; min-height: 29px; padding: 0 7px; font-size: 8px; }
    .tour-selected-heading { align-items: flex-start; }
    .tour-selected-heading .button { min-height: 30px; padding: 0 8px; font-size: 9px; }
    .tour-roster-heading { align-items: flex-start; }
    .tour-roster-heading span { display: block; margin: 3px 0 0; }
    .tour-management-controls .select-control { max-width: 100%; }
    .tour-management-count { margin-left: 2px; }
    .tour-card-footer { justify-content: space-between; gap: 3px; }
    .tour-card-footer .table-action { padding-right: 4px; padding-left: 4px; }
    .registration-card { grid-template-columns: 1fr auto; gap: 10px; }
    .registration-card .registration-meta { grid-column: 1; }
    .registration-card .registration-actions { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; }
    .finance-summary { grid-template-columns: 1fr; }
    .finance-summary .metric-card { padding: 13px; }
    .detail-hero { align-items: flex-start; flex-direction: column; }
    .detail-hero h2 { font-size: 17px; }
    .role-grid { gap: 8px; }
    .role-card { padding: 12px; }
    .role-card h3 { font-size: 12px; }
    .form-grid { grid-template-columns: 1fr; }
    .form-field.full { grid-column: auto; }
    .modal-root { padding: 9px; }
    .modal-body, .modal-header { padding-right: 15px; padding-left: 15px; }
    .ops-grid { grid-template-columns: 1fr; }
    .overview-stats { grid-template-columns: repeat(2,minmax(75px,1fr)); }
    .compact-summary { justify-content: space-between; gap: 10px; }
    .panel-footer-actions { justify-content: flex-start; flex-wrap: wrap; }
    .public-form { padding: 0 13px 30px; }
    .public-form-panel { padding-right: 14px; padding-left: 14px; }
    .public-intro h1 { font-size: 22px; }
    .file-fields { grid-template-columns: 1fr; }
    .public-submit { align-items: flex-start; flex-direction: column; }
    .roster-filter-grid { position: fixed; top: 105px; right: 12px; left: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); width: auto; max-height: 65vh; overflow: auto; }
    .roster-column-menu > div { position: fixed; top: 105px; right: 12px; left: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); min-width: 0; max-height: 65vh; }
}