/* Kampania 2026, arkusz wspólny dla 9 stron.
   Wartości zmierzone z referencji w research/kampania-2026/referencje/. */

:root{
  /* paleta — zmierzona z pikseli referencji */
  --paper:#ffffff;
  --ink:#111111;          /* nagłówki, tytuły  (zmierzone #010101–#0a0a0a) */
  --ink-deep:#04121a;     /* ciemne płaszczyzny (zmierzone #001018) */
  --muted:#6c6c6c;        /* tekst ciągły       (zmierzone #6c6c6c) */
  --muted-2:#4f5254;      /* etykiety, badge    (zmierzone #4f5254) */
  --surface:#f7f7f7;      /* pigułki, pasek nawigacji, kafle ikon */
  --surface-2:#fafafa;    /* wnętrza kart i ramek */
  --line:#f0f0f0;         /* linijki, oś timeline'u */
  --border:#ebebeb;       /* ramki kart */
  --dot:#1c1c1c;

  --main-w:828px;
  --r-card:14px; --r-img:12px; --r-hero:10px; --r-box:12px; --r-tile:10px;
  --shadow:0 1px 2px rgba(16,24,32,.04), 0 10px 30px rgba(16,24,32,.05);

  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI Variable Text","Segoe UI",system-ui,Helvetica,Arial,sans-serif;
  --disp:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--muted);
  font:400 16px/24px var(--sans);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,p,ul,figure,dl{margin:0}
ul{padding:0;list-style:none}
img{display:block;max-width:100%}
a{color:inherit}
strong{color:var(--ink);font-weight:600}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;z-index:99;background:var(--ink-deep);color:#fff;padding:12px 18px;border-radius:0 0 10px 0}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}

/* ---------------------------------------------------------- siatka */
.wrap{max-width:1364px;margin:0 auto;padding:0 24px}
.hero-wrap{max-width:1440px;margin:0 auto;padding:0 20px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 402px;column-gap:86px;align-items:start;padding:38px 0 0}

/* ---------------------------------------------------------- nawigacja */
.topbar{padding:26px 0 0}
.nav{
  position:relative;max-width:1264px;margin:0 auto;
  display:flex;align-items:center;gap:20px;
  background:var(--surface);border-radius:999px;height:56px;padding:0 10px 0 22px;
}
.brand{
  flex:none;
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font:700 17px/1 var(--disp);color:var(--ink);letter-spacing:-.01em;white-space:nowrap;
}
.brand-mark{
  width:30px;height:30px;border-radius:50%;background:var(--ink-deep);color:#fff;
  display:grid;place-items:center;flex:none;
}
.nav-links{display:flex;align-items:center;gap:22px;margin:0 auto;min-width:0;flex:1 1 auto;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{
  text-decoration:none;color:var(--muted-2);font:500 14px/1 var(--sans);
  white-space:nowrap;padding:8px 2px;border-radius:6px;transition:color .18s ease;
}
.nav-links a:hover{color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--ink);font-weight:600}
.nav-date{
  flex:none;
  font:500 13px/1 var(--sans);color:#fff;background:var(--ink-deep);
  border-radius:999px;padding:12px 20px;white-space:nowrap;
}

/* ---------------------------------------------------------- hero-mozaika */
.mosaic{display:flex;gap:8px;height:629px;margin-top:26px}
.mo-col{display:flex;flex-direction:column;gap:8px;min-width:0}
.mosaic-5 .mo-l{flex:0 0 324px}
.mosaic-5 .mo-r{flex:0 0 320px}
.mosaic-3 .mo-l,.mosaic-3 .mo-r{flex:0 0 322px}
.mosaic .mo-c{flex:1 1 auto;min-width:0}
.mosaic-5 .mo-l .ph:nth-child(1){flex:357 1 0}
.mosaic-5 .mo-l .ph:nth-child(2){flex:264 1 0}
.mosaic-5 .mo-r .ph:nth-child(1){flex:265 1 0}
.mosaic-5 .mo-r .ph:nth-child(2){flex:356 1 0}
.mosaic .mo-c .ph,.mosaic-3 .mo-l .ph,.mosaic-3 .mo-r .ph{flex:1 1 0}
.mosaic .ph{aspect-ratio:auto;height:auto;min-height:0;border-radius:var(--r-hero)}
.mosaic-1{height:460px}
.mosaic-1 .ph{width:100%}

/* ---------------------------------------------------------- placeholdery obrazów */
.ph{
  position:relative;overflow:hidden;border-radius:var(--r-img);
  aspect-ratio:var(--ph-ratio,4/3);
  background:
    repeating-linear-gradient(135deg,rgba(0,0,0,.012) 0 12px,transparent 12px 24px),
    linear-gradient(140deg,#f3f5f6 0%,#e9edef 100%);
}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph img.is-missing{display:none}
.ph-tag{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font:500 11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:#6b7276;text-align:center;padding:6px 10px;border:1px dashed #ccd2d5;border-radius:6px;
  background:#f4f6f7;max-width:88%;overflow-wrap:anywhere;pointer-events:none;
}
.ph img:not(.is-missing)+.ph-tag{display:none}

/* ---------------------------------------------------------- nagłówki i tekst */
.kicker{display:flex;align-items:center;gap:10px;font:500 14px/1 var(--sans);color:var(--muted)}
.pill{
  display:inline-flex;align-items:center;min-height:32px;padding:6px 14px;border-radius:999px;
  background:var(--surface);color:var(--muted-2);font:500 13px/1 var(--sans);
}
.kicker .dot{color:var(--muted)}
h1{font:700 50px/1.08 var(--disp);letter-spacing:-.022em;color:var(--ink);margin:18px 0 20px;text-wrap:balance}
.lead{font-size:16px;line-height:24px;color:var(--muted);margin-bottom:14px;max-width:66ch}
.rule{border:0;border-top:1px solid var(--line);margin:30px 0 0}

.sec{margin-top:44px}
.sec h2{font:600 36px/1.2 var(--disp);letter-spacing:-.02em;color:var(--ink);margin-bottom:18px}
.sec p{margin-bottom:14px;max-width:70ch}
.sec p:last-child{margin-bottom:0}

/* ---------------------------------------------------------- pasek meta */
.metabar{display:flex;flex-wrap:wrap;margin:26px 0 0}
.meta-item{display:flex;align-items:center;gap:14px;padding:0 26px;border-left:1px solid var(--line);min-width:0;flex:0 1 auto}
.meta-item:first-child{padding-left:0;border-left:0}
.meta-ic{flex:0 0 40px;width:40px;height:40px;border-radius:var(--r-tile);background:var(--surface);color:var(--ink);display:grid;place-items:center}
.meta-txt{min-width:0}
.meta-lbl{display:block;font-size:13px;line-height:18px;color:var(--muted)}
.meta-val{display:block;font:600 16px/22px var(--disp);color:var(--ink)}

/* ---------------------------------------------------------- ramka „uwagi praktyczne” */
.incbox{
  margin-top:22px;border:1px solid var(--border);border-radius:var(--r-card);
  background:var(--surface-2);padding:28px;
  display:grid;grid-template-columns:1fr 1fr;gap:22px 34px;
}
.incbox li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;font-size:15px;line-height:23px}
.chk{color:var(--ink);display:block;margin-top:2px}
.incbox strong{display:block;font:600 15px/22px var(--disp);color:var(--ink)}

/* ---------------------------------------------------------- „co zobaczyć” */
.sights{margin-top:4px}
.sight{padding:22px 0;border-top:1px solid var(--line)}
.sight:first-child{border-top:0;padding-top:6px}
.sight h3{font:600 20px/1.35 var(--disp);letter-spacing:-.01em;color:var(--ink);margin-bottom:8px}
.sight p{margin:0;max-width:70ch}
.sight-x{
  margin-top:14px !important;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-box);padding:14px 16px;font-size:15px;line-height:23px;
}
.opt-note{
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-box);
  padding:14px 16px;font-size:15px;line-height:23px;margin-bottom:6px !important;
}

/* plan godzinowy */
.plan{margin-top:4px}
.plan-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;padding:14px 0;border-top:1px solid var(--line)}
.plan-row:first-child{border-top:0;padding-top:4px}
.plan-t{font:600 15px/24px var(--disp);color:var(--ink)}
.plan-row p{margin:0}

/* braki w materiale */
.warn{
  display:flex;gap:11px;align-items:flex-start;
  background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-box);padding:15px 17px;font-size:15px;line-height:23px;
}
.warn svg{flex:none;margin-top:3px;color:var(--ink)}
.todo{
  font:500 14px/22px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--muted-2);border:1px dashed #d5d5d5;border-radius:var(--r-box);
  padding:16px 18px;background:repeating-linear-gradient(135deg,#fafafa 0 10px,#fff 10px 20px);
}

/* ---------------------------------------------------------- karta boczna */
/* Kolumna boczna NIE jest sticky. Na każdej podstronie przystanku jest wyższa niż
   okno (1018–2266 px przy 900 px widoku), a sticky przypina wtedy górę karty i dołu
   nie da się doscrollować — spód karty faktów praktycznych był nieosiągalny. */
.col-aside{align-self:start}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--r-card);padding:28px;box-shadow:var(--shadow)}
.card+.card{margin-top:20px}
.card-title{font:700 32px/1.12 var(--disp);letter-spacing:-.02em;color:var(--ink)}
.card-sub{font-size:16px;line-height:24px;color:var(--muted);margin-top:4px}
.card-rows{margin-top:22px;display:grid;gap:14px}
/* Etykieta bierze swoją naturalną szerokość, wartość resztę i wolno jej się złamać.
   Odwrotnie (etykieta 1fr, wartość auto) długa wartość — „Warszawa, 20.09 · ~859 km”,
   placeholder [[UZUPEŁNIĆ]] — zgniata etykietę i ta wychodzi poza kartę na 390 px. */
.card-rows li{display:grid;grid-template-columns:20px auto minmax(0,1fr);gap:10px;align-items:start;font-size:15px;line-height:22px}
.row-ic{color:var(--muted-2);margin-top:2px}
.row-lbl{color:var(--muted);white-space:nowrap}
.row-val{min-width:0;overflow-wrap:anywhere}
.row-val{font:600 15px/22px var(--sans);color:var(--ink);text-align:right}
.tiles{
  margin-top:22px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-box);
  padding:18px 8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
}
.tile{display:grid;justify-items:center;gap:3px;text-align:center;padding:0 6px}
.tile-ic{color:var(--ink)}
.tile-val{font:600 16px/20px var(--disp);color:var(--ink);white-space:nowrap}
.tile-lbl{font-size:12px;line-height:16px;color:var(--muted)}
.card-note{
  display:flex;gap:9px;align-items:flex-start;margin-top:20px;padding-top:18px;
  border-top:1px solid var(--line);font-size:13px;line-height:20px;color:var(--muted);
}
.card-note svg{flex:none;margin-top:2px}

.card--facts{padding:24px 26px}
.card-kicker{font:600 12px/1 var(--disp);text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);margin-bottom:16px}
.fg{padding:16px 0;border-top:1px solid var(--line)}
.fg:first-of-type{border-top:0;padding-top:0}
.fg-h{display:flex;gap:9px;align-items:center;font:600 15px/22px var(--disp);color:var(--ink);margin-bottom:9px}
.fg-h svg{flex:none;color:var(--muted-2)}
.fg-list li{position:relative;padding-left:15px;font-size:14px;line-height:22px;margin-bottom:6px}
.fg-list li:last-child{margin-bottom:0}
.fg-list li::before{content:"";position:absolute;left:0;top:9px;width:4px;height:4px;border-radius:50%;background:#cdcdcd}
.fg-list em{color:var(--muted-2);font-style:italic}
.maps{
  display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;
  font-weight:600;border-bottom:1px solid #d9d9d9;padding-bottom:1px;
}
.maps:hover{border-bottom-color:var(--ink)}

/* ---------------------------------------------------------- karta noclegu */
.card--hotel{padding:22px 24px 24px}
.card--hotel .card-kicker{margin-bottom:14px}
.hotel-ph{aspect-ratio:16/9;margin-bottom:16px}
.hotel-name{font:600 21px/1.3 var(--disp);letter-spacing:-.01em;color:var(--ink)}
.hotel-addr{display:flex;gap:8px;align-items:flex-start;margin-top:7px;font-size:14px;line-height:21px;color:var(--muted)}
.hotel-addr svg{flex:none;margin-top:3px;color:var(--muted-2)}
.hotel-desc{margin-top:12px;font-size:15px;line-height:23px;color:var(--muted)}
.todo--sm{margin-top:12px;font-size:13px;line-height:20px;padding:12px 14px}
.todo-in{
  font:500 13px/20px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:var(--muted-2);border-bottom:1px dashed #cfcfcf;
}

/* pigułka wyżywienia — trzy stany, nie dwa */
.hotel-flags{margin-top:16px}
.flag{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 14px;border-radius:999px;font:500 13px/20px var(--sans)}
.flag svg{flex:none}
.flag.is-yes{background:var(--ink-deep);color:#fff}                       /* potwierdzone: jest */
.flag.is-no{background:var(--surface);color:var(--muted-2);border:1px solid var(--border)}  /* potwierdzone: nie ma */
.flag.is-wait{                                                            /* jeszcze nie wiemy */
  background:repeating-linear-gradient(135deg,#fafafa 0 10px,#fff 10px 20px);
  border:1px dashed #cfcfcf;color:var(--muted-2);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;
}
.card--hotel .card-rows{margin-top:18px}
.hotel-tel{font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px solid #d9d9d9}
.hotel-tel:hover{border-bottom-color:var(--ink)}

/* akcje: mapa i PDF — link gdy plik jest, wyciszona informacja gdy go nie ma */
.hotel-act{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:13px;justify-items:start}
.hotel-act .maps{min-height:24px}
.act-empty{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:19px;color:var(--muted)}
.act-empty svg{flex:none;margin-top:2px;color:#a8a8a8}
.act-empty b{font:500 12px/19px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted-2)}
.act-file{display:block;margin-top:4px;font:500 12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted-2);overflow-wrap:anywhere}

/* podstrony wypadowe — nocleg w bazie, jedna linijka zamiast karty */
.stayline{
  display:flex;align-items:center;gap:12px;text-decoration:none;min-height:56px;
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-card);
  padding:14px 20px;box-shadow:var(--shadow);transition:border-color .18s ease;
}
.stayline svg{flex:none;color:var(--muted-2)}
.stay-txt{flex:1 1 auto;font:500 15px/22px var(--sans);color:var(--muted)}
.stay-txt strong{font:600 15px/22px var(--disp);color:var(--ink)}
.stay-arrow{color:var(--ink);font-size:17px;line-height:1;display:inline-block;transition:transform .2s cubic-bezier(.16,1,.3,1)}
.stayline:hover{border-color:#dcdcdc}
.stayline:hover .stay-arrow{transform:translateX(3px)}
.stayline+.card{margin-top:20px}

/* ---------------------------------------------------------- timeline */
/* timeline trzyma szerokość kolumny głównej, jak w referencji (miniatury 111→908 px) */
.tl-sec{margin-top:64px;padding-bottom:8px;max-width:var(--main-w)}
.tl-warn{margin-bottom:22px;max-width:none}
.tl{position:relative;padding-left:31px}
.tl::before{content:"";position:absolute;left:8px;top:14px;bottom:22px;width:1px;background:var(--line)}
.tl-row{position:relative;z-index:0;padding:26px 0 28px;border-bottom:1px solid var(--line)}
.tl-row:first-child{padding-top:8px}
.tl-row:last-child{border-bottom:0}
.tl-row.is-current::after{
  content:"";position:absolute;inset:10px -18px 12px -14px;
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-card);z-index:-1;
}
.tl-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:28px}
.tl-dot{
  position:absolute;left:-31px;top:50%;transform:translateY(-50%);
  width:16px;height:16px;border-radius:50%;background:#fff;border:1.5px solid var(--dot);
}
.tl-row.is-current .tl-dot{background:var(--dot)}
.tl-dot.is-end{border-style:solid;background:var(--line);border-color:#cfcfcf}
.tl-badge{
  display:inline-flex;align-items:center;min-height:28px;padding:4px 12px;border-radius:999px;
  background:var(--surface);color:var(--muted-2);font:500 13px/1 var(--sans);white-space:nowrap;
}
.tl-toggle{
  flex:none;width:44px;height:44px;margin-right:-7px;border:0;background:none;padding:0;
  color:var(--muted-2);cursor:pointer;border-radius:999px;
  display:grid;place-items:center;transition:background .18s ease,color .18s ease;
}
.tl-toggle:hover{background:var(--surface);color:var(--ink)}
.tl-toggle .chev{transition:transform .2s cubic-bezier(.16,1,.3,1)}
.tl-toggle[aria-expanded="true"] .chev{transform:rotate(180deg)}
.tl-title{font:600 25px/1.3 var(--disp);letter-spacing:-.015em;color:var(--ink);margin:14px 0 6px}
.tl-meta{display:flex;align-items:center;gap:7px;font:500 13px/20px var(--sans);color:var(--muted-2);margin-bottom:8px}
.tl-meta svg{flex:none;color:#a8a8a8}
.tl-lead{font-size:16px;line-height:24px;color:var(--muted);max-width:70ch}
.tl-panel{padding-top:16px}
.tl-panel[hidden]{display:none}
.tl-long{font-size:16px;line-height:24px;color:var(--muted);max-width:70ch;margin-bottom:18px}
.tl-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:797px}
.tl-thumbs .thumb{aspect-ratio:261/252}
.tl-more{
  display:inline-flex;align-items:center;gap:8px;margin-top:18px;text-decoration:none;
  font:600 15px/1 var(--disp);color:var(--ink);border-bottom:1px solid #d9d9d9;padding-bottom:3px;
}
.tl-more span{transition:transform .2s cubic-bezier(.16,1,.3,1);display:inline-block}
.tl-more:hover{border-bottom-color:var(--ink)}
.tl-more:hover span{transform:translateX(3px)}
.tl-here{
  display:inline-flex;align-items:center;margin-top:18px;min-height:32px;padding:6px 14px;border-radius:999px;
  background:var(--ink-deep);color:#fff;font:500 13px/1 var(--sans);
}
.tl-row--end .tl-title{color:var(--muted-2)}

/* ---------------------------------------------------------- stopka */
.foot{margin-top:72px;background:var(--ink-deep);color:#dfe5e9;padding:44px 0}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 40px;align-items:baseline}
.foot-route{font:500 16px/24px var(--disp);color:#fff}
.foot-route strong{color:#fff}
.foot-meta{font-size:14px;line-height:22px;color:#9fb0ba}

/* ---------------------------------------------------------- responsywność */
@media (max-width:1180px){
  .tl-sec{max-width:none}
  .cols{grid-template-columns:minmax(0,1fr);row-gap:34px}
  .col-aside{order:-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;align-items:start}
  .card+.card,.stayline+.card{margin-top:0}
  .stayline{grid-column:1 / -1}
  .nav-date{display:none}
}
@media (max-width:900px){
  /* mobile: jedno duże zdjęcie + pasek miniatur pod nim */
  .mosaic{display:grid;height:auto;gap:8px}
  .mosaic-5{grid-template-columns:repeat(4,minmax(0,1fr))}
  .mosaic-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mosaic-1{grid-template-columns:1fr}
  .mo-col{display:contents}
  .mosaic .ph{aspect-ratio:1/1;flex:none;min-height:0}
  .mosaic .mo-c .ph{order:-1;grid-column:1 / -1;aspect-ratio:16/9}
  .mosaic-1{height:auto}
  .mosaic-1 .ph{aspect-ratio:16/9}
  h1{font-size:40px}
  .sec h2{font-size:29px}
  .metabar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}
  .meta-item{padding:0 18px}
  .meta-item:nth-child(odd){padding-left:0;border-left:0}
  .incbox{grid-template-columns:1fr}
}
@media (max-width:560px){
  .mosaic-5{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .wrap,.nav{padding-left:16px;padding-right:16px}
  .hero-wrap{padding-left:12px;padding-right:12px}
  .nav{height:52px;padding-right:8px;padding-left:16px}
  .nav-links{gap:16px}
  .cols{padding-top:26px}
  h1{font-size:32px;margin:14px 0 16px}
  .sec{margin-top:34px}
  .sec h2{font-size:25px}
  /* przy 375 px kolumna paska meta ma ~81 px na tekst, a „wypadowa” w Poppins 600/16
     mierzy ~82 px i wychodzi poza kafelek. Ciasniejsze wciecie i mniejsza ikona daja ~100 px. */
  .meta-item{padding:0 12px}
  .meta-ic{flex:0 0 34px;width:34px;height:34px}
  .card,.card--facts{padding:22px 20px}
  .card-title{font-size:28px}
  .incbox{padding:22px 20px}
  .tl{padding-left:26px}
  .tl::before{left:7px}
  .tl-dot{left:-26px;width:14px;height:14px}
  .tl-row.is-current::after{inset:10px -10px 12px -12px}
  .tl-title{font-size:21px}
  .tl-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tl-thumbs .thumb:nth-child(3){display:none}
  .plan-row{grid-template-columns:1fr;gap:4px}
  .foot{padding:34px 0}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
@media print{
  .topbar,.tl-toggle,.foot{display:none}
  .tl-panel[hidden]{display:block}
}

/* liczba, ktorej jeszcze nikt nie zmierzyl — szacunek, nie pomiar.
   Ten sam jezyk co .todo, .todo-in i .flag.is-wait: monospace, przerywana linia,
   prazkowane tlo. Stan „nie wiemy” ma wygladac jak dziura w danych, bo nia jest.
   Bez white-space:nowrap — w waskiej kolumnie bocznej dluga wartosc musi moc sie
   zlamac, a box-decoration-break dokleja ramke do obu kawalkow. */
.est{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.92em;font-weight:500;color:var(--muted-2);
  border:1px dashed #cfcfcf;border-radius:5px;padding:1px 5px;
  background:repeating-linear-gradient(135deg,#fafafa 0 10px,#fff 10px 20px);
  overflow-wrap:anywhere;
  box-decoration-break:clone;-webkit-box-decoration-break:clone;
}
.meta-val .est,.tile-val .est,.plan-t .est{font-size:.86em;padding:0 3px}
.meta-val{overflow-wrap:anywhere}
.tile-val:has(.est){white-space:normal}
.row-val .est{font-weight:500}
/* w waskich listach karty bocznej klon ramki na zlamanym fragmencie potrafi wyjsc
   poza kolumne o grubosc ramki — dlatego tu ciasniejszy oddech. */
.fg-list .est{padding:0 3px}

/* galeria w sekcji opcjonalnej (Positano → Amalfi) */
.optgal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 22px}
.optgal .ph{aspect-ratio:4/3}
.optgal figcaption{margin-top:6px;font-size:13px;line-height:1.45;color:var(--muted)}
@media (max-width:640px){.optgal{grid-template-columns:1fr}}
