/* FlyAsia Trip Checklist v0.2. Brand: gold #b38850 accents, beige #f7f6f0 surfaces, red only for warnings. */
.ftc { --gold: #b38850; --gold-d: #8a6531; --gold-l: #f3ead9; --ink: #2b2b2b; --muted: #7a7a7a; --line: #ebe6da; --bg: #f7f6f0;
  --ok: #2e7d57; --warn: #b3261e; --r: 16px;
  color: var(--ink); font-size: 15px; line-height: 1.6; max-width: 980px; margin: 0 auto; display: grid; gap: 22px; }
/* neutralise Flatsome defaults inside the tool */
.ftc *, .ftc *::before, .ftc *::after { box-sizing: border-box; }
.ftc button { font: inherit; color: inherit; cursor: pointer; margin: 0; min-height: 0; line-height: 1.4; letter-spacing: normal; text-transform: none; box-shadow: none; text-shadow: none; background: none; border: 0; padding: 0; }
.ftc img { max-width: none; height: auto; display: inline-block; margin: 0; border-radius: 50%; flex: none; }
.ftc input, .ftc select { margin: 0; box-shadow: none; height: auto; min-height: 0; max-width: 100%; font: inherit; }
.ftc ul, .ftc ol { margin: 0; padding: 0; list-style: none; }
.ftc li { margin: 0; }
.ftc label { font-weight: inherit; margin: 0; }
.ftc p { margin: 0; }
.ftc h2, .ftc h3 { margin: 0; width: auto; letter-spacing: normal; text-transform: none; color: var(--ink); }
.ftc a { color: var(--gold-d); }
.ftc-i { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.ftc-loading { padding: 40px; text-align: center; color: var(--muted); }

/* ---- hero: the sentence picker ---- */
.ftc-hero { background: var(--bg); border-radius: 20px; padding: 26px 26px 22px; display: grid; gap: 16px; }
.ftc-sentence { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 22px; font-weight: 700; line-height: 1.3; }
.ftc-slot { display: inline-flex; align-items: center; gap: 6px; border-radius: 99px !important; padding: 8px 18px !important; font-size: 20px; font-weight: 700;
  background: #fff !important; color: var(--gold-d) !important; box-shadow: inset 0 0 0 2px var(--gold) !important; transition: background .15s; }
.ftc-slot:hover, .ftc-slot.is-open { background: var(--gold-l) !important; }
.ftc-slot .ftc-i { width: 20px; height: 20px; }
.ftc-slot.is-add { font-size: 16px; padding: 7px 14px !important; box-shadow: inset 0 0 0 2px var(--line) !important; color: var(--muted) !important; }
.ftc-slot:not(.is-set):not(.is-add) { background: var(--gold) !important; color: #fff !important; }
.ftc-tok { display: inline-flex; align-items: center; gap: 8px; background: #fff; border-radius: 99px; padding: 5px 8px 5px 6px; font-size: 18px; box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.ftc-tok select { border: 0; background: var(--bg); border-radius: 99px; padding: 2px 10px; font-size: 14px; font-weight: 600; color: var(--muted); width: auto; }
.ftc-rm { width: 26px; height: 26px; border-radius: 50% !important; color: var(--muted) !important; font-size: 18px !important; line-height: 1 !important; display: inline-grid; place-items: center; }
.ftc-rm:hover { background: var(--bg) !important; color: var(--warn) !important; }

.ftc-panel { background: #fff; border-radius: var(--r); padding: 16px; display: grid; gap: 12px; box-shadow: 0 6px 24px rgba(60,45,20,.08); }
.ftc-search { width: 100%; padding: 11px 16px !important; border: 1px solid var(--line) !important; border-radius: 99px !important; background: var(--bg) !important; font-size: 16px; }
.ftc-regions { display: flex; gap: 4px; flex-wrap: wrap; }
.ftc-regions button { padding: 5px 14px !important; border-radius: 99px !important; color: var(--muted) !important; font-weight: 600; font-size: 14px; }
.ftc-regions button.is-on { background: var(--gold-l) !important; color: var(--gold-d) !important; }
.ftc-opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 6px; }
.ftc-opt { display: flex; align-items: center; gap: 10px; padding: 9px 10px !important; border-radius: 12px !important; text-align: left; font-weight: 600; font-size: 15px; }
.ftc-opt:hover { background: var(--bg) !important; }
.ftc-opt.is-on { background: var(--gold-l) !important; color: var(--gold-d) !important; }
.ftc-months { grid-template-columns: repeat(6, 1fr); gap: 6px; }
.ftc-mo { padding: 10px 0 !important; border-radius: 12px !important; font-weight: 700; font-size: 16px; text-align: center; }
.ftc-mo:hover { background: var(--bg) !important; }
.ftc-mo.is-on { background: var(--gold) !important; color: #fff !important; }
.ftc-done { justify-self: end; padding: 6px 18px !important; border-radius: 99px !important; background: var(--gold) !important; color: #fff !important; font-weight: 600; }
.ftc-empty { color: var(--muted); padding: 6px 2px; }

.ftc-adjust { border-top: 1px solid var(--line); padding-top: 12px; display: grid; gap: 12px; }
.ftc-adj-t { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: var(--gold-d) !important; justify-self: start; }
.ftc-adj-t small { font-weight: 400; color: var(--muted); font-size: 13px; }
.ftc-adj-t em { font-style: normal; background: var(--gold); color: #fff; border-radius: 99px; font-size: 12px; padding: 0 7px; }
.ftc-adj-body { display: grid; gap: 10px; }
.ftc-adj-body > div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ftc-adj-body p { width: 72px; font-size: 13px; color: var(--muted); font-weight: 600; }
.ftc-chip { padding: 5px 14px !important; border-radius: 99px !important; background: #fff !important; box-shadow: inset 0 0 0 1px var(--line) !important; font-size: 14px; }
.ftc-chip.is-on { background: var(--gold) !important; color: #fff !important; box-shadow: none !important; font-weight: 600; }

/* top-level traveller sex */
.ftc-sex { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ftc-sex > span { font-weight: 700; font-size: 16px; margin-right: 4px; }
.ftc-sex small { color: var(--muted); font-size: 12.5px; }
.ftc-sex .ftc-chip { font-size: 15px; padding: 6px 18px !important; }

/* ---- results ---- */
.ftc-results { display: grid; gap: 22px; min-width: 0; }
.ftc-results:empty { display: none; }
.ftc-jump { display: flex; flex-wrap: wrap; gap: 8px; }
.ftc-jump a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; background: var(--bg); border-radius: 99px; padding: 4px 12px 4px 5px; font-size: 14px; font-weight: 600; color: var(--ink); }
.ftc-sec { border-radius: 20px; background: #fff; box-shadow: 0 0 0 1px var(--line); padding: 22px; display: grid; gap: 16px; min-width: 0; scroll-margin-top: 90px; }
.ftc-sec-h { display: flex; align-items: center; gap: 14px; }
.ftc .ftc-sec-h h2 { font-size: 26px; line-height: 1.2; }
.ftc-sec-h p { color: var(--muted); font-size: 14px; }

.ftc-glance { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.ftc-g { background: var(--bg); border-radius: 14px; padding: 12px 14px; display: grid; gap: 4px; align-content: start; min-width: 0; }
.ftc-gl { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); font-weight: 600; }
.ftc-gl .ftc-i { width: 15px; height: 15px; color: var(--gold); }
.ftc-gv { font-size: 24px; font-weight: 800; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ftc-gv i { font-style: normal; font-size: 13px; font-weight: 600; color: var(--muted); margin: 0 2px; }
.ftc-na { color: var(--muted); }
.ftc-gs { font-size: 12.5px; color: var(--muted); line-height: 1.4; }
.ftc-gs .ok { color: var(--ok); font-weight: 600; }
.ftc-gs .warn { color: var(--warn); font-weight: 600; }
.ftc-gs a { font-weight: 600; text-decoration: none; }
.ftc-plugs { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.ftc-plug { display: inline-grid; justify-items: center; font-size: 10px; line-height: 1.1; }
.ftc-plug svg { width: 30px; height: 30px; }
.ftc-plug b { font-weight: 700; color: var(--muted); }
.ftc-plug .face { fill: #fff; stroke: #d6cdb8; stroke-width: 2; }
.ftc-plug .pins { fill: #555; }
.ftc-plug .hole { fill: #fff; stroke: #555; stroke-width: 1.6; }

.ftc-box { border-radius: 14px; box-shadow: 0 0 0 1px var(--line); padding: 16px 18px; display: grid; gap: 10px; }
.ftc .ftc-box h3 { display: flex; align-items: center; gap: 8px; font-size: 16px; }
.ftc-box h3 .ftc-i { color: var(--gold); }
.ftc-entry-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ftc-badge { background: var(--gold-l); color: var(--gold-d); font-weight: 800; border-radius: 99px; padding: 3px 14px; font-size: 15px; }
.ftc-badge.warn { background: #fbe9e7; color: var(--warn); }
.ftc-stay { font-size: 14px; color: var(--muted); }
.ftc-note { font-size: 13.5px; color: var(--muted); }
.ftc-forms { display: grid; gap: 8px; }
.ftc-forms li { background: var(--bg); border-radius: 12px; padding: 12px 14px; display: grid; gap: 3px; }
.ftc-fh { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 15px; }
.ftc-tag { font-size: 11.5px; font-weight: 700; border-radius: 6px; padding: 1px 7px; background: #fff; color: var(--muted); }
.ftc-tag.must { background: var(--gold); color: #fff; }
.ftc-meta { font-size: 13.5px; font-weight: 600; color: var(--gold-d); }
.ftc-acts { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13.5px; }
.ftc-tlink { font-weight: 700; text-decoration: none; }
.ftc-tlink:hover { text-decoration: underline; }

.ftc-box-dont h3 .ftc-i { color: var(--warn); }
.ftc-dont { display: grid; gap: 8px; }
.ftc-dont li { display: flex; gap: 10px; align-items: flex-start; }
.ftc-dont b { font-size: 14.5px; }
.ftc-tag.no { background: #fbe9e7; color: var(--warn); flex: none; margin-top: 2px; }
.ftc-tag.decl { background: var(--gold-l); color: var(--gold-d); flex: none; margin-top: 2px; }
.ftc-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ftc-esim { display: flex; align-items: center; gap: 12px; background: var(--gold-l); border-radius: 14px; padding: 12px 16px; flex-wrap: wrap; }
.ftc-esim > .ftc-i { width: 22px; height: 22px; color: var(--gold-d); }
.ftc-esim p { flex: 1 1 240px; font-size: 14px; }
.ftc-esim b { margin-right: 8px; }
.ftc-btn { background: var(--gold); color: #fff !important; text-decoration: none; border-radius: 99px; padding: 7px 18px; font-weight: 700; font-size: 14px; white-space: nowrap; }
.ftc-btn:hover { background: var(--gold-d); }
.ftc-tips { display: grid; gap: 4px; font-size: 13.5px; color: var(--muted); }
.ftc-tips li { padding-left: 16px; position: relative; }
.ftc-tips li::before { content: ''; position: absolute; left: 3px; top: .7em; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }

/* ---- plan: to-dos + packing ---- */
.ftc-plan-h { display: grid; gap: 6px; }
.ftc .ftc-plan-h h2 { font-size: 24px; }
.ftc-plan-h p { font-size: 14px; color: var(--muted); }
.ftc-bar { height: 8px; border-radius: 99px; background: var(--bg); overflow: hidden; }
.ftc-bar span { display: block; height: 100%; background: var(--gold); border-radius: 99px; transition: width .3s; }
.ftc-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 22px; align-items: start; }
.ftc-col { display: grid; gap: 12px; min-width: 0; }
.ftc .ftc-col h3 { font-size: 17px; }
.ftc-col-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.ftc-hide { font-size: 13px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.ftc-hide input { accent-color: var(--gold); }
.ftc-todo { display: grid; gap: 14px; }
.ftc-bucket { display: grid; gap: 6px; }
.ftc-bk { font-size: 12.5px; font-weight: 800; color: var(--gold-d); letter-spacing: .03em; }
.ftc-bucket ul { display: grid; gap: 2px; border-left: 2px solid var(--gold-l); padding-left: 10px !important; }

.ftc-row { position: relative; padding: 8px 32px 8px 4px; border-radius: 10px; display: grid; gap: 2px; }
.ftc-row:hover { background: var(--bg); }
.ftc-row label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.ftc-row input[type=checkbox] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ftc-ck { width: 20px; height: 20px; border-radius: 6px; box-shadow: inset 0 0 0 2px #cfc6b2; flex: none; margin-top: 1px; background: #fff; position: relative; transition: background .12s; }
.ftc-row input:checked + .ftc-ck { background: var(--gold); box-shadow: none; }
.ftc-row input:checked + .ftc-ck::after { content: ''; position: absolute; left: 7px; top: 3px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ftc-row input:focus-visible + .ftc-ck { outline: 2px solid var(--gold-d); outline-offset: 2px; }
.ftc-rt { font-weight: 600; font-size: 15px; }
.ftc-rt em { font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--muted); background: var(--bg); border-radius: 6px; padding: 1px 6px; margin-left: 6px; white-space: nowrap; }
.ftc-row .ftc-note, .ftc-row .ftc-acts { padding-left: 30px; }
.ftc-row.is-done .ftc-rt { color: var(--muted); text-decoration: line-through; text-decoration-color: #c9c0ab; }
.ftc-row.is-done .ftc-note, .ftc-row.is-done .ftc-acts { display: none; }
.ftc-row .ftc-rm { position: absolute; right: 4px; top: 6px; }

.ftc-tabs { display: flex; gap: 4px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
.ftc-tabs::-webkit-scrollbar { display: none; }
.ftc-tabs button { flex: none; padding: 5px 12px !important; border-radius: 99px !important; font-size: 13.5px; font-weight: 600; color: var(--muted) !important; background: var(--bg) !important; }
.ftc-tabs button span { font-size: 11px; margin-left: 5px; opacity: .8; }
.ftc-tabs button.is-on { background: var(--gold) !important; color: #fff !important; }
.ftc-list { display: grid; gap: 1px; }
.ftc-add { display: flex; align-items: center; gap: 6px; background: var(--bg); border-radius: 99px; padding: 4px 4px 4px 14px; }
.ftc-add input { flex: 1; min-width: 0; border: 0 !important; background: transparent !important; padding: 6px 0 !important; font-size: 14px; }
.ftc-add button { width: 32px; height: 32px; border-radius: 50% !important; background: var(--gold) !important; color: #fff !important; display: grid; place-items: center; }
.ftc-foot { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--line); padding-top: 14px; }
.ftc-foot button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 16px !important; border-radius: 99px !important; background: var(--bg) !important; font-weight: 600; font-size: 14px; }
.ftc-foot button:first-child { background: var(--gold) !important; color: #fff !important; }
.ftc-foot .ftc-i { width: 16px; height: 16px; }
.ftc-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: #2b2b2b; color: #fff; padding: 8px 16px; border-radius: 99px; font-size: 14px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 9999; }
.ftc-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 860px) {
  .ftc-glance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ftc-g.is-money { grid-column: 1 / -1; }
  .ftc-cols { grid-template-columns: minmax(0, 1fr); }
  .ftc-rules { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .ftc-hero { padding: 18px 16px 16px; border-radius: 16px; }
  .ftc-sentence { font-size: 19px; }
  .ftc-slot { font-size: 18px; }
  .ftc-sec { padding: 16px; border-radius: 16px; }
  .ftc .ftc-sec-h h2 { font-size: 22px; }
  .ftc-months { grid-template-columns: repeat(4, 1fr); }
  .ftc-opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ftc-gv { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) { .ftc * { transition: none !important; } }
@media print {
  body * { visibility: hidden; }
  .ftc, .ftc * { visibility: visible; }
  .ftc { position: absolute; left: 0; top: 0; width: 100%; }
  .ftc-hero, .ftc-esim, .ftc-foot, .ftc-add, .ftc-tabs, .ftc-hide, .ftc-jump, .ftc-rm, .ftc-toast { display: none !important; }
  .ftc-sec { box-shadow: none; border: 1px solid #ddd; break-inside: avoid; }
  .ftc-cols { grid-template-columns: 1fr 1fr; }
  .ftc a { color: inherit; text-decoration: none; }
}

/* ---- v0.4 visual language: verdict chips, coloured boxes, timeline, group cards, teaser ---- */
.ftc-verdict { display: flex; flex-wrap: wrap; gap: 8px; }
.ftc-vc { display: inline-flex; align-items: center; gap: 6px; border-radius: 99px; padding: 5px 12px; font-size: 14px; font-weight: 700; text-decoration: none; line-height: 1.3; }
.ftc-vc .ftc-i { width: 16px; height: 16px; }
.ftc-vc.is-ok { background: #e6f2ec; color: var(--ok) !important; }
.ftc-vc.is-act { background: #fdf0dc; color: #9a5b00 !important; }
.ftc-vc.is-info { background: #e8eff7; color: #2f5d8a !important; }
.ftc-vc.is-no { background: #fbe9e7; color: var(--warn) !important; }
a.ftc-vc:hover { filter: brightness(.96); }
.ftc-box-entry { box-shadow: inset 4px 0 0 var(--gold), 0 0 0 1px var(--line); scroll-margin-top: 100px; }
.ftc-box-dont { box-shadow: inset 4px 0 0 var(--warn), 0 0 0 1px #f3d6d2; background: #fffafa; scroll-margin-top: 100px; }
.ftc-rules .ftc-box-dont { box-shadow: 0 0 0 1px var(--line); background: #fff; }
.ftc-tipbox { display: flex; gap: 10px; align-items: flex-start; background: #fbfaf6; border-radius: 12px; padding: 10px 14px; }
.ftc-tipbox > .ftc-i { color: var(--gold); margin-top: 2px; }
.ftc-tipbox .ftc-tips { flex: 1; }
.ftc-plan { gap: 22px; }
.ftc-todo { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0; align-items: start; }
.ftc-todo .ftc-bucket { align-content: start; }
.ftc-todo .ftc-bucket { padding: 0 12px 0 0; }
.ftc-todo .ftc-bk { display: flex; align-items: center; gap: 8px; padding-bottom: 8px; border-bottom: 2px solid var(--gold-l); margin-bottom: 4px; }
.ftc-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 3px var(--gold-l); flex: none; }
.ftc-todo .ftc-bucket ul { border-left: 0; padding-left: 0 !important; }
.ftc-gcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; align-items: start; }
.ftc-gcard { background: #fbfaf6; border-radius: 14px; padding: 10px 8px 6px; box-shadow: 0 0 0 1px var(--line); }
.ftc-gcard.is-full { opacity: .65; }
.ftc-gch { display: flex; justify-content: space-between; align-items: center; font-weight: 800; font-size: 14.5px; padding: 0 6px 6px; }
.ftc-gch span { font-size: 12px; color: var(--muted); font-weight: 600; }
.ftc-gcard .ftc-row { padding: 6px 28px 6px 4px; }
.ftc-gcard .ftc-rt { font-size: 14.5px; }
.ftc-teaser { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ftc-tz-i { border-radius: 14px; box-shadow: 0 0 0 1px var(--line); padding: 14px 16px; display: grid; gap: 4px; }
.ftc-tz-i .ftc-i { width: 22px; height: 22px; color: var(--gold); }
.ftc-tz-i b { font-size: 15px; }
.ftc-tz-i p { font-size: 13.5px; color: var(--muted); }
@media (max-width: 860px) { .ftc-teaser { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ftc-todo { grid-template-columns: minmax(0, 1fr); gap: 12px; } .ftc-vc { font-size: 13px; } }

.ftc-rt em.late { background: #fbe9e7; color: var(--warn); }

/* v0.6: outbound travel alert + public holidays */
.ftc-ota { display: flex; gap: 12px; align-items: flex-start; border-radius: 14px; padding: 12px 16px; background: #fdf0dc; color: #7a4a00; scroll-margin-top: 100px; }
.ftc-ota.lvl-red, .ftc-ota.lvl-black { background: #fbe9e7; color: var(--warn); }
.ftc-ota.lvl-black { background: #2b2b2b; color: #fff; }
.ftc-ota.lvl-black .ftc-note, .ftc-ota.lvl-black a { color: #f3ead9 !important; }
.ftc-ota > .ftc-i { width: 22px; height: 22px; margin-top: 2px; }
.ftc-ota b { font-size: 14.5px; }
.ftc-hol { display: flex; gap: 12px; align-items: flex-start; border-radius: 14px; padding: 12px 16px; background: #eef3f9; }
.ftc-hol > .ftc-i { width: 22px; height: 22px; color: #2f5d8a; margin-top: 2px; }
.ftc-hol b { font-size: 14.5px; color: #2f5d8a; }
.ftc-hol ul { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 4px 0 !important; font-size: 14px; }
.ftc-hol li span { color: var(--muted); margin-right: 4px; }

/* v0.8 eSIM plan comparison */
.ftc-esimbox h3 small { font-weight: 500; font-size: 12.5px; color: var(--muted); margin-left: 8px; }
.ftc-esimbox h3 .ftc-i { color: var(--gold); }
.ftc-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.ftc-plan-c { background: var(--bg); border-radius: 12px; padding: 12px 14px; display: grid; gap: 4px; align-content: start; }
.ftc-plan-l { display: flex; flex-wrap: wrap; gap: 4px; }
.ftc-plan-l span { background: var(--gold); color: #fff; font-size: 11.5px; font-weight: 700; border-radius: 6px; padding: 1px 7px; }
.ftc-plan-v { display: flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700; }
.ftc-plan-v img { border-radius: 4px !important; width: 20px !important; height: 20px !important; object-fit: contain; background: #fff; }
.ftc-plan-d { font-size: 14px; }
.ftc-plan-p { font-size: 22px; font-weight: 800; line-height: 1.2; }
.ftc-plan-p i { font-style: normal; font-size: 12px; font-weight: 600; color: var(--muted); margin-left: 6px; }
.ftc-plan-x { font-size: 12.5px; color: var(--muted); }
.ftc-esim-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }

/* ---- v0.9: calmer visual language (owner: "smells AI") ----
   No coloured side edges, no box-in-box; sections inside a destination are separated by hairlines. */
.ftc-box, .ftc-box-entry, .ftc-box-dont, .ftc-rules .ftc-box-dont { box-shadow: none !important; background: transparent !important; border-radius: 0; padding: 16px 0 0; border-top: 1px solid var(--line); }
.ftc .ftc-box h3 { font-size: 15px; letter-spacing: .02em; }
.ftc-box h3 .ftc-i, .ftc-box-dont h3 .ftc-i { color: var(--muted); width: 16px; height: 16px; }
.ftc-forms li { background: transparent; border-radius: 0; padding: 10px 0; border-bottom: 1px dashed var(--line); }
.ftc-forms li:last-child { border-bottom: 0; }
.ftc-tag { background: transparent; border: 1px solid var(--line); }
.ftc-tag.must { background: var(--ink); border-color: var(--ink); color: #fff; }
.ftc-tag.no { background: transparent; border-color: #e6b8b2; color: var(--warn); }
.ftc-tag.decl { background: transparent; border-color: var(--line); color: var(--gold-d); }
.ftc-badge { background: transparent; border: 1.5px solid var(--ink); color: var(--ink); padding: 2px 12px; }
.ftc-verdict { gap: 6px 14px; }
.ftc-vc { background: transparent !important; padding: 0; font-weight: 600; font-size: 14px; }
.ftc-vc.is-ok { color: var(--ok) !important; } .ftc-vc.is-act { color: #9a5b00 !important; } .ftc-vc.is-info { color: #2f5d8a !important; } .ftc-vc.is-no { color: var(--warn) !important; }
a.ftc-vc { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ftc-hol { background: transparent; padding: 14px 0 0; border-top: 1px solid var(--line); border-radius: 0; }
.ftc-hol > .ftc-i { color: var(--muted); }
.ftc-hol b { color: var(--ink); }
.ftc-tipbox { background: transparent; padding: 14px 0 0; border-top: 1px solid var(--line); border-radius: 0; }
.ftc-tipbox > .ftc-i { color: var(--muted); }
.ftc-ota { border-radius: 10px; }
.ftc-g { background: #faf9f5; }
/* eSIM list */
.ftc-bh2 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ftc-bh2 p { font-size: 13px; color: var(--muted); }
.ftc-plist { display: grid; margin-top: 4px !important; }
.ftc-plist li { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto auto; align-items: center; gap: 4px 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.ftc-plist li:last-child { border-bottom: 0; }
.ftc-pl { font-size: 12.5px; font-weight: 700; color: var(--gold-d); }
.ftc-pm { display: grid; gap: 1px; min-width: 0; }
.ftc-pm b { font-size: 15px; }
.ftc-pm span { font-size: 13px; color: var(--muted); }
.ftc-pp { font-size: 19px; font-weight: 800; text-align: right; white-space: nowrap; }
.ftc-pp i { display: block; font-style: normal; font-size: 11.5px; font-weight: 500; color: var(--muted); }
.ftc-buy { justify-self: end; border: 1.5px solid var(--gold); color: var(--gold-d) !important; text-decoration: none; border-radius: 99px; padding: 5px 16px; font-weight: 700; font-size: 14px; white-space: nowrap; }
.ftc-buy:hover { background: var(--gold); color: #fff !important; }
.ftc-esim-foot { font-size: 12.5px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
@media (max-width: 560px) {
  .ftc-plist li { grid-template-columns: minmax(0, 1fr) auto; }
  .ftc-pl { grid-column: 1 / -1; }
  .ftc-buy { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
}
/* action bar under the input panel */
.ftc-bar-top:empty { display: none; }
.ftc-actbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; padding: 2px 4px; }
.ftc-actp { display: flex; align-items: center; gap: 12px; flex: 1 1 240px; }
.ftc-actn { font-size: 14px; font-weight: 600; white-space: nowrap; }
.ftc-actp .ftc-bar { flex: 1; max-width: 260px; height: 6px; }
.ftc-acts2 { display: flex; flex-wrap: wrap; gap: 8px; }
.ftc-acts2 button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px !important; border-radius: 99px !important; font-weight: 600; font-size: 14px; box-shadow: inset 0 0 0 1px var(--line) !important; background: #fff !important; }
.ftc-acts2 button:first-child { background: var(--ink) !important; color: #fff !important; box-shadow: none !important; }
.ftc-acts2 .ftc-i { width: 16px; height: 16px; }
@media print { .ftc-bar-top { display: none !important; } }

/* v1.0: tool header (same pattern as the site's other tool pages) + reference tables */
.ftc-head { text-align: center; max-width: 760px; margin: 0 auto 22px; display: grid; gap: 6px; }
.ftc-head .ftc-kicker { margin: 0; font-size: 12.5px; font-weight: 700; letter-spacing: .08em; color: #8a6531; }
.ftc-head .ftc-title { margin: 0; font-size: 30px; line-height: 1.25; font-weight: 800; color: #2b2b2b; width: auto; text-transform: none; letter-spacing: normal; }
.ftc-head .ftc-sub { margin: 0; font-size: 15px; color: #7a7a7a; line-height: 1.6; }
@media (max-width: 560px) { .ftc-head .ftc-title { font-size: 25px; } }
.ftc-ref { overflow-x: auto; margin: 6px 0 18px; border: 1px solid #ebe6da; border-radius: 12px; }
.ftc-ref table { width: 100%; border-collapse: collapse; margin: 0; font-size: 14.5px; }
.ftc-ref th, .ftc-ref td { text-align: left; padding: 10px 14px; border-bottom: 1px solid #ebe6da; vertical-align: top; }
.ftc-ref th { background: #f7f6f0; font-size: 13px; color: #555; white-space: nowrap; }
.ftc-ref tr:last-child td { border-bottom: 0; }
.ftc-ref td:first-child { white-space: nowrap; font-weight: 700; }
.ftc-ref-list { margin: 6px 0 18px 1.2em; }
.ftc-ref-list li { margin-bottom: 6px; }

/* v1.1 reference tabs: one compact block instead of a long scroll */
.ftc-reftabs { border: 1px solid #ebe6da; border-radius: 14px; overflow: hidden; background: #fff; }
.ftc-rt-nav { display: flex; gap: 2px; overflow-x: auto; padding: 6px; background: #f7f6f0; scrollbar-width: none; }
.ftc-rt-nav::-webkit-scrollbar { display: none; }
.ftc-rt-tab { flex: none; margin: 0 !important; min-height: 0 !important; padding: 7px 14px !important; border: 0 !important; border-radius: 99px !important; background: transparent !important; color: #7a7a7a !important; font-size: 14px !important; font-weight: 700; letter-spacing: normal !important; text-transform: none !important; line-height: 1.4 !important; cursor: pointer; box-shadow: none !important; }
.ftc-rt-tab.is-on { background: #fff !important; color: #2b2b2b !important; box-shadow: 0 1px 2px rgba(0,0,0,.08) !important; }
.ftc-rt-panel { display: none; padding: 16px 18px 6px; }
.ftc-rt-panel.is-on { display: block; }
.ftc-rt-panel h3 { font-size: 17px; margin: 0 0 4px; }
.ftc-rt-panel h4 { font-size: 15px; margin: 10px 0 0; }
.ftc-rt-intro { color: #7a7a7a; font-size: 14px; margin: 0 0 8px; }
.ftc-rt-panel .ftc-ref { border: 0; border-radius: 0; margin: 0 -18px; }
.ftc-rt-panel .ftc-ref th:first-child, .ftc-rt-panel .ftc-ref td:first-child { padding-left: 18px; }
@media print { .ftc-reftabs { display: none; } }
.ftc-rt-panel .ftc-ref { max-height: 440px; overflow: auto; }
.ftc-rt-panel .ftc-ref th { position: sticky; top: 0; z-index: 1; }

/* v1.2 reference rows: same language as the tool (hairlines, outlined tags), replaces the tables */
.ftc-reflist { list-style: none; margin: 0 !important; padding: 0 !important; max-height: 460px; overflow: auto; }
.ftc-reflist li { display: grid; grid-template-columns: 132px minmax(0, 1fr) auto; gap: 4px 16px; align-items: center; padding: 11px 0; margin: 0; border-bottom: 1px solid #ebe6da; font-size: 14.5px; line-height: 1.5; }
.ftc-reflist li:last-child { border-bottom: 0; }
.ftc-rl-d { display: flex; align-items: center; gap: 8px; font-weight: 700; color: #2b2b2b; }
.ftc-rl-d img { width: 20px !important; height: 20px !important; border-radius: 50%; margin: 0 !important; flex: none; }
.ftc-rl-m { min-width: 0; color: #2b2b2b; }
.ftc-rl-m small { display: block; font-size: 13px; color: #7a7a7a; margin-top: 1px; }
.ftc-reflist .ftc-tag { justify-self: end; white-space: nowrap; font-size: 12px; font-weight: 700; border-radius: 6px; padding: 1px 8px; border: 1px solid #ebe6da; }
.ftc-tag.ok { border-color: #bfdccc; color: #2e7d57; background: transparent; }
.ftc-reflist li.is-rule { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
.ftc-reflist li.is-rule .ftc-tag { justify-self: start; margin-top: 2px; }
.ftc-rt-panel h4 { font-size: 14px; color: #7a7a7a; margin: 12px 0 0; }
@media (max-width: 560px) {
  .ftc-reflist li { grid-template-columns: minmax(0, 1fr) auto; }
  .ftc-reflist li .ftc-rl-m { grid-column: 1 / -1; grid-row: 2; }
  .ftc-reflist li.is-rule .ftc-rl-m { grid-column: 2; grid-row: 1; }
}

/* v1.3: several cities per destination; to-do columns = buckets in use */
.ftc-cty { display: inline-flex; align-items: center; gap: 2px; background: var(--bg); border-radius: 99px; padding: 2px 4px 2px 10px; font-size: 14px; font-weight: 600; color: var(--ink); }
.ftc-cty button { width: 20px; height: 20px; border-radius: 50% !important; color: var(--muted) !important; font-size: 15px !important; line-height: 1 !important; display: inline-grid; place-items: center; }
.ftc-cty:not(:has(button)) { padding-right: 10px; }
.ftc .ftc-addcity { border: 1px dashed #cfc6b2 !important; background: transparent !important; border-radius: 99px; padding: 2px 10px; font-size: 13.5px; font-weight: 600; color: var(--muted); width: auto; }
.ftc-gml { display: grid; gap: 2px; font-size: 16px; font-weight: 800; white-space: normal; }
.ftc-gml span { display: flex; justify-content: space-between; gap: 8px; }
.ftc-gml em { font-style: normal; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.ftc-gv:has(.ftc-gml) { white-space: normal; }
.ftc-todo { grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)) !important; }
@media (max-width: 860px) { .ftc-todo { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; } }

/* v1.4 to-do: one row per time group (label left, tasks in two columns right) instead of 5 cramped columns */
.ftc .ftc-todo { display: grid; grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; }
.ftc .ftc-todo .ftc-bucket { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 6px 18px; padding: 12px 0 !important; border-top: 1px solid var(--line); align-items: start; }
.ftc .ftc-todo .ftc-bucket:first-child { border-top: 0; }
.ftc .ftc-todo .ftc-bk { border-bottom: 0 !important; margin: 0 !important; padding: 8px 0 0 !important; }
.ftc .ftc-todo .ftc-bucket ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; border-left: 0 !important; padding-left: 0 !important; }
@media (max-width: 760px) {
  .ftc .ftc-todo .ftc-bucket { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .ftc .ftc-todo .ftc-bucket ul { grid-template-columns: minmax(0, 1fr); }
}

.ftc-actn small { font-weight: 400; color: var(--muted); font-size: 12.5px; margin-left: 4px; }

/* v1.7 larger text for older readers (owner ok'd ~16px) */
.ftc { font-size: 16px; }
.ftc-rt, .ftc-pm b, .ftc-dont b, .ftc-fh { font-size: 16px; }
.ftc-note, .ftc-meta, .ftc-acts, .ftc-gs, .ftc-pm span, .ftc-plan-x, .ftc-tips, .ftc-rl-m small, .ftc-sub { font-size: 14.5px !important; }
.ftc-gl, .ftc-tag, .ftc-rt em, .ftc-bk, .ftc-tabs button span { font-size: 13px !important; }
.ftc-reflist li { font-size: 15.5px; }
.ftc-head .ftc-sub { font-size: 16px; }

/* v1.9 shared Schengen block */
.ftc-sg-cs { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 6px 0 0; }
.ftc-sg-c { display: inline-flex; align-items: center; gap: 6px; font-size: 14.5px; color: var(--ink); }
.ftc-sg-c img { width: 18px; height: 18px; border-radius: 50%; }
