.cf-app{margin-top:var(--space-4);--sticky-top: var(--header-h, 44px)}.cf-controls{display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;border-bottom:none;padding:var(--space-3)}.cf-controls input[type=search]{max-width:34rem;margin:0 auto}.cf-controls input[type=search],.cf-controls>select,.cf-filters-grid select{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:.9rem;padding:.5rem .65rem;min-width:0;width:100%}.cf-slider{display:flex;align-items:center;gap:var(--space-3);font-size:.85rem;color:var(--text-muted);width:100%;max-width:34rem;margin:0 auto}.cf-slider-name{white-space:nowrap}.cf-slider-name b{color:var(--text);font-variant-numeric:tabular-nums}.cf-slider input[type=range]{flex:1;min-width:0;accent-color:var(--accent-strong)}@media(max-width:640px){.cf-slider input[type=range],.cf-weight input[type=range]{height:40px}}.cf-toggle{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;padding:.2rem 0}.cf-toggle input{accent-color:var(--good)}.cf-count{font-size:.78rem;color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.cf-filters-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.cf-filters-bar .cf-count{margin-left:auto}.cf-chipgroup{display:flex;flex-direction:column;gap:.3rem}.cf-chipgroup-title{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.cf-chipgroup-hint{text-transform:none;letter-spacing:0;font-weight:500;margin-left:.3rem}.cf-chipbar{display:flex;flex-wrap:wrap;gap:.35rem}.cf-qchip{display:inline-flex;align-items:center;min-height:2rem;padding:.25rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);color:var(--text-muted);font-size:.8rem;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer}.cf-qchip:hover{color:var(--text);border-color:var(--accent);text-decoration:none}.cf-qchip[aria-pressed=true]{color:var(--text);border-color:var(--accent);background:var(--info-bg)}.cf-qchip[aria-pressed=true]:after{content:" ✕";margin-left:.3rem;font-size:.7rem;color:var(--text-faint)}.cf-chipbar-regions .cf-qchip{font-weight:500}@media(max-width:640px){.cf-chipbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--space-3));padding:0 var(--space-3)}.cf-chipbar::-webkit-scrollbar{display:none}.cf-qchip{min-height:2.5rem;flex-shrink:0}}.cf-listlink:not([hidden]){margin:0;padding:.45rem .7rem;border-radius:var(--radius-sm);background:var(--info-bg);font-size:.85rem;color:var(--text-muted)}.cf-sort-select{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:.85rem;padding:.42rem .5rem;min-width:0}.cf-app[data-view=table] .cf-sort-select{display:none}.cf-view{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.cf-view button{background:var(--surface-raised);border:none;color:var(--text-muted);font:inherit;font-size:.82rem;font-weight:600;padding:.42rem .7rem;cursor:pointer}.cf-view button+button{border-left:1px solid var(--border)}.cf-view button:hover{color:var(--text)}.cf-view button[aria-pressed=true]{background:var(--info-bg);color:var(--text)}.cf-filters-btn{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font:inherit;font-size:.85rem;font-weight:600;padding:.45rem .8rem;cursor:pointer}.cf-filters-btn:hover{color:var(--text)}.cf-filters-btn.active{color:var(--text);border-color:var(--accent);background:var(--info-bg)}.cf-filters-count{color:var(--accent);font-weight:700}.cf-filters-panel:not([hidden]){display:flex;flex-direction:column;gap:var(--space-2);border-top:1px solid var(--border);padding-top:var(--space-2)}.cf-filters-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);align-items:center}.cf-toggle-full{grid-column:1 / -1}.cf-intent{display:flex;gap:.4rem}.cf-intent button{flex:1;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font:inherit;font-size:.88rem;font-weight:600;padding:.5rem .6rem;cursor:pointer}.cf-intent button.active{color:var(--text);border-color:var(--accent);background:var(--info-bg)}@media(max-width:640px){.cf-intent button{font-size:.8rem;padding:.5rem .35rem;white-space:nowrap;min-height:2.5rem}}.cf-presets{display:flex;flex-wrap:wrap;gap:.35rem}.cf-preset{background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font:inherit;font-size:.78rem;padding:.3rem .7rem;cursor:pointer}.cf-preset:hover{color:var(--text)}.cf-preset.active{color:var(--text);border-color:var(--accent);background:var(--info-bg)}.cf-weights,.cf-columns{border-top:1px solid var(--border);padding-top:var(--space-2)}.cf-weights-hint{margin:0 0 .1rem;font-size:.85rem;font-weight:600;color:var(--text-muted)}.cf-weight-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.5rem 1.25rem;margin-top:var(--space-2)}.cf-weight{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;color:var(--text-muted)}.cf-weight-name b{color:var(--text);font-variant-numeric:tabular-nums}.cf-weight-hint{font-size:.72rem;color:var(--text-faint)}.cf-weight input[type=range]{accent-color:var(--accent-strong);min-width:0}.cf-reset{margin-top:var(--space-2);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font:inherit;font-size:.78rem;padding:.3rem .7rem;cursor:pointer}.cf-reset:hover{color:var(--text)}.cf-columns-row{display:flex;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap}.cf-table-wrap{border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius)}.cf-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem}.cf-table th{position:sticky;top:var(--sticky-top);z-index:2;background:var(--surface-raised);color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--border);vertical-align:bottom}.cf-table th.cf-num{text-align:right}.cf-table th.cf-dotcell{text-align:center}.cf-table th.sortable{cursor:pointer;user-select:none;transition:color .15s}.cf-table th.sortable:hover{color:var(--text)}.cf-table th.sortable:after{content:" ⇅";font-size:9px;opacity:.55}.cf-table th.sort-asc{color:var(--good)!important}.cf-table th.sort-desc{color:var(--accent)!important}.cf-table th.sort-asc:after{content:" ↑";font-size:11px;font-weight:700;opacity:1}.cf-table th.sort-desc:after{content:" ↓";font-size:11px;font-weight:700;opacity:1}.cf-table td{padding:.45rem .4rem;border-bottom:1px solid var(--border);vertical-align:middle}.cf-table tbody tr:nth-child(2n){background:var(--surface)}.cf-table tbody tr:hover{background:var(--surface-raised)}.cf-rank{width:1.6rem;color:var(--text-faint);font-size:.75rem;text-align:right;font-variant-numeric:tabular-nums}.cf-cmpcell{width:2.2rem;text-align:center;font-size:.68rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}th.cf-cmpcell{white-space:nowrap}.cf-cmp-check{width:16px;height:16px;accent-color:var(--good);cursor:pointer;vertical-align:middle}.cf-city a{display:block;color:inherit;text-decoration:none;min-width:0}.cf-city-name{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}.cf-city a:hover .cf-city-name{color:var(--accent)}.cf-city-country{display:block;font-size:.72rem;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}.cf-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cf-cost{font-weight:600}.cf-months{color:var(--text-muted)}.cf-score{display:inline-block;min-width:2rem;text-align:center;padding:.08rem .3rem;border-radius:999px;font-weight:700;font-size:.8rem}.cf-score-good{color:var(--good);background:var(--good-bg)}.cf-score-fair{color:var(--fair);background:var(--fair-bg)}.cf-score-poor{color:var(--poor);background:var(--poor-bg)}.cf-dotcell{text-align:center;width:1.5rem;padding-left:.15rem;padding-right:.15rem}.cf-stripcell{white-space:nowrap}.cf-strip{display:inline-flex;gap:1px;vertical-align:middle}.cf-strip i{display:inline-block;width:10px;height:13px;border-radius:1px;opacity:.4}.cf-strip-title{display:block;margin-bottom:.25rem}.cf-strip-head{display:inline-flex;gap:1px;letter-spacing:0}.cf-strip-head i{display:inline-block;width:10px;font-size:.62rem;font-style:normal;text-align:center;color:var(--text-faint)}.cf-strip i.on{opacity:1;box-shadow:inset 0 0 0 1px #ffffffbf}.cf-strip i.cf-strip-nodata{background:var(--surface-raised);opacity:1}.cf-strip-none{color:var(--text-faint)}.cf-dot-country{background:transparent!important;box-shadow:inset 0 0 0 2px currentColor}.cf-dot-country.cf-dot-green{color:var(--good)}.cf-dot-country.cf-dot-yellow{color:var(--fair)}.cf-dot-country.cf-dot-red{color:var(--poor)}.cf-safety-adv{font-size:.85rem}.cf-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}.cf-dot-green{background:var(--good)}.cf-dot-yellow{background:var(--fair)}.cf-dot-red{background:var(--poor)}.cf-dot-none{color:var(--text-faint);width:auto;height:auto}.cf-empty{text-align:center;color:var(--text-muted);padding:var(--space-4)!important}.cf-clear-all{display:inline-block;margin-left:.5rem;min-height:2.5rem;padding:.4rem .9rem;border:1px solid var(--accent);border-radius:var(--radius-sm);background:transparent;color:var(--accent);font:inherit;font-size:.88rem;cursor:pointer}.cf-clear-all:hover{background:var(--accent);color:var(--bg)}@media(max-width:640px){.cf-clear-all{display:block;margin:var(--space-3) auto 0}}.cf-legend{margin-top:var(--space-3);font-size:.82rem;color:var(--text-muted)}.cf-legend .cf-dot{margin:0 .15rem}.cf-method{color:var(--text-faint);font-size:.78rem}.cf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:var(--space-3)}.cf-app[data-view=table] .cf-grid,.cf-app[data-view=grid] .cf-table-wrap,.cf-app[data-view=grid] .cf-columns{display:none}.cf-app[data-view=grid] .cf-controls{border-bottom:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-3)}.cf-grid>.cf-empty{grid-column:1 / -1}.cf-tile{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);transition:transform .15s ease,border-color .15s ease}.cf-tile:hover{transform:translateY(-2px);border-color:var(--accent)}.cf-tile-link{position:relative;display:grid;grid-template-rows:auto 1fr auto;aspect-ratio:1 / 1;padding:.7rem .8rem;color:#fff;text-decoration:none}.cf-tile-link:hover{text-decoration:none}.cf-tile-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cf-tile-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cf-tile-img-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,hsl(var(--cp-hue) 45% 30%),hsl(calc(var(--cp-hue) + 40) 45% 16%))}.cf-tile-img-placeholder span{font-size:2.4rem;opacity:.5;transform:translateY(-20%)}.cf-tile-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0000008c,#0000 26%,#0000001f 42%,#000000d1 72%,#000000eb)}.cf-tile-top,.cf-tile-mid,.cf-tile-body{position:relative}.cf-tile-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:.3rem 0}.cf-tile-mid:before{content:"";position:absolute;inset:12% 6%;z-index:-1;background:radial-gradient(ellipse at center,#00000080,#00000047 45%,#0000 72%);pointer-events:none}.cf-tile-mid{z-index:0;isolation:isolate}.cf-tile-top{display:flex;align-items:center;gap:.4rem;min-height:1.6rem}.cf-tile-rank{font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.6)}.cf-tile-fit{padding:.1rem .45rem;border-radius:999px;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;background:#0000008c}.cf-tile-fit.cf-score-good{color:#7ee2a8}.cf-tile-fit.cf-score-fair{color:#f5d06f}.cf-tile-fit.cf-score-poor{color:#ff9a8f}.cf-tile .cf-thin{color:#f5d06f}.cf-tile-body{display:flex;flex-direction:column;gap:.2rem}.cf-tile-name{font-size:1.2rem;font-weight:800;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 10px rgba(0,0,0,.55)}.cf-tile-country{font-size:.8rem;color:#ffffffeb;text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 8px rgba(0,0,0,.55)}.cf-tile-bot{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.1rem .5rem}.cf-tile-temp{font-size:.8rem;font-weight:600;color:#ffffffeb;white-space:nowrap}.cf-tile-strip{display:flex;flex-direction:column;gap:2px;margin-top:.3rem}.cf-tile-strip .cf-strip,.cf-tile-strip .cf-strip-head{display:flex;gap:2px;width:100%}.cf-tile-strip .cf-strip i{flex:1;width:auto;height:7px}.cf-tile-strip .cf-strip i:not(.on){opacity:.5}.cf-tile-strip .cf-strip-head i{flex:1;width:auto;font-size:.58rem;color:#ffffffb3}.cf-tile-cost{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.15}.cf-tile-cost small{font-size:.72rem;font-weight:600;color:#ffffffbf;margin-left:.1rem}.cf-tile-cost .cf-est{color:#f5d06f}.cf-tile-chips{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.1rem}.cf-tile-chips:empty{display:none}.cf-chip{display:inline-block;padding:.08rem .45rem;border-radius:999px;font-size:.7rem;font-weight:600;line-height:1.5;white-space:nowrap;background:#ffffff29;color:#fff}.cf-chip-good{background:#2ea05ed9}.cf-chip-warn{background:#c48012e6}.cf-chip-bad{background:#c43434e6}.cf-tile-cmp{position:absolute;top:.55rem;right:.55rem;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:0 .65rem;border-radius:999px;background:#0000008c;border:1px solid rgba(255,255,255,.35);color:#fff;font-size:.75rem;font-weight:700;cursor:pointer}.cf-tile-cmp:hover{background:#000000bf;border-color:#fff}.cf-tile-cmp input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.cf-tile-cmp-text:before{content:"+ Compare"}.cf-tile-cmp:has(input:checked){background:var(--good);border-color:var(--good)}.cf-tile-cmp:has(input:checked) .cf-tile-cmp-text:before{content:"✓ Added"}.cf-tile-cmp:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}@media(max-width:480px){.cf-grid{grid-template-columns:1fr 1fr;gap:.5rem}.cf-tile-link{aspect-ratio:4 / 5;padding:.5rem .55rem}.cf-tile-name{font-size:.95rem}.cf-tile-country{font-size:.7rem}.cf-tile-cost{font-size:1.08rem}.cf-chip-secondary{display:none}.cf-tile-temp{font-size:.72rem}.cf-chip{font-size:.66rem;padding:.05rem .38rem}.cf-tile-rank{font-size:.7rem}.cf-tile-fit{font-size:.68rem;padding:.08rem .35rem}.cf-tile-cmp{top:.3rem;right:.3rem;min-width:2.5rem;min-height:2.5rem;padding:0;font-size:1.05rem}.cf-tile-cmp-text:before{content:"+"}.cf-tile-cmp:has(input:checked) .cf-tile-cmp-text:before{content:"✓"}}@media(prefers-reduced-motion:reduce){.cf-tile{transition:none}.cf-tile:hover{transform:none}}@media(max-width:640px){.cf-table{font-size:.84rem}.cf-table th,.cf-table td{padding-left:.25rem;padding-right:.25rem}.cf-th-long{display:none}.cf-rank{width:1.2rem}.cf-city-name,.cf-city-country{max-width:31vw}}@media(max-width:480px){.cf-app[data-view] .cf-table-wrap,.cf-app[data-view] .cf-columns,.cf-view{display:none}.cf-app[data-view] .cf-grid{display:grid}.cf-app[data-view] .cf-sort-select{display:block}.cf-app[data-view] .cf-controls{border-bottom:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-3)}}@media(max-width:640px){.cf-preset{min-height:2.5rem;display:inline-flex;align-items:center;padding-left:.85rem;padding-right:.85rem}.cf-table .cf-cmp-check{width:22px;height:22px}.cf-cmpcell{padding-top:.6rem;padding-bottom:.6rem}}@media(min-width:760px){.cf-filters-grid{grid-template-columns:repeat(4,1fr)}.cf-table{font-size:.92rem}.cf-table th,.cf-table td{padding-left:.7rem;padding-right:.7rem}.cf-city-name,.cf-city-country{max-width:none}.cf-rank{width:2.2rem}.cf-th-long{margin-left:.25rem}.cf-table th.cf-num{width:6.5rem}.cf-table th.cf-dotcell{width:3rem}}.cf-thumb{display:none}@media(min-width:760px){.cf-city a{display:flex;align-items:center;gap:.7rem}.cf-city-text{min-width:0}.cf-thumb{display:block;flex-shrink:0;width:56px;height:40px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-raised)}.cf-thumb-placeholder{background:linear-gradient(135deg,hsl(var(--cp-hue) 45% 30%),hsl(calc(var(--cp-hue) + 40) 45% 18%))}.cf-city a:hover .cf-thumb{outline:1px solid var(--accent)}}.cf-est{color:var(--fair);cursor:help}.cf-thin{margin-left:.25rem;font-size:.7rem}.cf-showmore:not([hidden]){display:block;width:100%;margin-top:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit;font-weight:600;font-size:.9rem;padding:.75rem;cursor:pointer}.cf-showmore:hover{border-color:var(--accent);color:var(--accent)}@media(min-width:1240px){.cf-app{--cf-wide: min( calc(100vw - 4rem) , 124rem);width:var(--cf-wide);margin-left:calc((100% - var(--cf-wide)) / 2)}.cf-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}.cf-tile-link{aspect-ratio:5 / 6}}@media(min-width:1024px){.cf-app{display:grid;grid-template-columns:17.5rem minmax(0,1fr);column-gap:var(--space-4);align-items:start}.cf-app>*{grid-column:2}.cf-app>.cf-controls{grid-column:1;grid-row:1 / span 30;position:sticky;top:calc(var(--sticky-top) + .75rem);max-height:calc(100vh - var(--sticky-top) - 1.5rem);overflow-y:auto;scrollbar-width:thin;border-bottom:1px solid var(--border);border-radius:var(--radius);margin-bottom:0;padding:var(--space-3)}.cf-app[data-view] .cf-controls{border-bottom:1px solid var(--border);border-radius:var(--radius);margin-bottom:0}.cf-controls input[type=search],.cf-slider{max-width:none;margin:0}.cf-slider{flex-wrap:wrap;gap:.25rem var(--space-2)}.cf-slider-name{width:100%}.cf-intent{flex-direction:column}.cf-chipbar{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.cf-chipbar .cf-qchip{justify-content:center;text-align:center;white-space:normal;line-height:1.25;border-radius:var(--radius-sm);min-height:2.4rem;padding:.35rem .45rem;font-size:.78rem}.cf-chipgroup:first-of-type .cf-chipbar{grid-template-columns:repeat(3,1fr)}.cf-chipbar-months{grid-template-columns:repeat(4,1fr)!important;gap:.25rem}.cf-chipbar-months .cf-qchip{min-height:2rem;padding:.2rem}.cf-qchip[aria-pressed=true]:after{content:none}.cf-filters-bar{flex-direction:column;align-items:stretch}.cf-filters-bar .cf-count{margin-left:0;text-align:center}.cf-sort-select,.cf-filters-btn{width:100%}.cf-view{align-self:stretch}.cf-view button{flex:1}.cf-filters-grid,.cf-weight-grid{grid-template-columns:1fr}.cf-app[data-view=table]{grid-template-columns:minmax(0,1fr)}.cf-app[data-view=table]>*{grid-column:1}.cf-app[data-view=table]>.cf-controls{grid-row:auto;position:static;max-height:none;margin-bottom:var(--space-3)}}@media(min-width:1240px){.cf-app{grid-template-columns:18.5rem minmax(0,1fr)}}.cf-qchip-n{margin-left:.35rem;font-size:.68rem;font-weight:700;color:var(--text-faint);font-variant-numeric:tabular-nums}.cf-qchip[aria-pressed=true] .cf-qchip-n{color:var(--accent)}.cf-qchip-zero{opacity:.45}.cf-clear-chips:not([hidden]){align-self:flex-start;background:none;border:none;padding:.2rem 0;color:var(--accent);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}
