:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#392740;background:#fff7ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#f5d9ff 0%,#fff8ff 45%,#e9fcff 100%);min-height:100vh}header{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(18px,4vw,55px);background:#fff9;border-bottom:1px solid #e8d5ef}.brand{color:#ad4bc4;font-size:1.6rem;font-weight:950;letter-spacing:-1px}.tag{color:#8c7793;font-size:.88rem}main{max-width:1550px;margin:auto;padding:30px 18px}.intro{max-width:1180px;margin:40px auto 70px}.introBoard .boardHero{position:relative;border-radius:28px;overflow:hidden;box-shadow:0 25px 60px #7b368126;border:1px solid #e2caea;background:#e7d7ef}.introBoard .boardHero>img{display:block;width:100%;height:auto;min-height:560px;object-fit:cover;object-position:center center}.heroShade{position:absolute;inset:0;background:linear-gradient(90deg,#ead9f3f0 0%,#eadaf1c0 35%,#ffffff20 65%,#ffffff08 100%)}.heroText{position:absolute;left:clamp(22px,4vw,52px);top:clamp(22px,5vw,46px);max-width:min(44%,420px)}.heroText h1{font-size:clamp(2.2rem,5vw,4.6rem);line-height:1.05;margin:10px 0 14px;color:#8e34a3;letter-spacing:-2px}.heroText p{font-size:1.05rem;line-height:1.65;color:#6d5775}.eyebrow{color:#b35bc6;font-weight:900;font-size:.76rem;letter-spacing:2px}.panel{background:#fffffff0;border:1px solid #e9d8ee;box-shadow:0 10px 30px #7b368114;border-radius:22px;padding:25px;margin-bottom:18px}.floatingPanel{position:absolute;right:clamp(20px,3vw,42px);top:50%;transform:translateY(-50%);width:min(390px,calc(100% - 40px));backdrop-filter:blur(8px);background:#fffdfef0}.tabs{display:flex;background:#f9ecfc;border-radius:12px;padding:5px;margin-bottom:23px}.tabs button{flex:1;background:transparent;color:#8a6793;border:0;padding:13px;font-weight:800;border-radius:9px;cursor:pointer}.tabs .chosen{background:#fff;color:#9d38ae;box-shadow:0 2px 10px #0001}label{display:block;font-size:.9rem;font-weight:800;margin:18px 0}input{display:block;width:100%;border:2px solid #e8d7ec;border-radius:12px;background:#fff;padding:15px;margin-top:9px;font:inherit;outline:none}input:focus{border-color:#b45fc8}.primary,.secondary,.smallBtn{font:inherit;cursor:pointer;border:0;border-radius:12px;padding:14px 20px;font-weight:850;transition:transform .15s,filter .15s}.primary{background:linear-gradient(110deg,#a946c5,#ec73bf);color:white;width:100%;box-shadow:0 6px 16px #b953bc35}.secondary{background:#f4e8fa;color:#7c3c89}.smallBtn{padding:9px 12px;background:#f1e5f4;color:#6a3d73;font-size:.82rem}.primary:hover,.secondary:hover,.smallBtn:hover{transform:translateY(-2px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.error{color:#cb3b72;min-height:1em}.centered{max-width:580px;margin:60px auto;text-align:center}.centered h1{font-size:2.5rem;color:#8b369e}.roomcode{font-size:2.8rem;letter-spacing:8px;font-weight:950;background:#f7edff;border:2px dashed #d4a7e2;padding:16px;margin:20px 0;border-radius:18px}.centered h2{margin-top:28px}#lobbyPlayers{margin:15px 0 25px}.lobbyPlayer{padding:13px;border-bottom:1px solid #eee}.gameLayout{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:25px}.boardWrap{position:sticky;top:15px;overflow:auto;padding:8px;border-radius:16px;background:#ead4ef}.board{position:relative;min-width:700px;aspect-ratio:1/1;background:#fff}.board>img{width:100%;height:100%;display:block}.boardOverlay{position:absolute;left:32%;top:40%;width:35%;text-align:center;pointer-events:none}.boardOverlay span{display:block;color:#bf56d4;font-weight:950;font-size:clamp(15px,3vw,42px);letter-spacing:2px;opacity:.1}.boardOverlay small{opacity:.3}.marker{position:absolute;width:22px;height:22px;border:2px solid #fff;box-shadow:0 2px 8px #0008;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;color:#fff;font-size:12px;font-weight:900;transition:left .5s,top .5s;z-index:2}.marker:nth-child(2){margin-left:12px;margin-top:12px}.marker:nth-child(3){margin-left:-10px;margin-top:10px}.marker:nth-child(4){margin-left:8px;margin-top:-10px}.marker:nth-child(5){margin-left:-12px;margin-top:-10px}.marker:nth-child(6){margin-left:18px;margin-top:-4px}h2{margin:2px 0 16px;font-size:1.2rem;color:#75417e}.topline{display:flex;justify-content:space-between;align-items:center}.person{display:flex;align-items:center;gap:9px;padding:9px 4px;border-bottom:1px solid #f1e8f3}.person.active{background:#f8e8ff;border-radius:8px}.dot{width:17px;height:17px;flex-shrink:0;border-radius:50%}.person .info{flex:1;min-width:0}.person strong,.person small{display:block}.person small{font-size:.75rem;color:#927b9a}.cash{font-weight:850;font-size:.85rem}.dice{font-size:3.3rem;letter-spacing:10px;text-align:center;padding:7px;color:#b154cb}.action{text-align:center}.action button{margin-top:12px}.action h2{font-size:1.55rem}.notice{background:#fbecff;padding:12px;border-radius:12px;line-height:1.5;margin:12px 0}.eventCard{border:2px solid #ddaee5;background:#fff;border-radius:15px;overflow:hidden;margin:15px 0}.eventCard img{width:100%;display:block}.property{font-size:.88rem;padding:9px 0;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;gap:5px}.property button{padding:6px;border-radius:7px;border:0;color:#85479b;background:#f0ddf6;cursor:pointer}.log{max-height:290px;overflow:auto}.log div{font-size:.84rem;padding:7px 0;border-bottom:1px solid #f4eafa;color:#6e5976}.good{color:#2f976e}.bad{color:#b64c61}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:12px;background:#64366d;color:white;display:none;z-index:20}footer{text-align:center;padding:20px;color:#9a7ea2;font-size:.85rem}@media(max-width:1000px){.gameLayout{grid-template-columns:1fr}.boardWrap{position:static}.intro{margin:20px auto 45px}.heroText{position:static;max-width:none;padding:18px 18px 0}.heroShade{background:linear-gradient(180deg,#ead9f3f0 0%,#ead9f3d8 26%,#ffffff10 100%)}.floatingPanel{position:static;transform:none;width:auto;margin:18px}.introBoard .boardHero>img{min-height:unset}}@media(max-width:650px){.tag{display:none}.gameLayout{gap:10px}main{padding:12px}.boardWrap{margin:0 -12px;border-radius:0}.board{min-width:640px}.panel{padding:17px}.roomcode{font-size:2rem;letter-spacing:5px}.heroText h1{font-size:2.6rem}.heroText p{font-size:.96rem}}[hidden]{display:none!important}

/* Canva-brikker og kortbunker */
.tokenPicker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 25px}.tokenChoice{border:2px solid #e4d0eb;border-radius:15px;background:#fff;cursor:pointer;padding:8px 3px;min-height:112px;color:#623e70;font-weight:750}.tokenChoice img{height:62px;width:100%;object-fit:contain;display:block}.tokenChoice span{display:block;font-size:12px;margin:5px auto}.tokenChoice.selected{border-color:#a444c2;background:#f5e8fb;box-shadow:0 0 0 2px #dca6f0}.tokenChoice:disabled{opacity:.38;filter:grayscale(1);cursor:not-allowed}.lobbyIcon{width:30px;height:30px;object-fit:contain;vertical-align:middle}.help{font-size:.85rem;color:#8a7090}.playerToken{width:52px;height:52px;border-radius:50%;background:#fff;border:4px solid var(--pcolor);box-shadow:0 0 0 3px #fffffff0,0 5px 15px #23132a91;transition:left .5s,top .5s,transform .18s;overflow:hidden}.playerToken img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 2px #0005)}.playerToken:hover{transform:translate(-50%,-50%) scale(1.06)}.boardCards{position:absolute;inset:0;pointer-events:none}.boardDeck{position:absolute;width:22%;height:22%;background:linear-gradient(130deg,#ae63c0,#7f4c9f);border:9px solid #fff;box-shadow:0 4px 12px #431a4f45;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-9deg);color:#fff;text-align:center}.boardDeck span{font-size:clamp(14px,3vw,33px)}.boardDeck b{font-size:clamp(10px,1.7vw,23px)}.boardDeck small{font-size:clamp(8px,.9vw,12px)}.chanceDeck{left:21%;top:29%}.luckDeck{right:19%;top:29%;transform:rotate(9deg);background:linear-gradient(130deg,#ee91cb,#c257a5)}.boardOverlay{display:none}@media(max-width:650px){.tokenPicker{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.tokenChoice{min-height:94px}.tokenChoice img{height:55px}.playerToken{width:46px;height:46px;border-width:4px}}

.fieldPrice{position:absolute;transform:translate(-50%,13px);z-index:1;font-size:clamp(8px,.85vw,12px);font-weight:900;color:#50295d;background:#fffefaec;padding:2px 4px;border:1px solid #9b6bb3;border-radius:5px;white-space:nowrap;pointer-events:none}.playerToken{z-index:3}

.brandButton{appearance:none;border:0;background:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}.brandButton:hover,.brandButton:focus-visible{color:#7f2397;text-decoration:underline;text-underline-offset:4px}.brandButton:focus-visible{outline:2px solid #a946c5;outline-offset:5px;border-radius:3px}

/* Regelside og regler-link */
.rulesLink{display:inline-flex;align-items:center;gap:6px;color:#812d9e;font-weight:800;text-decoration:none;border:2px solid #e4c8ed;background:#fff8ff;border-radius:12px;padding:8px 13px}.rulesLink:hover,.rulesLink:focus-visible{background:#f7e7ff;text-decoration:underline}.rulesHead{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.rulesPage{max-width:1050px;margin:auto;line-height:1.62}.rulesPage h1{font-size:clamp(2rem,4vw,3.2rem);color:#8530a1}.rulesPage h2{margin-top:27px;color:#77348c}.rulesPage table{width:100%;border-collapse:collapse;font-size:.95rem}.rulesPage th,.rulesPage td{text-align:left;padding:9px 11px;border-bottom:1px solid #eddaf2;vertical-align:top}.rulesPage th{background:#f7e8fc}.rulesPage ul{padding-left:24px}.rulesPage .panel{overflow-x:auto}.rulesPage .muted{color:#725d7c}.rulesNav{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 24px}.rulesNav a{color:#7a328d;background:#f5e9f8;padding:7px 11px;border-radius:10px;text-decoration:none;font-weight:750}

/* Confirmation window styled like the K-POPOLY cards */
.kpopDialog{padding:0;border:2px solid #e8bde9;border-radius:24px;max-width:min(430px,calc(100vw - 30px));width:100%;color:#4b285a;background:#fff8ff;box-shadow:0 24px 85px #43194a70}
.kpopDialog::backdrop{background:rgba(26,12,45,.64);backdrop-filter:blur(5px)}
.kpopDialogContent{padding:29px 25px 25px;text-align:center}
.kpopDialogIcon{display:block;font-size:2.8rem;margin-bottom:8px}
.kpopDialog h2{font-size:1.75rem;margin:11px 0;color:#863ca0}
.kpopDialog p{line-height:1.6;color:#705477;margin:0 0 23px}
.kpopDialogActions{display:flex;gap:10px;flex-wrap:wrap}
.kpopDialogActions button{flex:1 1 155px;min-height:48px;font:inherit;font-weight:850;border-radius:12px;padding:11px 13px;cursor:pointer}
.dangerBtn{border:0;color:#fff;background:linear-gradient(115deg,#bb4c9a,#ec658a);box-shadow:0 5px 16px #bc51944a}
.dangerBtn:hover{filter:brightness(1.07)}
.kpopDialog button:focus-visible{outline:3px solid #a946c5;outline-offset:3px}

/* Gratis parkering: puljen opdateres ved hver spilstatus */
.parkingPool{background:linear-gradient(130deg,#fff7f9,#f9eafa);border:2px solid #e6bce8;text-align:center}
.parkingPool h2{margin:0 0 8px}
.parkingPool p{font-size:.85rem;color:#775c7d;margin:0 0 11px}
.parkingPool strong{display:block;font-size:1.9rem;color:#9134ae;font-variant-numeric:tabular-nums}

/* Mobile-first K-POPOLY: touch targets, responsive game flow and optional board detail zoom. */
.headerLinks{display:flex;align-items:center;gap:12px}
.boardMobileControls{display:none}
button,a,input{touch-action:manipulation}
@media(max-width:1000px){
  .gameLayout{display:flex;flex-direction:column;gap:12px;min-width:0}
  .gameLayout aside{display:contents}
  .gameLayout aside>.action{order:0}
  .gameLayout .boardWrap{order:1;position:relative;width:100%;max-width:100%;margin:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:5px}
  .gameLayout aside>.panel{order:2;width:100%;margin:0}
  .gameLayout .board{min-width:0;width:100%;aspect-ratio:1}
  .boardMobileControls{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;left:0;width:100%;padding:8px 6px 4px;font-size:.8rem;font-weight:750;color:#75417e}
  .boardMobileControls .smallBtn{white-space:nowrap;min-height:42px}
  .boardWrap.boardZoomed .board{min-width:760px}
  .gameLayout .action{padding:16px}
  .gameLayout .action .dice{font-size:clamp(2.3rem,9vw,3.4rem);line-height:1.2}
  #actions{display:flex;flex-direction:column;gap:10px}
  #actions button{margin:0;width:100%;min-height:48px}
  .playerToken{width:clamp(23px,4vw,42px);height:clamp(23px,4vw,42px);border-width:3px}
}
@media(max-width:650px){
  :root{font-size:15px}
  header{padding:12px 14px;gap:10px}
  .brand{font-size:1.25rem;letter-spacing:-.4px;white-space:nowrap}
  .headerLinks{gap:6px}
  .headerLinks .tag{display:none}
  .rulesLink{padding:9px 10px;font-size:.83rem;white-space:nowrap}
  main{padding:10px 10px 24px}
  .intro{margin:8px auto 30px}
  .introBoard .boardHero{border-radius:17px}
  .introBoard .boardHero>img{min-height:unset;aspect-ratio:16/10;object-fit:cover}
  .heroText{padding:18px 17px 5px}
  .heroText h1{font-size:2rem;letter-spacing:-.5px}
  .heroText p{line-height:1.4;font-size:.93rem}
  .floatingPanel{margin:12px;padding:17px;border-radius:16px}
  .centered{margin:16px auto;padding:18px;text-align:center}
  .centered h1{font-size:1.85rem}
  .roomcode{font-size:clamp(1.55rem,6vw,2rem);letter-spacing:clamp(2px,.9vw,5px);overflow-wrap:anywhere}
  .tokenPicker{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tokenChoice{min-height:90px;padding:5px 2px}
  .tokenChoice img{height:50px}
  .panel{border-radius:17px;padding:16px;margin-bottom:12px}
  .gameLayout .boardWrap{padding:4px;border-radius:12px}
  .gameLayout .board{min-width:0;width:100%;aspect-ratio:1}
  .boardWrap.boardZoomed .board{min-width:690px}
  .playerToken{width:clamp(22px,7vw,35px);height:clamp(22px,7vw,35px);border-width:3px;box-shadow:0 0 0 2px #fff,0 2px 8px #29133280}
  .boardDeck{border-width:3px;border-radius:5px}
  .boardDeck b{font-size:clamp(7px,1.9vw,12px)}
  .boardDeck small{font-size:clamp(6px,1.6vw,10px)}
  .dice{letter-spacing:5px}
  .topline{gap:10px}
  .person{padding:11px 4px}
  .person .info strong{overflow-wrap:anywhere}
  .cash{white-space:nowrap}
  input{font-size:16px}
  .primary,.secondary{min-height:48px}
  .rulesPage{max-width:100%}
  .rulesPage .panel{overflow-x:auto}
  .kpopDialogContent{padding:22px 18px}
}
@media(prefers-reduced-motion:reduce){
  .primary,.secondary,.smallBtn,.playerToken,.marker{transition-duration:.01ms!important}
}
