.site-header{z-index:40;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}.site-header.scrolled{border-bottom-color:var(--line)}.site-header .inner{height:var(--header-h);justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;align-items:center;gap:.55rem;font-size:1.3rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark{background:var(--primary);color:#fff;width:30px;height:30px;font-size:.85rem;font-family:var(--font-sans);letter-spacing:-.02em;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.site-nav{align-items:center;gap:1.5rem;display:flex}.site-nav a:not(.btn){color:var(--ink-soft);font-size:.93rem;font-weight:500;text-decoration:none}.site-nav a:not(.btn):hover{color:var(--primary)}@media (width<=780px){.site-nav .hide-sm{display:none}}@media (pointer:coarse){.site-nav a:not(.btn),.footer-links a{padding-block:.5rem}}.hero{padding:clamp(3.5rem,9vw,7rem) 0 clamp(3rem,7vw,5rem);position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--rose) 22%, transparent), transparent 62%);pointer-events:none;border-radius:50%;width:620px;height:620px;position:absolute;top:-220px;right:-180px}.hero:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--primary) 14%, transparent), transparent 62%);pointer-events:none;border-radius:50%;width:640px;height:640px;position:absolute;bottom:-280px;left:-220px}.hero .inner{grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(2rem,5vw,4rem);display:grid;position:relative}@media (width<=900px){.hero .inner{grid-template-columns:1fr}}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.8rem;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);width:26px;height:1px}.hero h1{margin-bottom:1rem}.hero h1 em{color:var(--primary);font-style:italic}.hero-lead{color:var(--ink-soft);max-width:33rem;font-size:1.12rem}.hero-cta{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.hero-note{color:var(--muted);margin-top:1rem;font-size:.86rem}.hero-art{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.35rem;position:relative;transform:rotate(-1deg)}.hero-art-bar{align-items:center;gap:.4rem;margin-bottom:1rem;display:flex}.hero-art-bar i{background:var(--line-strong);border-radius:50%;width:9px;height:9px}.hero-art-bar span{color:var(--muted);letter-spacing:.04em;margin-left:auto;font-size:.72rem}.hero-floor{border-radius:var(--radius);background:repeating-linear-gradient(90deg, transparent 0 27px, color-mix(in srgb, var(--line) 55%, transparent) 27px 28px), repeating-linear-gradient(0deg, transparent 0 27px, color-mix(in srgb, var(--line) 55%, transparent) 27px 28px), var(--surface-2);height:250px;position:relative;overflow:hidden}.hero-table{background:var(--surface);border:2px solid var(--primary);color:var(--primary-ink);box-shadow:var(--shadow);border-radius:50%;place-items:center;font-size:.72rem;font-weight:600;display:grid;position:absolute}.hero-seat{background:var(--primary-soft);width:26px;height:26px;color:var(--primary-ink);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:50%;place-items:center;font-size:.62rem;font-weight:700;display:grid;position:absolute}.hero-seat.rose{background:var(--rose-soft);color:#8a4f61;border-color:color-mix(in srgb, var(--rose) 40%, transparent)}.hero-chip{background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.76rem;font-weight:600;display:flex;position:absolute}.hero-chip:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px}.hero-chip.dragging{border-color:var(--primary);animation:3.2s ease-in-out infinite nudge;transform:rotate(-4deg)}@keyframes nudge{0%,to{transform:translate(0)rotate(-4deg)}50%{transform:translate(-14px,-10px)rotate(-1deg)}}.section{padding:clamp(3rem,7vw,5.5rem) 0}.section-alt{background:var(--bg-tint);border-block:1px solid var(--line)}.section-head{max-width:40rem;margin-bottom:2.5rem}.section-head.center{text-align:center;margin-inline:auto}.section-head p{color:var(--ink-soft);margin-bottom:0;font-size:1.03rem}.steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.5rem;display:grid}.step{padding-top:.5rem;position:relative}.step:before{counter-increment:step;content:counter(step);background:var(--primary);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;margin-bottom:.8rem;font-size:.9rem;font-weight:700;display:grid}.step h3{margin-bottom:.3rem;font-size:1.1rem}.step p{color:var(--muted);margin-bottom:0;font-size:.94rem}.features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;display:grid}.feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;transition:transform .18s,box-shadow .18s}.feature:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.feature-icon{width:42px;height:42px;color:var(--primary);background:var(--primary-soft);border-radius:12px;place-items:center;margin-bottom:.9rem;font-size:1.35rem;display:grid}.feature h3{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:1.08rem;display:flex}.feature p{color:var(--muted);margin-bottom:0;font-size:.93rem}.pricing{grid-template-columns:repeat(auto-fit,minmax(275px,1fr));align-items:start;gap:1.5rem;display:grid}.plan-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;height:100%;padding:1.75rem;display:flex;position:relative}.plan-card.recommended{border-color:var(--primary);box-shadow:var(--shadow)}.plan-flag{background:var(--primary);color:#fff;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:.25rem .8rem;font-size:.72rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.plan-name{font-family:var(--font-display);margin-bottom:.15rem;font-size:1.5rem}.plan-tagline{color:var(--muted);min-height:2.6em;font-size:.9rem}.plan-price{font-family:var(--font-display);margin:.6rem 0 .15rem;font-size:2.4rem;line-height:1}.plan-price small{font-family:var(--font-sans);color:var(--muted);font-size:.85rem;font-weight:500}.plan-list{gap:.6rem;margin:1.25rem 0 1.5rem;padding:0;font-size:.93rem;list-style:none;display:grid}.plan-list li{color:var(--ink-soft);align-items:flex-start;gap:.6rem;display:flex}.plan-list li:before{content:"✓";color:var(--primary);flex:none;font-weight:700}.plan-list li.soon{color:var(--muted)}.plan-list li.soon:before{content:"○";color:var(--line-strong)}.plan-card .btn{margin-top:auto}.quote{text-align:center;max-width:44rem;margin-inline:auto}.quote blockquote{font-family:var(--font-display);color:var(--ink);margin:0 0 1rem;font-size:clamp(1.3rem,2.6vw,1.75rem);line-height:1.4}.cta-band{background:var(--primary);color:#fff;border-radius:var(--radius-lg);text-align:center;padding:clamp(2rem,5vw,3.25rem)}.cta-band h2{color:#fff}.cta-band p{color:#ffffffc7;max-width:34rem;margin-inline:auto}.cta-band .btn-primary{color:var(--primary-ink);background:#fff}.cta-band .btn-primary:hover{background:var(--accent-soft)}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:3rem;padding:2.5rem 0;font-size:.9rem}.site-footer .inner{flex-wrap:wrap;justify-content:space-between;gap:1.5rem;display:flex}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--primary)}.footer-links{flex-wrap:wrap;gap:1.25rem;display:flex}.seating-layout{grid-template-columns:270px 1fr;align-items:start;gap:1.25rem;display:grid}@media (width<=1000px){.seating-layout{grid-template-columns:1fr}}.guest-pool{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;max-height:calc(100vh - 2rem);padding:1rem;display:flex;position:sticky;top:1rem}@media (width<=1000px){.guest-pool{max-height:none;position:static}}.guest-pool h3{margin-bottom:.15rem;font-size:1rem}.pool-list{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);flex-wrap:wrap;align-content:flex-start;gap:.4rem;min-height:110px;margin-top:.75rem;padding:.5rem;transition:background .15s,border-color .15s;display:flex;overflow-y:auto}.pool-list.drop-active{background:var(--primary-soft);border-color:var(--primary)}.guest-chip{background:var(--surface-2);border:1px solid var(--line-strong);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .7rem;font-size:.85rem;font-weight:550;transition:border-color .12s,background .12s;display:inline-flex}.guest-chip:hover{border-color:var(--primary);background:var(--primary-soft)}.guest-chip.is-dragging{opacity:.35}.guest-chip.valgt{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.guest-chip .dot{border-radius:50%;flex:none;width:7px;height:7px}.guest-chip .dot.attending{background:var(--success)}.guest-chip .dot.pending{background:var(--line-strong)}.guest-chip .dot.declined{background:var(--danger)}.drag-ghost{z-index:100;pointer-events:none;box-shadow:var(--shadow-lg);background:var(--surface);border-color:var(--primary);cursor:grabbing;position:fixed;transform:translate(-50%,-50%)rotate(-3deg)}.floor-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.floor-toolbar{border-bottom:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex}.floor-toolbar .spacer{margin-left:auto}.floor{background:repeating-linear-gradient(90deg, transparent 0 39px, color-mix(in srgb, var(--line) 60%, transparent) 39px 40px), repeating-linear-gradient(0deg, transparent 0 39px, color-mix(in srgb, var(--line) 60%, transparent) 39px 40px), var(--bg);touch-action:pan-x pan-y;height:620px;position:relative;overflow:auto}@media (width<=900px){.floor{height:clamp(360px,58vh,620px)}}.floor-canvas{width:1400px;height:1000px;position:relative}.table-node{position:absolute;transform:translate(-50%,-50%)}.table-shape{background:var(--surface);border:2px solid var(--primary);box-shadow:var(--shadow);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;text-align:center;place-items:center;padding:.4rem;display:grid;position:relative}.table-shape.round{border-radius:50%}.table-shape.rect{border-radius:10px}.table-node.is-dragging .table-shape{cursor:grabbing;border-style:dashed}.table-name{font-family:var(--font-display);text-overflow:ellipsis;max-width:100%;font-size:.92rem;line-height:1.15;overflow:hidden}.table-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem}.table-tools{opacity:0;gap:.15rem;transition:opacity .15s;display:flex;position:absolute;top:-12px;right:-12px}.table-node:hover .table-tools,.table-node:focus-within .table-tools{opacity:1}.table-tools button{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;width:24px;height:24px;box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;padding:0;font-size:.72rem;line-height:1;display:grid}.table-tools button:hover{background:var(--bg-tint)}@media (hover:none){.table-tools{opacity:1}.table-tools button{width:32px;height:32px;font-size:.85rem}}.table-tools button.danger:hover{background:var(--danger-soft);color:var(--danger)}.seat{border:1.5px dashed var(--line-strong);background:var(--surface);width:44px;height:44px;color:var(--muted);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;font-size:.68rem;font-weight:700;transition:background .12s,border-color .12s,transform .12s;display:grid;position:absolute;transform:translate(-50%,-50%)}.seat.occupied{border-style:solid;border-color:color-mix(in srgb, var(--primary) 45%, transparent);background:var(--primary-soft);color:var(--primary-ink);cursor:grab}.seat.drop-active{border-color:var(--accent);background:var(--accent-soft);transform:translate(-50%,-50%)scale(1.14)}.seat.is-dragging{opacity:.35}.seat.valgt{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.seat.kan-velges:not(.valgt){border-color:color-mix(in srgb, var(--accent) 55%, transparent)}.valgt-melding{color:var(--ink-soft);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;align-items:center;gap:.5rem;max-width:100%;padding:.25rem .3rem .25rem .75rem;font-size:.83rem;display:inline-flex}.valgt-melding strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.valgt-melding button{background:color-mix(in srgb, var(--accent) 22%, transparent);width:26px;height:26px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;flex:none;font-size:.72rem;line-height:1}@media (pointer:coarse){.valgt-melding button{width:34px;height:34px}}.seat-tooltip{background:var(--ink);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:5;border-radius:5px;padding:.15rem .5rem;font-size:.72rem;font-weight:500;transition:opacity .14s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.seat:hover .seat-tooltip{opacity:1}.seating-legend{color:var(--muted);border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;gap:1rem;padding:.6rem 1rem;font-size:.82rem;display:flex}.seating-legend span{align-items:center;gap:.35rem;display:inline-flex}.legend-swatch{border:1.5px dashed var(--line-strong);background:var(--surface);border-radius:50%;width:13px;height:13px}.legend-swatch.filled{border-style:solid;border-color:color-mix(in srgb, var(--primary) 45%, transparent);background:var(--primary-soft)}:root{--bg:#fbf8f4;--bg-tint:#f4efe7;--surface:#fff;--surface-2:#f8f4ee;--ink:#221f1c;--ink-soft:#4a443d;--muted:#6e675f;--line:#e7dfd3;--line-strong:#d6cabb;--primary:#2e4f45;--primary-hover:#23403a;--primary-soft:#e8efe9;--primary-ink:#1d332d;--accent:#b08d57;--accent-soft:#f5ecdd;--rose:#c08497;--rose-soft:#f8edf0;--danger:#a3402f;--danger-soft:#faeceb;--success:#3f6b4f;--radius-sm:8px;--radius:14px;--radius-lg:22px;--shadow-sm:0 1px 2px #221f1c0d;--shadow:0 6px 22px -12px #221f1c40;--shadow-lg:0 24px 60px -30px #221f1c66;--font-display:"Iowan Old Style", "Palatino Linotype", P052, Palatino, "Book Antiqua", Georgia, serif;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--header-h:68px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0 0 .5em;font-weight:600;line-height:1.15}h1{font-size:clamp(2.2rem,5vw,3.6rem)}h2{font-size:clamp(1.6rem,3vw,2.3rem)}h3{font-size:1.25rem}p{margin:0 0 1em}a{color:var(--primary);-webkit-text-decoration-color:color-mix(in srgb, var(--primary) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--primary) 35%, transparent);text-underline-offset:3px}img{max-width:100%}.ikon{flex:none;width:1em;height:1em;display:block}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.container{width:min(1140px,100% - 2.5rem);margin-inline:auto}.stack>*+*{margin-top:var(--stack-gap,1rem)}.row{align-items:center;gap:.75rem;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.grid{gap:1.25rem;display:grid}.muted{color:var(--muted)}.small{font-size:.875rem}.tiny{font-size:.78rem}.center{text-align:center}.nowrap{white-space:nowrap}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.62rem 1.35rem;font-size:.95rem;font-weight:550;line-height:1.2;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s,box-shadow .15s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{color:var(--ink-soft);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-tint)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.btn-sm{padding:.35rem .85rem;font-size:.85rem}.btn-lg{padding:.85rem 1.9rem;font-size:1.02rem}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.4rem}.card-flush{padding:0;overflow:hidden}.panel{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem}.divider{background:var(--line);border:0;height:1px;margin:1.25rem 0}.badge{letter-spacing:.02em;background:var(--bg-tint);color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .65rem;font-size:.76rem;font-weight:600;display:inline-flex}.badge-primary{background:var(--primary-soft);color:var(--primary-ink);border-color:color-mix(in srgb, var(--primary) 20%, transparent)}.badge-accent{background:var(--accent-soft);color:#6f562e;border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.badge-rose{background:var(--rose-soft);color:#8a4f61;border-color:color-mix(in srgb, var(--rose) 35%, transparent)}.badge-success{color:var(--success);background:#e9f1eb;border-color:#cadcd0}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:#efd4cf}.field{margin-bottom:1rem;display:block}.field>.label{color:var(--ink-soft);margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--ink);font:inherit;padding:.62rem .8rem;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.textarea{resize:vertical;min-height:90px}.hint{color:var(--muted);margin-top:.3rem;font-size:.8rem}.field-error{color:var(--danger);margin-top:.3rem;font-size:.8rem}.checkbox{color:var(--ink-soft);cursor:pointer;align-items:flex-start;gap:.6rem;margin-bottom:.7rem;font-size:.9rem;display:flex}.checkbox input{width:17px;height:17px;accent-color:var(--primary);flex:none;margin-top:.25rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 1rem;display:grid}.alert{border-radius:var(--radius-sm);border:1px solid;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.alert-error{background:var(--danger-soft);color:#7d2f22;border-color:#eed3ce}.alert-success{color:#2c5139;background:#e9f1eb;border-color:#cadcd0}.alert-info{background:var(--accent-soft);color:#6f562e;border-color:#e6d5b8}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:.92rem}table.data th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:.7rem .9rem;font-size:.76rem;font-weight:700}table.data td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.7rem .9rem}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover{background:var(--surface-2)}.num{text-align:right;font-variant-numeric:tabular-nums}.tabell-avkryssing{width:17px;height:17px;accent-color:var(--primary);cursor:pointer}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:60;background:#221f1c6b;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:90vh;padding:1.6rem;overflow-y:auto}.modal h2{margin-bottom:.25rem;font-size:1.5rem}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-top:1.4rem;display:flex}.empty{text-align:center;color:var(--muted);padding:3rem 1.5rem}.empty .empty-icon{color:var(--line-strong);place-items:center;margin-bottom:.5rem;font-size:2.4rem;display:grid}.empty h3{color:var(--ink);margin-bottom:.35rem}.spinner{border:2px solid var(--line-strong);border-top-color:var(--primary);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{min-height:60vh;color:var(--muted);place-items:center;gap:.75rem;display:grid}.progress{background:var(--bg-tint);border-radius:999px;height:8px;overflow:hidden}.progress>span{background:var(--primary);border-radius:999px;height:100%;transition:width .4s;display:block}.progress.over>span{background:var(--danger)}@media (pointer:coarse){.icon-btn{min-width:40px;min-height:40px;font-size:1.05rem}.btn-sm{min-height:40px;padding-inline:1rem}.checkbox input{width:24px;height:24px;margin-top:.05rem}.tabell-avkryssing{width:24px;height:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{grid-template-columns:258px 1fr;min-height:100vh;display:grid}.app-shell>*{min-width:0}.app-topbar,.meny-bakteppe{display:none}.meny-knapp{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;flex:none;align-items:center;gap:.55rem;padding:0 .8rem;font-size:.9rem;font-weight:600;display:inline-flex}.meny-strek{position:relative}.meny-strek,.meny-strek:before,.meny-strek:after{background:currentColor;border-radius:2px;width:17px;height:2px;display:block}.meny-strek:before,.meny-strek:after{content:"";position:absolute;left:0}.meny-strek:before{top:-6px}.meny-strek:after{top:6px}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:1.25rem 1rem max(1.25rem, env(safe-area-inset-bottom));flex-direction:column;gap:1.25rem;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-topp{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.lukk-meny{display:none}@media (width<=900px){.app-shell{grid-template-columns:1fr}.app-topbar{z-index:45;padding:.55rem clamp(.9rem,4vw,1.25rem);padding-top:max(.55rem, env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:.7rem;display:flex;position:sticky;top:0}.app-topbar .brand{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1.05rem;overflow:hidden}.app-topbar .badge{margin-left:auto}.sidebar{z-index:55;border-right:1px solid var(--line);width:min(302px,84vw);height:100dvh;box-shadow:var(--shadow-lg);visibility:hidden;transition:transform .22s,visibility .22s;position:fixed;top:0;left:0;transform:translate(-100%)}.app-shell.meny-apen .sidebar{visibility:visible;transform:none}.meny-bakteppe:not([hidden]){z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#221f1c6b;display:block;position:fixed;inset:0}body.meny-apen{overflow:hidden}.lukk-meny{border:1px solid var(--line-strong);background:var(--surface);width:40px;height:40px;color:var(--muted);cursor:pointer;border-radius:50%;flex:none;place-items:center;font-size:.95rem;line-height:1;display:grid}}.wedding-switch{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:.85rem}.wedding-switch .names{font-family:var(--font-display);font-size:1.05rem;line-height:1.25}.wedding-switch .meta{color:var(--muted);margin-top:.15rem;font-size:.8rem}.countdown{border-top:1px solid var(--line);align-items:baseline;gap:.35rem;margin-top:.6rem;padding-top:.6rem;display:flex}.countdown strong{font-family:var(--font-display);color:var(--primary);font-size:1.5rem;line-height:1}.countdown span{color:var(--muted);font-size:.8rem}.nav-group{gap:.15rem;display:grid}.nav-label{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;padding:0 .7rem;font-size:.7rem;font-weight:700}.nav-item{border-radius:var(--radius-sm);color:var(--ink-soft);border:1px solid #0000;align-items:center;gap:.65rem;padding:.55rem .7rem;font-size:.93rem;font-weight:500;text-decoration:none;transition:background .14s,color .14s;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--primary-soft);color:var(--primary-ink);border-color:color-mix(in srgb, var(--primary) 18%, transparent);font-weight:600}.nav-item .icon{width:1.15em;height:1.15em;color:var(--muted)}.nav-item.active .icon{color:var(--primary)}.nav-item .lock{color:var(--muted);margin-left:auto;font-size:.95rem;display:flex}.nav-item.locked{color:var(--muted)}.sidebar-foot{gap:.5rem;margin-top:auto;font-size:.85rem;display:grid}.upsell{background:linear-gradient(150deg, var(--accent-soft), var(--rose-soft));border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:var(--radius);padding:.9rem}.upsell h4{font-family:var(--font-display);margin:0 0 .2rem;font-size:1rem}.upsell p{color:var(--ink-soft);margin-bottom:.7rem;font-size:.82rem}.app-main{width:100%;max-width:1180px;padding:1.75rem clamp(1rem,3vw,2.5rem) 4rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.page-head h1{margin-bottom:.15rem;font-size:clamp(1.7rem,3.4vw,2.2rem)}.page-head p{color:var(--muted);max-width:46rem;margin-bottom:0}.page-actions{flex-wrap:wrap;gap:.6rem;display:flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.75rem;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem}.stat .stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.78rem;font-weight:600}.stat .stat-value{font-family:var(--font-display);margin:.3rem 0 .1rem;font-size:1.95rem;line-height:1.1}.stat .stat-sub{color:var(--muted);font-size:.83rem}.tool-grid{grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:1.1rem;display:grid}.tool-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;flex-direction:column;gap:.4rem;padding:1.3rem;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex}.tool-card:hover{box-shadow:var(--shadow);border-color:var(--line-strong);transform:translateY(-2px)}.tool-card.is-locked{background:var(--surface-2)}.tool-card .tool-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.tool-card .tool-icon{color:var(--primary);font-size:1.4rem;display:grid}.tool-card h3{margin:0;font-size:1.08rem}.tool-card p{color:var(--muted);margin:0;font-size:.9rem}.tool-card .tool-foot{color:var(--primary);margin-top:.5rem;font-size:.85rem;font-weight:600}.lock-screen{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);max-width:34rem;box-shadow:var(--shadow-sm);margin:3rem auto;padding:2.5rem 2rem}.lock-screen .lock-icon{color:var(--accent);place-items:center;margin-bottom:.75rem;font-size:2.2rem;display:grid}.onboarding{place-items:center;min-height:100vh;padding:2rem 1.25rem 4rem;display:grid}.onboarding-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(620px,100%);box-shadow:var(--shadow);padding:clamp(1.5rem,4vw,2.5rem)}.steps-bar{gap:.4rem;margin-bottom:1.75rem;display:flex}.steps-bar i{background:var(--line);border-radius:999px;flex:1;height:4px;transition:background .25s}.steps-bar i.done{background:var(--primary)}.step-count{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem;font-size:.78rem;font-weight:700}.onboarding-card h1{margin-bottom:.4rem;font-size:clamp(1.6rem,3.5vw,2.1rem)}.onboarding-card .lead{color:var(--muted);margin-bottom:1.5rem}.onboarding-actions{justify-content:space-between;gap:.75rem;margin-top:1.75rem;display:flex}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.7rem;display:grid}.choice{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius);cursor:pointer;text-align:center;font:inherit;padding:.9rem;font-size:.92rem;transition:border-color .15s,background .15s}.choice:hover{border-color:var(--primary)}.choice.selected{border-color:var(--primary);background:var(--primary-soft);font-weight:600}.choice .choice-icon{margin-bottom:.3rem;font-size:1.4rem;display:block}.auth-page{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (width<=860px){.auth-page{grid-template-columns:1fr}.auth-aside{display:none}}.auth-aside{background:var(--primary);color:#fff;flex-direction:column;justify-content:center;padding:3rem;display:flex}.auth-aside h2{color:#fff;font-size:2rem}.auth-aside p,.auth-aside li{color:#ffffffc7}.auth-aside ul{gap:.65rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.auth-aside li{gap:.6rem;display:flex}.auth-aside li:before{content:"✓";color:var(--accent-soft)}.auth-form-wrap{place-items:center;padding:2.5rem 1.5rem;display:grid}.auth-form{width:min(400px,100%)}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.toolbar .input,.toolbar .select{width:auto;min-width:170px}.search-input{flex:1;min-width:200px!important}.quota{color:var(--muted);align-items:center;gap:.6rem;margin-left:auto;font-size:.85rem;display:flex}.quota .progress{width:90px}.rsvp-dot{border-radius:50%;width:8px;height:8px;margin-right:.4rem;display:inline-block}.rsvp-dot.attending{background:var(--success)}.rsvp-dot.declined{background:var(--danger)}.rsvp-dot.pending{background:var(--line-strong)}.row-actions{justify-content:flex-end;gap:.3rem;display:flex}.icon-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);background:0 0;border:1px solid #0000;padding:.25rem .45rem;font-size:.95rem;line-height:1}.icon-btn:hover{background:var(--bg-tint);color:var(--ink)}.icon-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}.budget-summary{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.category-block{margin-bottom:1.5rem}.category-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.category-head h3{margin:0;font-size:1.1rem}.category-head .sum{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.88rem}.task-list{gap:.5rem;display:grid}.task{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:flex-start;gap:.8rem;padding:.85rem 1rem;transition:border-color .15s;display:flex}.task:hover{border-color:var(--line-strong)}.task.done{background:var(--surface-2)}.task.done .task-title{color:var(--muted);text-decoration:line-through}.task input[type=checkbox]{width:19px;height:19px;accent-color:var(--primary);cursor:pointer;flex:none;margin-top:.15rem}@media (pointer:coarse){.task input[type=checkbox]{width:24px;height:24px}}.task-body{flex:1;min-width:0}.task-title{font-weight:550}.task-meta{color:var(--muted);flex-wrap:wrap;gap:.6rem;margin-top:.15rem;font-size:.82rem;display:flex}.task-meta .overdue{color:var(--danger);font-weight:600}.task-group-title{font-family:var(--font-display);margin:1.5rem 0 .6rem;font-size:1.15rem}.provider-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin:1rem 0 1.25rem;display:grid}.provider{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius);text-align:center;cursor:pointer;font:inherit;padding:.85rem;font-size:.9rem;font-weight:550}.provider.selected{border-color:var(--primary);background:var(--primary-soft)}.provider:disabled{opacity:.55;cursor:not-allowed}.provider small{color:var(--muted);margin-top:.15rem;font-size:.75rem;font-weight:400;display:block}.rsvp-page{background:radial-gradient(circle at 15% 0%, color-mix(in srgb, var(--rose) 16%, transparent), transparent 45%), radial-gradient(circle at 85% 100%, color-mix(in srgb, var(--primary) 14%, transparent), transparent 45%), var(--bg);place-items:center;min-height:100vh;padding:2.5rem 1.25rem;display:grid}.rsvp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(540px,100%);box-shadow:var(--shadow-lg);text-align:center;padding:clamp(1.75rem,5vw,2.75rem)}.rsvp-names{font-family:var(--font-display);margin:.5rem 0;font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.15}.rsvp-names .amp{color:var(--accent);margin:.1em 0;font-size:.6em;font-style:italic;display:block}.rsvp-meta{color:var(--muted);font-size:.98rem}.rsvp-answer{grid-template-columns:1fr 1fr;gap:.75rem;margin:1.5rem 0 1rem;display:grid}@media (width<=420px){.rsvp-answer{grid-template-columns:1fr}}.rsvp-choice{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:var(--radius);cursor:pointer;font:inherit;padding:1.1rem .75rem;font-size:1rem;font-weight:600;transition:border-color .15s,background .15s}.rsvp-choice .big{margin-bottom:.25rem;font-size:1.6rem;display:block}.rsvp-choice:hover{border-color:var(--primary)}.rsvp-choice.selected.yes{border-color:var(--success);background:#e9f1eb}.rsvp-choice.selected.no{border-color:var(--danger);background:var(--danger-soft)}.rsvp-done{padding:1rem 0}.rsvp-done .big-check{margin-bottom:.5rem;font-size:2.8rem;display:block}.settings-section{margin-bottom:1.5rem}.danger-zone{border-color:color-mix(in srgb, var(--danger) 30%, var(--line));background:var(--danger-soft)}.legal-page{max-width:46rem;margin-inline:auto;padding:3rem 1.25rem 5rem}.legal-page h2{margin-top:2rem;font-size:1.4rem}.legal-page ul{color:var(--ink-soft);padding-left:1.2rem}.legal-page li{margin-bottom:.4rem}
