:root{font-family:system-ui,-apple-system,sans-serif;color:#172018;background:#f3f6f2;--green:#176c3a;--dark:#12301f;--line:#d9e1d8}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px max(20px,calc((100% - 1180px)/2));background:var(--dark);color:white;flex-wrap:wrap}header a{color:white;text-decoration:none;font-weight:700}nav{display:flex;gap:16px;flex-wrap:wrap}main{max-width:1180px;margin:auto;padding:28px 18px 60px}.hero{display:flex;justify-content:space-between;align-items:center;gap:30px;background:linear-gradient(135deg,#fff,#e5f3e8);padding:32px;border-radius:22px;margin-bottom:28px}.hero h1{font-size:clamp(2rem,6vw,4rem);margin:0}.stats{display:flex;gap:12px}.stats b{background:white;padding:18px;border-radius:16px;text-align:center;min-width:90px;font-size:1.5rem}.stats small{display:block;font-size:.75rem;font-weight:500}.button{border:1px solid var(--line);background:white;color:#172018;padding:10px 14px;border-radius:11px;text-decoration:none;cursor:pointer;font-weight:700}.primary{background:var(--green);color:white;border-color:var(--green)}.success{background:#0a8f4d;color:white}.danger{color:#a72828}.wide{width:100%;display:block;text-align:center;margin-top:14px}.panel,.card{background:white;border:1px solid var(--line);border-radius:18px;padding:20px}.cards{display:grid;gap:14px}.card{display:flex;justify-content:space-between;gap:20px;align-items:center}.card h3{margin:.4rem 0}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions form{margin:0}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.inline{display:flex;gap:10px;margin-bottom:18px}label{display:grid;gap:6px;font-weight:650}input,select{font:inherit;padding:11px;border:1px solid #bdc9bd;border-radius:10px;background:white}fieldset{border:1px solid var(--line);border-radius:14px;margin:16px 0;padding:15px}legend{font-weight:800}.choice-row,.checkgrid{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.choice,.check{padding:10px 16px;border:1px solid var(--line);border-radius:10px;background:white;cursor:pointer}.check{display:flex;align-items:center}.player-row{display:flex;gap:8px;margin:8px 0}.player-row input{flex:1}.icon{border:0;background:#eee;border-radius:9px;padding:0 14px;font-size:1.3rem}.badge{display:inline-block;background:#e4f3e8;color:#176c3a;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:800}.score-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px}.sticky{position:sticky;top:15px;align-self:start}.hole-nav{display:flex;overflow:auto;gap:7px;padding:8px 0 14px}.hole-pill,.stroke{min-width:43px;height:43px;border:1px solid var(--line);border-radius:11px;background:white;font-weight:800;cursor:pointer}.hole-pill.active,.stroke.active{background:var(--green);color:white}.score-row{display:flex;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.player-info{display:grid;min-width:130px}.player-info span,small,.muted{color:#647064}.stroke-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.nav-actions{display:flex;justify-content:space-between;margin-top:18px}.standing,.result-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.standing span,.result-row div{display:grid}.results{background:white;border-radius:18px;overflow:hidden;border:1px solid var(--line)}.winner{background:#edf8ee}.place{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e8eee8;font-weight:800}.total{font-size:1.5rem}.qr{width:min(100%,240px);display:block;margin:10px auto}.center{text-align:center}.error{background:#fdeaea;color:#9a2020;padding:12px;border-radius:10px}.tv{background:#0e2116;color:white}.tv main{max-width:1300px}.tv h1{font-size:clamp(2.5rem,7vw,6rem);margin:.2em}.tv-list{display:grid;gap:12px}.tv-row{display:grid;grid-template-columns:90px 1fr 160px;align-items:center;background:#183525;border-radius:20px;padding:20px 32px;font-size:clamp(1.6rem,4vw,3.6rem)}.tv-row small{display:block;font-size:.35em;color:#b7c8bb}.tv-row strong{text-align:right}@media(max-width:760px){header nav{width:100%;overflow:auto}.hero,.card,.score-head{align-items:stretch;flex-direction:column}.stats{justify-content:space-between}.stats b{min-width:0;flex:1}.grid2,.layout{grid-template-columns:1fr}.sticky{position:static}.score-row{display:block}.stroke-buttons{justify-content:flex-start;margin-top:10px}.tv-row{grid-template-columns:45px 1fr 75px;padding:15px}.actions .button,.actions form,.actions form button{flex:1}.card .actions{width:100%}}
.nav-form{display:inline}.nav-button{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:.45rem}.flash{padding:.8rem 1rem;border-radius:.7rem;margin:0 0 1rem}.flash.success{background:#dcfce7;color:#166534}.flash.error{background:#fee2e2;color:#991b1b}.login-wrap{max-width:520px;margin:3rem auto}.login-panel label{display:block;margin:1rem 0}.login-panel input{display:block;width:100%;margin-top:.35rem}.page-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center}.button.small{font-size:.8rem;padding:.45rem .65rem}@media(max-width:700px){.page-heading{align-items:stretch;flex-direction:column}.result-row{grid-template-columns:auto 1fr auto}.result-row form{grid-column:2/-1}.nav-form{display:block}}

/* v3.4 - förbättrad mobilvy */
.site-header{padding:0;background:var(--dark)}
.header-inner{width:min(1180px,100%);margin:0 auto;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:1rem}
.main-nav{display:flex;align-items:center;gap:16px;flex-wrap:nowrap}
.main-nav a,.nav-button{padding:8px 0;white-space:nowrap}
.menu-toggle{display:none;width:42px;height:42px;padding:9px;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:transparent;cursor:pointer}
.menu-toggle span{display:block;height:2px;margin:5px 0;border-radius:2px;background:#fff;transition:transform .2s,opacity .2s}
.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:760px){
  main{padding:18px 12px 42px}
  .header-inner{position:relative;padding:11px 14px;min-height:62px}
  .brand{font-size:1.05rem}
  .menu-toggle{display:block}
  .main-nav{display:none;position:absolute;z-index:100;top:100%;left:10px;right:10px;padding:8px;background:#173b27;border:1px solid rgba(255,255,255,.12);border-radius:0 0 14px 14px;box-shadow:0 12px 28px rgba(0,0,0,.25);flex-direction:column;align-items:stretch;gap:0}
  .main-nav.open{display:flex}
  .main-nav a,.main-nav .nav-button{display:block;width:100%;padding:12px 13px;text-align:left;border-radius:9px}
  .main-nav a:hover,.main-nav .nav-button:hover{background:rgba(255,255,255,.08)}
  .nav-form{display:block;width:100%}

  .score-head{gap:12px;margin-bottom:8px}
  .score-head h1{font-size:2rem;line-height:1.08;margin:.55rem 0 .3rem}
  .score-head p{margin:.25rem 0}
  .score-head .actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}
  .score-head .actions .button{width:100%;text-align:center;padding:11px 8px}

  .layout{gap:12px}
  .hole-nav{margin:0 -12px;padding:8px 12px 12px;scroll-padding-inline:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .hole-nav::-webkit-scrollbar{display:none}
  .hole-pill{flex:0 0 42px;min-width:42px;height:42px}
  .panel{padding:16px;border-radius:15px}
  .panel h2{font-size:1.45rem;margin:6px 0 16px}

  .score-row{display:block;margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfdfb}
  .score-row:last-child{margin-bottom:0;border-bottom:1px solid var(--line)}
  .player-info{display:flex;justify-content:space-between;align-items:baseline;gap:10px;min-width:0;margin-bottom:11px}
  .player-info strong{font-size:1rem}
  .player-info span{font-size:.86rem;text-align:right}
  .stroke-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(39px,1fr));gap:7px;margin-top:0;width:100%}
  .stroke{width:100%;min-width:0;height:43px;padding:0}
  .nav-actions{gap:9px;margin-top:14px}
  .nav-actions .button{flex:1;padding:11px 8px;text-align:center}

  aside.sticky{margin-top:0}
  aside.sticky h2{margin-top:0}
  .standing{grid-template-columns:34px 1fr auto;padding:11px 4px}
  .total{font-size:1.3rem}
  .wide{padding:13px}
}

@media(max-width:390px){
  main{padding-left:10px;padding-right:10px}
  .panel{padding:13px}
  .score-row{padding:12px 10px}
  .stroke-buttons{gap:6px;grid-template-columns:repeat(auto-fit,minmax(37px,1fr))}
  .stroke,.hole-pill{height:40px}
  .score-head h1{font-size:1.85rem}
}

/* v3.5 - Google Authenticator MFA */
.totp-input{font-size:1.65rem;font-weight:800;letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums}
.setup-panel{text-align:left}.setup-panel>h1,.setup-panel>p{text-align:center}.setup-steps{padding-left:1.35rem;line-height:1.55}
.mfa-qr{display:block;width:min(260px,80vw);height:auto;margin:1.25rem auto;border:10px solid #fff;border-radius:14px;box-shadow:0 4px 20px rgba(0,0,0,.1)}
.manual-key{margin:1rem 0;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8faf8}.manual-key summary{cursor:pointer;font-weight:750}.manual-key code{display:block;margin:.8rem 0;padding:10px;overflow-wrap:anywhere;text-align:center;font-size:1rem;letter-spacing:.1em;background:#eef3ee;border-radius:8px}
.warning-note{margin-top:1rem;padding:11px;border-radius:10px;background:#fff7d6;color:#674d00;font-size:.9rem}
:root{color-scheme:light;--bg:#f4f7fb;--panel:#fff;--text:#172033;--muted:#64748b;--border:#dbe3ee}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0f172a;--panel:#172033;--text:#eef2ff;--muted:#a8b3c7;--border:#334155}
body{background:var(--bg);color:var(--text)}.panel,.card{background:var(--panel);border-color:var(--border)}input,select,textarea{background:var(--panel);color:var(--text);border-color:var(--border)}.muted,p,small{color:var(--muted)}
.theme-toggle{border:0;background:transparent;font-size:1.25rem;cursor:pointer}.filterbar{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}.filterbar input{flex:1;min-width:220px}.thumb{width:110px;height:75px;object-fit:cover;border-radius:12px;float:right;margin-left:12px}.avatar{width:54px;height:54px;border-radius:50%;object-fit:cover}.avatar.fallback{display:grid;place-items:center;color:white;font-size:1.4rem}.profile-line{display:flex;gap:12px;align-items:center}.warn{background:#f59e0b;color:#111827}.compact{padding:.8rem 1rem;margin-bottom:1rem}.hole-note{margin-top:.4rem;min-width:180px}.player-dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px}.calendar-row{display:grid;grid-template-columns:110px 1fr auto;gap:10px;padding:.6rem 0;border-bottom:1px solid var(--border)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--border)}
@media(max-width:760px){.thumb{width:80px;height:60px}.calendar-row{grid-template-columns:90px 1fr}.calendar-row .badge{display:none}.hole-note{width:100%;min-width:0}.filterbar>*{width:100%}}


/* v4.1 - robust mobilbredd utan sidscrollning */
html,body{max-width:100%;overflow-x:hidden}
main,.layout,.layout>*,section,aside,.panel,.score-row,.player-block,.stroke-buttons{min-width:0;max-width:100%}
.score-player-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.score-player-name{display:flex;align-items:center;gap:7px;min-width:0}
.score-player-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-status{flex:0 0 auto;white-space:nowrap}
.player-block{flex:1}
.hole-note{display:block;max-width:100%}

@media(max-width:760px){
  .layout{width:100%}
  .score-row{width:100%;overflow:hidden}
  .player-info{display:block;width:100%;margin-bottom:11px}
  .score-player-top{width:100%}
  .hole-note{box-sizing:border-box;width:100%;margin-top:10px}
  .stroke-buttons{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow:hidden}
  .stroke{max-width:100%}
  .nav-actions{width:100%}
  .nav-actions .button{min-width:0}
}

@media(max-width:360px){
  .stroke-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}
  .score-status{font-size:.78rem}
}
.file-field small{display:block;margin-top:.35rem;color:var(--muted);font-weight:400}.file-field input[type=file]{padding:.55rem;background:var(--panel)}.inline-upload{margin-top:.8rem}.file-button{display:inline-flex;align-items:center;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.card .inline-upload+.actions{margin-top:.65rem}

/* v4.3 - lokalt mediagalleri för bilder och korta filmer */
.media-section{clear:both;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--border)}
.media-section h4{margin:.1rem 0 .7rem}
.media-upload{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.media-upload small{flex:1;min-width:180px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:.7rem;margin-top:.8rem}
.media-item{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#0b1220}
.media-item img,.media-item video{display:block;width:100%;height:100%;object-fit:cover}
.media-item video{background:#000}
.media-delete{position:absolute;top:6px;right:6px;width:30px;height:30px;border:0;border-radius:50%;background:rgba(153,27,27,.9);color:#fff;font-size:1.25rem;line-height:1;cursor:pointer}
@media(max-width:760px){.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-upload{align-items:stretch}.media-upload .button{width:100%;justify-content:center}.media-upload small{width:100%}}
/* v4.5 - matchhantering */
.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.bulkbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.bulkbar select,.bulkbar input{min-width:180px}.history-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.match-check{width:20px;height:20px}.match-actions{display:flex;gap:.5rem;align-items:center}.action-menu{position:relative}.action-menu summary{list-style:none;cursor:pointer}.action-menu summary::-webkit-details-marker{display:none}.action-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:190px;padding:.45rem;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.18)}.action-popover a,.action-popover button{display:block;width:100%;padding:.65rem .75rem;border:0;background:transparent;color:var(--text);text-align:left;text-decoration:none;border-radius:8px;cursor:pointer}.action-popover a:hover,.action-popover button:hover{background:var(--bg)}.action-popover form{margin:0}.danger-link{color:#b91c1c!important}.button.danger{background:#b91c1c;color:#fff}.check{display:flex;align-items:center;gap:.4rem;white-space:nowrap}
@media(max-width:760px){.page-head{align-items:flex-start}.history-card{grid-template-columns:auto 1fr}.match-actions{grid-column:1/-1;justify-content:flex-end}.action-popover{right:0}.bulkbar>*{width:100%}}


/* v5.0 - modernare visuellt uttryck och tydligare mobilupplevelse */
:root{--brand:#16a34a;--brand-dark:#14532d;--brand-soft:#dcfce7;--shadow:0 12px 32px rgba(15,23,42,.08);--shadow-lg:0 24px 60px rgba(15,23,42,.14)}
body{background:radial-gradient(circle at 15% 0%,rgba(34,197,94,.09),transparent 30rem),var(--bg);min-height:100vh}
.site-header{position:sticky;top:0;z-index:200;background:rgba(13,50,31,.94);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.header-inner{min-height:68px}.brand{font-size:1.08rem;letter-spacing:-.02em}.brand span{font-weight:850}.main-nav a,.nav-button{font-weight:700;color:rgba(255,255,255,.88);transition:.18s ease}.main-nav a:hover,.nav-button:hover{color:#fff;transform:translateY(-1px)}
main{padding-top:34px}.hero{position:relative;overflow:hidden;min-height:330px;padding:clamp(28px,5vw,58px);border:1px solid rgba(22,163,74,.18);background:linear-gradient(130deg,#ffffff 0%,#f0fdf4 55%,#dcfce7 100%);box-shadow:var(--shadow-lg)}
.hero:after{content:'⛳';position:absolute;right:clamp(16px,7vw,80px);bottom:-34px;font-size:clamp(9rem,22vw,18rem);line-height:1;opacity:.09;transform:rotate(-8deg)}
.hero-copy{position:relative;z-index:1;max-width:700px}.eyebrow{display:inline-block;margin-bottom:12px;color:#15803d;font-size:.78rem;font-weight:900;letter-spacing:.14em}.hero h1{letter-spacing:-.055em;line-height:.95}.hero p{max-width:620px;font-size:clamp(1rem,2vw,1.2rem);line-height:1.65}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-button{padding:13px 18px}.ghost{background:rgba(255,255,255,.7)}
.stats{position:relative;z-index:1}.stats b{border:1px solid rgba(22,163,74,.15);box-shadow:var(--shadow);font-variant-numeric:tabular-nums}.panel,.card{box-shadow:var(--shadow);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-2px);border-color:rgba(22,163,74,.32);box-shadow:0 18px 38px rgba(15,23,42,.11)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:42px;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.button:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,23,42,.12)}.button.primary{background:linear-gradient(135deg,#16a34a,#15803d);border-color:#15803d}.button.danger{background:linear-gradient(135deg,#dc2626,#991b1b)}
input,select,textarea{min-height:44px;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14)}textarea{font:inherit;padding:11px;border:1px solid var(--border);border-radius:10px;resize:vertical}
.badge{background:var(--brand-soft);color:#166534}.site-footer{width:min(1180px,calc(100% - 36px));margin:0 auto 28px;padding:18px 4px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);border-top:1px solid var(--border)}.site-footer div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.version-chip{padding:5px 9px;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:.78rem;font-weight:800}
:root[data-theme="dark"] .hero{background:linear-gradient(130deg,#172033,#173324)}:root[data-theme="dark"] .ghost{background:rgba(23,32,51,.75)}:root[data-theme="dark"] .score-row{background:#121b2e}
@media(max-width:760px){main{padding-top:20px}.hero{min-height:auto;padding:28px 20px;border-radius:20px}.hero:after{right:-15px;bottom:-10px;font-size:10rem}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .button{width:100%}.stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:8px}.stats b{min-width:0;padding:12px 6px;font-size:1.25rem}.card{align-items:flex-start}.site-footer{width:calc(100% - 24px);align-items:flex-start}.site-footer div{display:grid;gap:4px}.main-nav{max-height:calc(100vh - 76px);overflow:auto}}
