:root{--ink:#172b2c;--muted:#647373;--paper:#f4f0e8;--card:#fffdf8;--rule:#d8d1c5;--teal:#15494b;--blue:#2f6e75;--gold:#d9af4d;--coral:#b95c45;--shadow:0 10px 30px #14282819;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
body{margin:0;min-height:100vh;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 1900'%3E%3Cg fill='none' stroke='%23b9b09f' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath opacity='.19' stroke-width='2' d='M-100 760C120 660 225 700 395 605S675 500 845 590s330 15 585-125'/%3E%3Cpath opacity='.16' stroke-width='2' d='M-80 825c190-75 340-20 505-135s350-145 510-64 330 37 585-120'/%3E%3Cpath opacity='.13' stroke-width='1.6' d='M-30 900c170-65 325-10 470-105s305-130 460-47 340 36 570-100'/%3E%3Cpath opacity='.11' stroke-width='1.3' d='M-40 970c180-58 324 1 458-81s294-108 438-35 335 36 610-89'/%3E%3Cpath opacity='.09' stroke-width='1.1' d='M-10 1040c155-48 290 1 420-65s280-94 418-29 326 28 620-69'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(circle at 88% 3%,#e4d0a1 0,transparent 19rem);background-size:1440px 1900px,auto;background-repeat:repeat-y,no-repeat;background-position:center top,center top}
.start-screen{position:fixed;z-index:100;inset:0;background:#10191b;overflow:hidden}.start-screen img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.start-shade{position:absolute;inset:0;background:linear-gradient(180deg,#fff0 42%,#10181735 62%,#080d10ae 100%)}.start-title{position:absolute;z-index:1;top:max(30px,calc(env(safe-area-inset-top) + 16px));left:clamp(22px,6vw,52px);display:flex;align-items:baseline;gap:10px;color:#172b2c;text-shadow:0 1px 0 #fff8;font:700 clamp(34px,10vw,58px)/.88 Georgia,serif;letter-spacing:-.055em}.start-title b{color:#15494b}.start-subtitle{position:absolute;z-index:1;left:clamp(25px,6vw,55px);top:max(79px,calc(env(safe-area-inset-top) + 65px));color:#314444;text-shadow:0 1px 0 #fff8;font-size:clamp(11px,3.1vw,15px);font-weight:900;letter-spacing:.23em;text-transform:uppercase;white-space:nowrap}.start-character{position:absolute;z-index:1;top:max(113px,calc(env(safe-area-inset-top) + 98px));left:clamp(28px,7vw,62px);color:#b9ad9b;font:400 clamp(76px,22vw,126px)/.8 "Songti SC","STSong","Noto Serif CJK SC",serif;opacity:.46;text-shadow:1px 1px 0 #fff8,-1px -1px 1px #968a78aa;pointer-events:none}.start-route{position:absolute;z-index:1;top:27%;right:clamp(14px,4vw,42px);width:min(39vw,250px);height:54%;overflow:visible;filter:drop-shadow(0 1px 2px #0f191c99)}.start-route path{fill:none;stroke:#d8e5d5;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:3 8}.start-route-stops circle{fill:#15494b;stroke:#edf3e8;stroke-width:3}.start-route-stops circle:not(:first-child):not(:last-child){fill:#d8e5d5;stroke:#15494b;stroke-width:2}.start-route text{fill:#edf3e8;font:800 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.13em;paint-order:stroke;stroke:#142224;stroke-width:3px;stroke-linejoin:round}.start-button{position:absolute;z-index:1;left:50%;bottom:max(34px,calc(env(safe-area-inset-bottom) + 20px));transform:translateX(-50%);min-width:180px;padding:15px 30px;border:2px solid #fff;border-radius:999px;background:#15494bee;color:#fff;box-shadow:0 6px 20px #0008;font-weight:900;letter-spacing:.18em;font-size:16px}.start-screen.is-hidden{display:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.shell{max-width:1180px;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 20px 94px}
.top{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--rule)}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:40px;height:40px;border-radius:13px;background:var(--teal);color:#f5ddb2;display:grid;place-items:center;font:700 22px Georgia,serif}
.eyebrow,.badge{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--coral);font-weight:800}
.brand h1{font:700 19px Georgia,serif;margin:1px 0}
.sync{border:1px solid var(--rule);border-radius:999px;padding:7px 10px;background:var(--card);font-size:12px;color:var(--muted);transition:background .2s,color .2s,border-color .2s}
.sync:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);display:inline-block;margin-right:6px}
.sync.sync-ok{background:#e2f1eb;border-color:#b9dbc9;color:#216044}
.sync.sync-ok:before{background:#2f8a5d}
.sync.sync-pending{background:#fff1d5;border-color:#efd49e;color:#8d6221}
.sync.sync-error{background:#f7e5e2;border-color:#e4b9b1;color:#8a4035}
.sync.sync-error:before{background:#bd5648}
.tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:19px 0 28px;padding:5px;background:#e8e2d7;border-radius:14px}
.bottom-tabs{position:fixed;left:0;bottom:0;z-index:12;width:100%;margin:0;transform:none;background:#edf0eb;box-shadow:0 -5px 18px #14282824;border-radius:16px 16px 0 0}
.tabs button{border:0;border-radius:10px;background:transparent;color:#4e6161;padding:7px 5px;font-size:13px;font-weight:700;white-space:normal;line-height:1.1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:49px}
.tab-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tabs button.active{color:#fff;background:var(--teal);box-shadow:0 2px 5px #15494b44}
.hero,.detail{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:20px}
.hero-main{padding:30px;border-radius:22px;background:var(--teal);color:#fff;min-height:275px;position:relative;overflow:hidden}
.hero-main h2{font:700 clamp(40px,6vw,69px)/.95 Georgia,serif;margin:14px 0}
.hero-main p{max-width:490px;line-height:1.5;color:#d7e4df}
.route{font-weight:700;color:#f6d378}
.hero-side,.card{background:var(--card);padding:17px;border:1px solid var(--rule);border-radius:16px;box-shadow:var(--shadow)}
.hero-side{padding:25px;border-radius:22px}
.metric{font:700 55px/1 Georgia,serif;color:var(--teal);margin:8px 0}
.metric span{font-size:22px;color:var(--muted)}
.side-list{border-top:1px solid var(--rule);margin-top:18px;padding-top:12px;display:grid;gap:9px;font-size:14px}
.side-list b{color:var(--teal)}
.section-head{display:flex;justify-content:space-between;gap:15px;align-items:end;margin:31px 0 12px}
.section-head h2{font:700 29px Georgia,serif;margin:4px 0}
.section-head p,.card p{color:var(--muted);margin:0;font-size:14px;line-height:1.45}
.grid,.cost-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card h3{font:700 19px/1.15 Georgia,serif;margin:5px 0 8px}
.route-card{min-height:145px;position:relative}
.route-card .num{position:absolute;right:16px;top:10px;color:#ded9cf;font:700 45px Georgia,serif}
.route-card-link{width:100%;border:1px solid var(--rule);text-align:left;font:inherit;color:inherit;cursor:pointer}.route-card-link:hover,.route-card-link:focus-visible{border-color:var(--teal);box-shadow:0 0 0 3px #15545222,var(--shadow);outline:0}.route-card-link .section-photos{pointer-events:none}.route-card-open{display:block;margin-top:12px;color:var(--teal);font-size:12px;font-weight:900}
.transport-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;vertical-align:middle;margin:0 7px 2px 0;min-width:25px;min-height:24px;padding:3px 6px;border-radius:999px;background:#e6f0ee;color:var(--teal);font:800 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.transport-pill.transport-flight{background:#e7edf9;color:#285b8b}.transport-pill.transport-bus{background:#fff1d5;color:#8d6221}.detail h2 .transport-pill{font:800 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0;vertical-align:15%;padding:6px 9px}.info .transport-pill{margin-top:5px}.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}
.action,.outline,.mini{border-radius:10px;padding:10px 14px;font-weight:800;border:0}
.action{background:var(--coral);color:#fff}
.outline{border:1px solid var(--teal);background:transparent;color:var(--teal)}
.mini{padding:7px 10px;font-size:12px;background:#e6f0ee;color:var(--teal)}
.toolbar,.button-row,.photo-actions,.map-toolbar,.detail-top{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.toolbar{margin:5px 0 18px}
.selection-summary{display:grid;grid-template-columns:1.25fr .7fr .7fr;gap:18px;align-items:center}
.selection-target{display:block;margin-top:9px;font-weight:800}.selection-target select{margin-left:5px;padding:8px;border:1px solid var(--rule);border-radius:8px;background:#fffefa;color:var(--ink);font:inherit}
.selection-metric b{font:700 48px/.9 Georgia,serif;color:var(--teal)}.selection-metric span{font-weight:800;color:var(--muted)}.selection-metric small,.selection-cost span{display:block;color:var(--muted);margin-top:6px}
.selection-cost b{display:block;margin-top:7px;font-size:22px;color:var(--teal)}.selection-intro{margin:16px 0}.selection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.selection-block{padding:0;overflow:hidden}.selection-block label{display:flex;gap:12px;padding:17px;cursor:pointer;min-height:116px}.selection-block input{width:20px;height:20px;accent-color:var(--teal);margin-top:2px;flex:0 0 auto}.selection-block b{display:block;font-size:16px}.selection-block small{display:block;margin-top:8px;color:var(--muted);line-height:1.4}.selection-block.selected{border-color:var(--teal);box-shadow:0 0 0 2px #15545222,var(--shadow);background:#f3f8f5}.selection-actions{margin-top:18px}
.prep-progress{text-align:right;color:var(--muted)}.prep-progress b{display:block;color:var(--teal);font:700 30px/1 Georgia,serif}.prep-progress span{font-size:12px}
.prep-checklist{margin-bottom:16px}.prep-task{display:flex;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid var(--rule);font-weight:700}.prep-task:last-child{border-bottom:0}.prep-task input{width:19px;height:19px;accent-color:var(--teal);flex:0 0 auto}.prep-task input:checked+span{text-decoration:line-through;color:var(--muted)}
.packing-head{margin-top:28px}.packing-checklist{margin-bottom:22px}.packing-checklist .prep-panel-body{max-height:none}
.safety-head{margin-top:30px}.safety-guide{margin-bottom:12px}.safety-list{margin:0;padding-left:21px;display:grid;gap:12px;line-height:1.5}.safety-list li::marker{color:var(--coral)}.safety-note{margin:14px 0 22px;padding:15px 17px;border-left:4px solid var(--coral);border-radius:0 12px 12px 0;background:#fff6e8;line-height:1.5}
.prep-panels{display:grid;gap:11px}.prep-panel{border:1px solid var(--rule);border-radius:14px;background:var(--card);box-shadow:var(--shadow);overflow:hidden}.prep-panel summary{display:flex;justify-content:space-between;gap:15px;align-items:center;cursor:pointer;padding:17px;font-weight:800;list-style:none}.prep-panel summary::-webkit-details-marker{display:none}.prep-panel summary small{font-weight:500;color:var(--muted);text-align:right}.prep-panel[open] summary{border-bottom:1px solid var(--rule);color:var(--teal)}.prep-panel-body{padding:17px}.prep-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.prep-steps p,.problem-grid p{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.prep-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:17px}.prep-link{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:11px;border:1px solid var(--rule);border-radius:10px;color:var(--ink);text-decoration:none;background:#fffefa}.prep-link:hover{border-color:var(--teal);background:#f3f8f5}.prep-link small{grid-column:1;color:var(--muted);font-size:11px}.prep-link span{grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--teal);font-size:12px;font-weight:800}.problem-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.problem-grid article{padding:13px;background:#fffaf0;border-radius:10px}
.embassy-card{width:100%;text-align:left;align-items:center;font:inherit;cursor:pointer}.embassy-card>span:nth-child(2){display:grid;gap:3px;min-width:0}.embassy-card>span:nth-child(2) small{grid-column:auto}.embassy-card-icon{width:28px;height:28px;grid-column:1!important;grid-row:1 / span 2!important;display:grid!important;place-items:center;align-self:center!important;border-radius:8px;background:#e6f0ee;font-size:17px}.embassy-card-open{white-space:nowrap}.embassy-overlay{position:fixed;z-index:150;inset:0;padding:20px;display:grid;place-items:center;background:#10201f88;backdrop-filter:blur(3px)}.embassy-dialog{position:relative;width:min(520px,100%);max-height:min(700px,calc(100vh - 40px));overflow:auto;padding:26px 22px 22px;border-radius:20px;background:var(--card);box-shadow:0 24px 70px #0007}.embassy-dialog h2{margin:7px 34px 8px 0;font:700 27px/1.08 Georgia,serif;color:var(--ink)}.embassy-address{margin:0;color:var(--muted);font-size:16px;line-height:1.45}.embassy-actions{display:grid;gap:9px;margin-top:20px}.embassy-actions a{display:block;padding:13px 14px;border:1px solid var(--rule);border-radius:11px;color:var(--teal);font-weight:800;text-decoration:none;background:#fffefa}.embassy-actions a:first-child{background:var(--teal);color:#fff;border-color:var(--teal)}.embassy-note{margin:18px 0 0;padding:12px 13px;border-left:3px solid var(--gold);background:#fff7dd;line-height:1.45;font-size:13px}.embassy-close{position:absolute;top:13px;right:13px;width:34px;height:34px;border:0;border-radius:50%;background:#edf0eb;color:var(--teal);font-size:25px;line-height:1}
.toolbar input,.toolbar select,.field input,.field textarea,.field select{background:#fffefa;border:1px solid var(--rule);border-radius:10px;padding:11px;color:var(--ink)}
.toolbar input{min-width:210px}
.day-list{display:grid;gap:9px}
.day,.expense{display:grid;grid-template-columns:60px minmax(0,1fr) auto auto;gap:13px;align-items:center;background:var(--card);padding:14px 16px;border:1px solid var(--rule);border-radius:14px}
.day-no{font:700 26px Georgia,serif;color:var(--coral)}
.day-title{font-weight:800}
.day-meta{font-size:12px;color:var(--muted);margin-top:3px}
.trip-status,.status{font-size:11px;font-weight:800;border-radius:99px;padding:5px 9px;background:#fff1d5;color:#8d6221}
.trip-status.done,.status.public{background:#e2f1eb;color:#216044}
.trip-status.active{background:#e4edf8;color:#285b8b}
.trip-status.postponed{background:#f3e8e5;color:#874e40}
.detail h2{font:700 clamp(28px,4vw,47px)/1 Georgia,serif;margin:8px 0}
.detail .lead{font-size:17px;line-height:1.55;color:#405454}
.detail-top{justify-content:space-between;align-items:start}
.info{display:grid;gap:10px}
.info div{padding:12px;border-left:3px solid var(--gold);background:#fffaf0;font-size:14px}
.text-button{border:0;background:none;color:var(--teal);font-weight:800;text-decoration:underline;padding:0}
.status-row{margin:17px 0;padding:12px;border:1px solid var(--rule);border-radius:10px}
.status-row label{display:flex;gap:12px;align-items:center;justify-content:space-between}
.status-row select{padding:8px;border:1px solid var(--rule);border-radius:8px;background:#fffefa}
.timeline{margin:20px 0}
.time{display:grid;grid-template-columns:92px minmax(0,1fr);gap:15px;padding:12px 0;border-top:1px solid var(--rule)}
.time b{font-size:13px;color:var(--coral)}
.logistics{display:grid;gap:10px}
.logistics h4{margin:0;color:var(--teal);font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.logistics p{margin:4px 0}
.map{background:linear-gradient(135deg,#e1eee5,#bed9d4);border-radius:18px;min-height:240px;padding:20px;position:relative;overflow:hidden}
.map h3{font:700 25px Georgia,serif;margin:4px 0}
.note-form{max-width:760px;width:100%;min-width:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;min-width:0}
.field{display:grid;gap:6px;margin:11px 0;min-width:0}
.field label{font-size:12px;font-weight:800;color:#526463}
.field input,.field textarea,.field select{width:100%;min-width:0;max-width:100%}
.field textarea{min-height:148px;resize:vertical}
.note{border-left:4px solid var(--gold);padding:11px 13px;background:#fff7dd;font-size:13px;line-height:1.45}
.gps-capture{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:15px 0;padding:12px;border:1px solid var(--rule);border-radius:10px;background:#f3f8f5}.gps-capture b{display:block}.gps-capture span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.gps-capture button{white-space:nowrap}
.advanced{margin:15px 0;padding:12px;border:1px solid var(--rule);border-radius:10px}
.advanced summary{cursor:pointer;font-weight:800;color:var(--teal)}
.file-button{display:inline-flex;align-items:center;cursor:pointer}
.file-button input{display:none}
.entry{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:start}
.entry .dot{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#e6f0ee;color:var(--teal);font-weight:800}
.entry h3{margin:2px 0 5px}
.entry-actions{display:flex;gap:6px}
.entry-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:12px 0}
.entry-photos img{width:100%;height:125px;object-fit:cover;border-radius:9px;background:#e8e2d7}
.danger{background:#f7e6e2;color:#8f3828}
.public-hero{padding:42px 0 22px;border-bottom:1px solid var(--rule)}
.public-hero h2{font:700 clamp(44px,7vw,82px)/.9 Georgia,serif;max-width:760px;margin:13px 0}
.public-hero p{max-width:620px;color:var(--muted);font-size:17px;line-height:1.5}
.empty{padding:35px;text-align:center;color:var(--muted);border:1px dashed var(--rule);border-radius:14px}
.notice{font-size:13px;color:var(--muted)}
.footer{margin:38px 0 0;color:var(--muted);font-size:12px}
.cost-metric{font:700 29px Georgia,serif;color:var(--teal);margin-top:8px}
.cost-metric.over{color:#b24632}
.budget-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.budget-cards small{display:block;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.35}.budget-note{margin-top:14px;border-left:4px solid var(--gold)}.budget-note b{font-size:18px;color:var(--teal)}.budget-note p{margin:7px 0 0}.budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.budget-grid h3{margin-bottom:14px}.budget-list{display:grid;gap:0}.budget-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:11px 0;border-top:1px solid var(--rule)}.budget-list>div:first-child{border-top:0;padding-top:0}.budget-list b{display:block;font-size:14px;line-height:1.35}.budget-list small{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35}.budget-list strong{align-self:start;color:var(--teal);white-space:nowrap;font-size:14px}.budget-list em{font-style:normal;font-weight:500;color:var(--muted);font-size:12px}.budget-details{margin-top:14px}.budget-details summary{cursor:pointer;font-weight:800;color:var(--teal)}.budget-details ul{margin:12px 0;padding-left:20px;line-height:1.55}
.budget-settings{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.budget-settings p{margin:5px 0}
.budget-settings input{max-width:74px;padding:6px;border:1px solid var(--rule);border-radius:7px}
.compact{margin-top:25px}
.expense{grid-template-columns:minmax(0,1fr) auto auto}
.map-download{text-decoration:none}
.map-toolbar{justify-content:flex-start;margin:0 0 10px;font-size:13px}
.map-toolbar .selected{background:var(--teal);color:white}
.route-map{height:520px;border:1px solid var(--rule);border-radius:18px;overflow:hidden;background:#d9e0db}
.map-stage{position:relative;width:900px;height:520px;transform-origin:top left}
.map-tile{position:absolute;width:256px;height:256px;object-fit:cover}
.route-line{position:absolute;inset:0;width:900px;height:520px;pointer-events:none}
.route-line polyline{fill:none;stroke:#d65e45;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.map-pin,.lodging-pin{position:absolute;transform:translate(-50%,-50%);z-index:2;border:2px solid white;box-shadow:0 2px 5px #0006;font-weight:800}
.map-pin{width:35px;height:35px;border-radius:50%;background:#15494b;color:#fff;font-size:10px}
.lodging-pin{width:29px;height:29px;border-radius:7px;background:#d9af4d;color:#293636;font-size:16px}
.map-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:12px}
.map-legend p{width:100%;margin:0}
.legend-base,.legend-lodging{display:inline-grid;place-items:center;width:19px;height:19px;margin-right:5px;background:var(--teal);color:#fff;border-radius:50%;font-size:12px}
.legend-lodging{background:var(--gold);border-radius:5px;color:var(--ink)}
@media(max-width:820px){.shell{padding:0 14px 170px}
.fixed-head{position:fixed;top:0;left:0;right:0;z-index:10;margin:0;padding:calc(env(safe-area-inset-top) + 12px) 14px 8px;background:var(--paper);box-shadow:0 5px 12px #14282812}
.app-content{padding-top:var(--fixed-head-height,330px)}
.primary-tabs{position:static;margin:12px 0 0;padding:5px;border-radius:10px;background:#e8e2d7;box-shadow:none}
.tabs{grid-template-columns:repeat(4,minmax(0,1fr));border-radius:10px}
.bottom-tabs{bottom:0;margin:0;padding:5px 10px calc(7px + env(safe-area-inset-bottom));width:100%;border-radius:16px 16px 0 0}
.tabs button{font-size:11px;padding:6px 2px;min-height:48px}
.tab-icon{width:16px;height:16px}
.hero,.detail{grid-template-columns:minmax(0,1fr)}
.hero-main{min-height:230px;padding:24px}
.grid,.cost-cards,.selection-grid,.budget-cards,.budget-grid{grid-template-columns:minmax(0,1fr)}
.selection-summary{grid-template-columns:minmax(0,1fr);gap:12px}
.prep-progress{text-align:left}.prep-steps,.prep-links,.problem-grid{grid-template-columns:minmax(0,1fr)}
.day{grid-template-columns:42px minmax(0,1fr)}
.day button,.day .trip-status{grid-column:2;justify-self:start}
.form-grid{grid-template-columns:minmax(0,1fr)}
.section-head,.budget-settings,.detail-top{align-items:start;flex-direction:column}
.gps-capture{align-items:start;flex-direction:column}
.entry{grid-template-columns:34px minmax(0,1fr)}
.entry-actions{grid-column:2}
.top{align-items:flex-start}
.brand h1{font-size:17px}
.sync{white-space:nowrap}
.time{grid-template-columns:76px minmax(0,1fr)}
.expense{grid-template-columns:minmax(0,1fr) auto}
.expense .danger{grid-column:2}
.route-map{height:400px}
.map-stage{transform:scale(.77);transform-origin:top left}
}
@media(max-width:420px){.shell{padding-left:10px;padding-right:10px}
.top{gap:8px}
.sync{font-size:11px;padding:6px}
.hero-main{padding:20px}
.card{padding:14px}
}

.section-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:15px}
.section-photos img{display:block;width:100%;height:104px;object-fit:cover;border-radius:10px;border:1px solid var(--rule)}
@media(max-width:820px){.section-photos img{height:150px}
}

.note-form,.note-form .field,.note-form .form-grid{min-width:0;max-width:100%}
.note-form input[type="date"],.note-form input[type="time"]{display:block;box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important;min-inline-size:0!important;inline-size:100%!important;font-size:16px;padding-right:12px}
.note-form .field{overflow:hidden}

.date-control{position:relative;display:flex;align-items:center;width:100%;min-width:0;max-width:100%;height:48px;overflow:hidden;border:1px solid var(--rule);border-radius:10px;background:#fffefa;padding:0 11px}
.date-control-value{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.date-control input[type="date"]{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:var(--ink)!important;font:inherit!important;-webkit-appearance:auto!important;appearance:auto!important;cursor:pointer}
.date-control:focus-within{outline:2px solid #15494b66;outline-offset:2px}

.field-guide{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.field-guide-note,.field-source{color:var(--muted);font-size:.9rem;line-height:1.45}
.field-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.field-guide-grid>div{padding:13px;background:#f3f5f1;border-radius:12px;border:1px solid var(--rule)}
.field-guide-grid b{color:var(--deep)}
.field-guide-grid p{margin:6px 0 0;line-height:1.42}
@media(max-width:640px){.field-guide-grid{grid-template-columns:1fr}.field-guide{margin-top:18px}}
.tour-provider{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.tour-provider h3{margin:6px 0 8px;color:var(--deep)}
.tour-provider>p{line-height:1.5}
.tour-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.tour-provider-option{display:flex;flex-direction:column;gap:5px;padding:13px;border:1px solid var(--rule);border-radius:12px;background:#f3f5f1}
.tour-provider-option a{color:var(--teal);font-weight:800;line-height:1.35}
.tour-provider-option small{color:var(--muted);line-height:1.35}
@media(max-width:640px){.tour-provider-grid{grid-template-columns:1fr}}
.stay-suggestion{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.stay-suggestion h3{margin:6px 0 8px;color:var(--deep)}
.stay-suggestion>p{line-height:1.5}
.stay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.stay-option{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--rule);border-radius:12px;background:#f3f5f1}
.stay-option>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#9b513f}
.stay-option b{color:var(--deep);line-height:1.35}.stay-option a{color:var(--teal);font-weight:800;line-height:1.35}.stay-option small{color:var(--muted);line-height:1.35}
.stay-transfer{padding:12px 14px;border-left:4px solid var(--gold);background:#fffaf0;border-radius:0 10px 10px 0;font-size:13px;line-height:1.45}
@media(max-width:640px){.stay-grid{grid-template-columns:1fr}}
.stay-grid{width:100%}
@media(max-width:640px){.stay-grid{display:block!important;margin:14px 0!important}.stay-option{display:flex!important;min-height:112px;margin:0 0 12px!important;padding:15px!important;border:1px solid #cfc8bc!important;border-radius:13px!important;background:#f3f5f1!important;box-shadow:0 1px 2px #14282810}.stay-option:last-child{margin-bottom:0!important}.stay-option b,.stay-option a,.stay-option small{display:block!important}.stay-option a{margin-top:2px}.stay-option small{margin-top:auto}}
.cloud-sync{border:1px solid var(--rule);cursor:pointer;font:inherit}
.map-actions{align-items:stretch;margin-top:14px}
.map-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.map-note{display:block;margin-top:12px;color:var(--muted);line-height:1.45}
@media(max-width:640px){.map-actions{display:grid;grid-template-columns:1fr;gap:9px}.map-link{width:100%}}
.load-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px 9px;margin:-8px 0 18px;padding:11px 13px;border:1px solid var(--rule);border-radius:12px;background:#fffefa;font-size:12px;color:var(--muted)}
.load-legend b{color:var(--ink)}.load-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.load-dot.easy{background:#41a649}.load-dot.medium{background:#e7a523}.load-dot.high{background:#d85447}
.load-pill{display:inline-flex;align-items:center;gap:6px;vertical-align:middle;margin-left:7px;padding:4px 8px;border-radius:99px;font-size:10px;font-weight:800;line-height:1.1;white-space:nowrap}.load-pill>span{width:8px;height:8px;border-radius:50%;background:currentColor}.load-pill.load-easy{background:#e5f4e7;color:#28733a}.load-pill.load-medium{background:#fff1cf;color:#8a6418}.load-pill.load-high{background:#ffe3df;color:#9d3831}.load-detail{display:flex;gap:11px;align-items:center;margin:15px 0;padding:12px 14px;border:1px solid var(--rule);border-radius:12px;background:#fffefa}.load-detail .load-pill{margin:0;font-size:12px;padding:7px 9px;align-items:center}.load-detail .load-pill small{font-weight:500}.load-detail p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
@media(max-width:640px){.load-detail{align-items:flex-start;flex-direction:column;gap:7px}.load-pill{font-size:9px;padding:4px 6px}}
.load-line{display:flex;align-items:center;min-height:26px;margin:7px 0 3px}
.load-line .load-pill{display:inline-flex!important;align-items:center!important;gap:6px!important;margin:0!important;padding:5px 9px!important;max-width:100%;box-sizing:border-box;white-space:normal!important;vertical-align:middle!important}
.load-line .load-pill>span{flex:0 0 8px}.load-line .load-pill{font-size:11px!important}

/* v41: sync indicator visible even in the iPhone safe area and narrow screens. */
.cloud-sync{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;line-height:1.2;min-height:30px}
.cloud-sync::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:#d9af4d;flex-shrink:0;margin-right:0}
.cloud-sync.sync-ok::before{background:#21824d;box-shadow:0 0 0 2px #b9dbc9}
.cloud-sync.sync-pending::before{background:#cc8b23}
.cloud-sync.sync-error::before{background:#bd5648}
@media(max-width:600px){.top{flex-wrap:wrap}.cloud-sync{margin-left:auto;max-width:100%;white-space:normal;font-size:11px!important}.cloud-sync [data-cloud-label]{min-width:0}}

/* v42: the sync dot must remain visible in iPhone Safari / standalone PWA. */
.cloud-sync{position:relative;display:inline-flex!important;align-items:center;gap:6px;min-height:35px;flex-shrink:0;z-index:2}.cloud-sync::before{content:""!important;display:block!important;width:13px!important;height:13px!important;min-width:13px!important;min-height:13px!important;border-radius:50%!important;visibility:visible!important;opacity:1!important}.cloud-sync.sync-ok::before{background:#15803d!important;box-shadow:0 0 0 3px #b6dcc3!important}.cloud-sync.sync-pending::before{background:#d49823!important}.cloud-sync.sync-error::before{background:#bd5648!important}@media(max-width:600px){.top{display:flex;align-items:flex-start;gap:7px}.brand{min-width:0;flex:1}.cloud-sync{margin-left:0!important;max-width:45vw;font-size:11px!important;text-align:left}.cloud-sync [data-cloud-label]{overflow-wrap:anywhere}}
/* v43 — image sync, readable removable previews */
.v43-entry-photos{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.v43-photo-cell{width:min(180px,42vw);position:relative;display:flex;flex-direction:column;gap:5px}
.v43-photo-cell img{width:100%;height:135px;object-fit:cover;border-radius:9px;background:#d7dedc}
.v43-photo-cell .v43-remove-photo{font-size:12px}
.v43-photo-cell.v43-removed img{opacity:.3}
.v43-photo-cell.v43-removed .v43-remove-photo{background:#edf7f0;color:#205b39}

/* ASIA 2028 · original China app layout, new three-country color accents */
:root{--teal:#164d57;--coral:#c17c50;--gold:#d3ac63}
.asia-hero .hero-main{background:linear-gradient(112deg,rgba(10,47,58,.91),rgba(15,75,69,.83)),url('assets/asia2028-start-portrait.png') center 58%/cover}
.asia-country-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.asia-country-chips span{background:#ffffff22;border:1px solid #ffffff45;border-radius:30px;padding:7px 10px;color:#fff;font-size:12px;font-weight:700}
.asia-status-notice{border-left:4px solid #c69b49;background:#fcf4e5;color:#5e574c;border-radius:9px;padding:14px 16px;margin:12px 0 24px;font-size:13px;line-height:1.5}
.asia-card-meta{display:flex;justify-content:space-between;align-items:center;gap:9px}.asia-card-meta .num{margin:0}.asia-card-meta .badge{font-size:11px;white-space:nowrap}
.asia-base .section-photos img{min-height:140px;object-fit:cover}.section-photos.section-one{grid-template-columns:minmax(0,1fr)}.section-photos.section-one img{height:170px}
.asia-prep-list{margin:8px 0 20px}.asia-prep-item{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.asia-prep-item input{width:20px;height:20px;accent-color:#176f65;flex:none;margin-top:4px}.asia-prep-item span{min-width:0}.asia-prep-item b{display:block;font-size:13px;margin-bottom:6px}.asia-prep-item small{color:var(--muted);font-size:13px;line-height:1.45}
.asia-rates{margin:18px 0}.asia-rate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.asia-rate-grid label{display:grid;gap:7px;font-size:12px}.asia-rate-grid input{padding:10px;width:100%;min-width:0;border:1px solid var(--rule);border-radius:9px;background:white;color:var(--ink)}
@media(max-width:820px){.asia-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asia-hero .hero-main{background-position:center 54%}.asia-card-meta .badge{white-space:normal}.asia-prep-list{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){.asia-rate-grid{grid-template-columns:minmax(0,1fr)}.asia-country-chips span{font-size:11px}.asia-hero h2{font-size:33px}}

/* Azija 2028 v1.0.1: jasno vidna vhodna letalska povezava. */
.asia-flight-card{margin:16px 0 14px;padding:20px 22px;border:1px solid #d0e0e2;background:linear-gradient(135deg,#f6faf9,#fff);}
.asia-flight-head{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:13px;color:#38616b}
.asia-flight-tag{font-weight:800;font-size:11px;letter-spacing:.8px;color:#166c69}
.asia-flight-airports{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:15px;align-items:center;margin:16px 0 13px}
.asia-flight-airports>div{display:grid;gap:1px;min-width:0}.asia-flight-airports small{font-size:10px;letter-spacing:.9px;color:#607a7d;font-weight:800}
.asia-flight-airports b{font-size:34px;line-height:1.16;color:#184f5c;letter-spacing:1px}.asia-flight-airports span:not(.asia-flight-arrow){font-size:12px;color:#526a72}
.asia-flight-arrow{color:#247b75;font-size:24px}.asia-flight-card p{font-size:13px;line-height:1.55;color:#304e55;margin:9px 0}
.asia-flight-card .asia-flight-caution{color:#7e5a28;font-size:12px}
.asia-flight-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}
.asia-flight-actions .action,.asia-flight-actions .outline{font-size:12px;text-decoration:none;white-space:normal;text-align:center}
@media(max-width:420px){.asia-flight-card{padding:15px}.asia-flight-airports{gap:8px}.asia-flight-airports b{font-size:28px}.asia-flight-arrow{font-size:20px}.asia-flight-actions .action,.asia-flight-actions .outline{flex:1 1 100%}}

/* Azija 2028 v1.0.2: dejanske spletne fotografije po postajah (Wikimedia Commons) */
.asia-base .section-photos img{min-height:140px;aspect-ratio:3/2;object-fit:cover}
.asia-day-thumb{display:block;width:80px;height:58px;flex:0 0 80px;object-fit:cover;border-radius:9px;border:1px solid var(--rule);background:#e5ecdf}
.day-title{display:flex;align-items:center;gap:12px;min-width:0}
.day-title>span{min-width:0}
.asia-detail-gallery{background:#f7f9f7;border-radius:14px;padding:12px;margin:16px 0 18px;border:1px solid var(--rule)}
.asia-detail-gallery .section-photos{margin-top:8px}
.asia-detail-gallery .section-photos img{height:170px;object-fit:cover}
.asia-photo-source-note{font-size:11px;line-height:1.45;color:var(--muted);padding:9px 2px 0}
.asia-photo-source-note a{color:var(--teal);text-decoration:underline}
.asia-photo-credits{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:15px;margin:20px 0 28px}
.asia-photo-credits summary{font-weight:800;cursor:pointer;color:var(--teal)}
.asia-photo-credits p{font-size:13px;line-height:1.5;color:var(--muted)}
.asia-photo-credits ul{margin:0;padding-left:19px;columns:2;column-gap:24px;font-size:12px;line-height:1.75}
.asia-photo-credits li{break-inside:avoid;padding-bottom:5px}
.asia-photo-credits a{color:var(--teal)}
@media(max-width:750px){.asia-photo-credits ul{columns:1}.asia-day-thumb{width:67px;height:51px;flex-basis:67px}.asia-detail-gallery .section-photos img{height:120px}}
