/* otselend: sihtkohalehed ja minu reisid. Värvid ja põhikomponendid tulevad failist app.css. */
.site { min-height: 100vh; display: flex; flex-direction: column; }

/* ---- sisu ---- */
main.page { display: block; width: 100%; max-width: 62rem; margin: 0 auto; padding: 1.6rem 1.5rem; flex: 1; }
.page footer { text-align: left; margin-top: 2.5rem; }
.crumbs { font-size: .78rem; color: var(--muted); margin-bottom: .8rem; }
.crumbs a { color: var(--primary); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.crumbs i { font-style: normal; margin: 0 .25rem; }
.lead { color: #c8d3e6; font-size: 1rem; max-width: 46rem; margin: .7rem 0 1.2rem; }
.block { margin-top: 2rem; }
.block h2 { font-size: 1.25rem; font-weight: 700; letter-spacing: -.01em; margin: 0 0 .7rem; color: #fff; }
.block h2 a { color: inherit; text-decoration: none; }
.block h2 a:hover { color: var(--primary); }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 1rem 1.1rem; }
.page .fd-item b { font-size: .88rem; line-height: 1.4; display: block; }
.page .fd-item small { display: block; color: var(--muted); font-size: .72rem; margin-top: .15rem; }
ul.plain { margin: 0; padding-left: 1.2rem; display: grid; gap: .35rem; font-size: .9rem; color: #c8d3e6; }

/* ---- programmi kaardid ---- */
.tcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .9rem; }
.tcard { display: block; color: var(--text); text-decoration: none; background: var(--panel); border: 1px solid var(--line);
         border-radius: 14px; padding: 1rem 1.1rem; }
.tcard:hover { border-color: rgba(76,194,255,.55); }
.tcard b { display: block; font-size: 1.02rem; line-height: 1.3; color: #fff; margin: .25rem 0 .3rem; }
.tcard p { margin: 0; font-size: .82rem; color: var(--muted); }
.tcard-meta { font-size: .74rem; color: var(--muted); }
.tcard .chip { font-size: .68rem; margin-left: .3rem; }

/* ---- programmi leht ---- */
.trip-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 0 1.1rem; }
.flights { display: grid; gap: .5rem; }
.flight { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .9rem; align-items: center; background: var(--panel);
          border: 1px solid var(--line); border-radius: 12px; padding: .6rem 1rem; }
.flight b { display: block; color: #fff; font-size: .92rem; }
.flight span { display: block; font-size: .76rem; color: var(--muted); }
.flight strong { color: #fff; font-size: 1.05rem; white-space: nowrap; }
.map-sec .legend { margin-left: 0; }
.map-sec #map { height: 400px; }
.stop-pin { background: none; border: 0; }
.stop-pin span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--c); color: #04121f;
                 font-size: 12px; font-weight: 700; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.6); }
.day { margin-top: 1.3rem; padding-left: 1rem; border-left: 3px solid var(--c); }
.day h3 { font-size: 1.05rem; margin: 0 0 .3rem; color: #fff; }
.day > p { margin: 0 0 .7rem; font-size: .88rem; color: #c8d3e6; max-width: 46rem; }
.day-date { font-size: .78rem; font-weight: 500; color: var(--muted); margin-left: .4rem; white-space: nowrap; }
.stops { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.stops li { display: flex; gap: .7rem; align-items: flex-start; }
.stops b { color: var(--text); font-size: .92rem; }
.stops p { margin: .1rem 0 .1rem; font-size: .84rem; color: #c8d3e6; max-width: 44rem; }
.stops a { font-size: .76rem; color: var(--primary); }
.stop-n { flex: none; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; margin-top: .05rem; border-radius: 50%;
          background: var(--c); color: #04121f; font-size: .68rem; font-weight: 700; }
.stop-time { font-size: .72rem; color: var(--muted); margin-left: .25rem; white-space: nowrap; }
.arrival { display: grid; gap: .8rem; }
.arrival p { margin: 0; font-size: .86rem; color: #c8d3e6; }
.book-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .8rem; }
.book-link { display: block; color: var(--text); text-decoration: none; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: .8rem 1rem; }
.book-link:hover { border-color: rgba(76,194,255,.55); }
.book-link b { display: block; color: #fff; font-size: .92rem; }
.book-link span { display: block; font-size: .76rem; color: var(--muted); }
.book-link em { display: inline-block; font-style: normal; font-size: .66rem; color: var(--warn); border: 1px solid rgba(251,191,36,.3); border-radius: 6px; padding: 0 .35rem; margin-top: .3rem; }

/* ---- minu reis ---- */
.trip-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem 1rem; margin: 1rem 0; }
.trip-form label, .share label { display: block; font-size: .78rem; color: var(--muted); }
.trip-form input, .trip-form textarea, .share input { display: block; width: 100%; margin-top: .25rem; padding: .5rem .7rem; font: inherit; font-size: .88rem;
                                                     color: var(--text); background: var(--navy2); border: 1px solid var(--line); border-radius: 8px; }
.trip-form input:focus, .trip-form textarea:focus, .share input:focus { outline: 2px solid rgba(76,194,255,.5); }
.trip-form textarea { resize: vertical; }
.trip-form .wide { grid-column: 1 / -1; }
.form-end { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; }
.form-msg { font-size: .82rem; color: var(--good); }
.form-msg.err { color: var(--bad); }
.share { margin-bottom: 1rem; }
.trip-sum { margin: 1rem 0; }
.notes { margin-top: .8rem; }
.notes span { display: block; font-size: .66rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: .15rem; }
.notes p { margin: 0; font-size: .88rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.print-only { display: none; }

@media (max-width: 860px) {
  main.page { padding: 1.2rem 1rem; }
  .map-sec #map { height: 320px; }
  .trip-form { grid-template-columns: minmax(0, 1fr); }
  .flight { grid-template-columns: minmax(0, 1fr) auto; }
  .flight button { grid-column: 1 / -1; }
}

/* väljatrükk: ainult kava, tumedat tausta pole */
@media print {
  html { font-size: 12pt; }
  body, .site { background: #fff !important; color: #000; display: block; }
  .bar, .trip-actions, .trip-form, .share, .map-sec, .flights-sec, .book, footer { display: none !important; }
  main.page { max-width: none; padding: 0; }
  h1 { background: none; color: #000; -webkit-text-fill-color: #000; font-size: 20pt; }
  .block h2, .day h3, .stops b, .tcard b { color: #000; }
  .lead, .day > p, .stops p, .arrival p, ul.plain, .notes p, .page .fd-item b { color: #000; }
  .sub, .day-date, .stop-time, .fd-item span, .notes span { color: #444; }
  .panel { background: none; border: 1px solid #999; }
  .print-only { display: block; }
  .day { break-inside: avoid; border-left-color: #999; }
  .stop-n { background: none; color: #000; border: 1px solid #000; }
  .stops a { display: none; }
}
