.workspace-tabs { display: flex; gap: 5px; padding: 12px 22px 0; border-bottom: 1px solid #dedfe5; }
.workspace-tabs button { border: 0; border-bottom: 3px solid transparent; padding: 13px 18px; background: transparent; color: #64748b; font-size: 14px; font-weight: 700; }
.workspace-tabs button:hover { color: #030c94; background: #f6f6fc; }
.workspace-tabs button[aria-selected="true"] { color: #030c94; border-bottom-color: #0f0cc5; }
[data-workspace="shore"] .offline-tools { display: none; }
.shore-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.shore-view { padding: 22px; }
.shore-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.shore-heading h2 { margin: 0; font-size: 24px; }
.shore-selection { display: flex; align-items: end; gap: 12px; margin-top: 22px; }
.shore-selection > label { display: grid; flex: 1; gap: 7px; min-width: 0; max-width: 800px; font-size: 13px; font-weight: 700; }
.shore-selection select { width: 100%; min-width: 0; border: 1px solid #ded6ca; border-radius: 8px; padding: 10px; background: #faf8f4; color: #1f2937; font-size: 14px; }
.shore-selection button { flex-shrink: 0; }
.shore-message { min-height: 1.5em; margin: 12px 0 18px; color: #39724b; font-size: 13px; line-height: 1.5; }
.shore-message.is-error { color: #b42318; }
#shore-editor { margin: 0; padding: 0; min-width: 0; border: 0; }
#shore-editor:disabled .shore-sheet { opacity: .6; }
.shore-sheet { max-width: 1120px; margin: 0 auto; border: 1px solid #aeb6bd; background: #fff; color: #18232b; }
.shore-sheet-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; }
.shore-sheet-heading img { width: 138px; height: auto; }
.shore-sheet-heading h2 { margin: 0; font-size: 24px; }
.shore-sheet-heading p { margin: 5px 0 0; text-align: right; color: #64748b; font-size: 14px; font-weight: 700; }
.shore-section h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 0; padding: 10px 12px; border-top: 1px solid #aeb6bd; border-bottom: 1px solid #aeb6bd; background: #d3d7da; color: #18232b; font-size: 13px; font-weight: 700; }
.shore-section h3 small { color: #475569; font-size: 11px; font-weight: 400; }
.shore-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.shore-field { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); min-width: 0; border-bottom: 1px solid #d3d7da; }
.shore-field > span { display: flex; align-items: center; padding: 10px 12px; background: #f0f1f2; font-size: 12px; line-height: 1.5; font-weight: 600; overflow-wrap: anywhere; }
.shore-wide { grid-column: 1 / -1; }
.shore-field.shore-wide { grid-template-columns: minmax(0, .95fr) minmax(0, 1.55fr); }
.shore-field.shore-stacked { grid-template-columns: minmax(0, 1fr); }
.shore-field.shore-stacked textarea { border-left: 0; }
.shore-sheet input, .shore-sheet textarea, .shore-sheet select { width: 100%; min-width: 0; margin: 0; padding: 10px 12px; border: 0; border-left: 1px solid #d3d7da; border-radius: 0; background: #fff; color: #1f2937; font: 13px/1.5 Arial, Helvetica, sans-serif; }
.shore-sheet select { min-height: 42px; }
.shore-automatic input, .shore-automatic textarea, .shore-automatic select { background: #f8fafb; }
.shore-automatic select:disabled { opacity: 1; color: #1f2937; -webkit-text-fill-color: #1f2937; }
.shore-red textarea { color: #c22525; -webkit-text-fill-color: #c22525; }
.shore-mobility-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.shore-mobility-fields .shore-field { grid-template-columns: minmax(0, 1fr); }
.shore-mobility-fields .shore-span-1 { grid-column: span 1; }
.shore-mobility-fields .shore-span-2 { grid-column: span 2; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); }
.shore-mobility-fields .shore-span-4 { grid-column: 1 / -1; }
.shore-mobility-fields .shore-span-1 > span { min-height: 100px; align-items: start; }
.shore-mobility-fields .shore-span-2 > span { min-height: 58px; }
.shore-mobility-fields input, .shore-mobility-fields select, .shore-mobility-fields textarea { border-left: 0; }
.shore-mobility-fields .shore-span-2 > input, .shore-mobility-fields .shore-span-2 > select { border-left: 1px solid #d3d7da; }
.shore-layout-8 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.shore-layout-9 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.shore-layout-8 .shore-field, .shore-layout-9 .shore-field { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); }
.shore-layout-8 .shore-span-2, .shore-layout-9 .shore-span-2 { grid-column: span 2; }
.shore-layout-8 .shore-span-3 { grid-column: span 3; }
.shore-layout-8 .shore-field > span, .shore-layout-9 .shore-field > span { min-height: 42px; }
.shore-layout-8 input, .shore-layout-8 select, .shore-layout-9 input, .shore-layout-9 select { border-left: 1px solid #d3d7da; }
.shore-languages { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); grid-column: span 3; min-width: 0; margin: 0; padding: 0; border: 0; border-bottom: 1px solid #d3d7da; background: #f0f1f2; }
.shore-language-title { display: flex; align-items: center; padding: 10px 12px; font-size: 12px; line-height: 1.5; font-weight: 600; }
.shore-languages .shore-field { border-bottom: 0; }
.shore-layout-9 .shore-languages .shore-field { grid-template-columns: minmax(70px, .65fr) minmax(0, 1fr); }
#shore-food { grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); min-width: 0; margin: 0; padding: 0; border: 0; }
#shore-food [data-shore-label="menu"], #shore-food [data-shore-label="dietaryRequests"] { grid-template-columns: max-content minmax(0, 1fr); }
#shore-food [data-shore-label="menu"] > span, #shore-food [data-shore-label="dietaryRequests"] > span { white-space: nowrap; }
#shore-food:disabled input, #shore-food:disabled select, #shore-food:disabled textarea { background: #f1f3f5; color: #64748b; }
.shore-field.shore-wide[data-shore-label="allFeaturesIncluded"], .shore-field.shore-wide[data-shore-label="additionalFees"], .shore-field.shore-wide[data-shore-label="headsets"] { grid-template-columns: max-content minmax(0, 1fr); }
[data-shore-label="allFeaturesIncluded"] > span, [data-shore-label="additionalFees"] > span, [data-shore-label="headsets"] > span { white-space: nowrap; }
.shore-fee-controls { display: flex; align-items: stretch; min-width: 0; }
.shore-fee-controls > input { flex: 0 1 90px; background: #f8fafb; }
.shore-fee-amount { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; padding-left: 8px; font-size: 11px; white-space: nowrap; }
.shore-fee-amount input { flex: 1; min-width: 55px; }
.shore-fee-amount[hidden] { display: none; }
.shore-fee-amount input[aria-invalid="true"], .shore-dialog input[aria-invalid="true"] { outline: 1px solid #b42318; outline-offset: -1px; }
.shore-price-panel { margin-top: 14px; padding: 12px 14px; border: 1px solid #e0e4e8; border-radius: 8px; background: #f7f9fa; }
.shore-price-panel p { margin: 0; color: #475569; font-size: 12px; line-height: 1.5; }
.shore-price-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.shore-price-panel label { display: grid; gap: 6px; margin-top: 12px; font-size: 13px; }
.shore-price-panel select { width: 100%; min-width: 0; padding: 9px; border: 1px solid #ded6ca; border-radius: 6px; font: inherit; }
.shore-dialog { width: min(600px, calc(100vw - 28px)); max-height: calc(100dvh - 40px); padding: 22px; border: 1px solid #d3d7da; border-radius: 14px; color: #1f2937; }
.shore-dialog::backdrop { background: #172b4666; }
.shore-dialog h2 { margin: 0 0 12px; font-size: 21px; }
.shore-dialog p, .shore-missing-fields { font-size: 14px; line-height: 1.5; }
.shore-missing-fields { max-height: 45dvh; overflow: auto; padding-left: 24px; }
.shore-missing-fields li { margin-bottom: 7px; }
.shore-dialog label { display: grid; gap: 6px; margin: 14px 0; font-size: 13px; font-weight: 600; }
.shore-dialog input { min-width: 0; padding: 10px; border: 1px solid #d3d7da; border-radius: 7px; }
.shore-dialog .shore-actions { justify-content: end; }
.shore-sheet textarea { min-height: 60px; resize: vertical; }
.shore-sheet input:hover, .shore-sheet textarea:hover { background: #fbfbff; }
.shore-view input:focus-visible, .shore-view textarea:focus-visible, .shore-view select:focus-visible { outline: 2px solid #0f0cc5; outline-offset: -2px; background: #f7f7ff; }
.shore-subheading { margin: 0; padding: 10px 12px; background: #e8eaec; color: #334155; font-size: 12px; }
.shore-table-block { min-width: 0; border-bottom: 1px solid #d3d7da; }
.shore-table-scroll { position: relative; overflow-x: auto; }
.shore-table-block table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.shore-table-block th { padding: 9px 12px; border-right: 1px solid #c5cbd0; border-bottom: 1px solid #c5cbd0; background: #f0f1f2; text-align: left; line-height: 1.5; }
.shore-table-block td { padding: 0; vertical-align: top; border-right: 1px solid #d3d7da; border-bottom: 1px solid #d3d7da; }
.shore-table-block th:last-child, .shore-table-block td:last-child { border-right: 0; }
.shore-table-block tbody tr:last-child td { border-bottom: 0; }
.shore-table-block input, .shore-table-block textarea { display: block; border-left: 0; }
.shore-itinerary { min-width: 560px; }
.shore-itinerary th:first-child { width: 21%; }
.shore-itinerary th:nth-child(3) { width: 18%; }
.shore-itinerary th:last-child { width: 42px; }
.shore-itinerary textarea { height: 64px; }
.shore-remove-row { display: block; width: 100%; min-height: 64px; padding: 8px; border: 0; background: white; color: #9a4545; font-size: 20px; }
.shore-remove-row:hover { background: #fff0ee; }
.shore-add-row { margin: 10px 12px; }
.shore-table-note { margin: 0; padding: 8px 12px; border-bottom: 1px solid #d3d7da; color: #64748b; font-size: 12px; line-height: 1.5; }
.shore-rates th:first-child { width: 28%; }
.shore-rates input { padding: 12px; }
.shore-rates input[readonly] { background: #f8fafb; }
.shore-rates-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; background: #e8eaec; }
.shore-rates-heading h4 { flex: 1; }
.shore-rates-discounts { margin: 7px 12px; padding: 9px 14px; border: 1px solid #0f0cc5; color: #030c94; background: #fff; font-weight: 700; }
@media (max-width: 1000px) {
  .shore-fields { grid-template-columns: minmax(0, 1fr); }
  .shore-field, .shore-field.shore-wide { grid-template-columns: minmax(0, .95fr) minmax(0, 1.55fr); }
  .shore-mobility-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #shore-food { grid-template-columns: minmax(0, 1fr); }
  .shore-layout-8, .shore-layout-9 { grid-template-columns: minmax(0, 1fr); }
  .shore-layout-8 .shore-field, .shore-layout-9 .shore-field, .shore-languages { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
  .shore-field.shore-wide[data-shore-label="allFeaturesIncluded"], .shore-field.shore-wide[data-shore-label="additionalFees"], .shore-field.shore-wide[data-shore-label="headsets"] { grid-template-columns: minmax(0, 1fr); }
  [data-shore-label="allFeaturesIncluded"] > span, [data-shore-label="additionalFees"] > span, [data-shore-label="headsets"] > span { white-space: normal; }
}
@media (max-width: 600px) {
  .workspace-tabs { padding: 6px 10px 0; }
  .workspace-tabs button { flex: 1; padding: 12px 8px; font-size: 13px; }
  .shore-view { padding: 16px 10px; }
  .shore-heading h2 { font-size: 21px; }
  .shore-actions { width: 100%; }
  .shore-actions > button { flex: 1; }
  .shore-selection { flex-wrap: wrap; margin-top: 18px; }
  .shore-selection > label { flex-basis: 100%; }
  .shore-selection button { width: 100%; }
  .shore-sheet-heading { align-items: start; flex-direction: column; gap: 16px; padding: 18px 12px; }
  .shore-sheet-heading img { width: 110px; }
  .shore-sheet-heading h2 { font-size: 20px; }
  .shore-sheet-heading p { text-align: left; }
  .shore-field, .shore-field.shore-wide { grid-template-columns: minmax(0, 1fr); }
  .shore-sheet input, .shore-sheet textarea, .shore-sheet select { border-left: 0; min-height: 44px; }
  .shore-mobility-fields { grid-template-columns: minmax(0, 1fr); }
  .shore-mobility-fields .shore-field { grid-column: 1 / -1; }
  .shore-mobility-fields .shore-span-2 { grid-template-columns: minmax(0, 1fr); }
  .shore-mobility-fields .shore-span-2 > input, .shore-mobility-fields .shore-span-2 > select { border-left: 0; }
  .shore-mobility-fields .shore-field > span { min-height: auto; }
  #shore-food [data-shore-label="menu"], #shore-food [data-shore-label="dietaryRequests"] { grid-template-columns: minmax(0, 1fr); }
  #shore-food [data-shore-label="menu"] > span, #shore-food [data-shore-label="dietaryRequests"] > span { white-space: normal; }
  .shore-field.shore-wide[data-shore-label="allFeaturesIncluded"], .shore-field.shore-wide[data-shore-label="additionalFees"], .shore-field.shore-wide[data-shore-label="headsets"] { grid-template-columns: minmax(0, 1fr); }
  [data-shore-label="allFeaturesIncluded"] > span, [data-shore-label="additionalFees"] > span, [data-shore-label="headsets"] > span { white-space: normal; }
  .shore-layout-8, .shore-layout-9 { grid-template-columns: minmax(0, 1fr); }
  .shore-layout-8 .shore-field, .shore-layout-9 .shore-field, .shore-languages { grid-column: 1 / -1; }
  .shore-layout-8 .shore-field, .shore-layout-9 .shore-field { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
  .shore-languages { grid-template-columns: minmax(0, 1fr); }
  .shore-layout-8 .shore-field > span, .shore-layout-9 .shore-field > span { min-height: auto; }
  .shore-field > span { padding-bottom: 7px; }
  .shore-rates th { padding: 8px 6px; font-size: 11px; }
  .shore-rates input { padding: 10px 6px; }
}
@media print {
  .workspace-tabs { display: none !important; }
  #shore-edit-discounts, #shore-discounts-dialog { display: none !important; }
}
