:root{--paper: #f3efe6;--paper-2: #ebe6da;--card: #fbf8f1;--ink: #1b2426;--ink-2: #4a5560;--ink-3: #8a8e88;--line: #c8c2b3;--line-strong: #6a7378;--water: #c4dde8;--water-edge: #8aabb8;--no-fill: #efc7c0;--no-stroke: #b15a45;--no-ink: #6b2418;--yes-fill: #a8c98a;--yes-stroke: #4a6f3a;--yes-ink: #2a4423;--access-fill: #d5b06a;--access-stroke:#8a6320;--access-ink: #4a3812;--unset-fill: #c1b9a3;--unset-stroke: #8a8170;--unset-ink: #4a4338;--accent: #2d6a3e;--accent-ink: #f6f3ec;--sans: "Schibsted Grotesk", "Söhne", "Inter", system-ui, sans-serif;--serif: "Newsreader", "Source Serif Pro", Georgia, serif;--ease: cubic-bezier(.2, .7, .2, 1);--sat: env(safe-area-inset-top);--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left);--sar: env(safe-area-inset-right);--fs-eyebrow: clamp(10px, .32cqw + 9.5px, 13px);--fs-brand: clamp(17px, .8vw + 14.5px, 28px);--fs-body: clamp(13.5px, .3vw + 13px, 16px);--fs-lead: clamp(15px, .35vw + 14px, 18px);--fs-h2: clamp(20px, .9vw + 17px, 28px);--fs-h3: clamp(11.5px, .2vw + 11px, 14px);--fs-chip: clamp(11px, .15vw + 11px, 13px);--fs-stat: clamp(22px, .9vw + 19px, 30px);--fs-legend: clamp(10.5px, .3cqw + 10px, 13px);--space-xs: clamp(4px, .4vw + 2px, 8px);--space-sm: clamp(8px, .6vw + 5px, 14px);--space-md: clamp(12px, 1vw + 8px, 22px);--space-lg: clamp(18px, 1.5vw + 12px, 32px);--space-xl: clamp(24px, 2vw + 16px, 48px);--chrome-pad: clamp(8px, .7vw + 5px, 14px);--pill-radius: 12px;--sheet-radius: clamp(18px, .6vw + 16px, 24px);--icon-btn: clamp(40px, .9vw + 36px, 48px)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--paper)}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;overflow:hidden;width:100vw;height:100dvh;touch-action:none;font-size:var(--fs-body);line-height:1.5}#app{width:100%;height:100%}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input{font:inherit;color:inherit}.shell{position:relative;width:100%;height:100%;overflow:hidden;container-type:inline-size;container-name:shell}.dev-banner{position:absolute;top:0;left:0;right:0;z-index:6;display:flex;align-items:center;gap:10px;padding:clamp(8px,.6vw + 6px,14px) clamp(12px,.8vw + 10px,22px);padding-top:calc(env(safe-area-inset-top) + clamp(8px,.6vw + 6px,14px));background:var(--access-stroke);color:#fff8e7;font-size:clamp(12.5px,.18vw + 12px,14.5px);font-weight:500;letter-spacing:.01em;box-shadow:0 1px #00000014,0 6px 18px #141e191f}.dev-banner strong{font-weight:700;color:#fff}.dev-banner__dot{width:8px;height:8px;border-radius:999px;background:#fff;box-shadow:0 0 0 3px #ffffff40;flex:0 0 auto}.dev-banner__text{flex:1 1 auto;text-wrap:pretty}.dev-banner__close{background:transparent;border:0;color:#fff8e7;font-size:20px;line-height:1;padding:0 4px;cursor:pointer;opacity:.85;transition:opacity .18s;flex:0 0 auto}.dev-banner__close:hover{opacity:1}.shell:has(.dev-banner) .topbar{padding-top:calc(var(--sat) + clamp(46px,6vh + 30px,64px))}.topbar{position:absolute;top:0;left:0;right:0;z-index:4;padding:calc(var(--sat) + var(--space-sm)) max(var(--space-sm),var(--sar)) 0 max(var(--space-sm),var(--sal));display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;flex-direction:column;line-height:1.1;background:#fbf8f1eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--pill-radius);padding:clamp(6px,.4vw + 5px,10px) clamp(10px,.6vw + 8px,16px);flex:0 0 auto}.brand .eyebrow{font-size:clamp(9.5px,.18vw + 9px,12px);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.brand .title{margin-top:4px;font-family:var(--serif);font-weight:500;font-size:var(--fs-brand);letter-spacing:-.01em;color:var(--ink);white-space:nowrap}.brand .title em{font-style:italic;font-weight:400;color:var(--ink-2)}.legend{background:#fbf8f1eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:10px;padding:clamp(6px,.4vw + 5px,10px) clamp(8px,.5vw + 6px,14px);color:var(--ink-2);flex:0 1 auto;min-width:0}.legend-rows{display:flex;flex-wrap:wrap;gap:clamp(6px,.5vw + 4px,12px) clamp(8px,.5vw + 6px,14px);font-size:var(--fs-legend)}.legend-row{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.legend-sw{width:clamp(10px,.2vw + 9.5px,14px);height:clamp(10px,.2vw + 9.5px,14px);border-radius:3px;border:1px solid var(--line-strong);flex:0 0 auto}.legend-sw.no{background:var(--no-fill);border-color:var(--no-stroke)}.legend-sw.yes{background:var(--yes-fill);border-color:var(--yes-stroke)}.legend-sw.access{background:var(--access-fill);border-color:var(--access-stroke)}@container shell (max-width: 520px){.legend-rows{flex-direction:column;gap:4px;align-items:flex-start}}.map-area{position:absolute;inset:0;z-index:1;overflow:hidden}.map-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none}.map-viewport:active{cursor:grabbing}.map-svg{display:block;width:100%;height:100%}.bottombar{position:absolute;bottom:0;left:0;right:0;z-index:5;padding:var(--space-sm) max(var(--space-sm),var(--sar)) calc(var(--sab) + var(--space-sm)) max(var(--space-sm),var(--sal));display:flex;gap:var(--space-sm);align-items:center;justify-content:space-between;pointer-events:none}.bottombar>*{pointer-events:auto}.icon-btn{width:var(--icon-btn);height:var(--icon-btn);border-radius:999px;background:var(--card);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px #0000000a,0 6px 18px #23281e0f;transition:transform .18s var(--ease),background .2s;flex:0 0 auto}.icon-btn:active{transform:scale(.95)}.icon-btn svg{width:50%;height:50%;color:var(--ink)}.cta-pill{display:inline-flex;align-items:center;gap:8px;padding:clamp(9px,.5vw + 7px,14px) clamp(12px,.8vw + 10px,22px) clamp(9px,.5vw + 7px,14px) clamp(10px,.7vw + 8px,18px);border-radius:999px;background:var(--ink);color:var(--paper);font-size:clamp(13px,.18vw + 13px,15.5px);font-weight:500;letter-spacing:-.005em;box-shadow:0 1px #0000000f,0 10px 24px #141e192e;transition:transform .18s var(--ease);flex:0 1 auto}.cta-pill:active{transform:scale(.97)}.cta-pill .dot{width:7px;height:7px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 3px #2d6a3e47}.scrim{position:fixed;inset:0;background:#0f161938;opacity:0;pointer-events:none;transition:opacity .25s var(--ease);z-index:50;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.scrim.on{opacity:1;pointer-events:auto}.sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,100%);width:min(560px,calc(100vw - var(--space-sm) * 2));max-height:min(90dvh,760px);background:var(--card);border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;box-shadow:0 -10px 40px #141e192e;z-index:60;transition:transform .32s var(--ease);display:flex;flex-direction:column;overflow:hidden}.sheet.on{transform:translate(-50%)}.sheet-handle-zone{flex:0 0 auto;padding:14px 0 18px;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.sheet-handle-zone:active{cursor:grabbing}.sheet-handle{width:44px;height:5px;background:var(--line);border-radius:999px;margin:0 auto;pointer-events:none;transition:background-color .15s var(--ease)}.sheet-handle-zone:active .sheet-handle{background:var(--ink-2)}.sheet-body{padding:var(--space-md) var(--space-lg) calc(var(--sab) + var(--space-lg));overflow-y:auto;flex:1}.sheet-body h2{margin:4px 0;font-family:var(--serif);font-weight:500;font-size:var(--fs-h2);letter-spacing:-.01em}.sheet-body h3{margin:var(--space-md) 0 6px;font-size:var(--fs-h3);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-3);font-weight:600}.sheet-body p{margin:0 0 12px;color:var(--ink-2);font-size:var(--fs-body);line-height:1.55;text-wrap:pretty}.sheet-body p.lead{font-size:var(--fs-lead);color:var(--ink)}.modal{position:fixed;left:50%;top:50%;width:min(440px,calc(100vw - var(--space-lg) * 2));background:var(--card);border-radius:var(--sheet-radius);box-shadow:0 20px 60px #141e1938;z-index:60;transform:translate(-50%,-45%) scale(.96);opacity:0;pointer-events:none;transition:transform .22s var(--ease),opacity .22s var(--ease)}.modal.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.modal-body{padding:var(--space-lg) var(--space-lg) var(--space-md)}.modal h2{margin:0 0 4px;font-family:var(--serif);font-weight:500;font-size:clamp(19px,.5vw + 17px,24px);letter-spacing:-.01em}.modal p{margin:0 0 var(--space-md);color:var(--ink-2);font-size:var(--fs-body);line-height:1.5}.parcel-meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:var(--fs-body);color:var(--ink);padding:var(--space-sm) var(--space-md);background:var(--paper);border:1px solid var(--line);border-radius:12px}.parcel-meta dt{color:var(--ink-3);font-size:var(--fs-chip);text-transform:uppercase;letter-spacing:.1em;align-self:center}.parcel-meta dd{margin:0;font-weight:500}.status-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 8px;border-radius:999px;font-size:var(--fs-chip);font-weight:600;border:1px solid currentColor}.status-chip .sw{width:8px;height:8px;border-radius:999px;background:currentColor}.status-chip.no{color:var(--no-ink);background:var(--no-fill)}.status-chip.yes{color:var(--yes-ink);background:var(--yes-fill)}.status-chip.access{color:var(--access-ink);background:var(--access-fill)}.status-chip.unset{color:var(--unset-ink);background:var(--unset-fill)}.option-card{display:flex;gap:14px;padding:var(--space-sm) var(--space-md);border:1.5px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer;transition:border-color .18s,background .18s,transform .12s;text-align:left;width:100%}.option-card+.option-card{margin-top:10px}.option-card:active{transform:scale(.99)}.option-card.sel{border-color:var(--ink);background:var(--paper)}.option-card .glyph{flex:0 0 44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;border:1px solid currentColor}.option-card .glyph.no{color:var(--no-ink);background:var(--no-fill)}.option-card .glyph.yes{color:var(--yes-ink);background:var(--yes-fill)}.option-card .glyph.access{color:var(--access-ink);background:var(--access-fill)}.option-card .body{display:flex;flex-direction:column;gap:2px;min-width:0}.option-card .body .ttl{font-weight:600;font-size:clamp(14px,.18vw + 14px,16px);color:var(--ink);letter-spacing:-.005em}.option-card .body .sub{font-size:var(--fs-body);color:var(--ink-2);line-height:1.4}.code-input{display:flex;gap:6px;margin:4px 0 8px}.code-input input{flex:1;padding:14px;font-size:clamp(15px,.4vw + 14px,19px);font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--paper);border:1.5px solid var(--line);border-radius:12px;outline:none;font-variant-numeric:tabular-nums;text-align:center}.code-input input:focus{border-color:var(--ink);background:var(--card)}.code-input input.error{border-color:var(--no-stroke);background:var(--no-fill);color:var(--no-ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:clamp(11px,.5vw + 9px,15px) clamp(14px,.8vw + 11px,22px);border-radius:12px;font-weight:600;font-size:clamp(14px,.18vw + 14px,16px);letter-spacing:-.005em;transition:transform .12s,background .18s,color .18s;border:1.5px solid transparent}.btn.primary{background:var(--ink);color:var(--paper)}.btn.primary:disabled{background:var(--unset-fill);color:var(--ink-3);cursor:not-allowed}.btn.primary:active:not(:disabled){transform:scale(.98)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.full{width:100%}.notes-input{width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--paper);font-family:inherit;font-size:clamp(14px,.18vw + 14px,16px);line-height:1.45;color:var(--ink);resize:vertical;min-height:56px;outline:none}.notes-input:focus{border-color:var(--ink);background:var(--card)}.close-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--ink-2)}.close-x:hover{background:var(--paper);color:var(--ink)}.banner{position:fixed;top:calc(var(--sat) + var(--space-md));left:50%;transform:translate(-50%,-20px);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;font-size:clamp(12.5px,.15vw + 12px,14.5px);font-weight:500;z-index:80;opacity:0;pointer-events:none;transition:transform .32s var(--ease),opacity .32s var(--ease);box-shadow:0 8px 24px #00000029;max-width:min(440px,calc(100vw - var(--space-md) * 2));text-align:center}.banner.on{transform:translate(-50%);opacity:1}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 6px}.stat{padding:10px 8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;text-align:center}.stat .n{font-family:var(--serif);font-weight:500;font-size:var(--fs-stat);line-height:1;color:var(--ink)}.stat .l{margin-top:4px;font-size:clamp(10.5px,.12vw + 10.5px,12.5px);color:var(--ink-3);letter-spacing:.05em}.rules{list-style:none;padding:0;margin:6px 0 0}.rules li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);font-size:var(--fs-body);color:var(--ink);line-height:1.45}.rules li:first-child{border-top:0}.rules li .num{flex:0 0 22px;height:22px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:11.5px;color:var(--ink-2);display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;margin-top:1px}.foot{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--line);font-size:var(--fs-chip);color:var(--ink-3);display:flex;justify-content:space-between;gap:8px}@container shell (min-width: 1024px){.sheet{inset:0 0 0 auto;transform:translate(100%);width:min(440px,38cqw);max-height:100dvh;border-radius:var(--sheet-radius) 0 0 var(--sheet-radius);box-shadow:-10px 0 40px #141e1929}.sheet.on{transform:translate(0)}.sheet-handle-zone{display:none}.sheet-body{padding:calc(var(--sat) + var(--space-xl)) var(--space-xl) var(--space-xl)}}
