.v2-shell { width: min(100%, 760px); margin: 0 auto; padding: 18px 16px calc(104px + var(--safe-bottom)); overflow: visible; }
.v2-shell[hidden] { display: none !important; }
#travel-navigation[hidden] { display: none !important; }
.v2-shell__hero { padding: 26px 22px; border: 1px solid rgba(15,67,53,.18); border-radius: 28px; color: var(--poster-cream); background: var(--poster-green); box-shadow: var(--shadow); }
.v2-shell__hero p { margin: 0 0 8px; color: #f1bd58; font: 800 10px/1.2 ui-monospace,monospace; letter-spacing: .16em; }
.v2-shell__hero h1 { margin: 0; font: 760 clamp(36px,10vw,64px)/1 Georgia,serif; letter-spacing: -.055em; }
.v2-shell__hero span { display: block; margin-top: 12px; color: rgba(255,246,223,.75); font-size: 13px; }
.v2-shell__toolbar { margin: 18px 0; display: flex; gap: 10px; justify-content: space-between; align-items: center; }
.v2-shell__toolbar h2 { margin: 0; font-size: 22px; }
.v2-button { min-height: 44px; padding: 0 16px; border: 0; border-radius: 14px; color: white; background: var(--poster-orange); font-weight: 780; cursor: pointer; }
.v2-button--secondary { color: var(--ink); background: white; border: 1px solid var(--line); }
.v2-state { padding: 28px 20px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,250,240,.86); text-align: center; }
.v2-state strong { display: block; font-size: 17px; }
.v2-state span { display: block; margin-top: 7px; color: var(--muted); font-size: 12px; }
.v2-sign-out { min-width: 56px; min-height: 44px; padding: 0 12px; border: 1px solid rgba(255,255,255,.28); border-radius: 12px; color: inherit; background: rgba(255,255,255,.12); font: 760 11px/1 system-ui,sans-serif; cursor: pointer; }
.v2-sign-out[hidden] { display: none !important; }
.v2-auth { min-height: calc(100dvh - 150px); display: grid; align-content: center; gap: 18px; }
.v2-auth__poster { padding: 32px 24px; border-radius: 28px; color: var(--poster-cream); background: var(--poster-green); box-shadow: var(--shadow); }
.v2-auth__poster p { margin: 0 0 10px; color: #f1bd58; font: 800 10px/1.2 ui-monospace,monospace; letter-spacing: .16em; }
.v2-auth__poster h1 { margin: 0; font: 760 clamp(40px,12vw,68px)/.96 Georgia,serif; letter-spacing: -.055em; }
.v2-auth__poster span { display: block; margin-top: 14px; max-width: 28rem; color: rgba(255,246,223,.78); font-size: 13px; }
.v2-auth__form { display: grid; gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: var(--shadow); }
.v2-auth__form label { display: grid; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 760; }
.v2-auth__form input { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #cfc5a2; border-radius: 12px; background: #fffdf7; font: inherit; }
.v2-auth__form small { color: var(--muted); font-size: 11px; text-align: center; }
.v2-invite-card { padding: 20px; border: 1px solid rgba(15,67,53,.18); border-radius: 22px; background: #fffaf0; box-shadow: var(--shadow); }
.v2-invite-card > p { margin: 0 0 8px; color: var(--poster-orange); font: 800 10px/1 ui-monospace,monospace; letter-spacing: .14em; }
.v2-invite-card h2 { margin: 0 0 16px; font: 740 28px/1.05 Georgia,serif; }
.v2-invite-card dl { margin: 0; display: grid; gap: 9px; }
.v2-invite-card dl div { display: flex; justify-content: space-between; gap: 16px; }
.v2-invite-card dt { color: var(--muted); font-size: 11px; }
.v2-invite-card dd { margin: 0; text-align: right; font-size: 12px; font-weight: 760; }
.v2-invite-accept { min-height: calc(100dvh - 170px); display: grid; align-content: center; gap: 16px; }
.v2-invite-accept > p { margin: 0; color: var(--muted); font-size: 12px; }
.v2-trip-groups { display: grid; gap: 24px; }
.v2-trip-group h3 { margin: 0 0 10px; color: var(--muted); font: 800 10px/1 ui-monospace,monospace; letter-spacing: .14em; text-transform: uppercase; }
.v2-trip-list { display: grid; gap: 12px; }
.v2-trip-swipe { position: relative; min-width: 0; overflow: hidden; border-radius: 20px; background: #e9dfc8; }
.v2-trip-actions { position: absolute; inset: 0 auto 0 0; width: 210px; padding: 10px; display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; align-items: stretch; }
.v2-trip-swipe.is-open--left .v2-trip-actions,.v2-trip-swipe.is-swiping-left .v2-trip-actions { inset: 0 0 0 auto; }
.v2-trip-actions button { min-width: 0; border: 0; border-radius: 13px; color: var(--poster-cream); background: var(--poster-green); font: 760 11px/1 system-ui,sans-serif; cursor: pointer; }
.v2-trip-actions [data-delete-trip] { background: #944d3b; }
.v2-trip-actions [data-cancel-trip] { color: var(--ink); background: #f5ebd5; }
.v2-trip-actions button:disabled { opacity: .42; cursor: not-allowed; }
.v2-trip-card { position: relative; z-index: 1; width: 100%; min-height: 148px; padding: 18px; display: grid; gap: 8px; text-align: left; border: 1px solid rgba(19,38,47,.12); border-radius: 20px; color: var(--ink); background: white; box-shadow: 0 12px 32px rgba(19,38,47,.07); cursor: pointer; touch-action: pan-y; transition: transform .22s cubic-bezier(.2,.8,.2,1); }
.v2-trip-swipe.is-open .v2-trip-card { transform: translateX(210px); }
.v2-trip-swipe.is-open--left .v2-trip-card { transform: translateX(-210px); }
.v2-trip-card small { color: var(--poster-orange); font: 800 9px/1 ui-monospace,monospace; letter-spacing: .12em; }
.v2-trip-card strong { font: 740 24px/1.1 Georgia,serif; }
.v2-trip-card span { color: var(--muted); font-size: 12px; }
.v2-avatars { display: flex; margin-top: 5px; }
.v2-avatar { width: 30px; height: 30px; margin-right: -6px; display: grid; place-items: center; border: 2px solid white; border-radius: 50%; color: white; background: var(--lake); font-size: 10px; font-weight: 800; }
.v2-home-notice { margin: -4px 0 16px; padding: 12px 14px; border: 1px solid rgba(15,67,53,.2); border-radius: 14px; color: var(--poster-green); background: #f1ead8; font-size: 12px; font-weight: 700; }
.v2-trip-delete-dialog { width: min(calc(100% - 32px),420px); padding: 24px; border: 1px solid rgba(15,67,53,.2); border-radius: 24px; color: var(--ink); background: var(--poster-cream); box-shadow: 0 24px 80px rgba(19,38,47,.35); }
.v2-trip-delete-dialog::backdrop { background: rgba(10,28,23,.62); backdrop-filter: blur(3px); }
.v2-trip-delete-dialog > p:first-child { margin: 0 0 9px; color: var(--poster-orange); font: 800 10px/1 ui-monospace,monospace; letter-spacing: .16em; }
.v2-trip-delete-dialog h2 { margin: 0; font: 740 27px/1.1 Georgia,serif; }
.v2-trip-delete-dialog #v2-delete-copy { margin: 14px 0 20px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.v2-trip-delete-dialog > div { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.v2-button--danger { background: #944d3b; }
.v2-form { display: grid; gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: var(--shadow); }
.v2-form label { display: grid; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 760; }
.v2-form input { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #cfc5a2; border-radius: 12px; background: #fffdf7; font: inherit; }
.v2-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.v2-form__error { min-height: 20px; color: var(--warning); font-size: 12px; }
.v2-create-choices { margin-top: 18px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.v2-create-choices button { min-width: 0; min-height: 230px; padding: 20px; display: flex; flex-direction: column; align-items: flex-start; text-align: left; border: 1px solid rgba(15,67,53,.18); border-radius: 24px; color: var(--ink); background: #fffaf0; box-shadow: 0 12px 32px rgba(19,38,47,.07); cursor: pointer; }
.v2-create-choices button:nth-child(2) { background: #eef2e6; }
.v2-create-choices button:nth-child(3) { color: var(--poster-cream); background: var(--poster-green); }
.v2-create-choices span { color: var(--poster-orange); font: 800 9px/1 ui-monospace,monospace; letter-spacing: .13em; }
.v2-create-choices strong { margin-top: auto; font: 740 25px/1.05 Georgia,serif; }
.v2-create-choices small { margin-top: 11px; color: inherit; opacity: .72; font-size: 12px; line-height: 1.55; }
.v2-create-choices i { margin-top: 15px; padding: 5px 8px; border-radius: 999px; color: var(--poster-green); background: #f1e4c8; font-size: 9px; font-style: normal; font-weight: 800; }
.v2-source-note { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.v2-document-shell { margin-top: 18px; }
.v2-document-shell input[type="file"] { padding: 10px; }
.v2-document-selection { margin: 0; padding: 12px; border-radius: 12px; color: var(--poster-green); background: #f1ead8; font-size: 12px; }
.v2-document-consent { grid-template-columns: 22px 1fr !important; align-items: start; gap: 9px !important; color: var(--ink) !important; font-weight: 600 !important; line-height: 1.55; }
.v2-document-consent input { width: 18px !important; height: 18px; margin: 1px 0 0; accent-color: var(--poster-green); }
.v2-document-progress { margin-top: 18px; padding: 18px; border: 1px solid rgba(15,67,53,.18); border-radius: 22px; background: #fffaf0; box-shadow: 0 12px 30px rgba(19,38,47,.07); }
.v2-document-progress > strong,.v2-document-progress > span { display: block; overflow-wrap: anywhere; }
.v2-document-progress > strong { color: var(--poster-green); font-family: Georgia,serif; font-size: 18px; }
.v2-document-progress > span { margin-top: 5px; color: var(--muted); font-size: 10px; }
.v2-document-progress ol { margin: 18px 0; padding: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; }
.v2-document-progress li { position: relative; padding: 24px 4px 0; color: #8c8677; text-align: center; font-size: 9px; font-weight: 800; }
.v2-document-progress li::before { content: ""; position: absolute; top: 5px; left: 50%; z-index: 2; width: 10px; height: 10px; border: 2px solid #c7bfa9; border-radius: 50%; background: #fffaf0; transform: translateX(-50%); }
.v2-document-progress li::after { content: ""; position: absolute; top: 10px; left: -50%; width: 100%; height: 2px; background: #ddd4bd; }
.v2-document-progress li:first-child::after { display: none; }
.v2-document-progress li.is-active { color: var(--poster-green); }
.v2-document-progress li.is-active::before,.v2-document-progress li.is-active::after { border-color: var(--poster-orange); background: var(--poster-orange); }
.v2-draft-review { margin-top: 18px; display: grid; gap: 14px; }
.v2-draft-section { padding: 18px; border: 1px solid rgba(15,67,53,.17); border-radius: 22px; background: #fffaf0; box-shadow: 0 9px 26px rgba(19,38,47,.05); }
.v2-draft-section__title,.v2-draft-card__heading,.v2-draft-entity__heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.v2-draft-section h2,.v2-draft-card h3 { margin: 0; font-family: Georgia,serif; }
.v2-draft-section__title > button,.v2-draft-card__actions button,.v2-draft-entity button { min-height: 36px; padding: 0 10px; border: 1px solid rgba(15,67,53,.2); border-radius: 10px; color: var(--poster-green); background: white; cursor: pointer; font: 760 10px/1 system-ui,sans-serif; }
.v2-draft-stack { margin-top: 12px; display: grid; gap: 10px; }
.v2-draft-card,.v2-draft-entity { padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.v2-draft-card__heading small { color: var(--poster-orange); font: 800 9px/1 ui-monospace,monospace; letter-spacing: .1em; }
.v2-draft-card__heading h3 { margin-top: 5px; }
.v2-draft-fields { margin-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.v2-draft-section label,.v2-draft-card label,.v2-draft-entity label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; font-weight: 760; }
.v2-draft-section input,.v2-draft-section textarea { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid #d6caa7; border-radius: 10px; color: var(--ink); background: #fffdf7; font: inherit; font-size: 12px; }
.v2-draft-review-state { margin-top: 9px; grid-template-columns: auto minmax(110px,160px); align-items: center; }
.v2-draft-review-state select { min-height: 36px; padding: 0 9px; border: 1px solid #d6caa7; border-radius: 10px; color: var(--ink); background: #fffdf7; }
.v2-draft-card__actions,.v2-draft-entity__actions { margin-top: 11px; display: flex; flex-wrap: wrap; gap: 7px; }
.v2-draft-status { padding: 5px 7px; border-radius: 999px; color: #315c48; background: #e4efe5; font-size: 9px; font-weight: 800; white-space: nowrap; }
.v2-draft-status.is-suggested { color: #6f5029; background: #f7e8c9; }
.v2-draft-status.is-needs_review { color: #8c442f; background: #f8ded3; }
.v2-draft-empty { margin: 0; color: var(--muted); font-size: 11px; }
.v2-draft-issues { display: grid; gap: 8px; margin-top: 12px; }
.v2-draft-issues article { padding: 11px; border-left: 4px solid #c4a24f; border-radius: 10px; background: #fff8e6; }
.v2-draft-issues article.is-blocking { border-color: #a44836; background: #fff0ec; }
.v2-draft-issues p { margin: 5px 0; font-size: 11px; }
.v2-draft-issues small { color: var(--muted); }
.v2-draft-source,.v2-draft-citation { margin: 10px 0 0; display: grid; gap: 3px; }
.v2-draft-source span,.v2-draft-citation span { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.v2-draft-unsupported { border-color: #d6b17d; background: #fff2df; }
.v2-draft-unsupported p { margin-bottom: 0; color: var(--muted); font-size: 11px; }
.v2-draft-footer { position: sticky; bottom: 8px; z-index: 5; padding: 10px; display: grid; grid-template-columns: auto 1fr 1.3fr; gap: 8px; border: 1px solid rgba(15,67,53,.2); border-radius: 18px; background: rgba(255,250,240,.94); box-shadow: 0 14px 42px rgba(19,38,47,.18); backdrop-filter: blur(12px); }
.v2-draft-footer button:disabled { opacity: .45; cursor: not-allowed; }
.v2-empty-tabs { display: grid; gap: 14px; }
.v2-empty-panel { padding: 30px 20px; border: 1px dashed rgba(19,38,47,.22); border-radius: 22px; background: rgba(255,250,240,.78); text-align: center; }
.v2-empty-panel h2 { margin: 0; font: 740 28px/1.1 Georgia,serif; }
.v2-empty-panel p { margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.v2-member-list { margin-top: 18px; display: grid; gap: 10px; }
.v2-member-card { padding: 14px; display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 8px 24px rgba(19,38,47,.05); }
.v2-member-card > div:not(.v2-member-invite) { display: grid; gap: 4px; }
.v2-member-card strong { font-size: 15px; }
.v2-member-card span { color: var(--muted); font-size: 11px; }
.v2-member-invite { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.v2-member-invite select { min-height: 44px; padding: 0 10px; border: 1px solid #cfc5a2; border-radius: 12px; background: #fffdf7; }
.v2-invite-result { margin-top: 14px; padding: 16px; border: 1px solid rgba(217,108,66,.35); border-radius: 18px; background: #fff6e7; }
.v2-invite-result strong { display: block; }
.v2-invite-result p,.v2-invite-result small { color: var(--muted); font-size: 11px; }
.v2-invite-result > div { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.v2-invite-result input { min-width: 0; min-height: 44px; padding: 0 10px; border: 1px solid #cfc5a2; border-radius: 12px; background: white; font-size: 11px; }
.v2-tab-hidden { display: none !important; }
.v2-mine-grid { display: grid; gap: 10px; }
.v2-mine-grid > * { min-height: 72px; padding: 15px; display: grid; gap: 5px; text-align: left; border: 1px solid var(--line); border-radius: 15px; color: var(--ink); background: white; }
.v2-mine-grid button { cursor: pointer; }
.v2-mine-grid span { color: var(--muted); font-size: 11px; }
.v2-account-card { border-left: 4px solid var(--poster-orange) !important; }
#v2-mine-sign-out { color: #873b2d; background: #fff8ee; }
body[data-v2-ready="true"] .site-lock { display: none !important; }
@media (max-width: 390px) {
  .v2-shell { padding-inline: 10px; }
  .v2-form__row { grid-template-columns: 1fr; }
  .v2-invite-result > div { grid-template-columns: 1fr; }
  .bottom-navigation { bottom: max(6px,var(--safe-bottom)); width: calc(100% - 8px); min-height: 66px; }
  .bottom-navigation a { min-height: 52px; padding-inline: 1px; font-size: 8px; }
  .bottom-navigation__icon,.bottom-navigation__icon svg { width: 17px; height: 17px; }
  body[data-v2-app-level="home"] .v2-shell { padding-bottom: calc(30px + var(--safe-bottom)); }
  .v2-create-choices { grid-template-columns: 1fr; }
  .v2-create-choices button { min-height: 180px; }
  .v2-draft-fields { grid-template-columns: 1fr; }
  .v2-draft-section { padding: 13px; }
  .v2-draft-footer { position: static; grid-template-columns: 1fr; }
}
