/* The map owns the viewport; all controls and panels float above it. */
html,body{width:100%;height:100%;overflow:hidden}
.workspace{position:relative;display:block;width:100%;height:100dvh;min-height:0;max-width:none;--left-inset:0px;--right-inset:0px}
.workspace.profile-open{--left-inset:324px}.workspace.detail-open{--right-inset:364px}
.workspace .map-panel{position:absolute;inset:0;display:block;overflow:hidden;padding:0}
.workspace .map-surface{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;touch-action:none;background:radial-gradient(ellipse at 50% 45%,#f6f9f9 0%,#eaf1f2 100%)}
.map-surface svg{cursor:grab}.map-surface svg:active{cursor:grabbing}
.map-graticule{opacity:.45}.map-label{font-size:13px;letter-spacing:2px;fill:#72929a}
.map-watermark{left:24px;bottom:82px;color:#789399}
.floating-toggle,.search-row,.floating-panel,.filter-panel,.search-results,.list-panel,.map-legend,.map-info,.map-controls{box-shadow:0 7px 28px #143f4010,0 1px 4px #143f4008}
.floating-toggle,.search-row,.floating-panel,.filter-panel,.search-results,.list-panel,.map-legend,.map-info{background:#ffffffed;backdrop-filter:blur(18px);border:1px solid #dce6e7}
.floating-toggle{position:absolute;top:24px;z-index:25;min-height:48px;display:flex;align-items:center;gap:10px;padding:0 15px;border-radius:13px;font-size:14px;font-weight:600}
.floating-toggle svg,.filters-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.floating-toggle small{font-size:11px;font-weight:400;color:#789096;padding-left:10px;border-left:1px solid #e1e8e9}
.profile-toggle{left:24px}.detail-toggle{right:24px;min-width:126px;justify-content:center}
.floating-toggle:hover{background:#fff;border-color:#91b9b1}.floating-toggle[aria-expanded=true]{background:#143f40;color:#fff;border-color:#143f40}.floating-toggle[aria-expanded=true] small{color:#bed8d3;border-color:#547878}
.workspace .floating-panel{position:absolute;top:88px;z-index:20;max-height:calc(100dvh - 160px);padding:22px;border-radius:16px;overflow:auto;border:1px solid #dce6e7;scrollbar-width:thin;scrollbar-color:#d3dfdf transparent}
.workspace .profile-panel{left:24px;width:300px;display:block}.workspace .detail-panel{right:24px;width:340px}
.floating-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.floating-panel-heading h1{font-size:21px}.floating-panel-heading h2{font-size:20px}.floating-panel-heading .panel-kicker{margin:0 0 7px;font-size:10px;letter-spacing:1.6px}.detail-panel>.floating-panel-heading .panel-kicker{margin:0}
.panel-close{display:grid;place-items:center;width:30px;height:30px;flex:none;border:0;background:#f0f5f5;color:#70888d;border-radius:8px;font-size:24px;line-height:1}.panel-close:hover{background:#e1eeea;color:#174d48}
.profile-panel .secondary{font-size:13px}.profile-panel .trip-fields{margin-top:24px;padding-bottom:22px;display:block}.profile-panel .trip-fields>label{margin-bottom:10px!important}.profile-panel .trip-fields>label:not(:first-child){margin-top:20px!important}.profile-panel .range-labels{display:flex}.profile-panel .documents-section{margin-top:22px}.profile-panel .document-empty{display:block;margin-top:14px}.profile-panel .add-button{width:100%;padding:0;margin-top:12px}.profile-panel .privacy-note{display:block;font-size:11px}.profile-panel .profile-bottom{display:flex;padding-top:24px;margin-top:0}.profile-panel .profile-bottom p{font-size:11px}.profile-panel .document-card{display:block;margin-right:0}.profile-panel .section-title h2{font-size:15px}
.detail-panel #country-detail{display:block}.detail-panel .detail-intro{margin-top:17px}.detail-panel .destination-code{width:42px;height:32px;font-size:14px;margin-bottom:12px}.detail-panel .detail-intro h2{font-size:27px}.detail-panel .status-banner{margin-top:19px}.detail-panel .detail-block p,.detail-panel .detail-block a,.detail-panel .condition-row,.detail-panel .rule-route h4,.detail-panel .rule-reason{font-size:13px}.detail-panel .detail-block{margin-top:20px;padding-top:18px}
.map-toolbar{position:absolute;top:24px;left:50%;transform:translateX(-50%);width:min(660px,calc(100% - 520px));z-index:30}
.map-toolbar .search-row{display:flex;align-items:center;gap:5px;margin:0;padding:5px;border-radius:14px;height:48px}
.map-toolbar .search-box{border:0;height:36px;padding:0 10px;background:none;min-width:0}.search-box input{font-size:14px}.search-box>span{font-size:25px}.search-box kbd{font-size:10px;background:#f3f7f7}
.filters-toggle{display:flex;align-items:center;justify-content:center;gap:5px;flex:none;min-width:65px;height:36px;padding:0 9px;background:none;border:0;border-radius:8px;font-size:13px;color:#5b757c}.filters-toggle:hover,.filters-toggle[aria-expanded=true]{background:#e9f4ef;color:#166b5c}.filters-toggle.active{color:#67519c;background:#f0ecf8}.filters-toggle svg{width:17px;height:17px}
.map-toolbar .view-toggle{padding:2px;border-radius:9px;background:#eef3f4}.map-toolbar .view-toggle button{padding:7px 10px;font-size:12px;border-radius:7px}
.map-toolbar .map-caption{margin:9px 7px 0;display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#739097;text-shadow:0 1px 4px white}.map-toolbar .snapshot-tag{display:block;font-size:10px;letter-spacing:.3px}
.filter-panel{position:absolute;top:61px;left:0;right:0;padding:18px;border-radius:14px}.filter-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.filter-heading h2{font-size:14px}.filter-heading select{width:130px;height:36px;font-size:12px}.filter-panel .filter-row{gap:5px;margin-top:14px}.filter-panel .filter-row button{padding:7px 10px;font-size:13px}.filter-panel .filter-row button[aria-pressed=true]{background:#143f40}
.map-toolbar .search-results{top:61px;left:0;right:0;max-height:min(380px,calc(100dvh - 170px));border-radius:13px;z-index:35}.search-result{padding:13px 15px}.search-result>span:first-child{min-width:0}.search-result small{display:block;margin-top:3px;font-size:11px}.search-result .status-badge{font-size:10px}
.list-panel{position:absolute;top:126px;left:50%;transform:translateX(-50%);width:min(720px,calc(100% - 48px));max-height:calc(100dvh - 226px);padding:20px;border-radius:16px;z-index:18;display:flex;flex-direction:column}
.list-panel .floating-panel-heading{padding-bottom:12px}.workspace .country-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:auto;min-height:0;overflow:auto;gap:10px;padding:2px;align-content:start;grid-auto-rows:min-content}.country-grid .destination-card{padding:15px;min-height:116px}.country-grid .card-name{font-size:14px}.country-grid .card-en{font-size:11px}
.map-legend{position:absolute;left:calc((100% + var(--left-inset) - var(--right-inset))/2);bottom:24px;transform:translateX(-50%);max-width:calc(100% - var(--left-inset) - var(--right-inset) - 60px);width:max-content;display:flex;justify-content:center;gap:16px;border-radius:12px;padding:13px 18px;border-bottom:1px solid #dce6e7;font-size:11px;z-index:12}
.map-info{position:absolute;bottom:24px;left:24px;display:flex;gap:2px;align-items:center;border-radius:10px;padding:4px;z-index:15}.map-info button{padding:8px 10px;font-size:11px;background:none;border:0;border-radius:7px;color:#6d858c}.map-info button:hover{background:#edf6f2;color:#176b5c}.map-info button[aria-expanded=true]{color:#1b7768}
.map-controls{right:calc(var(--right-inset) + 24px);bottom:24px;border-radius:11px;z-index:14}.map-controls button{width:38px;height:38px;font-size:21px}
.map-tooltip{z-index:40;font-size:13px}.toast{bottom:86px}.load-error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:480px}
.country:hover{filter:none}.map-surface.is-moving .country{transition:none}.floating-toggle,.search-row,.floating-panel,.filter-panel,.search-results,.list-panel,.map-legend,.map-info{backdrop-filter:none;background:#fffffffa}.map-tooltip{will-change:left,top}
.swatch.held{background:#4e879d}.status-banner.held{background:#eaf2f6;color:#346c83}.held-note{color:#4e879d;font-size:11px;margin-top:7px}
.country:hover,.country.selected{stroke:#f1f5f6;stroke-width:.65}.outline-layer,.country-outline{pointer-events:none}.country-outline{fill:none;stroke:#214f53;stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.credential-section{margin-top:25px}.credential-section .section-title h2{font-size:15px}.credential-section .section-title>span{font-size:11px;color:#84969b}.credential-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.credential-options button{display:flex;justify-content:center;align-items:center;gap:4px;min-height:40px;padding:8px 4px;border:1px solid #dce6e7;border-radius:9px;background:#f8fafb;color:#5d737b;font-size:13px;font-weight:500}.credential-options button:hover{border-color:#82b2a7;background:#f1f8f5}.credential-options button[aria-pressed=true]{background:#e4f4ed;color:#126656;border-color:#73b59f}.credential-check{display:none;font-size:12px}.credential-options button[aria-pressed=true] .credential-check{display:inline}.credential-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e2eaeb;margin-top:24px;padding-top:16px;gap:12px;font-size:12px;color:#738b91}.credential-footer button{background:none;border:0;font-size:12px;color:#227d69;padding:4px 0}.credential-footer button:disabled{color:#a9b7bb;cursor:default}.credential-hint{font-size:11px;line-height:1.8;color:#879a9f;margin-top:13px}.policy-route>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;font-size:13px;font-weight:600;line-height:1.7}.policy-route>summary::-webkit-details-marker{display:none}.policy-route>summary:after{content:'＋';font-size:17px;font-weight:400;color:#82989b;flex:none}.policy-route[open]>summary:after{content:'−'}.policy-route>summary small{font-size:10px;color:#277b65;font-weight:400;flex:none}.policy-route-content{margin-top:12px}.policy-route .route-selection{color:#247b64;background:#eff8f3;border-radius:6px;padding:8px 10px}.route-requirements{padding-left:18px;margin:12px 0 0;color:#6b8188;font-size:12px;line-height:1.8}.route-requirements li+li{margin-top:6px}.policy-route .route-inactive{color:#a76a51}
.profile-toggle{min-height:54px;background:#f5f1fc;color:#6d58a1;border-color:#d9ceed;box-shadow:0 7px 24px #6d58a118;text-align:left}.profile-toggle-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;white-space:nowrap}.profile-toggle-title{line-height:1.4}.profile-title-short{display:none}.profile-toggle #profile-summary-label{display:block;padding:0;border:0;font-size:11px;line-height:1.4;color:#8c7ea8}.profile-toggle:hover{background:#eee7fa;border-color:#aa96d2}.profile-toggle[aria-expanded=true]{background:#6d58a1;border-color:#6d58a1}.profile-toggle[aria-expanded=true] #profile-summary-label{color:#e3d9f4}.profile-toggle.has-discoveries:not([aria-expanded=true]){background:#ede5fa;border-color:#b9a4db}.profile-toggle.has-discoveries #profile-summary-label{font-weight:600;color:#6d58a1}.profile-toggle.has-discoveries[aria-expanded=true] #profile-summary-label{color:#e3d9f4}
.credential-discovery{margin-top:18px;padding:14px;border:1px solid #e1d7f0;border-radius:11px;background:#f8f5fc}.discovery-result strong{display:block;color:#64508f;font-size:14px;line-height:1.6}.discovery-result p{font-size:12px;line-height:1.8;color:#7f7391;margin-top:7px}.discovery-map-hint{display:flex;align-items:center;gap:6px;color:#90839f;font-size:10px;margin-top:10px}.discovery-map-hint .swatch{width:8px;height:8px}.discovery-action{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:12px;padding:10px 12px;border:0;border-radius:8px;background:#7460a8;color:#fff;font-size:12px;font-weight:600}.discovery-action:hover{background:#64508f}.discovery-action span{font-size:16px}.credential-discovery.has-discoveries{background:#f2ecfa;border-color:#d4c5eb}.discovery-action:focus-visible,.profile-toggle:focus-visible{outline:3px solid #b7a4dd;outline-offset:3px}
@media(max-width:1190px){.map-toolbar{width:calc(100% - 450px)}.floating-toggle small{display:none}.profile-toggle{min-width:132px}.profile-title-long{display:none}.profile-title-short{display:inline}.map-toolbar .snapshot-tag{display:none}.map-legend{gap:10px;font-size:10px;padding:12px}}
@media(max-width:900px){.workspace.profile-open,.workspace.detail-open{--left-inset:0px;--right-inset:0px}.map-toolbar{top:16px;width:calc(100% - 360px)}.floating-toggle{top:16px;min-height:48px}.profile-toggle{left:16px}.detail-toggle{right:16px;min-width:126px}.workspace .floating-panel{top:84px;max-height:calc(100dvh - 164px)}.workspace .profile-panel{left:16px}.workspace .detail-panel{right:16px}.map-legend{bottom:80px;max-width:calc(100% - 40px)}.map-info{bottom:20px;left:20px}.map-controls{bottom:20px;right:20px;flex-direction:row}.map-controls button+button{border-top:0;border-left:1px solid #e8edef}.map-watermark{bottom:140px;left:20px}}
@media(max-width:700px){.map-toolbar{top:12px;width:calc(100% - 24px)}.floating-toggle{top:87px;min-height:38px;padding:0 12px;font-size:12px;border-radius:10px}.profile-toggle{left:12px;min-width:118px}.detail-toggle{right:12px;min-width:118px}.floating-toggle svg{width:16px;height:16px}.map-toolbar .map-caption{font-size:10px;margin-top:8px}.search-box input{font-size:13px}.search-box kbd{display:none}.filters-toggle{min-width:40px;padding:0 8px}.filters-toggle svg{display:none}.map-toolbar .view-toggle button{padding:7px 8px;font-size:11px}.map-toolbar .search-box{padding:0 7px}.map-toolbar .search-box>span{font-size:23px}.workspace .floating-panel{top:auto;bottom:76px;left:12px;right:12px;width:auto;max-height:calc(50dvh - 10px);padding:20px}.floating-panel-heading h1{font-size:19px}.floating-panel-heading .panel-kicker{font-size:9px}.map-legend{max-width:calc(100% - 24px);bottom:72px;gap:9px 12px;padding:10px 14px;font-size:10px}.map-info{left:12px;bottom:16px}.map-info button{padding:8px 7px;font-size:10px}.map-controls{bottom:16px;right:12px}.map-controls button{width:36px;height:36px}.map-watermark{display:none}.list-panel{top:140px;width:calc(100% - 24px);max-height:calc(100dvh - 220px);padding:16px}.workspace .country-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.country-grid .destination-card{padding:12px}.country-grid .card-name{font-size:13px}.filter-panel{padding:16px}.filter-panel .filter-row button{font-size:12px;padding:7px 8px}.workspace.profile-open .map-legend,.workspace.detail-open .map-legend{visibility:hidden}.toast{width:max-content;max-width:calc(100% - 32px);font-size:12px}}
