:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#243b32;background:#f6f5ef;font-synthesis:none;text-rendering:optimizeLegibility;--forest: #244b3e;--forest-deep: #183b2e;--ink: #243b32;--muted: #5e6c62;--paper: #fffefa;--sage: #eaf0e4;--line: #dbe0d5;--gold: #d4a456;--red: #9b322b}*{box-sizing:border-box}body{margin:0;min-width:320px;font-size:18px;line-height:1.55}button,input{font:inherit}button{cursor:pointer}button,a,input,summary,[tabindex="0"]{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid #a97520;outline-offset:4px}[tabindex="-1"]:focus{outline:none}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.icon{display:inline-block;flex:0 0 auto;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:1rem;z-index:100;padding:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;color:var(--forest);background:#fff;border:0;border-radius:8px}.skip-link:focus{width:auto;height:auto;padding:.75rem 1rem;border:2px solid var(--forest);clip-path:none}.site-header{width:min(1160px,calc(100% - 64px));min-height:109px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand-mark{width:48px;height:48px;color:var(--forest)}.brand-name{display:block;font-size:24px;font-weight:750;letter-spacing:-.8px;line-height:1.2}.brand-caption{display:block;font-size:14px;color:var(--muted);margin-top:3px}.header-actions{display:flex;gap:24px;align-items:center}.device-label{display:inline-flex;align-items:center;gap:9px;font-size:15px;color:var(--muted)}.status-dot{width:7px;height:7px;border-radius:50%;background:#6b8062}.app-main{width:min(1080px,calc(100% - 64px));margin:44px auto 64px;scroll-margin-top:24px}.page-intro{margin-bottom:30px}.app-main:not([data-view=upload]) .page-intro{display:none}.eyebrow{margin:0 0 10px;color:#62765c;font-size:12px;line-height:1.4;font-weight:750;letter-spacing:1.8px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(33px,3.5vw,46px);font-weight:400;letter-spacing:-1.8px;line-height:1.17}.page-intro>p:last-child{color:var(--muted);margin-bottom:0;font-size:18px}.progress-steps{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 28px;padding:0;list-style:none;border:1px solid var(--line);border-radius:12px;background:#efeee7;overflow:hidden}.progress-steps li{min-width:0;position:relative;color:#5e695e}.progress-steps button{width:100%;height:100%;min-height:78px;display:flex;align-items:center;gap:12px;padding:14px 24px;border:0;text-align:left;background:transparent;color:inherit;line-height:1.4}.progress-steps button:disabled{cursor:default}.progress-steps button:not(:disabled) strong{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#9aaa91}.progress-steps button:not(:disabled):hover{background:#e1e9da;color:var(--forest)}.progress-steps button:focus-visible{outline-offset:-5px;border-radius:10px}.view-navigation{margin:-10px 0 20px}.view-navigation .button{background:var(--paper)}.progress-steps li+li{border-left:1px solid var(--line)}.progress-steps strong{font-size:16px;font-weight:650}.step-caption{font-size:14px;margin-left:5px}.step-number{display:grid;place-items:center;flex-shrink:0;height:34px;width:34px;border-radius:50%;border:1px solid #a8b2a5;font-size:15px;font-weight:650}.progress-steps .is-current{color:var(--forest);background:#fffefa;box-shadow:inset 0 -3px 0 var(--forest)}.is-current .step-number{background:var(--forest);color:#fff;border-color:var(--forest)}.is-complete .step-number{color:var(--forest);background:#dde7d7;border-color:#dde7d7}.workspace{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,1fr);gap:24px;align-items:start}.panel{min-width:0;padding:32px;border:1px solid #dde1d6;border-radius:16px;background:var(--paper);box-shadow:0 6px 18px #223c2e04}.panel-heading{margin-bottom:26px}.panel-heading h2{margin-bottom:8px;color:var(--ink);font-size:25px;font-weight:650;letter-spacing:-.8px;line-height:1.25}.panel-heading p{margin-bottom:0;color:var(--muted);font-size:17px}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 18px 24px;min-height:290px;border:1.5px dashed #9baa99;border-radius:12px;background:#f7f9f3;text-align:center;transition:background .15s,border-color .15s}.drop-zone--active{background:#e2ecd9;border-color:var(--forest);border-style:solid}.file-illustration{width:74px;height:80px;margin:0 0 20px}.file-illustration svg{width:100%;height:100%}.button{display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:11px;padding:13px 21px;border:1px solid transparent;border-radius:8px;font-size:17px;font-weight:650;line-height:1.4;text-align:center;text-decoration:none;transition:background .15s,box-shadow .15s}.button-primary{color:#fffefa;background:var(--forest);box-shadow:0 3px #1436280f}.button-primary:hover{background:var(--forest-deep);box-shadow:0 3px 9px #14362821}.button-secondary{background:transparent;color:var(--forest);border-color:#adbba8}.button-secondary:hover{background:#e7ede2}.button-small{min-height:44px;padding:9px 13px;font-size:15px}.button:disabled{cursor:not-allowed;background:#dce1d7;color:#61705d;box-shadow:none}.text-button{min-height:44px;padding:9px 0;border:0;background:transparent;color:var(--forest);font-size:16px;font-weight:600;text-decoration:underline;text-decoration-color:#a8b4a2;text-underline-offset:5px}.text-button:hover{text-decoration-color:var(--forest)}.drop-hint{margin:12px 0 16px;font-size:16px;color:var(--muted)}.file-formats{margin-bottom:0;font-size:14px;color:#61715e}.privacy-note{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px 0 0;color:var(--muted);font-size:15px}.privacy-note .icon{height:19px;width:19px}.file-status{margin:16px 0 0;color:var(--forest);font-weight:650;font-size:17px}.file-status:empty{display:none}.current-journey{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.current-journey span{display:block;color:var(--muted);font-size:14px}.current-journey strong{display:block;font-size:17px;overflow-wrap:anywhere}.current-journey .button{margin-top:14px;width:100%}.help-panel{min-width:0;padding:10px 10px 8px 16px}.route-sketch{max-width:280px;margin:0 0 18px}.route-sketch svg{display:block;width:100%}.help-panel h2,.download-panel h2,.finish-panel h2{font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:400;letter-spacing:-.8px;line-height:1.15;margin-bottom:16px}.help-panel>p:not(.eyebrow),.finish-panel>p{font-size:17px;color:var(--muted);margin-bottom:20px}.benefits{list-style:none;padding:0;margin:24px 0;font-size:16px}.benefits li{display:flex;align-items:center;gap:10px;margin:12px 0}.benefits .icon{width:19px;height:19px;color:#4b734d}.help-details{border-top:1px solid #d5ddcf}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.help-details summary{min-height:54px;padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--forest);font-size:16px;font-weight:650}.chevron{width:19px;height:19px;transition:transform .15s}details[open]>summary .chevron{transform:rotate(180deg)}.help-details ol{padding-left:22px;font-size:16px;color:var(--muted)}.help-details li{padding:4px 0 8px 3px}.help-details p{font-size:16px;color:var(--muted)}.heading-with-action{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.heading-with-action h2{margin:0}.route-identity{padding:22px 0 0;border-top:1px solid var(--line)}.journey-name-label{display:block;margin-bottom:8px;font-size:17px;font-weight:650}.journey-name-input{width:100%;min-width:0;min-height:54px;padding:11px 13px;border:1px solid #8b9d83;border-radius:8px;color:var(--ink);background:#fff;font-size:20px;font-weight:600}.journey-name-input[aria-invalid=true]{border-color:var(--red)}.name-hint,.name-example{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.name-example{margin:5px 0 16px;overflow-wrap:anywhere}.name-error{color:var(--red);font-size:15px;margin:12px 0}.route-meta{display:flex;gap:10px 18px;flex-wrap:wrap;color:var(--muted);font-size:15px;margin-bottom:0}.route-meta>span+span:before{content:"·";margin-right:18px}.route-meta strong{font-weight:600}.journey-ends{margin:26px 0 28px;padding:0;list-style:none}.journey-ends li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:14px;position:relative}.journey-ends li+li{margin-top:22px}.journey-ends li:first-child:before{content:"";position:absolute;top:26px;bottom:-28px;left:8px;border-left:1.5px dashed #a7b8a2}.journey-dot{position:relative;z-index:1;height:18px;width:18px;background:var(--paper);border:5px solid var(--forest);border-radius:50%;margin-top:6px}.journey-dot-finish{border-color:#a97627}.endpoint-label{display:block;color:var(--muted);font-size:14px;margin-bottom:2px}.journey-ends strong{display:block;font-size:19px;line-height:1.45;font-weight:600;overflow-wrap:anywhere}.disclosure{border-top:1px solid var(--line)}.disclosure>summary{min-height:60px;padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--forest);font-size:16px;font-weight:600}.detail-note{margin-bottom:12px;font-size:15px;color:var(--muted)}#point-list{max-height:340px;overflow-y:auto;padding-left:28px;margin:0 0 22px;font-size:17px;scrollbar-gutter:stable}#point-list li{padding:7px 8px;overflow-wrap:anywhere}#point-list li::marker{color:#6c7e65;font-size:14px}.settings-label{flex:1}.settings-label small{display:block;color:var(--muted);font-weight:400;font-size:14px;margin-top:3px}.settings-details>summary>.icon:first-child{color:#6b7a64;width:21px}.route-settings{padding:4px 0 22px;border:0;margin:0;min-width:0}.point-limit{display:flex;gap:20px;align-items:center;justify-content:space-between;font-size:17px}.route-settings small{display:block;color:var(--muted);font-size:15px;margin-top:4px;line-height:1.5}.point-limit input{width:82px;min-height:52px;flex-shrink:0;border:1px solid #97a791;border-radius:7px;color:var(--forest);background:#fff;padding:10px;font-size:19px}.point-limit input[aria-invalid=true]{border-color:var(--red)}.boundary-option{display:flex;align-items:flex-start;gap:12px;cursor:pointer;margin:24px 0 10px;font-size:17px}.boundary-option input{width:24px;height:24px;flex-shrink:0;margin:3px 0 0;accent-color:var(--forest)}.boundary-note{padding:14px;border-radius:7px;background:#fbefd9;color:#76551f;font-size:15px;margin:18px 0 8px}.recalculation-note{display:flex;gap:10px;margin:12px 0 0;padding:17px 0 0;border-top:1px solid var(--line);font-size:15px;color:var(--muted);line-height:1.5}.recalculation-note .icon{width:20px;height:20px;margin-top:2px}.download-panel{padding:28px;border-radius:16px;background:#e7eddf;border:1px solid #dce4d3;min-width:0}.round-icon{width:47px;height:47px;display:grid;place-items:center;border-radius:50%;background:#d6e1cb;color:var(--forest);margin-bottom:24px}.download-panel .eyebrow{margin-bottom:11px;font-size:12px;color:#52664b}.download-panel h2{font-size:29px}.file-total{display:flex;align-items:baseline;gap:11px;padding:14px 0 12px}.file-total strong{font-family:Georgia,Times New Roman,serif;font-size:50px;font-weight:400;line-height:1}.file-total span{font-size:17px}.parts-preview{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 22px}.parts-preview>div{border-bottom:1px solid #cbd6c2;padding:13px 0;font-size:17px}.parts-preview dt{display:flex;align-items:center;gap:10px;font-weight:600}.parts-preview dd{margin:2px 0 0 29px;color:#52654b}.direction-arrow{font-size:23px;font-weight:400}.download-panel .button,.finish-panel .button{width:100%;padding-left:12px;padding-right:12px}.download-panel .button{font-size:16px;gap:8px}.download-panel .button .icon{width:20px}.download-hint{margin:15px 0 0;color:#596d51;text-align:center;font-size:14px}.download-format{display:grid;gap:8px;min-width:0;margin:0 0 20px;padding:0;border:0}.download-format legend{padding:0;margin-bottom:10px;font-size:16px;font-weight:650}.download-format label{display:flex;align-items:center;gap:11px;min-height:54px;padding:11px 12px;border:1px solid #a6b59c;border-radius:8px;cursor:pointer}.download-format label:has(input:checked){background:var(--paper);border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest)}.download-format input{margin:0;flex-shrink:0;width:21px;height:21px;accent-color:var(--forest)}.download-format strong{display:block;font-size:16px;font-weight:600;line-height:1.35}.download-format small{display:block;margin-top:4px;color:var(--muted);font-size:14px;line-height:1.4}.download-format:disabled label{cursor:default}.download-again-options{margin-top:26px;padding-top:24px;border-top:1px solid #c5d0bc}.download-again-options h3{font-size:18px;font-weight:650;margin-bottom:14px}.download-permission{margin:-4px 0 20px;color:#455a3c;font-size:15px}.individual-downloads{margin:24px 0}.individual-downloads h3{font-size:18px;margin-bottom:6px}.individual-downloads p{color:var(--muted);font-size:16px}.individual-downloads ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;max-height:360px;overflow-y:auto}.individual-downloads a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:10px 14px;border:1px solid #acb9a4;border-radius:8px;color:var(--forest);text-decoration:none;background:#f7f9f3}.individual-downloads a:hover{background:#e7ede2}.individual-downloads a span{min-width:0;overflow-wrap:anywhere;font-size:15px;text-decoration:underline;text-underline-offset:3px}.message{margin-top:18px;padding:16px;border-radius:8px;font-size:17px;overflow-wrap:anywhere}.message-error{border:1px solid #dbafa7;background:#fff1ee;color:var(--red)}.success-mark{display:grid;place-items:center;width:52px;height:52px;background:#e2edda;border-radius:50%;color:#365f34;margin-bottom:20px}.success-mark .icon{width:28px;height:28px}.success-panel .panel-heading h2{font-family:Georgia,Times New Roman,serif;font-size:35px;font-weight:400;letter-spacing:-1px}.archive-receipt{display:flex;align-items:center;gap:14px;padding:18px;background:#f1f4eb;border:1px solid #e0e6d7;border-radius:10px;margin:25px 0;min-width:0}.archive-receipt>div{min-width:0;flex:1}.archive-receipt strong{display:block;font-size:16px;font-weight:600;overflow-wrap:anywhere}.archive-receipt p{color:var(--muted);font-size:14px;margin:4px 0 0}.zip-tag{font-size:11px;letter-spacing:1px;font-weight:700;color:#5b7150;border:1px solid #b7c6ae;padding:3px 5px;border-radius:4px}.after-download{list-style:none;padding:0;margin:28px 0 0}.after-download li{display:flex;gap:15px;padding:0 0 25px}.after-download li:last-child{padding-bottom:0}.after-download li>span{display:grid;place-items:center;width:30px;height:30px;background:#f0f0e7;border:1px solid #d9dfd2;border-radius:50%;font-size:14px;flex-shrink:0;margin-top:2px}.after-download h3{font-size:18px;line-height:1.4;font-weight:600;margin-bottom:6px}.after-download p{font-size:16px;color:var(--muted);margin-bottom:0}.finish-panel{padding:29px 26px;border-radius:16px;border:1px solid #dce4d3;background:#e7eddf}.finish-icon{width:39px;height:39px;margin-bottom:24px;color:#516e43}.finish-panel .button+.button{margin-top:14px}.finish-panel .text-button{margin:15px auto 0;display:block;font-size:15px}.site-footer{width:min(1160px,calc(100% - 64px));margin:0 auto;padding:22px 0 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#667360;font-size:13px}.app-status{margin-left:auto;min-width:0;text-align:right}.app-version-row{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;column-gap:16px}.check-update-button{color:var(--muted);font-size:13px;font-weight:400}.check-update-button:disabled{cursor:wait;text-decoration:none}#offline-status:empty,#update-check-status:empty{display:none}#update-check-status{display:block}#update-check-status[data-state=error]{color:var(--red)}.update-banner{position:fixed;bottom:20px;right:20px;z-index:30;display:flex;align-items:center;gap:16px;width:max-content;max-width:min(640px,calc(100% - 40px));padding:14px 18px;background:var(--forest);color:#fffefa;border-radius:10px;box-shadow:0 5px 20px #1436282b;font-size:16px}.update-banner .button{background:#edf1e5;color:var(--forest);white-space:nowrap}.update-banner .button:disabled{cursor:wait;white-space:normal}.update-banner[data-state=error]{background:#843c2d}.update-spinner{width:23px;height:23px;flex-shrink:0;border:3px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:update-spin .9s linear infinite}@keyframes update-spin{to{transform:rotate(360deg)}}@media(min-width:801px)and (max-height:800px){.app-main:not([data-view=upload]){margin-top:28px}.app-main:not([data-view=upload]) .progress-steps{margin-bottom:20px}.app-main:not([data-view=upload]) .progress-steps button{min-height:68px}.download-panel .round-icon,.download-panel h2{display:none}.download-panel{padding:24px}.download-panel .parts-preview,.download-format{margin-bottom:12px}.download-panel .file-total{padding:0 0 8px}.download-panel .file-total strong{font-size:42px}.download-panel .parts-preview>div{padding-top:4px;padding-bottom:4px}}@media(max-width:1050px){.step-caption{display:block;margin-left:0}.progress-steps button{padding:14px 20px}.workspace{grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:20px}.panel{padding:26px}.download-panel,.finish-panel{padding:24px}.heading-with-action{gap:5px}}@media(max-width:800px){.site-header{width:calc(100% - 40px);min-height:92px}.device-label{display:none}.app-main{width:calc(100% - 40px);margin-top:30px}.workspace{grid-template-columns:1fr}.page-intro{margin-bottom:24px}h1{font-size:36px;max-width:560px}.help-panel{padding:12px 16px}.route-sketch,.help-panel h2 br,.download-panel h2 br,.help-panel .eyebrow{display:none}.help-panel h2{font-size:26px}.help-panel>p,.benefits{display:none}.help-details{margin-top:18px}.download-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.round-icon,.download-panel .eyebrow{display:none}.download-panel h2{grid-column:1 / -1;font-size:26px}.file-total{align-self:center}.parts-preview{grid-template-columns:1fr;gap:0;margin-bottom:20px}.parts-preview>div{display:flex;justify-content:space-between;gap:8px}.parts-preview dd{margin:0}.download-panel .button,.download-hint,.download-format,.download-permission{grid-column:1 / -1}.download-hint br{display:none}.site-footer{width:calc(100% - 40px)}.app-status{margin-left:0;width:100%;text-align:left}.app-version-row{justify-content:flex-start}}@media(max-width:480px){body{font-size:17px}.site-header{width:calc(100% - 32px);min-height:84px;gap:12px}.brand-mark{width:42px;height:42px}.brand-name{font-size:22px}.brand-caption{font-size:12px}.header-actions{gap:0}.header-actions .button{max-width:135px;font-size:13px;gap:6px;padding:9px}.header-actions .button .icon{width:17px}.app-main{width:calc(100% - 28px);margin:28px auto 40px}.page-intro{padding:0 6px}.page-intro .eyebrow{font-size:10px;letter-spacing:1.3px}h1{font-size:33px;letter-spacing:-1.2px}.page-intro>p:last-child{font-size:17px}.progress-steps{margin-bottom:20px}.progress-steps button{min-height:81px;padding:12px 5px;flex-direction:column;gap:6px;justify-content:center;text-align:center}.step-number{width:27px;height:27px;font-size:13px}.progress-steps strong{font-size:13px}.step-caption{display:none}.panel{padding:23px 20px;border-radius:13px}.panel-heading{margin-bottom:22px}.panel-heading h2{font-size:23px}.panel-heading p{font-size:16px}.drop-zone{padding:22px 12px;min-height:276px}.drop-zone .button{width:100%;padding:13px 10px}.drop-hint{font-size:14px}.file-formats{font-size:12px;max-width:220px}.privacy-note{font-size:13px;gap:6px}.privacy-note .icon{width:17px}.help-panel{padding:9px}.help-panel h2{font-size:25px}.heading-with-action{margin-bottom:16px}.route-identity{padding-top:18px}.route-identity h3{font-size:21px}.route-meta{font-size:14px;gap:8px}.route-meta>span+span:before{margin-right:8px}.journey-ends{margin:24px 0}.journey-ends strong{font-size:18px}.journey-ends li{gap:10px}.settings-label small{font-size:13px}.disclosure>summary{font-size:16px;gap:9px}.point-limit{gap:12px}.point-limit input{width:72px}.route-settings small,.recalculation-note{font-size:14px}.download-panel{padding:24px;gap:0 16px}.file-total{gap:8px;flex-wrap:wrap;align-content:center}.file-total strong{font-size:43px}.file-total span{font-size:15px}.parts-preview>div{font-size:15px;gap:5px}.parts-preview dt{gap:5px}.direction-arrow{font-size:18px}.success-panel .panel-heading h2{font-size:31px}.archive-receipt{gap:10px;padding:15px 12px}.archive-receipt strong{font-size:15px}.zip-tag{display:none}.after-download li{gap:11px}.after-download h3{font-size:17px}.after-download p{font-size:16px}.finish-panel{padding:24px}.finish-icon{display:none}.site-footer{width:calc(100% - 40px);font-size:12px}.update-banner{bottom:12px;right:12px;max-width:calc(100% - 24px);gap:10px;padding:14px;font-size:15px;flex-wrap:wrap}#update-message{flex:1;min-width:180px}.update-banner .button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.update-spinner{animation:none}}
