:root{font-family:system-ui,Segoe UI,Arial,sans-serif;color:#23313b;background:#f2f5f4}*{box-sizing:border-box}body{margin:0}header{background:#19366c;color:white;display:flex;align-items:center;gap:24px;padding:15px max(18px,calc((100vw - 1100px)/2));}header h1{margin:0;font-size:clamp(22px,3vw,34px)}header p{margin:4px 0;color:#dce6ef}.brand{background:white;border-radius:8px;padding:7px;text-align:center;min-width:112px;color:#19366c}.brand img{width:92px;height:92px;object-fit:contain;display:block;margin:auto}.brand strong{font-size:13px}header #logout{margin-left:auto;background:#fff;color:#19366c}main{max-width:1100px;margin:24px auto;padding:0 16px;min-height:65vh}.panel{background:white;padding:24px;border-radius:14px;box-shadow:0 4px 20px #1d344411;margin-bottom:18px}.narrow{max-width:440px;margin:30px auto}.inner{background:#f5f8f5;border:1px solid #d5e3d8;border-radius:12px;padding:18px;margin-top:20px}h2{color:#19366c;margin-top:0}h3{color:#19366c}label{display:block;font-weight:600;margin:10px 0}input,select,textarea{display:block;width:100%;padding:11px;margin-top:5px;border:1px solid #aebec4;border-radius:7px;font:inherit;background:white}button{border:0;background:#07834b;color:white;padding:11px 15px;border-radius:8px;cursor:pointer;font:inherit;font-weight:650}button:hover{filter:brightness(.92)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#19366c}.ghost{background:#e9eef3;color:#19366c}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.summary div{background:#19366c;color:white;border-radius:12px;padding:18px;text-align:center}.summary strong{display:block;font-size:28px;color:#e8c678}nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}nav button{background:#dfe8e7;color:#19366c}nav button.active{background:#19366c;color:white}.holes{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.hole{border:1px solid #b9cbbd;border-radius:10px;background:#edf7f0;color:#163b2c;min-height:95px;padding:8px}.hole.closed{background:#f7ebc8;border-color:#c8a34d;color:#604912}.hole strong,.hole span{display:block}.hole strong{font-size:19px}.hole span{font-size:12px;margin-top:6px}.twocol{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.twocol form{padding:14px;border:1px solid #dce3e8;border-radius:10px}.entry{border-bottom:1px solid #e1e7e7;padding:13px 0}.entry button{margin:4px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid #dce5e4}th{background:#edf2f6}#message{position:sticky;bottom:12px;background:#19366c;color:white;border-radius:9px;padding:12px;display:none}footer{text-align:center;color:#61737c;padding:25px}small{color:#65747b}@media(max-width:600px){header{gap:12px;padding:12px}.brand{min-width:75px}.brand img{width:64px;height:64px}.brand strong{font-size:11px}header h1{font-size:20px}header p{font-size:11px}.panel{padding:15px}.holes{grid-template-columns:repeat(3,1fr)}.twocol{grid-template-columns:1fr}.summary strong{font-size:21px}.summary div{padding:10px}nav button{font-size:12px;padding:10px}}

.admin-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.admin-actions button{font-size:13px;padding:8px 10px}

/* v0.2.1: tydelig og mobilvenlig låsedialog */
.lock-dialog{border:0;border-radius:16px;padding:25px;width:min(440px,calc(100vw - 28px));max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 20px 70px #071a3580;color:#23313b}
.lock-dialog::backdrop{background:#071a35a8}
.lock-dialog h2{margin:0 0 10px}
.lock-dialog p{line-height:1.5}
.lock-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.lock-stats>div{background:#eef3f1;padding:16px 8px;border-radius:12px;text-align:center}
.lock-stats strong{display:block;font-size:32px;color:#19366c}
.lock-stats>div:nth-child(2) strong{color:#07834b}
.lock-stats span{font-size:13px}
.lock-meta{color:#4b6069}
.lock-warning{font-size:14px;background:#fff7e6;border-left:3px solid #c5a04a;padding:10px}
.lock-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
.lock-actions button{min-height:44px}
@media(max-width:440px){.lock-actions{flex-direction:column-reverse}.lock-actions button{width:100%}}

/* v0.2.4: samlet 18-hullers scorekort */
.scorecard{margin:18px 0 22px}
.scorecard-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#19366c;color:#fff;padding:13px 16px;border-radius:11px 11px 0 0}
.scorecard-head strong{color:#f1d28a;font-size:19px}
.scorecard-head span{font-size:13px}
.scorecard-scroll{overflow-x:auto;border:1px solid #dce5e4;border-top:0;border-radius:0 0 11px 11px}
.scorecard-table{min-width:480px;font-variant-numeric:tabular-nums}
.scorecard-table th,.scorecard-table td{padding:10px 12px;text-align:center;white-space:nowrap}
.scorecard-table th:first-child{text-align:left}
.scorecard-table thead th{background:#e7eef4;color:#19366c}
.scorecard-hole{cursor:pointer}
.scorecard-hole.is-closed{background:#fff8e7}
.scorecard-hole.is-open{background:#f4faf6}
.scorecard-hole:hover,.scorecard-hole:focus-visible{outline:2px solid #07834b;outline-offset:-2px;background:#e1f2e8}
.scorecard-hole .points{font-weight:750;color:#087348}
.scorecard-subtotal{background:#e9eef3;font-weight:750;color:#19366c}
.scorecard-subtotal:last-child{background:#19366c;color:white}
.scorecard-subtotal:last-child th,.scorecard-subtotal:last-child td{border-color:#19366c}
.scorecard-note{font-size:13px;color:#51656b;line-height:1.5}
.hole-quick{border:1px solid #d5e3d8;border-radius:10px;padding:12px 15px;margin-bottom:12px}
.hole-quick summary{cursor:pointer;font-weight:650;color:#19366c}
.hole-quick .holes{margin-top:15px}
@media(max-width:600px){.scorecard-table th,.scorecard-table td{padding:10px 9px;font-size:13px}.scorecard-head strong{font-size:17px}}

/* v0.2.5 – matchvalg og matchhandicap øverst på scorekortet */
.match-setup{background:#f4f7f5;border:1px solid #d3dfd5;border-radius:12px;padding:16px;margin:16px 0 20px}.match-setup label{display:block;font-weight:600;margin-bottom:10px}.match-setup select,.match-setup input{display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:6px}.match-setup form{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.match-setup form label{flex:1;min-width:170px}.match-setup .match-fixed{margin:8px 0 0;color:#1f633c}.match-setup p{font-size:.93rem}

.season-form{margin:1.2rem 0;padding:1rem;border:1px solid #d6ded7;border-radius:12px}.season-form p{font-size:.93rem}

/* v0.3.1: separat spilleradministration */
.subpage-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.player-toolbar{margin:1rem 0;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.player-toolbar label{font-weight:600}
.player-toolbar input{flex:1;min-width:180px;max-width:360px;padding:.7rem;border:1px solid #b8c7c3;border-radius:8px}
.player-create{margin-top:1.5rem;padding:1rem;border:1px solid #d6ded7;border-radius:12px}
.player-entry[hidden]{display:none}

/* v0.3.3 administration submenu */
.admin-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:-5px 0 18px;padding:12px;background:#e7eef4;border-radius:12px;border:1px solid #cfdce6}
.admin-subnav[hidden]{display:none}
.admin-subnav button{background:white;color:#19366c;border:1px solid #c5d3df;font-size:.91rem}
.admin-subnav button.active{background:#19366c;color:white}
.visibility-check{display:flex;align-items:center;gap:10px}
.visibility-check input{width:auto;margin:0}
footer a{color:#19366c;font-weight:650}
