        .itin-mobile-add-day {
            display: none;
        }
        @media (max-width: 520px) {
            .assistant-shell,
            .assistant-panel,
            .assistant-summary-card,
            .assistant-card,
            .assistant-weather-summary-card,
            .assistant-quick-action,
            .assistant-empty {
                padding: 12px;
                border-radius: 16px;
            }
            .assistant-panel-head {
                margin-bottom: 10px;
                gap: 10px;
            }
            .assistant-summary-title,
            .assistant-weather-title,
            .assistant-card-title {
                font-size: 0.94rem;
                line-height: 1.42;
            }
            .assistant-summary-note,
            .assistant-weather-note,
            .assistant-card-message,
            .assistant-quick-action-description,
            .assistant-empty-text,
            .assistant-panel-caption,
            .assistant-nearby-ai-note,
            .assistant-sheet-message,
            .assistant-panel-subtitle {
                font-size: 0.8rem;
                line-height: 1.6;
            }
            .assistant-summary-copy,
            .assistant-weather-copy,
            .assistant-card-copy,
            .assistant-sheet-copy {
                gap: 5px;
            }
            .assistant-panel-caption-stack,
            .assistant-nearby-ai-copy,
            .assistant-empty-copy,
            .assistant-quick-action-copy {
                gap: 3px;
            }
            .assistant-summary-grid,
            .assistant-weather-grid,
            .assistant-quick-grid,
            .assistant-card-stack {
                gap: 8px;
            }
            .assistant-summary-stat,
            .assistant-weather-stat,
            .assistant-sheet-fact {
                padding: 10px 12px;
                border-radius: 14px;
            }
            .assistant-card-tags {
                gap: 5px;
            }
            .assistant-card-tag {
                min-height: 0;
                padding: 5px 8px;
                font-size: 0.71rem;
                line-height: 1.25;
                white-space: normal;
            }
            .assistant-weather-chip,
            .assistant-weather-kicker {
                font-size: 0.72rem;
            }
            .assistant-weather-note-list {
                gap: 6px;
            }
            .assistant-nearby-ai-note {
                padding: 8px 10px;
                border-radius: 12px;
            }
            .assistant-nearby-ai-cta-btn {
                min-height: 44px;
                font-size: 0.82rem;
            }
            .assistant-nearby-ai-cta-note {
                font-size: 0.72rem;
            }
            .assistant-card-actions,
            .assistant-sheet-actions {
                gap: 6px;
            }
            .assistant-summary-grid,
            .assistant-weather-grid,
            .assistant-quick-grid {
                grid-template-columns: 1fr;
            }
            .assistant-ask-panel {
                grid-template-columns: 1fr;
                padding: 12px;
                border-radius: 16px;
            }
            .assistant-quick-action {
                min-height: 0;
            }
            .assistant-nearby-chip-row {
                flex-direction: column;
                gap: 6px;
            }
            .assistant-nearby-chip {
                width: 100%;
                min-height: 44px;
                justify-content: flex-start;
            }
            .assistant-card-actions {
                flex-direction: column;
            }
            .assistant-card-action {
                width: 100%;
            }
            .assistant-sheet-facts {
                grid-template-columns: 1fr;
            }
            .assistant-sheet-actions {
                flex-direction: column;
            }
            .assistant-sheet-action {
                width: 100%;
            }
            .assistant-sheet {
                width: min(520px, calc(100vw - 12px));
                padding: 14px 12px;
                border-radius: 20px;
            }
            /* 檢視模式：圖片保持右側、縮小 */
            .prepare-item.shopping:not(.is-editing) {
                flex-wrap: nowrap;
            }
            .prepare-item.shopping:not(.is-editing) .prepare-item-side {
                width: auto;
                flex-shrink: 0;
            }
            .prepare-item.shopping:not(.is-editing) .prepare-shopping-photo {
                width: 56px;
                height: 56px;
                border-radius: 12px;
            }
            /* 編輯模式：圖片換行到下方、有上傳按鈕空間 */
            .prepare-item.shopping.is-editing {
                flex-wrap: wrap;
            }
            .prepare-item.shopping.is-editing .prepare-item-side {
                width: 100%;
                flex-direction: row;
                justify-content: space-between;
                align-items: center;
            }
            .prepare-photo-actions {
                width: auto;
                min-width: 96px;
            }
            .prepare-item.shopping.is-editing .prepare-shopping-photo {
                width: 64px;
                height: 64px;
            }
            .prepare-items {
                gap: 8px;
            }
            .prepare-group-tabs {
                gap: 3px;
                padding: 3px;
                border-radius: 13px;
            }
            .prepare-group-tab {
                min-height: 46px;
                padding: 8px 12px;
                gap: 6px;
                border-radius: 12px;
            }
            .prepare-group-tab-label {
                font-size: 0.8rem;
            }
            .prepare-group-tab-count {
                min-height: 18px;
                padding: 0 6px;
                font-size: 0.66rem;
            }
            .prepare-group-section {
                margin-bottom: 13px;
                padding-left: 9px;
            }
            .prepare-group-head {
                gap: 6px;
                padding: 0 0 3px;
            }
            .prepare-group-header {
                grid-template-columns: 16px minmax(0, 1fr) auto;
                gap: 7px;
                padding: 4px 0;
            }
            .prepare-group-header-label {
                font-size: 0.95rem;
            }
            .prepare-group-header-total {
                min-height: 21px;
                padding: 0 7px;
                font-size: 0.7rem;
            }
            .prepare-group-remove {
                width: 32px;
                height: 32px;
                border-radius: 10px;
            }
            .prepare-group-summary {
                padding: 0 0 7px 23px;
                gap: 7px;
                flex-wrap: wrap;
            }
            .prepare-group-progress-text,
            .prepare-group-summary-note {
                font-size: 0.7rem;
            }
            .prepare-group-progress-bar {
                flex-basis: 100%;
                order: 3;
            }
            .prepare-group-body {
                padding: 0 0 0 23px;
            }
            .prepare-group-body .prepare-items {
                padding: 0;
                gap: 7px;
            }
            .prepare-group-body .prepare-item {
                margin-left: 0;
            }
            .itin-workbench-head { flex-direction: column; }
            .itin-workbench-summary { width: 100%; }
            .itin-workbench-grid { grid-template-columns: 1fr; }
        }
        @media (max-width: 720px) {
            .tab-header {
                padding-top: calc(env(safe-area-inset-top, 0px) + 2.1rem);
                padding-bottom: 1.35rem;
            }
            .assistant-shell,
            .assistant-panel,
            .assistant-summary-card {
                padding-left: 14px;
                padding-right: 14px;
            }
            .assistant-panel-head {
                flex-direction: column;
                align-items: flex-start;
            }
            .assistant-panel-tools {
                width: 100%;
            }
            .assistant-panel-trigger {
                width: 100%;
                justify-content: center;
            }
            .assistant-sheet {
                width: min(720px, calc(100vw - 16px));
                padding: 16px 14px;
                bottom: calc(env(safe-area-inset-bottom, 0px) + 8px);
            }
            .expense-stats-grid {
                grid-template-columns: 1fr;
            }
            .expense-donut-layout {
                grid-template-columns: 1fr;
            }
            .expense-legend-list {
                width: 100%;
            }
        }
        @media (max-width: 720px) {
            .itin-header-top {
                width: 100%;
                margin-bottom: 10px;
                gap: 10px;
                align-items: center;
            }
            .itin-header-meta-row {
                justify-content: flex-start;
                flex: 1 1 auto;
            }
            .itin-header-utility-actions {
                gap: 2px;
            }
            .itin-header-main {
                gap: 2px;
            }
            .itin-header.has-cover {
                aspect-ratio: auto;
                height: 184px;
                min-height: 0;
            }
            .itin-cover-controls {
                display: none;
            }
            .itin-cover-editor {
                width: 100%;
                max-height: min(92vh, 760px);
                margin-bottom: 0;
                padding: 18px 16px calc(env(safe-area-inset-bottom, 0px) + 16px);
                border-radius: 26px 26px 0 0;
            }
            .itin-cover-editor-stage {
                height: min(43vh, 352px);
                border-radius: 16px;
            }
            .itin-cover-editor-crop-window {
                width: calc(100% - 24px);
            }
            .itin-header-focus-row {
                width: 100%;
                margin-top: 10px;
                justify-content: flex-start;
            }
            .itin-header-focus-items {
                gap: 6px;
            }
            .itin-header-focus-pill {
                max-width: 100%;
                padding: 7px 10px;
                background: rgba(255, 255, 255, 0.82);
                box-shadow: none;
            }
            .itin-header-focus-main,
            .itin-header-focus-meta {
                font-size: 0.8rem;
            }
            .itin-header-focus-dot {
                font-size: 0.74rem;
            }
            .itin-header-mode-pill {
                min-height: 44px;
                padding: 0 10px;
            }
            .itin-share-btn {
                width: 44px;
                height: 44px;
            }
            .itin-header-more-btn {
                font-size: 1.36rem;
            }
            .itin-share-btn-icon {
                width: 26px;
                height: 26px;
            }
            .itin-header-weather-chip {
                min-height: 34px;
                padding: 7px 11px;
                font-size: 0.78rem;
            }
            .itin-day-tabs-sticky {
                padding-top: 8px;
            }
            .itin-day-tabs-sticky::before,
            .itin-day-tabs-sticky::after {
                content: '';
                position: absolute;
                top: 8px;
                bottom: 10px;
                width: 34px;
                z-index: 2;
                pointer-events: none;
                opacity: 0;
                transition: opacity 0.2s ease;
            }
            .itin-day-tabs-sticky::before {
                left: 0;
                background: linear-gradient(90deg, var(--trip-header-surface) 14%, transparent);
            }
            .itin-day-tabs-sticky::after {
                right: 0;
                background: linear-gradient(270deg, var(--trip-header-surface) 14%, transparent);
            }
            .itin-day-tabs-sticky.can-scroll-left::before,
            .itin-day-tabs-sticky.can-scroll-right::after {
                opacity: 1;
            }
            .itin-day-tabs {
                padding-left: 0.75rem;
                padding-right: 0.75rem;
                padding-bottom: 6px;
                mask-image: none;
                -webkit-mask-image: none;
            }
            .itin-editor-grid,
            .itin-field-row-editor {
                grid-template-columns: 1fr;
            }
            .itin-editor-day-meta-row {
                grid-template-columns: 132px minmax(0, 1fr);
            }
            .itin-inline-activity-grid {
                grid-template-columns: 1fr 1fr;
                gap: 6px;
            }
            .itin-inline-activity-grid .itin-inline-input.title {
                grid-column: 1 / -1;
            }
            .itin-day-meta-edit,
            .itin-logistics-section-head,
            .itin-logistics-item-head {
                width: 100%;
            }
            .itin-inline-block {
                grid-template-columns: 28px minmax(0, 1fr) auto;
                gap: 6px;
                padding: 2px 0;
            }
            .itin-inline-block-main {
                gap: 4px;
            }
            .itin-inline-block-topline:first-child {
                display: none;
            }
            .itin-inline-logistics-head {
                grid-template-columns: 28px minmax(0, 1fr) auto;
                gap: 6px;
            }
            .itin-inline-logistics-item-row {
                grid-template-columns: 1fr;
            }
            .itin-inline-logistics-items {
                margin-left: 0;
            }
            .itin-inline-edit-field-row {
                flex-wrap: wrap;
                gap: 8px;
                padding: 8px;
                border-radius: 12px;
                background: #fff;
                border: 1px solid rgba(229, 221, 214, 0.86);
            }
            .itin-inline-edit-field-key {
                min-height: 44px;
                padding: 8px 10px;
                border-radius: 10px;
                background: #F7F3EF;
            }
            .itin-inline-edit-field-value {
                width: 100%;
                flex-basis: 100%;
                min-height: 44px;
                padding: 8px 10px;
                border-radius: 10px;
                background: #F7F3EF;
            }
            .itin-inline-edit-field-tools {
                opacity: 1;
                transform: none;
                pointer-events: auto;
                width: 100%;
                display: flex;
                justify-content: flex-end;
            }
            .itin-block-card {
                padding: 0;
                gap: 0;
                border: 0;
            }
            .itin-time-block.itin-time-block-editing .itin-edit-block-tools,
            .itin-note-block.itin-note-block-editing .itin-edit-block-tools,
            .itin-divider-block.itin-divider-block-editing .itin-edit-block-tools {
                position: static;
                top: auto;
                right: auto;
                bottom: auto;
                width: 100%;
                margin: 12px 0 0;
                justify-content: stretch;
                align-items: center;
                gap: 8px;
                display: none;
                opacity: 1;
                transform: none;
                pointer-events: auto;
                flex-wrap: wrap;
            }
            .itin-time-block.itin-time-block-editing.is-editing-active .itin-edit-block-tools,
            .itin-note-block.itin-note-block-editing.is-editing-active .itin-edit-block-tools,
            .itin-divider-block.itin-divider-block-editing.is-editing-active .itin-edit-block-tools {
                display: flex;
            }
            .itin-edit-block-tools .itin-mini-btn,
            .itin-edit-block-tools .itin-mini-btn-danger {
                flex: 1 1 88px;
                padding: 8px 10px;
                font-size: 0.76rem;
                min-height: 44px;
                border: 1px solid rgba(229, 221, 214, 0.9);
                border-radius: 12px;
                background: #fff;
            }
            .itin-edit-block-tools .itin-move-btn {
                flex: 0 0 48px;
                width: 48px;
                height: 44px;
                font-size: 0.68rem;
                border-radius: 12px;
                background: #fff;
                border: 1px solid rgba(229, 221, 214, 0.9);
            }
            .itin-edit-block-tools .itin-block-handle {
                display: none;
            }
            .itin-inline-block-side {
                display: flex;
                flex-direction: column;
                gap: 4px;
                align-items: center;
            }
            .itin-day-outline-item {
                grid-template-columns: minmax(0, 1fr) auto;
                gap: 6px;
                padding: 4px 0;
            }
            .itin-move-btn {
                display: inline-flex;
                width: 44px;
                height: 44px;
                font-size: 0.62rem;
            }
            .itin-block-handle {
                width: 44px;
                height: 44px;
            }
            .itin-mini-btn,
            .itin-mini-btn-danger {
                min-height: 44px;
                padding: 4px 8px;
                font-size: 0.72rem;
            }
            .itin-editor-toolbar-meta,
            .itin-block-controls,
            .itin-block-card-head,
            .itin-block-card-title,
            .itin-block-section-head,
            .itin-editor-focus-head,
            .itin-editor-day-title-row {
                width: 100%;
            }
            .itin-block-canvas-head {
                display: none;
            }
            .itin-block-canvas.compact {
                gap: 2px;
            }
            .itin-block-canvas {
                gap: 4px;
            }
            .itin-editor-focus-card {
                gap: 6px;
            }
            .itin-editor-focus-head {
                gap: 6px;
            }
            .itin-editor-summary-pill {
                display: none;
            }
            .itin-block-section {
                padding-top: 6px;
                gap: 6px;
            }
            .itin-block-section-head {
                gap: 6px;
            }
            .itin-block-section-head p {
                display: none;
            }
            .itin-block-palette {
                width: 100%;
                flex-wrap: nowrap;
                overflow-x: auto;
                scrollbar-width: none;
                -webkit-overflow-scrolling: touch;
                gap: 6px;
                padding: 4px 0;
            }
            .itin-block-palette::-webkit-scrollbar {
                display: none;
            }
            .itin-block-palette button {
                flex-shrink: 0;
                padding: 8px 10px;
                font-size: 0.78rem;
            }
            .itin-edit-control-group {
                width: 100%;
            }
            .itin-mini-btn,
            .itin-mini-btn-danger {
                justify-content: center;
            }
            .itin-block-insert-btn {
                width: auto;
                min-width: 36px;
                min-height: 36px;
                justify-content: center;
                font-size: 0.9rem;
            }
            .itin-editor-day-card {
                padding: 2px 0 4px 8px;
                gap: 6px;
            }
            .itin-editor-day-head {
                gap: 6px;
            }
            .itin-editor-day-meta-row input {
                padding: 6px 8px;
            }
            .itin-inline-input,
            .itin-inline-note-editor {
                padding: 6px 8px;
                font-size: 0.85rem;
            }
            /* iOS auto-zoom prevention - scoped to edit mode */
            .itin-time-block-editing .itin-inline-editable[contenteditable="true"],
            .itin-note-block-editing .itin-inline-editable[contenteditable="true"],
            .itin-divider-block-editing .itin-inline-editable[contenteditable="true"],
            .itin-day-header-editing .itin-inline-editable[contenteditable="true"],
            .itin-logistics-panel.is-editing .itin-inline-editable[contenteditable="true"],
            .itin-time-block-fields.editing .itin-inline-editable[contenteditable="true"],
            .itin-edit-field input,
            .itin-edit-field textarea,
            .itin-edit-field select,
            .itin-inline-input,
            .itin-inline-note-editor,
            .itin-inline-plain-input,
            .itin-checklist-input {
                font-size: 16px !important;
            }
            .itin-block-editor {
                padding-left: 0.75rem;
                padding-right: 0.75rem;
                padding-bottom: calc(188px + env(safe-area-inset-bottom, 0px) + var(--itin-keyboard-offset, 0px));
            }
            .itin-day-tabs-sticky {
                padding: 9px 0 8px;
                margin-bottom: 0.7rem;
            }
            .itin-day-tabs {
                gap: 8px;
                padding: 3px 0.9rem 8px;
            }
            .itin-day-tab {
                min-width: 88px;
                min-height: 62px;
                padding: 9px 10px 10px;
                border-radius: 16px;
            }
            .itin-day-tab::after {
                left: 10px;
                right: 10px;
                bottom: 6px;
                height: 2px;
            }
            .itin-day-tab-label {
                font-size: 0.76rem;
            }
            .itin-day-tab-date {
                min-height: 22px;
                margin-top: 5px;
                padding: 2px 7px;
                font-size: 0.69rem;
            }
            .itin-day-panel {
                padding-left: 0.75rem;
                padding-right: 0.75rem;
                padding-bottom: calc(252px + env(safe-area-inset-bottom, 0px) + var(--itin-keyboard-offset, 0px));
            }
            .itin-day-card {
                border-radius: 18px;
            }
            .itin-day-header {
                padding: 14px 14px 10px;
                display: grid;
                gap: 10px;
            }
            .itin-day-title {
                font-size: 1.02rem;
                line-height: 1.35;
            }
            .itin-day-title-prefix {
                margin-right: 2px;
            }
            .itin-inline-plain-input.day-title,
            .itin-inline-editable.day-title {
                min-width: 0;
                flex: 1 1 0;
                font-size: 1.02rem;
                line-height: 1.35;
            }
            .itin-day-meta-edit {
                gap: 4px 6px;
                margin-top: 0;
            }
            .itin-inline-plain-input.day-meta,
            .itin-inline-plain-input.day-date,
            .itin-inline-editable.day-meta,
            .itin-inline-editable.day-date {
                font-size: 0.82rem;
                line-height: 1.45;
            }
            .itin-plan-toggle {
                margin: 0 14px 12px;
                padding: 4px;
                gap: 4px;
                border-radius: 14px;
                background: rgba(255, 255, 255, 0.42);
                -webkit-backdrop-filter: var(--glass-blur);
                backdrop-filter: var(--glass-blur);
                border: 1px solid var(--border);
                box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.5);
            }
            .itin-plan-toggle-btn {
                min-height: 40px;
                padding: 6px 10px;
                display: flex;
                align-items: center;
                justify-content: center;
                text-align: center;
                font-size: 0.82rem;
                line-height: 1.3;
                gap: 5px;
            }
            .itin-plan-toggle-btn.active {
                background: rgba(255, 255, 255, 0.72);
                border: 1px solid rgba(255, 255, 255, 0.5);
                box-shadow: 0 4px 12px color-mix(in srgb, var(--trip-accent) 8%, transparent);
            }
            .itin-member-filters {
                padding: 0.7rem 1rem 0.2rem;
            }
            body.is-itinerary-editing .itin-edit-plan-section-cue {
                display: flex;
                align-items: center;
                gap: 8px;
                min-height: 40px;
                margin: 0 14px 10px;
                padding: 8px 12px;
                border-radius: 14px;
                background: #FFF8F1;
                color: #7A5B37;
                border: 1px solid rgba(214, 168, 102, 0.28);
                font-size: 0.8rem;
                font-weight: 900;
            }
            body.is-itinerary-editing .itin-edit-plan-section-cue.backup {
                background: #F7F8FA;
                color: #5F6672;
                border-color: rgba(143, 150, 162, 0.28);
            }
            .itin-timeline {
                padding: 0 14px calc(92px + env(safe-area-inset-bottom, 0px));
            }
            .itin-block-helper {
                padding-left: 4px;
                font-size: 0.74rem;
            }
            .itin-day-outline-main strong {
                font-size: 0.92rem;
            }
            .itin-time-block.itin-time-block-editing {
                margin: 8px 0;
                padding: 10px 10px 10px 36px;
                border: 1px solid rgba(229, 221, 214, 0.95);
                border-radius: 16px;
                background: rgba(255, 253, 250, 0.98);
                box-shadow: 0 6px 18px rgba(124, 103, 88, 0.07);
                scroll-margin-bottom: calc(260px + env(safe-area-inset-bottom, 0px) + var(--itin-keyboard-offset, 0px));
            }
            .itin-time-block.itin-time-block-editing::before {
                display: none;
            }
            .itin-time-block.itin-time-block-editing::after {
                left: 16px;
                top: 26px;
                width: 4px;
                height: 22px;
                border-radius: 999px;
                border: 0;
                background: rgba(199, 148, 69, 0.2);
            }
            .itin-note-block.itin-note-block-editing,
            .itin-divider-block.itin-divider-block-editing {
                margin: 8px 0;
                padding: 12px;
                border: 1px solid rgba(229, 221, 214, 0.95);
                border-radius: 16px;
                background: rgba(255, 253, 250, 0.98);
                box-shadow: 0 6px 18px rgba(124, 103, 88, 0.06);
                scroll-margin-bottom: calc(260px + env(safe-area-inset-bottom, 0px) + var(--itin-keyboard-offset, 0px));
            }
            .itin-time-badge.itin-time-badge-editing {
                width: 100%;
                padding: 6px;
                gap: 4px;
                background: #F7F3EF;
                border-radius: 12px;
            }
            .itin-time-block-meta-row-editing {
                display: grid;
                grid-template-columns: minmax(0, 1fr);
                align-items: stretch;
                gap: 8px;
            }
            .itin-inline-editable.time-range {
                width: auto;
                min-width: 70px;
                max-width: 100px;
            }
            .itin-time-select-range {
                width: 100%;
                display: grid;
                grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
                align-items: center;
                gap: 6px;
                flex-wrap: nowrap;
            }
            .itin-time-picker {
                width: 100%;
                min-width: 0;
                min-height: 44px;
                padding: 8px 9px;
                font-size: 16px !important;
                background: #fff;
            }
            .itin-inline-editable.category {
                display: inline-flex;
                align-items: center;
                min-width: 88px;
                max-width: 100%;
                min-height: 44px;
                padding: 8px 12px;
                border-radius: 12px;
                background: #F6EFE8;
                text-align: left;
            }
            .itin-time-block.itin-time-block-editing .itin-time-block-title {
                display: grid;
                grid-template-columns: auto minmax(0, 1fr);
                align-items: start;
                gap: 8px;
                margin-top: 8px;
                padding: 8px;
                border-radius: 14px;
                background: #fff;
                border: 1px solid rgba(229, 221, 214, 0.86);
            }
            .itin-time-block.itin-time-block-editing .itin-inline-editable.title {
                display: block;
                width: 100%;
                min-height: 44px;
                padding: 8px 10px;
                border-radius: 10px;
                background: rgba(247, 243, 239, 0.72);
                flex: none;
            }
            .itin-time-block.itin-time-block-editing .itin-time-block-title .emoji {
                padding-top: 8px;
            }
            .itin-inline-editable[contenteditable="true"]:focus {
                border-radius: 10px;
                background: #fff;
                box-shadow: 0 0 0 2px rgba(199, 148, 69, 0.24);
            }
            .itin-empty-activity-hint {
                display: block;
                margin: 8px 0 0 0;
                padding: 9px 11px;
                border-radius: 12px;
                background: #FFF8EF;
                color: #8A6B55;
                border: 1px dashed rgba(199, 148, 69, 0.36);
                font-size: 0.78rem;
                font-weight: 800;
                line-height: 1.45;
            }
            .itin-time-block.itin-time-block-editing.is-empty-draft {
                border-color: rgba(199, 148, 69, 0.34);
            }
            body.is-itinerary-editing .itin-time-block.itin-time-block-editing {
                padding: 10px 10px 10px 36px;
            }
            body.is-itinerary-editing .itin-time-block.itin-time-block-editing .itin-desktop-activity-inline {
                display: none;
            }
            body.is-itinerary-editing .itin-mobile-activity-summary {
                display: grid;
                grid-template-columns: minmax(0, 1fr) auto;
                grid-template-areas:
                    "body move"
                    "actions actions";
                align-items: center;
                gap: 10px;
                min-height: 72px;
            }
            .itin-mobile-activity-summary-body {
                grid-area: body;
                min-width: 0;
                display: grid;
                gap: 5px;
                padding: 2px 0;
                border-radius: 12px;
                cursor: pointer;
            }
            .itin-mobile-activity-summary-body:focus-visible {
                outline: 2px solid rgba(199, 148, 69, 0.4);
                outline-offset: 4px;
            }
            .itin-mobile-activity-summary-top,
            .itin-mobile-activity-meta,
            .itin-mobile-activity-actions {
                display: flex;
                align-items: center;
                gap: 6px;
                flex-wrap: wrap;
            }
            .itin-mobile-activity-time {
                color: #5F5148;
                font-size: 0.82rem;
                font-weight: 900;
                font-variant-numeric: tabular-nums;
            }
            .itin-mobile-activity-category {
                max-width: 100%;
                padding: 4px 8px;
                border-radius: 999px;
                background: #F6EFE8;
                color: #7A5B37;
                font-size: 0.74rem;
                font-weight: 900;
                line-height: 1.2;
            }
            .itin-mobile-activity-title {
                min-width: 0;
                color: var(--ink-strong);
                font-size: 0.98rem;
                line-height: 1.35;
                overflow-wrap: anywhere;
            }
            .itin-mobile-activity-meta {
                color: #8A7A70;
                font-size: 0.74rem;
                font-weight: 800;
                line-height: 1.35;
            }
            .itin-mobile-activity-actions {
                grid-area: actions;
                justify-content: flex-end;
                align-self: center;
            }
            .itin-mobile-activity-actions .itin-mini-btn,
            .itin-mobile-activity-actions .itin-map-pin {
                min-width: 44px;
                min-height: 44px;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                white-space: nowrap;
            }
            .itin-mobile-activity-move-controls {
                grid-area: move;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 6px;
                align-self: stretch;
            }
            .itin-mobile-activity-move-controls .itin-move-btn {
                display: inline-flex;
                width: 44px;
                min-width: 44px;
                height: 44px;
                min-height: 44px;
                border-radius: 12px;
                background: #fff;
                border: 1px solid rgba(214, 202, 192, 0.95);
                color: #5F5148;
                font-size: 0.76rem;
                font-weight: 900;
                box-shadow: 0 6px 14px rgba(124, 103, 88, 0.08);
            }
            .itin-mobile-activity-move-controls .itin-move-btn:disabled,
            .itin-mobile-activity-move-controls .itin-move-btn[aria-disabled="true"] {
                opacity: 0.34;
                box-shadow: none;
            }
            .itin-activity-more {
                margin-top: 10px;
                gap: 8px;
            }
            .itin-activity-more-toggle {
                padding: 0;
            }
            .itin-activity-more-btn {
                min-height: 44px;
                padding: 8px 14px;
                font-size: 0.78rem;
            }
            .itin-activity-more-summary {
                display: none;
            }
            .itin-activity-more-panel {
                padding: 12px;
                border-left: 0;
                border-radius: 14px;
                background: #FBF8F4;
                border: 1px solid rgba(229, 221, 214, 0.9);
            }
            .itin-activity-fixed-fields,
            .itin-activity-custom-fields {
                gap: 10px;
            }
            .itin-activity-fixed-field {
                display: grid;
                gap: 6px;
            }
            .itin-activity-fixed-label {
                width: auto;
                padding-top: 0;
                font-size: 0.76rem;
            }
            .itin-activity-fixed-input {
                min-height: 44px;
                padding: 8px 10px;
                border-radius: 10px;
                background: #fff;
                border: 1px solid rgba(229, 221, 214, 0.88);
            }
            body.is-itinerary-editing .itin-activity-sheet-layer {
                position: fixed;
                left: 0;
                right: 0;
                top: 0;
                bottom: var(--itin-keyboard-offset, 0px);
                z-index: 900;
                display: flex;
                align-items: flex-end;
                justify-content: center;
                padding: 42px 10px 0;
                background: rgba(37, 31, 27, 0.34);
            }
            .itin-activity-sheet {
                width: min(100%, 560px);
                max-height: min(85vh, calc(100vh - 56px - var(--itin-keyboard-offset, 0px)));
                max-height: min(85dvh, calc(100dvh - 56px - var(--itin-keyboard-offset, 0px)));
                display: grid;
                grid-template-rows: auto auto minmax(0, 1fr) auto;
                overflow: hidden;
                border-radius: 22px 22px 0 0;
                background: #fff;
                border: 1px solid rgba(229, 221, 214, 0.95);
                border-bottom: 0;
                box-shadow: 0 -18px 44px rgba(47, 38, 31, 0.24);
                box-sizing: border-box;
            }
            .itin-activity-sheet-grip {
                width: 42px;
                height: 5px;
                margin: 9px auto 0;
                border-radius: 999px;
                background: rgba(138, 122, 112, 0.32);
            }
            .itin-activity-sheet-head {
                display: flex;
                align-items: flex-start;
                justify-content: space-between;
                gap: 12px;
                padding: 12px 14px 10px;
                border-bottom: 1px solid rgba(229, 221, 214, 0.82);
            }
            .itin-activity-sheet-title-copy {
                min-width: 0;
                display: grid;
                gap: 3px;
            }
            .itin-activity-sheet-head .itin-mini-btn {
                flex: 0 0 auto;
                min-height: 40px;
                padding-inline: 12px;
            }
            .itin-activity-sheet-kicker {
                display: block;
                color: #8A7A70;
                font-size: 0.74rem;
                font-weight: 900;
                line-height: 1.3;
            }
            .itin-activity-sheet-meta {
                width: fit-content;
                max-width: 100%;
                padding: 4px 9px;
                border-radius: 999px;
                background: #F7F3EF;
                color: #6F625C;
                font-size: 0.74rem;
                font-weight: 900;
                line-height: 1.2;
                overflow-wrap: anywhere;
            }
            .itin-activity-sheet-head h2 {
                margin: 0;
                color: var(--ink-strong);
                font-size: 1.06rem;
                line-height: 1.35;
                overflow-wrap: anywhere;
            }
            .itin-activity-sheet-body {
                min-height: 0;
                overflow-y: auto;
                overflow-x: hidden;
                -webkit-overflow-scrolling: touch;
                overscroll-behavior: contain;
                display: grid;
                gap: 12px;
                padding: 14px 14px calc(22px + env(safe-area-inset-bottom, 0px));
                scroll-padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px));
            }
            .itin-activity-sheet-section {
                display: grid;
                gap: 12px;
                padding-bottom: 14px;
                border-bottom: 1px solid rgba(229, 221, 214, 0.72);
            }
            .itin-activity-sheet-section:last-child {
                border-bottom: 0;
            }
            .itin-activity-sheet-section h3,
            .itin-activity-sheet-section-head h3 {
                margin: 0;
                color: #5F5148;
                font-size: 0.82rem;
                font-weight: 900;
                line-height: 1.35;
            }
            .itin-activity-sheet-section-head {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 10px;
            }
            .itin-activity-sheet-field {
                min-width: 0;
                display: grid;
                gap: 7px;
            }
            .itin-activity-sheet-field span {
                color: #8A7A70;
                font-size: 0.75rem;
                font-weight: 900;
                line-height: 1.3;
            }
            .itin-activity-sheet-input,
            .itin-activity-sheet-textarea,
            .itin-activity-sheet .itin-time-picker {
                width: 100%;
                min-width: 0;
                min-height: 46px;
                padding: 10px 11px;
                border-radius: 12px;
                border: 1px solid rgba(229, 221, 214, 0.95);
                background: #FFFDFC;
                color: var(--ink-strong);
                font-family: inherit;
                font-size: 16px !important;
                font-weight: 750;
                line-height: 1.45;
                outline: none;
            }
            .itin-activity-sheet-textarea {
                min-height: 94px;
                resize: vertical;
            }
            .itin-activity-sheet-input:focus,
            .itin-activity-sheet-textarea:focus,
            .itin-activity-sheet .itin-time-picker:focus {
                border-color: rgba(199, 148, 69, 0.55);
                background: #fff;
                box-shadow: 0 0 0 3px rgba(199, 148, 69, 0.14);
            }
            .itin-activity-sheet-time-grid {
                display: grid;
                grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
                gap: 10px;
            }
            .itin-participant-selector {
                display: flex;
                flex-wrap: wrap;
                gap: 8px;
                padding-top: 4px;
            }
            .itin-activity-sheet-fields {
                display: grid;
                gap: 10px;
            }
            .itin-activity-sheet-field-row {
                display: grid;
                grid-template-columns: minmax(0, 1fr);
                gap: 8px;
                align-items: stretch;
                padding: 10px;
                border-radius: 14px;
                background: #FBF8F4;
                border: 1px solid rgba(229, 221, 214, 0.86);
            }
            .itin-activity-sheet-field-row .itin-mini-btn-danger {
                min-height: 46px;
                justify-content: center;
            }
            .itin-activity-sheet-actions {
                display: flex;
                align-items: center;
                gap: 8px;
                flex-wrap: wrap;
            }
            .itin-activity-sheet-footer {
                display: grid;
                grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
                gap: 10px;
                padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
                border-top: 1px solid rgba(229, 221, 214, 0.82);
                background: rgba(255, 255, 255, 0.96);
            }
            .itin-activity-sheet-footer .itin-editor-btn,
            .itin-activity-sheet-footer .itin-editor-btn-ghost,
            .itin-activity-sheet-footer .itin-editor-btn-danger {
                width: 100%;
                min-height: 46px;
                display: inline-flex;
                align-items: center;
                justify-content: center;
            }
            .itin-day-header-tools {
                width: auto;
                margin-left: 0;
                justify-content: flex-end;
                opacity: 1;
                transform: none;
                pointer-events: auto;
            }
            .itin-editor-toolbar {
                top: auto;
                left: 12px;
                right: 12px;
                bottom: calc(env(safe-area-inset-bottom, 0px) + var(--itin-keyboard-offset, 0px) + 10px);
                z-index: 420;
            }
            .itin-editor-toolbar-shell {
                max-width: none;
                width: 100%;
                border-radius: 18px;
                padding: 10px;
                background: rgba(255, 255, 255, 0.96);
                border-color: rgba(214, 202, 192, 0.96);
                box-shadow: 0 12px 34px rgba(77, 62, 51, 0.18);
            }
            .itin-editor-toolbar-head {
                width: 100%;
                display: grid;
                align-items: stretch;
                gap: 8px;
            }
            .itin-editor-toolbar-actions {
                width: 100%;
                max-width: 100%;
                gap: 10px;
                justify-content: stretch;
                overflow: visible;
            }
            .itin-editor-toolbar-divider {
                display: none;
            }
            .itin-editor-toolbar-quick-group {
                display: none;
            }
            .itin-editor-status {
                display: flex;
                align-items: center;
                width: 100%;
                min-height: 38px;
                padding: 8px 10px;
                border-radius: 12px;
                background: #F7F3EF;
                color: #6F625C;
                border: 1px solid rgba(220, 209, 200, 0.88);
                font-size: 0.82rem;
                line-height: 1.35;
                white-space: normal;
            }
            .itin-editor-status.info {
                background: #FFF8EF;
                color: #7A5B37;
                border-color: rgba(214, 168, 102, 0.28);
            }
            .itin-editor-status.error {
                background: #FFF1EE;
                color: #B14F45;
                border-color: rgba(234, 122, 108, 0.34);
            }
            .itin-editor-status.success {
                background: #EEF8F1;
                color: #2E7D5B;
                border-color: rgba(46, 125, 91, 0.22);
            }
            .itin-editor-status-hint {
                display: block;
                margin-top: -2px;
                color: #8A7A70;
                font-size: 0.74rem;
                line-height: 1.35;
                white-space: normal;
            }
            .itin-editor-btn,
            .itin-editor-btn-danger {
                flex: 1 1 0;
                justify-content: center;
                min-height: 44px;
                font-size: 0.84rem;
            }
            .itin-editor-toolbar.is-entry {
                display: none;
            }
            .itin-fab-top {
                width: 48px;
                height: 48px;
                right: 16px;
                bottom: calc(env(safe-area-inset-bottom, 0px) + 78px);
            }
            .itin-app,
            .assistant-section,
            .booking-section,
            .members-section,
            .memory-section,
            .notes-section,
            .expense-section,
            .prepare-page {
                padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 142px);
            }
            .itin-day-header-actions {
                width: 100%;
                margin-left: auto;
                display: flex;
                align-items: flex-start;
                gap: 8px;
            }
            .itin-day-quick-btn {
                width: auto;
                min-height: 44px;
                padding: 8px 12px;
                font-size: 0.78rem;
            }
            .itin-day-header-actions-compact {
                display: block;
            }
            .itin-day-compact-menu {
                width: auto;
            }
            .itin-day-compact-summary {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-width: 112px;
                background: #FFF8EF;
                border: 1px solid rgba(199, 148, 69, 0.28);
                color: #7A5B37;
                box-shadow: 0 6px 16px rgba(124, 103, 88, 0.08);
            }
            .itin-day-compact-menu-panel {
                position: static;
                width: 100%;
                box-shadow: none;
                border: 1px solid rgba(229, 221, 214, 0.9);
                border-radius: 14px;
                background: #fff;
                padding: 8px;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 8px;
            }
            .itin-day-compact-menu-panel .itin-day-quick-btn,
            .itin-day-compact-menu-panel .itin-mini-btn-danger {
                width: 100%;
            }
            .itin-day-compact-menu-panel .itin-mini-btn-danger {
                grid-column: 1 / -1;
                min-height: 44px;
                padding: 8px 10px;
                white-space: nowrap;
            }
            .itin-day-quick-actions {
                display: none;
            }
            .itin-day-quick-actions::-webkit-scrollbar {
                display: none;
            }
            .itin-day-header-tools {
                display: none;
            }
            .itin-block-insert-quick {
                display: none;
            }
            .itin-block-insert-rail {
                margin: 2px 0;
                padding: 2px 0;
                height: auto;
                min-height: 46px;
                gap: 4px;
                overflow: visible;
                border-radius: 14px;
            }
            .itin-block-insert-rail.open {
                height: auto;
                padding: 6px 0 8px;
                gap: 8px;
                background: rgba(255, 248, 244, 0.42);
            }
            .itin-block-insert-line {
                height: auto;
                min-height: 44px;
                padding-left: 0;
                display: flex;
                align-items: center;
                justify-content: center;
            }
            .itin-block-insert-rail.open .itin-block-insert-line {
                height: auto;
            }
            .itin-block-insert-rail.is-drop-target {
                background: rgba(255, 248, 244, 0.5);
                padding: 2px 0;
            }
            .itin-block-insert-rail.is-drop-target .itin-block-insert-line::before {
                display: none;
            }
            .itin-block-insert-line::before {
                display: none;
            }
            .itin-block-insert-btn {
                width: auto;
                height: 44px;
                min-width: 106px;
                min-height: 44px;
                position: static;
                transform: none;
                gap: 4px;
                padding: 0 14px;
                font-size: 0.86rem;
                opacity: 0.72;
                color: #8A7A70;
                background: rgba(255, 255, 255, 0.58);
                border: 1px dashed rgba(199, 148, 69, 0.28);
                box-shadow: none;
                flex-shrink: 0;
            }
            .itin-block-insert-btn::after {
                content: "在此新增";
                font-size: 0.76rem;
                font-weight: 900;
                line-height: 1;
            }
            .itin-block-insert-rail.open .itin-block-insert-btn,
            .itin-block-insert-rail.is-drop-target .itin-block-insert-btn,
            .itin-block-insert-btn:focus-visible {
                opacity: 1;
                background: #FFFDFC;
                border-style: solid;
                border-color: rgba(199, 148, 69, 0.36);
                box-shadow: 0 4px 12px rgba(124, 103, 88, 0.07);
            }
            .itin-block-insert-rail.open .itin-block-palette {
                margin: 8px 0 0 0;
            }
            .itin-block-insert-rail .itin-block-helper {
                padding-left: 0;
                padding-right: 4px;
            }
            .itin-mobile-add-day {
                display: flex;
                justify-content: center;
                padding: 12px 14px;
            }
            .itin-bottom-nav {
                position: fixed;
                left: 16px;
                right: 16px;
                bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);
                width: calc(100% - 32px);
                max-width: 600px;
                margin: 0 auto;
                min-height: 64px;
                border-radius: 30px;
                background: color-mix(in srgb, var(--trip-header-surface, rgba(255, 255, 255, 0.4)) 22%, rgba(255, 255, 255, 0.3)) !important;
                -webkit-backdrop-filter: blur(24px) saturate(190%) !important;
                backdrop-filter: blur(24px) saturate(190%) !important;
                border: 1px solid rgba(255, 255, 255, 0.45) !important;
                box-shadow: 
                    0 12px 36px rgba(0, 0, 0, 0.08),
                    inset 0 1px 1px rgba(255, 255, 255, 0.5) !important;
                padding: 4px 8px;
                z-index: 8000;
            }
            .itin-bottom-nav-inner {
                gap: 6px;
                overflow-x: hidden;
                padding: 0;
                display: flex;
                align-items: center;
                justify-content: space-between;
                height: 56px;
            }
            .itin-nav-item {
                min-width: 0;
                flex: 1 1 0;
                height: 48px;
                padding: 0;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                border-radius: 20px;
                border: none;
                background: transparent;
                transition: transform 0.16s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.2s ease;
            }
            .itin-nav-item.active {
                background: var(--trip-accent-soft) !important;
                transform: scale(1.02);
            }
            .itin-nav-item.active .itin-nav-icon {
                transform: scale(1.08);
                color: var(--accent);
            }
            .itin-nav-item.active .itin-nav-label {
                color: var(--accent);
            }
            .itin-nav-icon {
                width: 24px;
                height: 24px;
                margin-bottom: 1px;
                transition: transform 0.2s ease;
            }
            .itin-nav-label {
                font-size: 0.68rem;
                font-weight: 800;
                letter-spacing: 0.02em;
                color: var(--muted);
            }
            /* ── Collapsible bottom nav ────────────────────────────────────
               On scroll-down the pill sinks off-screen, leaving a centred
               grabber handle to tap. transform/opacity only, so it stays
               buttery; the body.nav-collapsed class also drives the FABs. */
            .itin-bottom-nav {
                transition:
                    transform 0.32s cubic-bezier(0.34, 1.56, 0.64, 1),
                    opacity 0.24s ease;
                will-change: transform;
            }
            .itin-bottom-nav-inner {
                transition: opacity 0.2s ease;
            }
            body.nav-collapsed .itin-bottom-nav {
                transform: translateY(calc(100% + env(safe-area-inset-bottom, 0px) + 24px));
                opacity: 0;
                pointer-events: none;
            }
            body.nav-collapsed .itin-bottom-nav-inner {
                opacity: 0;
            }
            .itin-nav-handle {
                display: flex;
                position: fixed;
                left: 50%;
                bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);
                transform: translate(-50%, 14px);
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 3px;
                width: 64px;
                height: 30px;
                padding: 0;
                border: 1px solid rgba(255, 255, 255, 0.5);
                border-radius: 16px;
                background: color-mix(in srgb, var(--trip-header-surface, rgba(255, 255, 255, 0.4)) 22%, rgba(255, 255, 255, 0.34));
                -webkit-backdrop-filter: blur(24px) saturate(190%);
                backdrop-filter: blur(24px) saturate(190%);
                box-shadow:
                    0 10px 30px rgba(0, 0, 0, 0.1),
                    inset 0 1px 1px rgba(255, 255, 255, 0.5);
                color: var(--trip-accent-strong);
                cursor: pointer;
                opacity: 0;
                visibility: hidden;
                pointer-events: none;
                z-index: 8000;
                -webkit-tap-highlight-color: transparent;
                transition:
                    opacity 0.28s ease,
                    transform 0.32s cubic-bezier(0.34, 1.56, 0.64, 1),
                    visibility 0.28s ease;
            }
            .itin-nav-handle-grip {
                width: 30px;
                height: 4px;
                border-radius: 999px;
                background: currentColor;
                opacity: 0.45;
            }
            .itin-nav-handle-chevron {
                width: 16px;
                height: 16px;
                margin-top: -1px;
            }
            body.nav-collapsed .itin-nav-handle {
                opacity: 1;
                visibility: visible;
                pointer-events: auto;
                transform: translate(-50%, 0);
            }
            body.nav-collapsed .itin-nav-handle:active {
                transform: translate(-50%, 0) scale(0.94);
            }
            .expense-stats {
                padding: 0.5rem 0.75rem 1.25rem;
                gap: 10px;
            }
            .expense-stats-summary {
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 8px;
                overflow: visible;
            }
            .expense-stats-chip {
                flex: initial;
                min-width: 0;
                padding: 12px 12px 11px;
                border-radius: 16px;
            }
            .expense-stats-chip-value {
                font-size: 0.98rem;
            }
            .expense-stats-chip-note {
                font-size: 0.74rem;
            }
            .expense-stats-card {
                border-radius: 18px;
                padding: 0.95rem 0.9rem;
            }
            .expense-stats-head {
                margin-bottom: 10px;
                gap: 8px;
            }
            .expense-stats-title {
                font-size: 0.98rem;
            }
            .expense-stats-caption {
                font-size: 0.75rem;
                line-height: 1.45;
            }
            .expense-trend-scroll {
                overflow-x: auto;
                overflow-y: hidden;
                overscroll-behavior-x: contain;
                margin: 0 -2px;
                padding: 0 2px 2px;
            }
            .expense-trend-chart {
                height: 176px;
            }
            .expense-trend-labels {
                gap: 6px;
            }
            .expense-trend-date {
                font-size: 0.74rem;
            }
            .expense-trend-location {
                display: none;
            }
            .expense-trend-amount {
                font-size: 0.7rem;
            }
            .expense-donut-layout {
                display: flex;
                flex-direction: column;
                align-items: stretch;
                gap: 14px;
            }
            .expense-donut-wrap {
                width: clamp(136px, 42vw, 160px);
                height: clamp(136px, 42vw, 160px);
            }
            .expense-donut-center strong {
                font-size: 0.78rem;
            }
            .expense-donut-center span {
                font-size: 0.95rem;
            }
            .expense-legend-list {
                width: 100%;
                min-width: 0;
                gap: 8px;
            }
            .expense-legend-row {
                grid-template-columns: 12px minmax(0, 1fr);
                gap: 4px 10px;
                align-items: flex-start;
                padding: 10px 12px;
                border: 1px solid var(--border);
                border-radius: 14px;
                background: #FAF7F3;
            }
            .expense-legend-swatch {
                grid-row: 1 / span 2;
                margin-top: 6px;
            }
            .expense-legend-name {
                font-size: 0.86rem;
            }
            .expense-legend-sub {
                margin-top: 2px;
                font-size: 0.73rem;
            }
            .expense-legend-value {
                grid-column: 2;
                text-align: left;
                font-size: 0.8rem;
            }
            .expense-bar-note {
                font-size: 0.73rem;
            }
            .expense-top-item {
                grid-template-columns: 34px minmax(0, 1fr);
                align-items: flex-start;
            }
            .expense-top-amount {
                grid-column: 2;
                text-align: left;
                margin-top: 6px;
            }
            .expense-top-amount-main {
                font-size: 0.86rem;
            }
            .expense-top-amount-sub {
                font-size: 0.72rem;
            }
            .expense-compare-head {
                grid-template-columns: 40px minmax(0, 1fr);
                align-items: flex-start;
            }
            .expense-compare-amount {
                grid-column: 2;
                text-align: left;
                margin-top: 2px;
            }
            .expense-mode-toggle {
                gap: 4px;
                overflow-x: auto;
                scrollbar-width: none;
                margin: 0.55rem 0.75rem;
            }
            .expense-mode-toggle::-webkit-scrollbar {
                display: none;
            }
            .expense-mode-btn {
                min-width: 76px;
                flex: 1 0 auto;
                white-space: nowrap;
                font-size: 0.86rem;
                padding: 8px 12px;
            }
            .expense-quick-overview {
                margin: 0.65rem 0.75rem 0.4rem;
                padding: 12px;
                border-radius: 16px;
                align-items: flex-start;
            }
            .expense-quick-amount {
                font-size: 1.35rem;
            }
            .expense-quick-add {
                min-height: 38px;
                padding: 0 12px;
            }
            .expense-form {
                padding: 0.5rem 0.75rem 1.1rem;
            }
            .expense-form-card {
                padding: 1rem;
                border-radius: 18px;
            }
            .expense-date-header {
                flex-wrap: wrap;
                align-items: flex-start;
                gap: 4px 10px;
            }
            .expense-item {
                display: grid;
                grid-template-columns: 34px minmax(0, 1fr) auto;
                grid-template-areas:
                    "avatar info amount"
                    "avatar info actions";
                align-items: start;
                column-gap: 10px;
                row-gap: 6px;
                padding: 12px 12px;
            }
            .expense-item-avatar {
                grid-area: avatar;
                width: 34px;
                height: 34px;
                font-size: 1.08rem;
            }
            .expense-item-info { grid-area: info; }
            .expense-item-amounts {
                grid-area: amount;
                justify-self: end;
                align-self: start;
                text-align: right;
            }
            .expense-item-amount {
                font-size: 1.05rem;
            }
            .expense-item-converted {
                font-size: 0.74rem;
            }
            .expense-item-actions {
                grid-area: actions;
                justify-self: end;
                align-self: end;
            }
            .expense-item-edit,
            .expense-item-delete {
                width: 28px;
                height: 28px;
                font-size: 0.85rem;
            }
            .expense-form-row-inline.expense-form-row-inline-payer-date {
                grid-template-columns: 1fr;
                gap: 12px;
            }
            .expense-form-row-inline.expense-form-row-inline-payer-date .expense-payer-picker {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
            .expense-form-row-inline.expense-form-row-inline-payer-date .expense-payer-option {
                min-height: 62px;
                padding: 9px 6px;
            }
            .expense-form-row-inline.expense-form-row-inline-payer-date .expense-payer-avatar {
                width: 34px;
                height: 34px;
                font-size: 1rem;
            }
            .expense-form-row-inline.expense-form-row-inline-payer-date .expense-payer-name {
                font-size: 0.74rem;
            }
            .expense-form-input,
            .expense-form-select,
            .expense-form-date-display,
            .expense-form-date-input {
                font-size: 16px;
            }
            .expense-form-date-display {
                padding-right: 40px;
            }
            .prepare-page-body,
            .expense-dashboard,
            .memory-shell,
            .notes-shell,
            .booking-shell,
            .members-shell {
                padding-left: 0.75rem;
                padding-right: 0.75rem;
            }
            .notes-search-row { gap: 8px; }
            .notes-add-btn { flex: 1 0 auto; }
            .notes-card { padding: 12px; }
            .notes-card-title { font-size: 1rem; }
            .notes-card-content { font-size: 0.9rem; }
            .notes-card-actions { gap: 6px; }
            .notes-dlg-card { padding: 16px 14px calc(16px + env(safe-area-inset-bottom, 0px)); }
            .notes-image-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
                max-width: none;
            }
            .notes-image-grid.single {
                grid-template-columns: minmax(0, 54%);
                max-width: none;
            }
            .notes-dlg-image-strip {
                grid-template-columns: repeat(4, minmax(0, 1fr));
            }
            .notes-preview-thumb-wrap { flex: 0 0 80px; width: 80px; height: 80px; }
            .notes-preview-title { font-size: 0.92rem; }
            .notes-preview-desc { font-size: 0.8rem; -webkit-line-clamp: 2; }
            .prepare-shell,
            .memory-shell,
            .notes-shell,
            .booking-shell,
            .members-shell {
                padding: 12px 10px;
                border-radius: 20px;
                background: rgba(255, 255, 255, 0.52);
            }
            /* Notes page is flattened — the page background is the canvas and the
               note cards are the only elevated surface (no glass-on-glass). */
            .notes-shell {
                padding: 0;
                border-radius: 0;
                background: transparent;
            }
            .prepare-mobile-tools {
                position: sticky;
                top: 0;
                z-index: 110;
                margin: -12px -10px 9px;
                padding: 12px 10px 1px;
                border-radius: 22px 22px 0 0;
                transition: padding 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
            }
            .prepare-mobile-tools .prepare-header {
                max-height: none;
                opacity: 1;
                overflow: visible;
                transition: max-height 0.2s ease, opacity 0.16s ease, margin-bottom 0.2s ease;
            }
            .prepare-mobile-tools.is-compact {
                padding-top: calc(env(safe-area-inset-top, 0px) + 7px);
                background: color-mix(in srgb, var(--trip-header-surface) 78%, rgba(255, 255, 255, 0.96));
                border-radius: 0 0 17px 17px;
                border-bottom: 1px solid color-mix(in srgb, var(--trip-accent) 14%, transparent);
                box-shadow: 0 9px 20px color-mix(in srgb, var(--trip-accent) 10%, transparent);
                backdrop-filter: blur(14px);
                -webkit-backdrop-filter: blur(14px);
            }
            .prepare-mobile-tools.is-compact .prepare-header {
                max-height: 0;
                opacity: 0;
                overflow: hidden;
                margin-bottom: 0;
                pointer-events: none;
            }
            .prepare-mobile-tools.is-compact .prepare-group-tabs {
                margin-bottom: 7px;
            }
            .prepare-mobile-tools.is-compact .prepare-group-tab {
                min-height: 32px;
                border-radius: 999px;
                display: flex;
                flex-direction: row;
                gap: 4px;
                padding: 5px 7px;
            }
            .prepare-mobile-tools.is-compact .prepare-group-tab-count {
                padding: 0 5px;
                min-height: 19px;
            }
            /* ── Unified frosted-glass sticky top bar ──────────────────────
               One design language for the prepare / expense / notes top bars,
               matching the bottom nav's liquid glass (translucent + blur +
               saturate) plus a 1px inner highlight for true edge refraction.
               The page header + any secondary row scroll away; only this filter/
               mode bar stays pinned. Pure CSS sticky = no collapse, no jitter. */
            .prepare-header { margin-bottom: 10px; }
            .prepare-sticky-tabs,
            .notes-sticky-chips,
            .expense-sticky-bar {
                position: sticky;
                top: env(safe-area-inset-top, 0px);
                z-index: 120;
                background: rgba(255, 255, 255, 0.6);
                -webkit-backdrop-filter: blur(20px) saturate(140%);
                backdrop-filter: blur(20px) saturate(140%);
                border-bottom: 1px solid rgba(255, 255, 255, 0.55);
                box-shadow: 0 8px 22px rgba(80, 58, 41, 0.06),
                            inset 0 1px 0 rgba(255, 255, 255, 0.6);
            }
            /* Full-bleed bars inside the rounded shell cards (prepare) */
            .prepare-sticky-tabs {
                margin: 0 -10px 9px;
                padding: 10px 10px 2px;
                border-radius: 0 0 18px 18px;
            }
            /* Notes shell is flattened (no card) → pin the chips as a clean
               edge-to-edge sub-header; cancel the shell's 1rem side margin. */
            .notes-sticky-chips {
                margin: 0 -1rem 9px;
                padding: 10px 1rem 2px;
                border-radius: 0;
            }
            /* Expense section has no shell card → keep the content side gutter */
            .expense-sticky-bar {
                margin: 0 0 4px;
                padding: 8px 1rem 10px;
            }
            .prepare-sticky-tabs .prepare-group-tabs,
            .notes-sticky-chips .notes-chips { margin-bottom: 0; }
            /* Single horizontal-scroll row of chips — no wrapping to a second
               row that leaves an awkward empty gap on the right. */
            .notes-sticky-chips { min-width: 0; }
            .notes-sticky-chips .notes-chips {
                flex-wrap: nowrap;
                overflow-x: auto;
                min-width: 0;
                padding-bottom: 2px;
            }
            .expense-sticky-bar .expense-mode-toggle {
                margin: 0;
            }
            .prepare-card {
                padding: 10px;
                border-radius: 16px;
            }
            .prepare-item {
                gap: 9px;
                padding: 9px 10px;
                border-radius: 12px;
            }
            .prepare-item-check {
                width: 21px;
                height: 21px;
            }
            .prepare-item-label {
                font-size: 0.94rem;
                line-height: 1.36;
            }
            .prepare-item-note {
                font-size: 0.8rem;
                line-height: 1.5;
            }
            .prepare-item-meta {
                gap: 4px;
                font-size: 0.69rem;
            }
            .prepare-progress-bar {
                height: 8px;
            }
            .prepare-scope-pill {
                min-height: 38px;
                padding: 8px 14px;
            }
            .memory-upload-row {
                align-items: stretch;
            }
            .memory-upload-btn,
            .memory-save-btn,
            .memory-delete-btn {
                width: 100%;
                justify-content: center;
            }
            .memory-file-hint {
                width: 100%;
            }
            .members-count {
                flex-wrap: wrap;
                gap: 6px 12px;
                align-items: flex-start;
            }
            .members-grid {
                grid-template-columns: 1fr;
            }
            .booking-total-card {
                flex-wrap: wrap;
                gap: 12px;
                align-items: flex-start;
            }
            .booking-total-icon {
                margin-left: auto;
            }
            .booking-focus-grid {
                grid-template-columns: 1fr;
                gap: 7px;
            }
            .booking-focus-item {
                padding: 9px 10px;
            }
            .booking-quick-action {
                flex: 1 1 auto;
                min-width: 0;
            }
            .booking-attach-wrap {
                padding: 10px 12px 12px;
            }
            .booking-attach-head {
                align-items: flex-start;
                flex-direction: column;
                gap: 3px;
            }
            .booking-attach-hint {
                text-align: left;
            }
            .booking-attach-thumb,
            .booking-attach-pdf {
                width: 104px;
                height: 104px;
            }
            .memory-composer-head,
            .memory-manage-head {
                align-items: stretch;
                flex-direction: column;
            }
            .memory-status-pill {
                align-self: flex-start;
            }
            .itin-logistics-edit-items {
                padding-left: 12px;
            }
            .itin-inline-logistics-items {
                margin-left: 0;
            }
            .itin-slash-menu {
                left: 12px !important;
                right: 12px;
                min-width: auto;
                max-width: none;
            }
        }
        @media (max-width: 520px) {
            .tab-header {
                padding-top: calc(env(safe-area-inset-top, 0px) + 1.45rem);
                padding-bottom: 1rem;
            }
            .tab-header h1 {
                font-size: 1.08rem;
            }
            .itin-header .itin-header-summary {
                font-size: 0.78rem;
                line-height: 1.5;
            }
            .tab-header-date {
                font-size: 0.88rem;
            }
            .itin-header .itin-header-date {
                padding: 5px 12px;
            }
            .itin-header-focus-row {
                margin-top: 8px;
                gap: 6px;
            }
            .itin-header-focus-items {
                gap: 6px;
            }
            .itin-header-focus-pill {
                padding: 6px 9px;
                border-radius: 16px;
            }
            .itin-header-focus-main,
            .itin-header-focus-meta {
                font-size: 0.77rem;
            }
            .itin-header-focus-dot {
                font-size: 0.68rem;
            }
            .itin-header-mode-pill {
                min-height: 44px;
                font-size: 0.72rem;
            }
            .itin-header-more-btn {
                font-size: 1.28rem;
            }
            .itin-header-weather-chip {
                min-height: 32px;
                padding: 6px 10px;
                font-size: 0.75rem;
            }
            .itin-bottom-nav-inner {
                overflow-x: hidden;
            }
            .itin-nav-item {
                height: 48px;
                padding: 0;
            }
            .itin-nav-icon {
                width: 24px;
                height: 24px;
            }
            .itin-nav-label {
                font-size: 0.68rem;
                letter-spacing: 0;
            }
            .assistant-summary-grid,
            .assistant-weather-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .assistant-quick-grid {
                grid-template-columns: 1fr;
            }
            .assistant-summary-stat,
            .assistant-weather-stat {
                padding: 8px 10px;
            }
            .assistant-card-tag {
                font-size: 0.75rem;
            }
            .assistant-weather-chip,
            .assistant-weather-kicker {
                font-size: 0.76rem;
            }
            .expense-stats-chip-note {
                font-size: 0.77rem;
            }
            .expense-trend-date {
                font-size: 0.77rem;
            }
            .expense-trend-amount {
                font-size: 0.74rem;
            }
            .expense-donut-layout {
                align-items: center;
            }
            .expense-donut-wrap {
                margin: 0 auto;
            }
            .expense-legend-sub {
                font-size: 0.76rem;
            }
            .expense-bar-note {
                font-size: 0.76rem;
            }
            .expense-top-amount-sub {
                font-size: 0.76rem;
            }
            .memory-upload-row {
                gap: 8px;
                flex-wrap: wrap;
            }
            .memory-upload-btn,
            .memory-save-btn {
                width: auto;
                flex: 1 1 0;
                min-width: 120px;
            }
            .memory-file-hint {
                order: 3;
            }
            .memory-delete-btn {
                width: 100%;
            }
        }
        @media (max-width: 420px) {
            .expense-stats-summary {
                grid-template-columns: 1fr;
            }
            .expense-donut-wrap {
                width: 142px;
                height: 142px;
            }
            .expense-mode-btn {
                min-width: 72px;
                font-size: 0.82rem;
                padding-left: 10px;
                padding-right: 10px;
            }
            .expense-form-row-inline.expense-form-row-inline-payer-date .expense-payer-picker {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        @media (hover: none), (pointer: coarse) {
            .itin-block-insert-quick {
                display: none;
            }
        }

        .chat-proposal-card {
            background: #FBF8F4;
            border: 1px solid #E8DFD3;
            border-radius: 12px;
            padding: 12px 16px;
            margin: 4px 0;
        }
        .chat-proposal-summary {
            font-size: 14px;
            color: #2f3640;
            margin-bottom: 10px;
            line-height: 1.5;
        }
        .chat-proposal-actions {
            display: flex;
            gap: 8px;
        }
        .chat-proposal-confirm {
            flex: 1;
            background: linear-gradient(135deg, var(--trip-accent), var(--trip-accent-strong));
            color: white;
            border: none;
            border-radius: 8px;
            padding: 10px 0;
            font-size: 14px;
            font-weight: 600;
            min-height: 44px;
            cursor: pointer;
        }
        .chat-proposal-confirm[disabled] {
            opacity: 0.72;
            cursor: wait;
        }
        .chat-proposal-cancel {
            flex: 1;
            background: #F3F4F6;
            color: #6b7280;
            border: 1px solid #E5E7EB;
            border-radius: 8px;
            padding: 10px 0;
            font-size: 14px;
            min-height: 44px;
            cursor: pointer;
        }
        .chat-proposal-result {
            font-size: 13px;
            line-height: 1.5;
            color: #4b5563;
        }
        .chat-proposal-card.is-success {
            background: #F0FDF4;
            border-color: #BBF7D0;
        }
        .chat-proposal-card.is-error {
            background: #FEF2F2;
            border-color: #FECACA;
        }
        .chat-proposal-card.is-cancelled {
            background: #F9FAFB;
            border-color: #E5E7EB;
            opacity: 0.7;
        }

        /* Chat — mobile overrides */
        @media (max-width: 520px) {
            .chat-fab {
                left: auto;
                right: 14px;
                bottom: calc(82px + env(safe-area-inset-bottom, 0px));
                width: 42px;
                height: 42px;
                opacity: 0.78;
                transition: width 0.2s ease, height 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
            }
            .chat-panel {
                width: 100%;
                height: 100vh;
                height: 100dvh;
                border-radius: 0;
                max-height: none;
                /* Full-screen modal: use a solid background instead of the
                   floating-sheet glass, so the page/nav don't bleed through
                   and text/chips keep full contrast. */
                background: var(--bg) !important;
                backdrop-filter: none !important;
                -webkit-backdrop-filter: none !important;
                border: none !important;
                box-shadow: none !important;
            }
            .chat-messages {
                padding: 12px;
            }
            .chat-msg {
                max-width: 90%;
            }
            .chat-header {
                padding: 12px 14px;
                padding-top: calc(12px + env(safe-area-inset-top, 0px));
            }
            /* Prevent iOS auto-zoom on input focus (requires >= 16px) */
            .chat-input {
                font-size: 16px;
            }

            /* --- Assistant mobile styles — 20260529 --- */
            .assistant-fab {
                left: auto;
                right: 14px;
                bottom: calc(134px + env(safe-area-inset-bottom, 0px)); /* 82px + 42px + 10px spacing */
                width: 42px;
                height: 42px;
                opacity: 0.78;
            }
            .assistant-overlay-panel {
                width: 100%;
                height: 100vh;
                height: 100dvh;
                border-radius: 0;
                background: var(--bg) !important;
                backdrop-filter: none !important;
                -webkit-backdrop-filter: none !important;
                border: none !important;
                box-shadow: none !important;
            }
            .assistant-overlay-panel .assistant-section {
                padding-top: calc(20px + env(safe-area-inset-top, 0px));
                padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
            }
            .assistant-drag-handle {
                display: none;
            }
            .assistant-close-panel-btn {
                top: calc(14px + env(safe-area-inset-top, 0px));
                right: 14px;
                width: 32px;
                height: 32px;
                line-height: 32px;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .itin-nav-item,
            .itin-nav-icon,
            .chat-fab,
            .chat-fab-icon,
            .itin-fab-top,
            .ai-sd-toggle,
            .ai-sd-toggle-face,
            .ai-sd-action,
            .ai-sd-icon,
            .itin-bottom-nav,
            .itin-bottom-nav-inner,
            .itin-nav-handle,
            .ai-speed-dial,
            .itin-day-tabs-sticky,
            .itin-day-tab,
            .itin-day-tab-date {
                transition: none;
            }
            .itin-nav-item.active,
            .itin-nav-item.active .itin-nav-icon {
                transform: none;
            }
            .itin-day-panel,
            body.is-itinerary.show-assistant .assistant-section,
            body.is-itinerary.show-prepare .prepare-page,
            body.is-itinerary.show-booking .booking-section,
            body.is-itinerary.show-members .members-section,
            body.is-itinerary.show-memory .memory-section,
            body.is-itinerary.show-notes .notes-section,
            body.is-itinerary.show-expense .expense-section {
                animation: none;
            }
        }
