:root{--night:#09172e;--navy:#102a4a;--gold:#ffdb8a;--cream:#fff2d7;--berry:#8e233a;--ink:#4c2e25;--muted:#d4c9c2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.45 system-ui,-apple-system,'Segoe UI',sans-serif;background:radial-gradient(ellipse at top,#193e68 0,#0b1735 62%,#080b22 100%);color:#fff7ed;min-height:100vh}button,select,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.52;cursor:not-allowed}a{color:inherit}img{max-width:100%}input,select,textarea{accent-color:#af3445}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #fbd37b;outline-offset:2px}[hidden]{display:none!important}.site-shell{min-height:100vh;max-width:840px;margin:auto;box-shadow:0 0 55px #0008;background:linear-gradient(180deg,#102644,#0b1932 40%,#19112c)}.topbar{z-index:45;position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:11px 15px;background:#10243eea;backdrop-filter:blur(14px);border-bottom:1px solid #e7c77a68;gap:8px}.logo{font:800 clamp(21px,4vw,29px) Georgia,serif;letter-spacing:-.8px;color:var(--gold);text-shadow:0 1px 7px #ffb94490;text-decoration:none}.logo span{color:#ffeaa7}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:750;color:#f1c4a9;text-transform:uppercase}.top-actions{display:flex;gap:5px;align-items:center}.top-actions select,.outlinebtn{background:#0e1d33;border:1px solid #dab46e77;border-radius:22px;padding:8px 10px;color:#fff1cc;font-size:12px;font-weight:800}.page{display:none;padding-bottom:90px}.page.active{display:block}.hero-copy{text-align:center;padding:25px 20px 10px}.hero-copy h1{font:800 clamp(27px,5.7vw,39px) Georgia,serif;color:#ffe1a2;margin:8px 0}.hero-copy p{max-width:550px;margin:0 auto;font-size:14px;line-height:1.65;color:#f2e4d9}.northscene{position:relative;margin:15px auto 10px;width:calc(100% - 22px);max-width:710px;aspect-ratio:1199/1312;border:3px solid #e7bb70;border-radius:24px;overflow:hidden;box-shadow:0 0 0 3px #fff3bd22,0 20px 50px #0009;isolation:isolate;background:#0c2d40}.sceneart{height:100%;width:100%;object-fit:fill;display:block;pointer-events:none;user-select:none}.aurora-wave{position:absolute;pointer-events:none;z-index:2;left:-50%;top:-9%;width:190%;height:27%;opacity:.65;mix-blend-mode:screen;filter:blur(11px);background:repeating-linear-gradient(98deg,transparent 0%,#44ffe663 5%,#b449ff5c 10%,#68ffc489 16%,transparent 24%);transform-origin:center center;animation:auroraDrift 9s ease-in-out infinite alternate}.aurora-wave.two{top:-2%;opacity:.4;animation-duration:13s;animation-direction:alternate-reverse;filter:blur(18px)}@keyframes auroraDrift{0%{transform:translateX(-17%) skewY(-12deg) rotate(-6deg) scaleX(.77)}50%{transform:translateX(5%) skewY(8deg) rotate(4deg) scaleX(1.03)}100%{transform:translateX(12%) skewY(-5deg) rotate(-3deg) scaleX(.85)}}.snowcover{position:absolute;inset:0;pointer-events:none;z-index:7;overflow:hidden}.snowflake{position:absolute;top:-10px;border-radius:100%;background:white;filter:drop-shadow(0 0 3px #fff);animation:flakefall linear infinite}@keyframes flakefall{from{transform:translate(0,-18px)}to{transform:translate(14px,1400px)}}.lanternlight{position:absolute;pointer-events:none;z-index:3;left:85%;top:54%;width:30%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff9d9,#ffc26495 25%,#ff9e2c40 52%,transparent 76%);transform:translate(-50%,-50%);mix-blend-mode:screen;filter:blur(9px);transition:opacity .85s}.locked-scene{position:absolute;z-index:8;bottom:1%;left:4%;right:4%;background:#091a30e5;border:1px solid #ecd184a8;border-radius:16px;display:flex;gap:10px;align-items:center;justify-content:center;padding:12px;color:#ffe8b2;text-align:center}.locked-scene span{font-size:24px}.welcome-actions{text-align:center;padding:4px 12px 2px}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:800;display:inline-flex;justify-content:center;align-items:center;gap:8px;box-shadow:0 4px 12px #03041330;text-decoration:none;text-align:center}.btn.gold{background:linear-gradient(135deg,#ffedb7,#f2b65d);color:#6c2e24}.btn.berry{background:linear-gradient(135deg,#972c42,#762034);color:#fff7df}.btn.outline{background:transparent;color:#6a3b27;border:1px solid #bf9863}.btn.full{width:100%}.tinybtn{border:1px solid #c5a77d9d;background:#1c3044;color:#e7d8c8;font-size:11px;padding:6px;border-radius:8px}.small-muted{font-size:12px;color:#b9c0d2;line-height:1.4}.hero-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px}.hero-card{display:flex;gap:3px;flex-direction:column;align-items:center;border:1px solid #bda06b6e;border-radius:14px;background:#2e314b9a;padding:11px 4px}.hero-card span{font-size:24px}.hero-card b{font:700 27px Georgia;color:#ffe3a1}.hero-card small{font-size:11px;text-align:center}.cream-panel{background:linear-gradient(135deg,#fff7e6,#f4dfb8);color:var(--ink);border:1px solid #caa873;border-radius:18px;padding:17px;margin:16px 13px;box-shadow:0 7px 24px #0004}.cream-panel h1,.cream-panel h2,.cream-panel h3{font-family:Georgia,serif;color:#732637;margin:0 0 10px}.cream-panel h2{font-size:22px}.cream-panel p{line-height:1.58;font-size:14px}.gift-offer{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.giftmark{font-size:39px}.chip{display:inline-block;background:#f6e6cf;border:1px solid #c7ae85;border-radius:999px;font-size:12px;padding:6px 10px;color:#88582e}.auth-panel{max-width:560px;margin:32px auto}.auth-panel h1{font-size:25px}.auth-panel label,.cream-panel label{display:block;font-weight:700;margin:12px 0;font-size:13px}.auth-panel label span,.cream-panel label span{display:block;margin-bottom:5px}.auth-panel input:not([type=checkbox]),.cream-panel input:not([type=checkbox]),.cream-panel select,.cream-panel textarea{width:100%;padding:11px;background:#fffdf8;border:1px solid #c7a778;border-radius:10px;color:#38251e}.checkboxlabel{display:flex!important;gap:10px;align-items:flex-start}.checkboxlabel input{width:20px;height:20px;flex-shrink:0}.checkboxlabel span{margin:0!important}.auth-alt,.btnrow{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:13px}.linkbutton{border:0;background:none;text-decoration:underline;color:#8b2b3d;cursor:pointer;padding:8px}.playerbar{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:10px 13px;background:#0d1a34;border-bottom:1px solid #ddc38a30;font-size:13px}.playerstars{border:1px solid #e8c68388;background:#51402769;padding:5px 7px;border-radius:999px;color:#ffe8b5}.tab{display:none}.tab.active{display:block}.introline{padding:0 20px;margin:17px 0 0;text-align:center;font-size:14px;line-height:1.7;color:#f9e6cf}.sceneDoors,.sceneStars{position:absolute;inset:0}.sceneDoors{z-index:6}.sceneStars{z-index:5;pointer-events:none}.tree-ball{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%);width:7.2%;aspect-ratio:1;border-radius:50%;font:800 clamp(12px,2.8vw,22px) Georgia,serif;color:#ffe9bf;border:1px solid #f3cb6b;background:radial-gradient(circle at 23% 16%,#f85463,#a00e27 48%,#4b071d 96%);text-shadow:0 1px 2px #25030d;box-shadow:inset -2px -4px 5px #3c0009ac,0 0 4px #ffce8b;transition:filter .2s,box-shadow .3s;touch-action:manipulation;cursor:pointer;padding:0}.tree-ball:active{filter:brightness(1.4)}.tree-ball.locked{filter:grayscale(.35) brightness(.73)}.tree-ball.available{box-shadow:0 0 10px 3px #ffe7a299,inset -2px -4px 5px #3c0009}.tree-ball.completed{background:radial-gradient(circle at 20% 20%,#ffe9a6,#c69f20 48%,#5b411c 90%);color:#462a17;text-shadow:none;box-shadow:0 0 10px 4px #ffda7b}.scene-star{position:absolute;transform:translate(-50%,-50%);font-size:clamp(10px,2.2vw,21px);color:#10172b;text-shadow:0 0 1px #ffe7a1;opacity:.7;transition:all .4s}.scene-star.lit{color:#ffda5a;text-shadow:0 0 8px #ffe88e,0 0 14px #f9c452;opacity:1;animation:twinkle 2s infinite alternate}@keyframes twinkle{to{text-shadow:0 0 3px #fff,0 0 18px #ffe285;transform:translate(-50%,-50%) scale(1.18)}}.info-row{display:flex;gap:8px;justify-content:space-between;align-items:center;margin:15px 15px 8px;color:#ffe1ab;font-size:13px}.info-row b{font-size:16px}.progress-track{height:10px;margin:0 14px;background:#d8d6df45;border:1px solid #dfc27991;border-radius:99px;overflow:hidden}.progress-track>div{height:100%;background:linear-gradient(90deg,#de9332,#ffe7a6);width:0;transition:width .7s}.progress-track.cream{margin:10px 0;background:#d6af7488}.sectiontitle{font:700 27px Georgia,serif;text-align:center;color:#ffdf9d;margin:24px 14px 9px}.sectioninfo{text-align:center;font-size:14px;line-height:1.5;color:#e9dfd7;padding:0 18px;margin:0 0 15px}.door-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 15px}.door-tile{aspect-ratio:1;border:2px solid #ddbd79;border-radius:15px;background:radial-gradient(circle at 25% 15%,#c15461,#6c172e 65%,#3d1029);color:#ffefca;font:800 27px Georgia;display:flex;flex-direction:column;align-items:center;justify-content:center}.door-tile small{font:500 10px system-ui}.door-tile.locked{opacity:.62;filter:grayscale(.45)}.door-tile.completed{background:linear-gradient(135deg,#dcb751,#78994c);color:#462413}.starmap-panel{border:3px double #e9bb65;border-radius:20px;background:radial-gradient(ellipse at center,#1d4670,#101a44 78%);margin:15px;padding:15px 9px 19px;color:#fff}.starboard-heading{text-align:center;font:700 23px Georgia;color:#ffe5a6;margin:0 0 12px}.mapStars{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.map-star{text-align:center;min-height:62px;border:1px dashed #d6b46d70;border-radius:10px;padding:6px 0}.map-star .symbol{font-size:26px;line-height:1.1;display:block;color:#485371;text-shadow:0 0 1px #d3b877}.map-star.lit .symbol{color:#ffe27d;text-shadow:0 0 5px #ffd57a,0 0 14px #ffd85c;animation:twinkleLight 2s ease-in-out infinite alternate}@keyframes twinkleLight{to{filter:brightness(1.38)}}.map-star small{display:block;font-size:10px;color:#dccfaf}.starmap-caption{font-size:13px;text-align:center;color:#f5e3bb}.parentGate{text-align:center}.puzzle{font-weight:850;font-size:24px;margin:14px}.parentGate input{max-width:115px!important;display:inline-block}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filter-grid label{margin:5px 0}.done-counter{font-weight:800;color:#7f3444}.bus-list{padding:0 13px}.bus-item{background:#fff7e6;border:1px solid #d3ae74;color:#563322;border-radius:15px;margin:13px 0;overflow:hidden}.bus-item.done{opacity:.75}.bus-item summary{display:flex;gap:10px;align-items:center;padding:13px;cursor:pointer;list-style:none;font-weight:850}.bus-item summary::after{content:'⌄';margin-left:auto}.bus-item[open] summary::after{content:'⌃'}.bus-num{border:1px solid #ba9c64;background:#f5e0ad;width:33px;height:33px;border-radius:10px;display:grid;place-items:center;color:#6d3340;flex:none}.bus-body{padding:0 14px 17px}.bus-body p{font-size:14px;line-height:1.65}.bus-body textarea{min-height:94px;font:15px/1.6 'Comic Sans MS','Segoe Print',cursive!important;resize:vertical}.bus-meta{display:inline-flex;align-items:center;gap:4px;font-size:11px;background:#f4e7c9;padding:4px 8px;margin:0 4px 0 0;border-radius:999px}.bus-toggles{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bus-toggles label{display:flex;gap:7px;align-items:center;margin:5px 0}.bus-toggles input{width:19px;height:19px}.bus-buttons{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.bus-buttons .btn{padding:9px 11px;font-size:12px}.print-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between}.print-toolbar label{min-width:140px}.extras-grid{display:grid;gap:15px}.extra-card{border:1px solid #d9b887;border-radius:12px;padding:12px;background:#fffdf4}.extra-card img{width:100%;border-radius:9px;background:white}.extra-card p{font-size:13px}.extra-card .btn{margin-top:7px}.bottomnav{position:fixed;z-index:40;bottom:0;left:50%;transform:translateX(-50%);width:min(840px,100%);display:grid;grid-template-columns:repeat(5,1fr);background:#0b192ef2;border-top:1px solid #d6ac6f77;backdrop-filter:blur(14px);padding:7px 4px max(9px,env(safe-area-inset-bottom))}.bottomnav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;color:#c5c4d0;font-size:22px;gap:1px}.bottomnav button small{font-size:10px}.bottomnav button.selected{color:#ffd981}.dialog-overlay{position:fixed;inset:0;z-index:60;background:#020917d9;display:none;justify-content:center;align-items:end}.dialog-overlay.show{display:flex}.dialog-window{width:min(710px,100%);height:min(96dvh,850px);border:2px solid #dfb771;border-bottom:0;border-radius:22px 22px 0 0;background:#fff2dc;color:#4f2e26;display:flex;flex-direction:column;overflow:hidden}.dialoghead{padding:13px 17px;display:flex;gap:10px;align-items:center;justify-content:space-between;background:#fff3dd;border-bottom:1px solid #d8b989}.dialoghead h2{margin:2px 0;font:700 22px Georgia;color:#7d2e39}.dialoghead small{font-size:12px;color:#926645}.dialoghead button{border:none;background:#e9d4b6;border-radius:50%;width:38px;height:38px;color:#653e32;font-size:20px}.dialog-scroll{padding:12px 15px 28px;overflow:auto}.story-image{display:block;width:100%;max-height:500px;object-fit:contain;background:#eddbba;border-radius:13px;border:1px solid #dcbd91}.story-text{white-space:pre-wrap;line-height:1.72;background:#fffaf0;padding:15px;border-radius:13px;font-size:15px}.dialog-scroll h3{font-family:Georgia;color:#862d3c;margin:17px 0 9px}.task-row{display:flex;gap:11px;align-items:flex-start;padding:12px;border:1px solid #d9bc89;border-radius:11px;margin:8px 0;background:#fff8eb}.task-row input{width:21px;height:21px;flex:none;margin-top:2px}.task-row label{font-size:14px;line-height:1.55;flex:1}.footer{font-size:11px;color:#bec3d4;text-align:center;padding:23px 12px 115px}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);border:1px solid #e0c27e;background:#1a2d3a;color:#fff4d4;border-radius:14px;padding:12px 16px;max-width:90vw;box-shadow:0 4px 30px #0009;display:none;z-index:90;font-size:13px;text-align:center}#toast.visible{display:block}.print-only{display:none}#printLayer{display:none}.print-sheet{min-height:265mm;background:white;display:grid;gap:5mm;padding:6mm;break-after:page;page-break-after:always}.print-sheet.per4{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.print-sheet.per6{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr)}.print-sheet.per9{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.note-card{border:2px double #ac7549;border-radius:10px;background:#fff9e9;color:#753e30;text-align:center;padding:8mm 4mm;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;break-inside:avoid}.note-card::before{content:'✦ ♥ ✦';color:#b32e3a}.note-card h3{font:700 16px Georgia;color:#8e3340;margin:8px 0 5px}.note-card p{font:19px/1.45 'Comic Sans MS','Segoe Print',cursive;white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}.note-card::after{content:'⭐ ♥ ⭐';color:#c38e30}.print-sheet.per9 .note-card{padding:3mm}.print-sheet.per9 .note-card h3{font-size:12px}.print-sheet.per9 .note-card p{font-size:13px}.print-sheet.per4 .note-card p{font-size:21px}.print-image{max-width:100%;width:100%;height:auto;max-height:250mm;object-fit:contain}
/* Admin dashboard */.admin-shell{max-width:1160px;margin:auto;padding-bottom:30px}.admin-top{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:15px;background:#10243ee8;border-bottom:1px solid #dfb87886}.admin-wrap{padding:16px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:10px 0 18px}.admin-tabs button{background:#122e50;border:1px solid #d4ad7270;border-radius:10px;color:#fff3d7;padding:10px 14px;font-weight:800}.admin-tabs button.selected{background:#e9be73;color:#57262b}.admin-pane{display:none}.admin-pane.active{display:block}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.metric{background:#fff5df;color:#593a31;border-radius:15px;padding:16px;border:1px solid #edcb8c}.metric b{font:700 33px Georgia;color:#8b2d42;display:block;margin-top:8px}.metric small{font-size:12px}.admin-table{width:100%;border-collapse:collapse;color:#4f2f27;font-size:13px}.admin-table td,.admin-table th{padding:9px 7px;text-align:left;border-bottom:1px solid #d9b98b;word-break:break-word}.admin-table th{color:#812f42}.admin-table-wrap{overflow:auto}.adminform{display:grid;gap:10px}.adminform .row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.adminform label{margin:0}.adminform textarea{min-height:115px;resize:vertical}.adminform #editStory{min-height:275px}.issued-box{background:#f6e6be;padding:15px;border:2px dashed #a87946;border-radius:12px;white-space:pre-wrap;font-size:14px;color:#612b32;overflow-wrap:anywhere}.admin-status{color:#824535;font-weight:800;font-size:13px}.admin-guide{font-size:13px;color:#715b47;line-height:1.6}.admin-settings .cream-panel{margin-left:0;margin-right:0}@media(min-width:720px){.door-grid{grid-template-columns:repeat(6,1fr)}.auth-panel{margin-top:45px}.extras-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(5,1fr)}.filter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.topbar{padding:8px}.logo{font-size:23px}.eyebrow{font-size:9px}.top-actions select,.outlinebtn{padding:8px 5px}.cream-panel{margin:13px 10px;padding:14px}.mapStars{gap:5px}.map-star{min-height:55px}.map-star .symbol{font-size:24px}.door-grid{gap:6px}.door-tile{font-size:24px}.admin-wrap{padding:10px}.adminform .row{grid-template-columns:1fr}.admin-table{font-size:11px}}@media(prefers-reduced-motion:reduce){.aurora-wave,.snowflake,.scene-star.lit,.map-star.lit{animation:none!important}}@page{size:A4;margin:8mm}@media print{html,body{background:white!important;color:black!important}body>*:not(#printLayer){display:none!important}#printLayer{display:block!important;position:static!important}#printLayer .print-sheet{display:grid!important;min-height:273mm}#printLayer .print-image{display:block;max-height:273mm}*{box-shadow:none!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Nissens berättarröst + den magiska finalstjärnan */
.voice-controls{padding:13px;margin:14px 0;background:#fff5dc;border:2px solid #dab56f;border-radius:15px;color:#60363c}.voice-controls-title{font:700 17px Georgia,serif;color:#7e3947;margin-bottom:10px}.voice-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.voice-actions .btn{font-size:13px;padding:10px 12px}.voice-selector{display:block;margin-top:9px}.voice-selector span{font-size:13px;font-weight:700;display:block;margin-bottom:4px}.voice-selector select{width:100%;padding:10px;border:1px solid #caad7f;border-radius:9px;background:#fffdf6;color:#493023}.voice-controls .small-muted{margin-bottom:0;font-size:12px}.map-star.finale-star .symbol{font-size:35px}.map-star.finale-star.lit .symbol{color:#ffdb71;filter:drop-shadow(0 0 8px #f9ac3b)}.map-star.finale-lantern{border-color:#dcb866}.map-star.finale-lantern .symbol{font-size:30px;filter:grayscale(.75) brightness(.6)}.map-star.finale-lantern.lit .symbol{filter:drop-shadow(0 0 10px gold)}

/* Digital/paper wish list – same layout on all language versions */
.wishlist-panel{border:2px solid #d5aa61;border-radius:20px;background:#fff6e5;color:#512c23;margin:18px 0;padding:18px;box-shadow:0 5px 22px #160b0524}
.wishlist-panel h3{margin:0 0 8px;font-size:1.3rem;color:#812c32}
.wishlist-panel p{line-height:1.45}
.wish-radio{display:flex;align-items:flex-start;gap:10px;border:1px solid #e0c7a0;border-radius:12px;padding:12px;margin:12px 0;background:#fffdfa;cursor:pointer}
.wish-radio input{margin-top:4px;width:20px;height:20px;accent-color:#892636;flex:0 0 20px}
#wishDigitalArea{margin:10px 0}
#wishDigitalArea label{display:block;font-weight:700;margin-bottom:6px}
#wishlistText{width:100%;max-width:100%;min-height:125px;border:1px solid #b99a72;border-radius:12px;padding:12px;font:inherit;color:#462e21;background:white;resize:vertical}
.wish-status{font-weight:700;color:#275c36;min-height:1.5em}
#wishlistPrivacy{display:block;margin-top:10px;color:#70594b;line-height:1.45}
.finale-panel{border:2px solid #e7b65e;border-radius:20px;margin:24px 0;padding:16px;background:linear-gradient(160deg,#fef8e4,#f1dfb7);color:#422915}
.finale-panel h3{text-align:center;color:#783124;font-size:1.4rem}
.finale-panel .story-text{white-space:pre-wrap}

/* Multilingual, editable North Pole letter – text lives in DOM, never baked into artwork. */
.wish-letter{position:relative;width:min(100%,580px);aspect-ratio:1055 / 1491;margin:16px auto 10px;background:#ffe7ae url('/assets/letter/brev-bakgrund.webp') center/100% 100% no-repeat;box-shadow:0 5px 22px #301a1580;border-radius:7px;overflow:hidden;color:#482719;font-family:'Comic Sans MS','Trebuchet MS',system-ui,sans-serif}
.wish-letter-title{position:absolute;top:7.9%;left:27%;width:47%;height:10%;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff9e4;font:900 clamp(17px,4.0vw,31px)/1.07 Georgia,serif;text-shadow:0 2px 2px #280d08,0 0 5px #280d08;padding:0 3px}
.wish-letter-fields{position:absolute;top:20.4%;left:20.6%;width:59.7%;height:67.3%;display:flex;flex-direction:column;gap:1.5%;overflow:visible}
.wish-letter-greeting{font-weight:900;font-size:clamp(11px,2.5vw,18px);height:4.2%;flex:none}
.wish-line{margin:0!important;display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.2;flex:none}
.wish-line span{font-weight:850;font-size:clamp(9px,2.1vw,15px);line-height:1.15;display:block;white-space:normal}
.wish-line input,.wish-line textarea{border:0!important;border-bottom:1px solid #8b4d39!important;border-radius:0!important;box-shadow:none!important;outline-offset:1px!important;width:100%!important;max-width:100%;height:auto!important;min-height:0!important;padding:1px 3px!important;margin:0!important;font-family:'Comic Sans MS','Segoe Print',cursive!important;font-size:clamp(11px,2.4vw,18px)!important;font-weight:500;color:#652d26!important;background:transparent!important;resize:none;overflow:auto;display:block}
.wish-line input:focus,.wish-line textarea:focus{background:#fff6decc!important;border-color:#aa3146!important}
.wish-line textarea{line-height:1.13!important;scrollbar-width:thin}
.wish-line input::placeholder,.wish-line textarea::placeholder{color:#946f5bb0}
.wish-line.wish-name{height:6%;margin-bottom:0!important}
.wish-line.wish-multiline{height:20%;min-height:0;flex:1}
.wish-line.wish-multiline textarea{height:70%!important;flex:1}
.wish-line.wish-sign{height:7%;display:flex;flex-direction:row;align-items:center;gap:8px}
.wish-line.wish-sign span{white-space:nowrap;flex:none}
.wish-tip{font-size:13px;color:#715344;line-height:1.5}
.wish-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:10px 0}
.wish-actions .btn{font-size:13px}
.wish-print-value{min-height:1.2em;border-bottom:1px solid #8b4d39;padding:2px 4px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:'Comic Sans MS','Segoe Print',cursive;font-size:clamp(10px,2.1vw,17px)}
.letter-print-sheet{display:flex;align-items:start;justify-content:center;width:100%;background:white}
@media (min-width:700px){.wish-letter-title{font-size:30px}.wish-line span{font-size:14px}.wish-line input,.wish-line textarea{font-size:16px!important}.wish-letter-greeting{font-size:19px}}
@media (max-width:390px){.wish-letter-title{font-size:clamp(13px,4.4vw,18px)}.wish-line span{font-size:clamp(8px,2.3vw,10px)}.wish-letter-greeting{font-size:12px}.wish-line input,.wish-line textarea{font-size:12px!important}.wish-line{gap:1px}.wish-letter-fields{top:20.6%;height:67.2%}}
@media print{#printLayer .letter-print-sheet{display:flex!important;page-break-after:avoid;break-after:avoid;margin:0!important;padding:0!important;width:100%}#printLayer .letter-print-sheet .wish-letter{width:194mm!important;max-width:194mm!important;box-shadow:none!important;margin:0!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}#printLayer .letter-print-sheet .wish-letter-title{font-size:30px!important}#printLayer .letter-print-sheet .wish-line span{font-size:14px!important}#printLayer .letter-print-sheet .wish-letter-greeting{font-size:18px!important}#printLayer .letter-print-sheet .wish-print-value{font-size:15px!important}#printLayer .letter-print-sheet .wish-line.wish-sign{height:8%}}

/* 2026: samlat registreringsflöde, ägarförhandsgranskning och musik */
.single-offer{display:flex;gap:18px;align-items:flex-start}.single-offer .giftmark{font-size:42px}.single-offer .btn{margin:14px 0}.single-offer .small-muted{display:block;margin-top:9px}
.music-float{position:fixed;z-index:90;right:max(14px, env(safe-area-inset-right));bottom:max(80px, calc(env(safe-area-inset-bottom) + 68px));border:1px solid #d8b96f;color:#ffe3a2;background:#23314b;border-radius:999px;font-weight:750;padding:10px 16px;box-shadow:0 3px 20px #0009;cursor:pointer;font-size:14px}
.music-float[aria-pressed="true"]{background:#68412a}
.footer-admin{font-size:12px;color:#dcc38f;opacity:.8;text-decoration:none}
.owner-banner{background:#fff1c6;color:#53300b;border-radius:12px;font-weight:700;text-align:center;padding:12px}
.preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:10px;margin:20px 0}.preview-grid a{display:grid;place-items:center;min-height:56px;border:1px solid #b5934d;background:#1c3048;color:#ffe4ab;text-decoration:none;border-radius:13px;font-weight:800}
.preview-grid a:hover{background:#72472d}.checkboxlabel a{color:#6c3046;text-decoration:underline}.admin-top .logo{text-decoration:none}
@media(max-width:600px){.single-offer{display:block}.music-float{right:8px;bottom:max(72px, calc(env(safe-area-inset-bottom) + 58px));padding:10px 12px;font-size:13px}}

/* Nissemagi 2026 – enkel, klickbar julgranskalender utan dubbla kulor */
.sceneDoors .tree-ball{background:transparent!important;border:0!important;color:transparent!important;text-shadow:none!important;box-shadow:none!important;filter:none!important;width:8.4%;outline:0;}
.sceneDoors .tree-ball.available,.sceneDoors .tree-ball.completed,.sceneDoors .tree-ball.locked{background:transparent!important;box-shadow:none!important;color:transparent!important;filter:none!important}
.sceneDoors .tree-ball:focus-visible{outline:3px solid #fff1a2!important;outline-offset:1px;box-shadow:0 0 0 4px #51402688!important}
.sceneDoors .tree-ball.completed::after{content:'✦';position:absolute;top:-20%;right:-10%;font-size:clamp(9px,2vw,15px);color:#ffec9a;text-shadow:0 0 6px #ffb324;}
.scene-star-strip{position:absolute;left:13%;right:9%;top:89.1%;height:8%;display:grid;grid-template-columns:repeat(23,minmax(0,1fr));align-items:center;justify-items:center;border-radius:14px;background:linear-gradient(165deg,#051b42f7,#102f5af9 49%,#061a3df9);border:1px solid #d4a95c88;box-shadow:inset 0 0 15px #6688c435;z-index:2;padding:0 1%;}
.scene-star-strip .scene-star{position:static;transform:none;display:block;line-height:1;font-size:clamp(9px,1.6vw,16px);color:#e5c87f;opacity:1;text-shadow:0 0 2px #e3b763;}
.scene-star-strip .scene-star.lit{color:#ffed8c;text-shadow:0 0 5px #fff4be,0 0 13px #ffc441;}
.scene-star-strip .scene-star.grand-star{font-size:clamp(13px,2.1vw,22px)}
/* Interaktiv julig stjärnkarta: bakgrunden är dekor, statusen ligger ovanpå som riktig HTML */
.starmap-panel{position:relative;aspect-ratio:1024/1536;border:0;border-radius:18px;overflow:hidden;background:#f5d8a1 url('/assets/starmap-interactive.webp') center/100% 100% no-repeat;box-shadow:0 12px 35px #0008;margin:16px auto 9px;width:calc(100% - 20px);max-width:620px;padding:30% 11.5% 21%;color:#3e251c;display:flex;flex-direction:column;justify-content:center;}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.mapStars{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(4,1fr);align-items:center;justify-items:center;gap:1.5% 1%;width:100%;height:100%;}
.map-star{width:100%;min-height:0;align-self:center;aspect-ratio:1/1;border:0!important;background:transparent!important;border-radius:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;}
.map-star .symbol{font-family:Georgia,serif;display:block;font-size:clamp(31px,7.4vw,70px);line-height:1;color:#fdf1c7;-webkit-text-stroke:1.5px #5a3b27;text-shadow:0 1px 1px #79451c;}
.map-star.lit .symbol{color:#ffc33c;-webkit-text-stroke:1.5px #8e5212;text-shadow:0 0 7px #ffde67,0 0 16px #fcba48}
.map-star small{font:900 clamp(13px,3.5vw,28px)/1.1 Georgia,serif;color:#3d2519;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);text-shadow:0 1px 0 #fff5de}
.map-star.finale-star .symbol{font-size:clamp(42px,9vw,82px)}
.map-star.finale-lantern{padding:0;}
.map-star .lantern-symbol{height:91%;width:89%;object-fit:contain;filter:grayscale(.85) brightness(.47);transition:filter .35s}
.map-star.finale-lantern.lit .lantern-symbol{filter:drop-shadow(0 0 13px #ffb634)}
.map-star.finale-lantern small{top:81%;color:#fff2ce;background:#61351ad9;border-radius:12px;padding:0 3px;font-size:clamp(10px,2vw,16px);text-shadow:none}
.starmap-caption{text-align:center;color:#ffdf99;font-weight:750;font-size:14px;margin:6px 16px 19px;}
.lantern-status{display:flex;gap:4px;align-items:center}.lantern-tiny{display:inline-block;width:24px;height:27px;vertical-align:middle;object-fit:contain}.lantern-heading{display:flex;align-items:center;gap:10px}
/* Nisselappar: handskriftskänsla men läslig på små mobilskärmar och på A4 */
.handwritten-tip{color:#5b3c2a;background:#fff3cf;border-left:3px solid #bd8e40;border-radius:7px;padding:9px 10px;font-size:14px;line-height:1.45;font-weight:650}
.nisselapp-preview{white-space:pre-wrap;overflow-wrap:anywhere;text-align:center;margin:12px 0;padding:17px 15px;background:#fff6dd;border:2px solid #b98f5b;border-radius:12px;box-shadow:inset 0 0 20px #d4a46e2a;color:#503021;font:600 19px/1.6 'Segoe Print','Comic Sans MS','Bradley Hand',cursive;letter-spacing:.12px;}
.bus-body textarea{font:16px/1.55 system-ui,sans-serif!important;color:#3a2923!important;background:#fffdf8!important;min-height:115px;}
.note-card{background:#f8ebc7;color:#442719;border-color:#9d6d38;}
.note-card p{color:#39241b;font:600 20px/1.55 'Segoe Print','Comic Sans MS','Bradley Hand',cursive;letter-spacing:.1px;}
.note-card h3{font-size:15px;color:#793b25;}
.extras-review{background:#fff6df;color:#5f3b21;border:2px dashed #c8a46b;padding:17px;border-radius:14px;line-height:1.55;grid-column:1/-1;}
@media(max-width:480px){.starmap-panel{width:calc(100% - 10px);padding:30% 11% 21%;}.map-star .symbol{font-size:clamp(25px,7.3vw,41px)}.map-star.finale-star .symbol{font-size:clamp(32px,9vw,51px)}.map-star small{font-size:clamp(10px,3.5vw,17px)}.scene-star-strip{left:13%;right:9%;}.scene-star-strip .scene-star{font-size:clamp(7px,2vw,12px)}.nisselapp-preview{font-size:18px}}
@media print{.note-card{background:#f8ebc7!important;color:#39241b!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.note-card p{color:#39241b!important}}

/* Install as mobile app: account section only. */
.nm-install-panel #nmInstallHint{white-space:pre-line;line-height:1.6;margin-top:10px}
.nm-install-panel #nmInstallBtn{max-width:100%;margin-top:8px}
