*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--rrd-green-deep: #104538;--rrd-green: #22755a;--rrd-green-mid: #2d9169;--rrd-green-light: #3aa876;--rrd-mint: #6dc9a4;--rrd-mint-bright: #9edfc0;--rrd-route: #ff9f45;--rrd-route-bright: #ffbe7d;--rrd-route-glow: rgba(255, 159, 69, .52);--rrd-sage-soft: #d0e8dc;--rrd-page: #edf3f0;--rrd-surface: #ffffff;--rrd-surface-muted: #f6faf8;--rrd-border: #d0e2d8;--rrd-border-strong: #b5d4c4;--rrd-text: #0f1f18;--rrd-text-muted: #4f6d60;--rrd-text-subtle: #758f82;--rrd-accent-soft: #eaf5ef;--rrd-radius-sm: 10px;--rrd-radius: 16px;--rrd-shadow: 0 4px 6px rgba(16, 52, 40, .04), 0 12px 32px rgba(16, 52, 40, .07);--rrd-shadow-hover: 0 8px 16px rgba(16, 52, 40, .05), 0 20px 48px rgba(16, 52, 40, .1);--rrd-font: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg: var(--rrd-page);--surface: var(--rrd-surface);--surface-2: var(--rrd-surface-muted);--border: var(--rrd-border);--text: var(--rrd-text);--text-muted: var(--rrd-text-muted);--accent: var(--rrd-green);--accent-glow: rgba(34, 117, 90, .28);--green: var(--rrd-green-mid);--red: #c53d3d;--radius: var(--rrd-radius-sm)}html,body,#root{height:100%;height:100dvh}body{font-family:var(--rrd-font);background:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation}.app{display:flex;flex-direction:column;height:100%;height:100dvh;min-height:0}.header{position:relative;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);background:#104538f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;overflow:visible}.header--with-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.75rem 1rem}.header--with-route .header-brand{justify-self:start;min-width:0}.header--with-route .header-center{justify-self:center;grid-column:2}.header-end{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.language-switcher{position:relative;flex-shrink:0}.language-switcher__wrap{display:flex;width:6.75rem;overflow:hidden;border:1px solid #cbd5e1;border-radius:.5rem}.language-switcher__toggle{display:flex;align-items:center;justify-content:space-between;gap:.25rem;width:100%;padding:.5rem .625rem;border:none;background:#f1f5f9;color:#334155;font:inherit;line-height:1;cursor:pointer;transition:background .15s ease}.language-switcher__toggle:hover{background:#e2e8f0}.language-switcher__current{display:flex;align-items:center;gap:.375rem;min-width:0}.language-switcher__flag-img{width:1.25rem;height:.875rem;flex-shrink:0;object-fit:cover;border-radius:2px}.language-switcher__code{font-size:.875rem;font-weight:500}.language-switcher__chevron{width:1rem;height:1rem;flex-shrink:0;color:#64748b;transition:transform .15s ease}.language-switcher__chevron--open{transform:rotate(180deg)}.language-switcher__panel{position:absolute;top:calc(100% + .25rem);right:0;z-index:120;width:6.75rem;margin:0;padding:.25rem 0;list-style:none;overflow:hidden;border:1px solid #cbd5e1;border-radius:.5rem;background:#fff;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.language-switcher__option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;color:#334155;font:inherit;font-size:.875rem;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease}.language-switcher__option:hover{background:#f1f5f9}.language-switcher__option--active{background:#2563eb;color:#fff}.language-switcher__option--active:hover{background:#2563eb}@media(min-width:640px){.language-switcher__wrap,.language-switcher__panel{width:9.5rem}}.header-rrd-brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:#fff;flex-shrink:0;transition:opacity .15s ease}.header-rrd-brand:hover{opacity:.9}.header-rrd-brand__logo{display:block;width:2.75rem;height:2.75rem;flex-shrink:0}.header-rrd-brand__name{font-size:.95rem;font-weight:700;letter-spacing:-.02em;line-height:1.15;white-space:nowrap}.header-rrd-brand__name-light{font-weight:500;color:#ffffffd1}.header--with-route .header-end{justify-self:end;grid-column:3}.header-center{display:flex;align-items:center;justify-content:center;gap:.65rem;min-width:0;max-width:100%;text-align:center}.header-center .route-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(28rem,42vw)}.header-brand{display:flex;align-items:center;gap:14px}.logo{font-size:28px}.header h1{font-size:1.05rem;font-weight:700;letter-spacing:-.03em;color:#fff}.header p{font-size:.76rem;color:#ffffffa6;margin-top:2px}.header-actions-menu{position:relative}.header-actions-menu__toggle{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.82rem;min-height:2.25rem;white-space:nowrap;background:var(--rrd-mint-bright);color:var(--rrd-green-deep)}.header-actions-menu__toggle:not(:disabled):hover{background:#fff;box-shadow:0 4px 16px #0003}.header-actions-menu__chevron{font-size:.7rem;line-height:1;opacity:.85}.header-actions-menu__panel{position:absolute;top:calc(100% + .4rem);right:0;z-index:60;display:flex;flex-direction:column;gap:.35rem;min-width:16rem;padding:.4rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--rrd-radius-sm);background:#104538fa;box-shadow:0 10px 28px #00000047;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-actions-menu__item{width:100%;padding:.55rem .8rem;white-space:nowrap;border:1px solid rgba(255,255,255,.12);border-radius:calc(var(--rrd-radius-sm) - 2px);background:#ffffff14;color:#fff;font-family:inherit;font-size:.82rem;font-weight:600;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease}.header-actions-menu__item:not(:disabled):hover{background:#ffffff29;border-color:#ffffff47}.header-actions-menu__item--active{background:#ffffff24;border-color:#9edfc08c;font-weight:600}.header-actions-menu__item:disabled{opacity:.5;cursor:not-allowed}.header-settings-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff1f;color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.header-settings-btn:not(:disabled):hover{background:#fff3;border-color:#ffffff4d;transform:translateY(-1px)}.header-settings-btn:disabled{opacity:.5;cursor:not-allowed}.header-settings-btn .settings-gear-btn__icon{width:1.3rem;height:1.3rem}.route-name{font-weight:600;font-size:.88rem;color:#fff}.route-distance{background:#ffffff1f;border:1px solid rgba(255,255,255,.18);padding:.3rem .75rem;border-radius:999px;font-size:.8rem;color:var(--rrd-mint-bright);font-weight:600}.main{position:relative;z-index:1;flex:1;min-height:0;overflow:hidden}.upload-landing{--upload-inset-y: 4%;--upload-inset-x: 2.5%;--upload-hero-anim: 11s;position:relative;height:100%;overflow:hidden auto;background:#fff}.upload-landing__hero{position:fixed;inset:var(--upload-inset-y) var(--upload-inset-x);margin:0;z-index:0;overflow:hidden}.upload-landing__hero-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}.upload-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.upload-hero-overlay__route,.upload-hero-overlay__marker{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.upload-hero-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.upload-hero-route--full{stroke:#ffbe7d6b;stroke-width:2.5;stroke-dasharray:.02 .018}.upload-hero-route--glow{stroke:var(--rrd-route-glow);stroke-width:8;stroke-dasharray:1;stroke-dashoffset:1;animation:upload-hero-route-glow var(--upload-hero-anim) ease-in-out infinite}.upload-hero-route--traveled{stroke:var(--rrd-route-bright);stroke-width:3.5;stroke-dasharray:1;stroke-dashoffset:1;animation:upload-hero-route-draw var(--upload-hero-anim) ease-in-out infinite}@keyframes upload-hero-route-draw{0%,14%{stroke-dashoffset:1}78%{stroke-dashoffset:.22}to{stroke-dashoffset:.22}}@keyframes upload-hero-route-glow{0%,14%{stroke-dashoffset:1}78%{stroke-dashoffset:.22}to{stroke-dashoffset:.22}}.upload-hero-label{position:absolute;transform:translate(-50%,-50%);padding:.22rem .55rem;border-radius:4px;font-size:clamp(.62rem,1.1vw,.78rem);font-weight:700;letter-spacing:.01em;color:#fff;background:#004b87;border:1px solid rgba(255,255,255,.35);box-shadow:0 1px 2px #00000059,0 4px 12px #00000040;white-space:nowrap;animation:upload-hero-label-in .8s ease backwards}@keyframes upload-hero-label-in{0%{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}.upload-hero-marker{fill:var(--rrd-route-bright);stroke:#fffffff2;stroke-width:2;filter:drop-shadow(0 0 6px rgba(255,190,125,.95))}@media(prefers-reduced-motion:reduce){.upload-hero-route--glow,.upload-hero-route--traveled{animation:none;stroke-dashoffset:.22}.upload-hero-label{animation:none}.upload-hero-marker{opacity:0}}.upload-landing__scrim{position:fixed;inset:var(--upload-inset-y) var(--upload-inset-x);z-index:1;background:linear-gradient(115deg,#081c16d1,#081c1694 42%,#081c1661);pointer-events:none}.upload-landing__inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(16rem,.85fr);grid-template-rows:auto auto;align-content:center;align-items:start;column-gap:clamp(1.5rem,4vw,3rem);row-gap:0;min-height:100%;max-width:72rem;margin:0 auto;padding:clamp(1.5rem,4vh,2.75rem) clamp(1.25rem,4vw,2.5rem)}.upload-landing__copy{grid-column:1;grid-row:1;color:#fff;text-align:left}.upload-landing__features{grid-column:1;grid-row:2}.upload-landing__eyebrow{display:inline-block;margin-bottom:.85rem;padding:.3rem .7rem;border:1px solid rgba(255,255,255,.28);border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--rrd-mint-bright);background:#ffffff14}.upload-landing__title{font-size:clamp(1.75rem,4vw,2.65rem);font-weight:700;line-height:1.12;letter-spacing:-.03em;margin-bottom:.85rem;text-wrap:balance}.upload-landing__lead{max-width:36rem;font-size:clamp(.95rem,1.6vw,1.08rem);line-height:1.6;color:#ffffffe0;margin-bottom:1.75rem}.rrd-feature-list{list-style:none;display:grid;gap:.85rem;margin:0;padding:0}.rrd-feature-list--on-dark{max-width:34rem}.rrd-feature-card{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;width:100%;padding:.75rem .9rem;border-radius:var(--rrd-radius-sm);border:1px solid var(--rrd-border);background:var(--rrd-surface-muted);text-align:left;transition:background .15s ease,border-color .15s ease,transform .15s ease}.rrd-feature-card--on-dark{border-color:#ffffff1f;background:#ffffff12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.rrd-feature-card__icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:10px;color:var(--rrd-green);background:var(--rrd-accent-soft);flex-shrink:0}.rrd-feature-card--on-dark .rrd-feature-card__icon{color:var(--rrd-mint-bright);background:#2d916959}.rrd-feature-card__icon svg{width:1.25rem;height:1.25rem}.rrd-feature-card__body{min-width:0}.rrd-feature-card__title{display:block;font-size:.92rem;font-weight:600;margin:0 0 .15rem;color:var(--rrd-text)}.rrd-feature-card--on-dark .rrd-feature-card__title{color:#fff}.rrd-feature-card__desc{display:block;margin:0;font-size:.82rem;line-height:1.45;color:var(--rrd-text-muted)}.rrd-feature-card--on-dark .rrd-feature-card__desc{color:#ffffffc7}.rrd-feature-card--muted .rrd-feature-card__title{color:var(--rrd-text-muted)}.upload-landing__card{grid-column:2;grid-row:2;align-self:start}.upload-dropzone{text-align:center;padding:clamp(1.5rem,3vw,2rem) clamp(1.25rem,3vw,1.75rem);border:2px dashed rgba(34,117,90,.35);border-radius:var(--rrd-radius);background:#fffffff7;box-shadow:var(--rrd-shadow-hover);transition:border-color .2s ease,background .2s ease,transform .2s ease}.upload-landing--drag .upload-dropzone,.upload-dropzone:hover{border-color:var(--rrd-green-mid);background:#fff;transform:translateY(-2px)}.upload-dropzone__icon{display:flex;justify-content:center;margin-bottom:.85rem;color:var(--rrd-green)}.upload-dropzone__title{font-size:1.15rem;font-weight:700;margin-bottom:.4rem;letter-spacing:-.02em}.upload-dropzone__hint{color:var(--text-muted);font-size:.9rem;margin-bottom:1.25rem;line-height:1.5}.upload-dropzone__formats{margin-top:1rem;font-size:.78rem;color:var(--rrd-text-subtle);line-height:1.4}.upload-dropzone__error{margin-top:1rem;margin-bottom:0}.upload-landing__attribution{position:fixed;left:calc(var(--upload-inset-x) + max(.85rem,env(safe-area-inset-left)));bottom:calc(var(--upload-inset-y) + max(.75rem,env(safe-area-inset-bottom)));z-index:3;margin:0;font-size:.68rem;text-shadow:0 1px 4px rgba(0,0,0,.75)}.upload-landing__attribution a{color:#fffffff2}.upload-btn{display:inline-block;padding:.7rem 1.35rem;background:var(--rrd-green);color:#fff;border-radius:999px;font-weight:600;font-size:.92rem;cursor:pointer;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.upload-btn--large{padding:.8rem 1.6rem;font-size:.95rem}.upload-btn:hover{transform:translateY(-1px);background:var(--rrd-green-light);box-shadow:0 4px 20px var(--accent-glow)}.error{color:var(--red);margin-top:16px;font-size:14px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:20px}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{color:var(--text-muted);font-size:14px}.editor{display:flex;flex-direction:column;height:100%;position:relative;min-height:0}.editor .map-wrapper{flex:1;min-height:0}.map-wrapper{position:relative;overflow:hidden}.export-progress-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;justify-content:flex-end;background:transparent;pointer-events:none;padding:1rem 1.25rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-right:max(1.25rem,env(safe-area-inset-right))}.export-progress-overlay__card{text-align:left;padding:.9rem 1.1rem;background:#000000c7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);border-radius:var(--rrd-radius);min-width:0;max-width:min(22rem,calc(100% - 2rem));box-shadow:0 8px 28px #0006}.export-progress-overlay__status{margin:0;font-size:.95rem;font-weight:600;color:#fff;line-height:1.4}.export-progress-overlay__bar{margin-top:.75rem;height:6px;border-radius:999px;background:#ffffff26;overflow:hidden}.export-progress-overlay__fill{height:100%;border-radius:inherit;background:var(--rrd-green-mid);transition:width .12s ease}.map-container{width:100%;height:100%}.map-container .maplibregl-ctrl-attrib,.map-container .maplibregl-ctrl-logo{display:none!important}.map-container--exporting{pointer-events:none}.map-container--poi-add{cursor:crosshair}.poi-add-banner{position:absolute;top:max(1rem,env(safe-area-inset-top));left:50%;z-index:15;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;max-width:min(36rem,calc(100% - 2rem));padding:.65rem .85rem .65rem 1rem;border-radius:999px;background:#0f1f18e0;border:1px solid rgba(255,159,69,.45);box-shadow:0 8px 24px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.poi-add-banner p{margin:0;font-size:.88rem;font-weight:600;color:#fff;line-height:1.35}.poi-add-banner__btn{flex-shrink:0;padding:.4rem .85rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff1f;color:#fff;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.poi-add-banner__btn:hover{background:#fff3}.poi-manage-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1.25rem}.poi-manage-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#0f1f1873;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.poi-manage-dialog__panel{position:relative;z-index:1;width:min(100%,24rem);padding:0;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius);background:var(--rrd-surface);box-shadow:var(--rrd-shadow-hover);overflow:hidden}.poi-manage-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .9rem;border-bottom:1px solid var(--rrd-border);background:linear-gradient(180deg,var(--rrd-surface-muted) 0%,var(--rrd-surface) 100%)}.poi-manage-dialog__title{margin:0;font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.poi-manage-dialog__options{padding:1rem 1.25rem 1.25rem}.poi-manage-dialog__option{width:100%;font-family:inherit;cursor:pointer;text-align:left}.poi-manage-dialog__option:hover:not(:disabled){background:var(--rrd-accent-soft);border-color:var(--rrd-border-strong);transform:translateY(-1px)}.poi-manage-dialog__option:disabled{opacity:.55;cursor:not-allowed}.poi-dialog{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;align-items:center;justify-content:center;padding:1rem}.poi-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#0f1f1873;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.poi-dialog__panel{position:relative;z-index:1;width:min(100%,22rem);padding:1.15rem 1.25rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius);background:var(--rrd-surface);box-shadow:var(--rrd-shadow-hover)}.poi-dialog__title{margin:0 0 1rem;font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.poi-dialog__field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem;border:none;padding:0}.poi-dialog__field>span,.poi-dialog__field>legend{font-size:.85rem;font-weight:600;color:var(--rrd-text-muted)}.poi-dialog__field input[type=text]{width:100%;padding:.65rem .75rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);font-family:inherit;font-size:.95rem}.poi-category-options{display:grid;gap:.45rem}.poi-category-option{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface-muted);cursor:pointer}.poi-category-option:has(input:checked){border-color:var(--rrd-green-mid);background:var(--rrd-accent-soft)}.poi-dialog__error{margin:0 0 .75rem}.poi-dialog__actions{display:flex;justify-content:flex-end;gap:.5rem}.poi-settings__default-color{margin-bottom:.85rem}.poi-settings__default-color-label{display:block;margin-bottom:.5rem;font-size:.85rem;font-weight:600;color:var(--rrd-text-muted)}.poi-color-picker{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.poi-color-swatch,.poi-color-custom{width:1.75rem;height:1.75rem}.poi-list__colors{margin-top:.55rem}.poi-list__colors-label{display:block;margin-bottom:.35rem;font-size:.72rem;font-weight:600;color:var(--rrd-text-subtle)}.poi-settings__manage-hint,.poi-settings__limit,.poi-settings__empty{margin:0;font-size:.85rem;line-height:1.45;color:var(--rrd-text-muted)}.poi-settings__limit{color:var(--rrd-green-deep);font-weight:600}.poi-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.5rem}.poi-list__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface-muted)}.poi-list__main{min-width:0;display:flex;flex-direction:column;gap:.15rem}.poi-list__category{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--rrd-text-subtle)}.poi-list__title-field{display:flex;flex-direction:column;gap:.3rem}.poi-list__title-label{font-size:.72rem;font-weight:600;color:var(--rrd-text-subtle)}.poi-list__title-input{width:100%;padding:.45rem .55rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface);font-family:inherit;font-size:.9rem;font-weight:600;color:var(--rrd-text)}.poi-list__title-input:focus{outline:none;border-color:var(--rrd-green-mid);box-shadow:0 0 0 2px var(--rrd-accent-soft)}.poi-list__title-input:disabled{opacity:.6;cursor:not-allowed}.poi-list__delete{flex-shrink:0;padding:.35rem .65rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface);color:var(--rrd-text-muted);font-family:inherit;font-size:.78rem;font-weight:600;cursor:pointer}.poi-list__delete:hover:not(:disabled){border-color:var(--rrd-border-strong);color:var(--rrd-green-deep)}.map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:20px}.logo-overlay-box{position:absolute;top:20px;right:20px;z-index:2;height:18%;width:auto;aspect-ratio:1;box-sizing:border-box;border-radius:12px;background:color-mix(in srgb,var(--logo-box-color, #ff9f45) var(--logo-box-bg-opacity, 25%),transparent);display:grid;place-items:center;overflow:hidden;filter:drop-shadow(0 2px 8px rgba(0,0,0,.55))}.logo-overlay-box__img{width:144%;height:144%;max-width:144%;max-height:144%;object-fit:contain}.overlay-settings-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:2px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:var(--rrd-radius-sm);background:#000000a6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;cursor:pointer;pointer-events:auto;transition:background .15s ease,border-color .15s ease,transform .15s ease}.overlay-settings-btn:not(:disabled):hover{background:#000c;border-color:#ffffff59;transform:translateY(-1px)}.overlay-settings-btn:disabled{opacity:.5;cursor:not-allowed}.settings-gear-btn__icon{display:block;width:1.35rem;height:1.35rem;flex-shrink:0}.title-card{background:#000000a6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:14px 20px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.2);color:#fff;z-index:2}.title-card--top-left{align-self:flex-start}.title-card--bottom{position:absolute;left:50%;bottom:36px;transform:translate(-50%);width:50%;max-width:none;padding:10px 28px 12px;text-align:center}.title-card--bottom h2{font-size:16px;margin:0 0 6px}.title-card h2{font-size:18px;font-weight:700;color:#fff;line-height:1.3}.title-card__meta{display:grid;gap:3px;margin:8px 0 0}.title-card__row{display:grid;grid-template-columns:max-content 1fr;gap:.35rem;align-items:baseline;font-size:13px;line-height:1.4}.title-card__row dt{margin:0;color:#fffc;font-weight:500}.title-card__row dt:after{content:" :"}.title-card__row dd{margin:0;color:var(--title-card-value-color, var(--rrd-mint-bright));font-weight:600}.title-card__meta--bottom{gap:0;margin-top:0}.title-card__grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;column-gap:clamp(1rem,4vw,2.5rem)}.title-card__grid--single{grid-template-columns:1fr}.title-card__col{display:grid;gap:4px}.title-card__col--left{justify-items:start}.title-card__col--center{justify-items:center}.title-card__col--right{justify-items:end}.title-card__item{display:inline-grid;grid-template-columns:max-content max-content;gap:.3rem;align-items:baseline;font-size:12px;line-height:1.35;margin:0;white-space:nowrap}.title-card__item dt{margin:0;color:#fffc;font-weight:500}.title-card__item dt:after{content:" :"}.title-card__item dd{margin:0;color:var(--title-card-value-color, var(--rrd-mint-bright));font-weight:600}.position-options{display:flex;flex-direction:column;gap:.5rem}.position-option{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface);color:var(--rrd-text);font-size:.9rem;cursor:pointer}.position-option:has(input:checked){border-color:var(--rrd-green);background:var(--rrd-accent-soft)}.map-basemap-apply{width:100%;margin-top:.85rem}.position-option input{accent-color:var(--rrd-green)}.map-attribution{position:absolute;left:20px;bottom:12px;margin:0;font-size:11px;font-weight:500;color:#ffffffe0;text-shadow:0 1px 4px rgba(0,0,0,.8);z-index:1}.map-attribution a{color:inherit;text-decoration:underline;text-underline-offset:2px;pointer-events:auto}.map-attribution a:hover{color:#fff}.map-overlay__footer{margin-top:auto;display:flex;flex-direction:column;gap:6px}.progress-bar{height:3px;background:#ffffff26;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .1s linear}.settings-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.25rem}.settings-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#0f1f1873;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.settings-modal__panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(100%,28rem);max-height:min(90vh,40rem);background:var(--rrd-surface);border:1px solid var(--rrd-border);border-radius:var(--rrd-radius);box-shadow:var(--rrd-shadow-hover);overflow:hidden}.settings-modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.25rem 1rem;border-bottom:1px solid var(--rrd-border);background:linear-gradient(180deg,var(--rrd-surface-muted) 0%,var(--rrd-surface) 100%)}.settings-modal__header-main{display:flex;align-items:center;gap:.5rem;min-width:0}.settings-modal__back{flex-shrink:0;width:2rem;height:2rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface);color:var(--rrd-text-muted);font-size:1.1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.settings-modal__back:hover{background:var(--rrd-accent-soft);border-color:var(--rrd-border-strong);color:var(--rrd-green-deep)}.settings-modal__eyebrow{margin:0 0 .25rem;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--rrd-text-subtle)}.settings-modal__title{margin:0;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--rrd-text)}.settings-modal__close{flex-shrink:0;width:2rem;height:2rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface);color:var(--rrd-text-muted);font-size:1.35rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.settings-modal__close:hover{background:var(--rrd-accent-soft);border-color:var(--rrd-border-strong);color:var(--rrd-green-deep)}.settings-modal__body{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.85rem}.settings-menu__item{font-family:inherit;cursor:pointer}.settings-menu__item:hover:not(:disabled){background:var(--rrd-accent-soft);border-color:var(--rrd-border-strong);transform:translateY(-1px)}.settings-menu__item:disabled{opacity:.5;cursor:not-allowed}.settings-menu__item.rrd-feature-card--muted:hover:not(:disabled) .rrd-feature-card__title{color:var(--rrd-green-deep)}.about-section__app{margin:0;font-size:1rem;font-weight:700;color:var(--rrd-text)}.about-section__version{margin:.2rem 0 0;font-size:.92rem;font-weight:600;color:var(--rrd-green)}.about-disclaimer{margin-top:1rem;padding:.75rem .85rem;border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm);background:var(--rrd-surface)}.about-disclaimer__title{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rrd-text-subtle)}.about-disclaimer__text{margin:0;font-size:.84rem;line-height:1.45;color:var(--rrd-text-muted)}.about-disclaimer__text a{color:var(--rrd-green);font-weight:600;text-decoration:underline;text-underline-offset:2px}.about-disclaimer__text a:hover{color:var(--rrd-green-deep)}.about-changelog{display:flex;flex-direction:column;gap:1rem;margin-top:1rem;max-height:min(18rem,40vh);overflow-y:auto;padding-right:.15rem}.about-release__heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0 0 .45rem;font-size:.88rem;font-weight:700;color:var(--rrd-text)}.about-release__heading time{font-size:.78rem;font-weight:500;color:var(--rrd-text-subtle);white-space:nowrap}.about-release__list{margin:0;padding-left:1.15rem;font-size:.84rem;line-height:1.45;color:var(--rrd-text-muted)}.about-release__list li+li{margin-top:.3rem}.control-section{padding:1rem 1.05rem;background:var(--rrd-surface-muted);border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm)}.control-section--actions{background:var(--rrd-surface);border-color:var(--rrd-border-strong);box-shadow:var(--rrd-shadow)}.control-section__label{margin:0 0 .35rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rrd-text-subtle)}.control-section__hint{margin:0 0 .75rem;font-size:.82rem;color:var(--rrd-text-muted)}.preference-toggle{display:flex;align-items:flex-start;gap:.6rem;margin-top:.85rem;font-size:.85rem;line-height:1.4;color:var(--rrd-text);cursor:pointer;-webkit-user-select:none;user-select:none}.preference-toggle input{margin-top:.15rem;flex-shrink:0;accent-color:var(--rrd-green)}.logo-upload-btn{display:block;padding:.75rem 1rem;background:var(--rrd-surface);border:1px dashed var(--rrd-border-strong);border-radius:var(--rrd-radius-sm);font-size:.88rem;font-weight:600;color:var(--rrd-green);text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.logo-upload-btn:hover{border-color:var(--rrd-green-mid);background:var(--rrd-accent-soft);color:var(--rrd-green-deep)}.logo-control{display:flex;align-items:center;gap:12px;padding:.75rem;background:var(--rrd-surface);border-radius:var(--rrd-radius-sm);border:1px solid var(--rrd-border)}.logo-opacity-row{margin-top:.85rem}.logo-control-preview{max-width:80px;max-height:36px;object-fit:contain}.btn-small{padding:6px 10px;font-size:12px}.color-picker{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .15s,border-color .15s}.color-swatch:hover:not(:disabled){transform:scale(1.1)}.color-swatch.active{border-color:var(--rrd-surface);box-shadow:0 0 0 2px var(--rrd-green),0 0 0 4px var(--rrd-accent-soft)}.color-swatch:disabled{opacity:.5;cursor:not-allowed}.color-input-wrap{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;overflow:hidden;border:1px solid var(--border);cursor:pointer}.color-input-wrap input[type=color]{width:36px;height:36px;border:none;padding:0;cursor:pointer;background:none}.duration-row{display:flex;align-items:center;gap:12px}.duration-row input[type=range]{flex:1;accent-color:var(--accent)}.duration-value{font-size:.88rem;font-weight:700;color:var(--rrd-green-deep);min-width:2.5rem;text-align:right}.control-buttons{display:flex;flex-direction:column;gap:.5rem}.export-dialog{z-index:1100}.export-dialog__actions{display:flex;gap:.5rem;margin-top:1.25rem}.export-dialog__actions .btn{flex:1}.btn{padding:.68rem 1rem;border:none;border-radius:var(--rrd-radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background .15s ease,box-shadow .15s ease;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn-primary{background:var(--rrd-green);color:#fff}.btn-primary:not(:disabled):hover{background:var(--rrd-green-light);box-shadow:0 4px 16px var(--accent-glow)}.btn-secondary{background:var(--rrd-surface);color:var(--rrd-green-deep);border:1px solid var(--rrd-border-strong)}.btn-secondary:not(:disabled):hover{background:var(--rrd-accent-soft);border-color:var(--rrd-green-mid)}.btn-export-4k{background:var(--rrd-green-deep);color:#fff;border:1px solid rgba(255,255,255,.08)}.btn-export-4k:not(:disabled):hover{background:var(--rrd-green);box-shadow:0 4px 20px #10453847}.btn-ghost{background:transparent;color:var(--rrd-text-muted)}.btn-ghost:not(:disabled):hover{color:var(--rrd-green-deep);background:var(--rrd-accent-soft)}.export-field-label{margin:0 0 .5rem;font-size:.9rem;font-weight:600;color:var(--rrd-text)}.export-directory-btn{width:100%}.export-directory-path{display:block;margin-top:.65rem;min-height:2.75rem;padding:.7rem .8rem;background:var(--rrd-surface);border:1px solid var(--rrd-border-strong);border-radius:var(--rrd-radius-sm)}.export-directory-path__label{display:block;margin-bottom:.25rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--rrd-text-subtle)}.export-directory-path__value{display:block;font-size:.9rem;font-weight:600;line-height:1.4;color:var(--rrd-green-deep);word-break:break-word}.settings-modal__body>.btn-export-4k{width:100%}.export-notice{margin:.75rem 0 0;padding:.7rem .85rem;font-size:.86rem;font-weight:600;line-height:1.45;color:var(--rrd-green-deep);background:var(--rrd-accent-soft);border:1px solid var(--rrd-border-strong);border-radius:var(--rrd-radius-sm)}.export-status{margin-top:.75rem;padding:.65rem .75rem;font-size:.82rem;font-weight:600;color:var(--rrd-green-deep);background:var(--rrd-accent-soft);border:1px solid var(--rrd-border);border-radius:var(--rrd-radius-sm)}.control-section--actions .error{margin-top:.75rem;margin-bottom:0}@media(max-width:900px){.settings-modal{align-items:flex-end;padding:0}.settings-modal__panel{width:100%;max-height:85vh;max-height:85dvh;border-radius:var(--rrd-radius) var(--rrd-radius) 0 0;padding-bottom:env(safe-area-inset-bottom)}}@media(max-width:768px){.header{padding:.65rem .85rem;padding-top:max(.65rem,env(safe-area-inset-top))}.header--with-route{grid-template-columns:1fr auto;grid-template-areas:"brand end" "center center";gap:.45rem .5rem}.header--with-route .header-brand{grid-area:brand}.header--with-route .header-center{grid-area:center;width:100%}.header--with-route .header-end{grid-area:end;justify-self:end}.header-brand{gap:10px}.header-brand p{display:none}.header h1{font-size:.95rem}.logo{font-size:22px}.header-actions-menu__panel{left:0;right:0;min-width:0}.header-center .route-name{max-width:100%;font-size:.9rem}.route-distance{flex-shrink:0;font-size:.75rem;padding:.25rem .55rem}.upload-landing__inner{grid-template-columns:1fr;grid-template-rows:auto auto auto;align-content:start;padding-top:1.25rem;padding-bottom:2rem}.upload-landing__copy{grid-column:1;grid-row:1;text-align:center}.upload-landing__features{grid-column:1;grid-row:2}.upload-landing__card{grid-column:1;grid-row:3}.upload-landing__lead{margin-left:auto;margin-right:auto}.rrd-feature-list--on-dark{margin:0 auto}.map-overlay{padding:10px}.map-attribution{left:10px;bottom:8px;font-size:10px}.title-card--top-left{max-width:calc(100% - 52px)}.title-card{padding:10px 12px}.title-card--bottom{width:50%;bottom:30px;padding:8px 12px 10px}.title-card--bottom h2{font-size:.82rem;margin-bottom:4px}.title-card h2{font-size:.9rem}.title-card__grid{column-gap:.75rem}.title-card__item{font-size:.68rem;gap:.2rem}.title-card__row{grid-template-columns:max-content 1fr;font-size:.72rem;gap:.25rem}.logo-overlay-box{top:10px;right:10px;height:14%;border-radius:8px}.export-progress-overlay{padding:.75rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom));padding-right:max(.75rem,env(safe-area-inset-right))}.export-progress-overlay__card{max-width:min(18rem,calc(100% - 1.5rem));padding:.8rem .95rem}.export-progress-overlay__status{font-size:.88rem}.settings-modal__panel{max-height:90dvh}.settings-modal__header,.settings-modal__body{padding-left:1rem;padding-right:1rem}.export-dialog__actions{flex-direction:column-reverse}.export-dialog__actions .btn{width:100%;min-height:2.75rem}.export-menu__mobile-hint{margin:0}}@media(pointer:coarse){.btn,.header-actions-menu__toggle,.header-actions-menu__item,.settings-menu__item,.header-settings-btn,.upload-btn{min-height:2.75rem}.color-swatch,.color-input-wrap{width:2.25rem;height:2.25rem}.duration-row input[type=range]{min-height:2.75rem}.btn:not(:disabled):hover,.upload-dropzone:hover,.settings-menu__item:hover:not(:disabled),.header-settings-btn:not(:disabled):hover{transform:none}}
