/* Seegangsplanung – Seitenspezifische Styles
   Die allgemeinen Styles für Header, Footer, Container, Karten und Buttons
   kommen aus der World-Cruise-Ports-Hauptseite. */

.planner-section,
.info-section{
  --wave-bg:#f6f6f6;
  --wave-surface:#ffffff;
  --wave-soft:#fafafa;
  --wave-text:#25232b;
  --wave-muted:#6f6b74;
  --wave-line:#e7e5e8;
  --wave-line-strong:#d9d6dc;
  --wave-accent:#315f7d;
  --wave-accent-soft:#eef4f7;
  --wave-danger:#b4232c;
  --wave-success:#56a849;
  --wave-warning:#e7a128;
  --wave-orange:#e87821;
  --wave-alert:#d8282f;
  --wave-shadow:0 14px 34px rgba(0,0,0,.055);
}

.planner-section *,
.info-section *{box-sizing:border-box}

.planner-section button,
.planner-section input,
.planner-section select,
.planner-section textarea{font:inherit}

.planner-section button{cursor:pointer}
.planner-section [hidden],
.info-section [hidden]{display:none!important}

.page-intro .data-note{
  margin-top:8px;
  color:var(--muted, #6f6b74);
  font-size:.86rem;
}

.planner-section{padding-top:0}
.planner-shell{max-width:1080px}
.planner-card{padding:22px}
.planner-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:16px;
}
.planner-head h2{margin:0}
.planner-head .mini-label{
  display:block;
  margin-bottom:3px;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-weight:700;
  font-size:.72rem;
  color:var(--wave-accent);
}

.planner-section .notice{
  padding:12px 14px;
  margin:0 0 14px;
  border-radius:11px;
  background:var(--wave-accent-soft);
  color:var(--wave-accent);
  white-space:pre-line;
}
.planner-section .notice.error{background:#fff0f1;color:#8b1520}
.planner-section .notice.ok{background:#eef9f1;color:#246438}

.input-hint{
  margin:0 0 16px;
  color:var(--wave-muted);
  font-size:.86rem;
}

.journey-rows{display:grid;gap:10px}
.journey-row{
  display:grid;
  grid-template-columns:30px 96px minmax(135px,.9fr) minmax(240px,1.7fr) 56px;
  grid-template-rows:auto auto auto auto;
  align-items:stretch;
  min-height:0;
  border:1px solid var(--wave-line-strong);
  border-radius:13px;
  background:var(--wave-surface);
  overflow:hidden;
  transition:box-shadow .15s,transform .15s,border-color .15s;
}
.journey-row.dragging{opacity:.55;box-shadow:0 10px 28px rgba(0,0,0,.16)}
.journey-row.drag-over{outline:2px solid var(--wave-accent);outline-offset:2px}

.drag-handle{
  grid-column:1;
  grid-row:1/5;
  border:0;
  border-right:1px solid var(--wave-line);
  background:var(--wave-soft);
  color:var(--wave-muted);
  font-weight:700;
  touch-action:none;
}
.day-cell{
  grid-column:2;
  grid-row:1/5;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:10px 7px;
  border-right:1px solid var(--wave-line);
  text-align:center;
  min-width:0;
}
.day-number{font-size:.84rem;line-height:1.25}
.day-kind{color:var(--wave-muted);font-size:.66rem;line-height:1.2}

.planner-section .field,
.planner-section .output-cell{
  min-width:0;
  padding:8px 9px;
  border-right:1px solid var(--wave-line);
}
.planner-section .field{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
}
.planner-section .field>span,
.planner-section .output-cell>span{
  display:block;
  color:var(--wave-muted);
  font-size:.69rem;
  line-height:1.2;
  white-space:nowrap;
}
.planner-section .field input,
.planner-section .field select{
  width:100%;
  min-width:0;
  min-height:38px;
  padding:7px 9px;
  border:1px solid var(--wave-line-strong);
  border-radius:8px;
  background:#fff;
  color:var(--wave-text);
}
.planner-section .field input:focus,
.planner-section .field select:focus,
.note-field textarea:focus{
  outline:2px solid rgba(49,95,125,.18);
  border-color:var(--wave-accent);
}

.field-type{grid-column:3;grid-row:1}
.field-port{grid-column:4;grid-row:1}

.period-fields{
  grid-column:3/5;
  grid-row:2;
  display:grid;
  grid-template-columns:minmax(145px,1fr) minmax(104px,.7fr) minmax(145px,1fr) minmax(104px,.7fr);
  border-top:1px solid var(--wave-line);
}
.period-fields .field{border-right:1px solid var(--wave-line)}
.period-fields .field:last-child{border-right:1px solid var(--wave-line)}

.section-output{
  grid-column:3;
  grid-row:3;
  border-top:1px solid var(--wave-line);
}
.rating-output{
  grid-column:4;
  grid-row:3;
  border-top:1px solid var(--wave-line);
  border-right:1px solid var(--wave-line);
}
.planner-section .output-cell{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
}
.section-text,.rating-text{
  font-size:.82rem;
  line-height:1.38;
  font-weight:700;
  overflow-wrap:anywhere;
}
.rating-title{font-weight:700}
.rating-copy{font-weight:400;color:#4b4850;margin-top:3px}

.rating-output.level-1{box-shadow:inset 5px 0 0 var(--wave-success);background:#f7fcf6}
.rating-output.level-2{box-shadow:inset 5px 0 0 var(--wave-warning);background:#fffaf0}
.rating-output.level-3{box-shadow:inset 5px 0 0 var(--wave-orange);background:#fff7f0}
.rating-output.level-4{box-shadow:inset 5px 0 0 var(--wave-alert);background:#fff3f3}

.row-actions{
  grid-column:5;
  grid-row:1/5;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:center;
  gap:6px;
  padding:7px 6px;
}
.del,.add-after{border:0;border-radius:8px;font-weight:700}
.del{width:30px;height:30px;background:#fdebec;color:var(--wave-danger);font-size:1.05rem}
.add-after{
  padding:6px 7px;
  background:var(--wave-accent-soft);
  color:var(--wave-accent);
  font-size:.67rem;
  line-height:1.15;
  white-space:normal;
}

.journey-row.sea .field-port{opacity:.42}
.journey-row.sea .field-port input{background:var(--wave-soft)}

.note-area{
  grid-column:3/5;
  grid-row:4;
  border-top:1px solid var(--wave-line);
  padding:7px 9px;
  background:#fff;
}
.note-toggle{
  border:0;
  padding:3px 0;
  background:transparent;
  color:var(--wave-accent);
  font-size:.78rem;
  font-weight:700;
}
.note-toggle:hover,.note-toggle:focus-visible{text-decoration:underline}
.note-field{padding:7px 0 2px!important;border-right:0!important}
.note-field textarea{
  width:100%;
  min-height:62px;
  resize:vertical;
  padding:8px 10px;
  border:1px solid var(--wave-line-strong);
  border-radius:8px;
  background:#fff;
  color:var(--wave-text);
  font:inherit;
  line-height:1.4;
}

.journey-summary{
  margin-top:18px;
  padding:17px 18px;
  border:1px solid var(--wave-line);
  border-radius:13px;
  background:var(--wave-soft);
}
.journey-summary h3{margin:0 0 10px;font-size:1rem}
.journey-summary-content{display:flex;flex-wrap:wrap;gap:8px 16px;font-weight:700}
.journey-summary p{margin:10px 0 0;color:var(--wave-muted);font-size:.82rem}

/* Logikfehler bei Datum oder Uhrzeit */
.journey-row.has-logic-error{
  border-color:#d92d36;
  box-shadow:0 0 0 1px rgba(217,45,54,.18);
  animation:logic-error-pulse 1.35s ease-in-out infinite;
}
.journey-row.has-logic-error .day-cell{background:#fff6f6}
.planner-section .field input.field-error,
.planner-section .field select.field-error,
.planner-section .field-error{
  border-color:#d92d36!important;
  background:#fff7f7!important;
  box-shadow:0 0 0 3px rgba(217,45,54,.12)!important;
}
.planner-section .field input.field-error:focus,
.planner-section .field select.field-error:focus{
  outline:2px solid rgba(217,45,54,.22);
  border-color:#b4232c!important;
}
@keyframes logic-error-pulse{
  0%,100%{box-shadow:0 0 0 1px rgba(217,45,54,.18),0 0 0 0 rgba(217,45,54,0)}
  50%{box-shadow:0 0 0 1px rgba(217,45,54,.34),0 0 0 6px rgba(217,45,54,.10)}
}
@media(prefers-reduced-motion:reduce){
  .journey-row.has-logic-error{animation:none}
}

.planner-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  flex-wrap:wrap;
  margin-top:18px;
}

.info-section{padding-bottom:60px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.info-card{padding:22px}
.info-card h2{font-size:1.25rem;margin-bottom:9px}
.info-card p{margin:0;color:var(--wave-muted)}

@media(max-width:1000px){
  .journey-row{grid-template-columns:28px 88px minmax(125px,.85fr) minmax(190px,1.45fr) 52px}
  .period-fields{grid-template-columns:minmax(132px,1fr) minmax(98px,.72fr) minmax(132px,1fr) minmax(98px,.72fr)}
}

@media(max-width:760px){
  .planner-card{padding:12px}
  .planner-head{align-items:flex-start}
  .journey-row{grid-template-columns:30px minmax(0,1fr) 48px;grid-template-rows:auto;min-height:0}
  .drag-handle{grid-column:1;grid-row:1/8}
  .day-cell{grid-column:2;grid-row:auto;align-items:flex-start;text-align:left;border-right:0;padding:10px}
  .field-type,.field-port,.period-fields,.section-output,.rating-output,.note-area{grid-column:2;grid-row:auto}
  .planner-section .field,.planner-section .output-cell{border-top:1px solid var(--wave-line);border-right:0;padding:9px 10px}
  .period-fields{grid-template-columns:1fr 1fr;border-top:1px solid var(--wave-line)}
  .period-fields .field{border-right:0}
  .period-fields .field:nth-child(odd){border-right:1px solid var(--wave-line)}
  .period-fields .field:nth-child(n+3){border-top:1px solid var(--wave-line)}
  .note-area{padding:9px 10px}
  .row-actions{grid-column:3;grid-row:1/8;border-left:1px solid var(--wave-line)}
  .planner-actions{flex-direction:column}
  .planner-actions .btn{width:100%}
  .info-grid{grid-template-columns:1fr}
  .journey-row.sea .field-port{display:none}
}

@media(max-width:430px){
  .period-fields{grid-template-columns:1fr}
  .period-fields .field:nth-child(odd){border-right:0}
  .period-fields .field:nth-child(n+2){border-top:1px solid var(--wave-line)}
}
