@charset "UTF-8";
.plan-page { padding-bottom: 48px; }
.plan-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.plan-heading h1 { font: 600 clamp(34px, 4vw, 50px)/1.5 var(--serif); }
.plan-heading p:not(.eyebrow) { margin-top: 10px; font-size: 14px; }
.plan-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.plan-tools .text-button, .plan-reset, [data-plan-budget-reset] { min-height: 44px; font-size: 12px; }
.plan-device-note { margin: 8px 0 36px; padding: 17px 20px; background: #eef1e8; border-left: 2px solid #9cad90; font-size: 12px; color: #586550; }
.plan-save-status { margin-top: 5px; font-size: 11px; color: #68735f; }
.plan-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.plan-section-heading h2 { font: 600 clamp(24px, 2.4vw, 31px)/1.5 var(--serif); }
.plan-section-heading > p { color: var(--muted); font-size: 12px; }
.plan-hotel-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; align-items: start; }
.plan-hotel-card { border: 1px solid #d4ddcc; padding: 23px; min-width: 0; background: #fffefb; scroll-margin-top: 25px; }
.plan-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.plan-card-top .eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.plan-card-kind { border: 1px solid #d6dfd0; color: #67765b; border-radius: 3px; padding: 1px 6px; font-size: 10px; letter-spacing: 0; }
.plan-hotel-card h3 { font: 600 clamp(21px,2.1vw,26px)/1.6 var(--serif); margin-top: 7px; }
.plan-hotel-card h3 a:hover { color: var(--green); }
.plan-room-hint { margin-top: 7px; color: #6b7562; font-size: 12px; }
.plan-card-links { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 9px; margin: 15px 0; }
.plan-card-links .text-link { font-size: 12px; }
.plan-details { border-top: 1px solid #d9e1d3; }
.plan-details > summary { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0 0; cursor: pointer; color: #3d5534; font-size: 12px; list-style: none; }
.plan-details > summary::-webkit-details-marker { display: none; }
.plan-details > summary::after { content: '＋'; font-size: 18px; }
.plan-details[open] > summary::after { content: '−'; }
.plan-progress { margin-left: auto; font-variant-numeric: tabular-nums; white-space: nowrap; color: #748169; }
.plan-details-body { padding-top: 16px; }
.plan-note-label { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; margin-bottom: 7px; }
.plan-note-label small { color: #78836f; font-size: 10px; }
.plan-details textarea, .plan-copy-feedback textarea { width: 100%; min-height: 90px; resize: vertical; border: 1px solid #b6c3ab; background: #fff; border-radius: 3px; padding: 10px 12px; font: 14px/1.8 var(--sans); color: var(--ink); }
.plan-input-hint { font-size: 10px; color: #77816e; margin-top: 7px; }
.plan-checklist { border: 0; padding: 0; margin: 18px 0 5px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 14px; }
.plan-checklist legend { font-size: 12px; padding: 0; margin-bottom: 6px; }
.plan-checklist label { display: flex; align-items: center; gap: 9px; min-height: 44px; font-size: 12px; cursor: pointer; }
.plan-checklist input { width: 17px; height: 17px; flex-shrink: 0; accent-color: var(--green); }
.plan-reset:disabled, [data-plan-budget-reset]:disabled { opacity: .55; cursor: default; }
.plan-empty { background: #f0f3e9; padding: 28px; text-align: center; }
.plan-empty .green-button { margin-top: 16px; }
.plan-budget { margin-top: 48px; padding: 27px 30px; border: 1px solid #cbd6c1; background: #f2f5ec; }
.plan-budget .plan-section-heading { margin-bottom: 8px; }
.plan-budget .eyebrow { font-size: 10px; margin-bottom: 4px; }
.plan-budget-tag { color: #738267; font-size: 11px; white-space: nowrap; }
.plan-budget-intro { color: #627256; font-size: 12px; margin-bottom: 22px; }
.plan-budget-fields { display: grid; grid-template-columns: 100px repeat(4,minmax(0,1fr)); gap: 14px; align-items: start; }
.plan-budget-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; font-size: 12px; }
.plan-budget-field input { width: 100%; min-height: 45px; background: #fffefb; border: 1px solid #bbc9b0; border-radius: 3px; padding: 9px 10px; font-size: 16px; color: var(--ink); font-variant-numeric: tabular-nums; }
.plan-money-input { position: relative; }
.plan-money-input input { padding-right: 28px; }
.plan-money-input > span { position: absolute; right: 10px; top: 11px; color: #738369; font-size: 12px; }
.plan-budget-field input[aria-invalid="true"] { border-color: #a64a3d; }
.plan-field-error, .plan-budget-error { font-size: 11px; color: #9a3c30; }
.plan-budget-error { margin-top: 10px; }
.plan-budget-totals { display: flex; gap: 40px; flex-wrap: wrap; margin-top: 22px; border-top: 1px solid #cbd7be; padding-top: 20px; }
.plan-budget-totals > div { display: flex; align-items: baseline; gap: 18px; }
.plan-budget-totals span { font-size: 12px; color: #647458; }
.plan-budget-totals small { display: block; font-size: 9px; }
.plan-budget-totals strong { font: 600 clamp(23px,2.5vw,31px)/1.4 var(--serif); color: #315039; font-variant-numeric: tabular-nums; }
[data-plan-budget-reset] { margin-top: 13px; }
.plan-copy-feedback { border: 1px solid #cbd6c1; padding: 18px; margin-bottom: 22px; font-size: 12px; }
.plan-copy-feedback label { display: block; margin-top: 12px; }
.plan-copy-feedback textarea { margin-top: 5px; }
.plan-print-details { display: none; }
.plan-prompt { min-height: 44px; align-items: center; }
.plan-resume { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 19px; border: 1px solid #d4ddcc; background: #f1f4ea; color: #536b43; font-size: 12px; margin-block: 20px; }
.plan-resume p { margin: 0; }
.plan-resume a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; white-space: nowrap; text-decoration: underline; text-underline-offset: 4px; }
.plan-page :is(button,input,textarea,summary):focus-visible { outline: 3px solid #668864; outline-offset: 4px; }
@media(max-width:900px) {
  .plan-budget-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plan-people { grid-column: 1 / -1; max-width: 140px; }
  .plan-heading { align-items: start; flex-direction: column; gap: 16px; }
}
@media(max-width:680px) {
  .plan-hotel-grid { grid-template-columns: 1fr; }
  .plan-hotel-card { padding: 18px; }
  .plan-budget { padding: 22px 18px; margin-top: 36px; }
  .plan-budget-tag { display: none; }
  .plan-budget-totals { flex-direction: column; gap: 15px; }
  .plan-budget-totals > div { justify-content: space-between; }
  .plan-checklist { gap: 0 8px; }
  .plan-checklist label { font-size: 11px; }
  .plan-device-note { padding: 14px 16px; margin-bottom: 28px; }
  .plan-resume { flex-wrap: wrap; gap: 3px 12px; padding: 12px 15px; }
}
@media(max-width:380px) {
  .plan-budget-fields { grid-template-columns: 1fr; }
  .plan-people { max-width: 140px; }
  .plan-checklist { grid-template-columns: 1fr; }
}
@media print {
  body:has([data-plan-root]) { background: #fff; font-size: 11pt; }
  body:has([data-plan-root]) :is(.site-header,.site-footer,.compare-tray,.toast,.skip-link,.breadcrumb,.plan-tools,.plan-device-note,.plan-copy-feedback,.plan-card-links,.plan-details,.plan-budget-tag,.plan-empty,.plan-card-top .save-button,[data-plan-budget-reset]) { display: none !important; }
  .plan-page { width: 100%; padding: 0; }
  .plan-heading { padding: 0 0 15px; }
  .plan-heading h1 { font-size: 24pt; }
  .plan-hotel-grid { display: block; }
  .plan-hotel-card { break-inside: avoid; margin-bottom: 14px; padding: 14px; background: #fff; }
  .plan-hotel-card[hidden] { display: none !important; }
  .plan-print-details { display: block; margin-top: 12px; }
  .plan-print-note { white-space: pre-wrap; overflow-wrap: anywhere; }
  .plan-print-details ul { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; margin: 10px 0 0; font-size: 10pt; }
  .plan-budget { background: #fff; break-inside: avoid; margin-top: 20px; padding: 14px; }
  .plan-budget-fields { grid-template-columns: 70px repeat(4,minmax(0,1fr)); }
  .plan-people { grid-column: auto; }
  .plan-budget-field input { min-height: 0; padding: 4px; font-size: 11pt; border-color: #ddd; }
  .plan-money-input > span { top: 4px; right: 4px; }
  .plan-budget-totals { flex-direction: row; gap: 30px; }
  .plan-budget-totals strong { font-size: 17pt; }
  .plan-budget .plan-input-hint { font-size: 8pt; }
}
