:root{--forest:#163a2d;--forest-2:#244b3b;--deep:#102c22;--gold:#c9a760;--gold-2:#e9d3a2;--paper:#f7f7f2;--white:#fff;--ink:#1f332a;--muted:#697a72;--line:#e2e7df;--radius:16px;--shadow:0 16px 50px rgba(15,44,33,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,'Aptos','Segoe UI',system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%}.container{width:min(1190px,calc(100% - 64px));margin-inline:auto}.muted,.subdued{color:var(--muted)}.tiny{font-size:12px}.preserve-lines{white-space:pre-line}.gold-dot{color:var(--gold)}h1,h2,h3,p{margin-top:0}.eyebrow{color:#827253;font-size:11px;font-weight:800;letter-spacing:2.2px;text-transform:uppercase}.eyebrow.light{color:#e0c789}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;border:0;border-radius:7px;padding:14px 20px;font-weight:750;font-size:13px;transition:transform .18s,filter .18s}.btn:hover{transform:translateY(-2px);filter:brightness(1.06)}.btn-primary{background:var(--forest);color:white}.btn-gold{background:var(--gold);color:#1c3328}.text-link{color:var(--forest);font-weight:700;text-decoration:underline}
.site-header{position:relative;z-index:20;background:white;border-bottom:1px solid #e5e8e3}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px}.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}.brand-mark{font-weight:1000;font-size:29px;line-height:1;letter-spacing:-2px;color:var(--forest)}.brand-dot{color:var(--gold)}.brand-name{display:flex;flex-direction:column;line-height:1.2;letter-spacing:2px;font-weight:850;font-size:13px}.brand-name small{font-size:8px;letter-spacing:1.25px;color:#8e9b91;margin-top:4px}.main-nav{display:flex;align-items:center;gap:25px}.main-nav a{font-weight:650;font-size:13px;color:#60726a;position:relative;white-space:nowrap}.main-nav a:hover,.main-nav a.active{color:var(--forest)}.main-nav a.active:after{content:"";height:3px;position:absolute;bottom:-32px;left:0;right:0;background:var(--gold)}.user-actions{display:flex;align-items:center;gap:15px;font-size:12px;color:#6e8075}.welcome-name{white-space:nowrap}.logout{border:1px solid #e1e6df;border-radius:7px;background:white;padding:8px 12px;color:#3b5a49;font-size:12px;font-weight:700;white-space:nowrap}.logout:hover{border-color:var(--gold)}
.hero{background:var(--forest);overflow:hidden;color:white;min-height:475px}.hero-grid{display:grid;grid-template-columns:1.3fr .8fr;align-items:center;min-height:475px;position:relative}.hero-copy{padding:63px 0 75px;position:relative;z-index:2}.hero-copy .eyebrow{display:flex;align-items:center;gap:11px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d7b66c}.hero h1{font-size:clamp(39px,4.2vw,61px);font-weight:950;letter-spacing:-2.3px;line-height:1.12;margin:22px 0 23px}.hero h1 em{color:var(--gold-2);font-style:normal}.hero-copy>p{font-size:15px;color:#c4d5c9;max-width:490px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:31px;margin-top:28px}.hero-link{font-weight:700;font-size:13px;color:white}.hero-link span{color:var(--gold)}.hero-visual{height:100%;position:relative;min-height:410px;overflow:hidden}.ring{position:absolute;border:1px solid #456859;border-radius:50%;aspect-ratio:1;top:50%;left:50%;transform:translate(-50%,-50%)}.ring-1{width:350px}.ring-2{width:480px}.ring-3{width:630px}.golf-ball{width:244px;height:244px;border-radius:50%;position:absolute;left:50%;top:47%;transform:translate(-50%,-50%) rotate(-21deg);background:radial-gradient(circle at 37% 28%,#fff 4%,#e7efe9 45%,#afc1b4 83%,#6e9784 100%);box-shadow:inset -24px -19px 35px #7ea18d,8px 21px 45px rgba(0,0,0,.2)}.golf-ball i{position:absolute;border-radius:50%;width:33px;height:25px;box-shadow:inset 3px 4px 7px #adc5b7,1px 1px 2px white;background:#dce9e0}.golf-ball i:nth-child(1){top:14%;left:41%}.golf-ball i:nth-child(2){top:30%;left:20%}.golf-ball i:nth-child(3){top:33%;left:62%}.golf-ball i:nth-child(4){top:54%;left:37%}.golf-ball i:nth-child(5){top:60%;left:74%}.golf-ball i:nth-child(6){top:76%;left:12%}.golf-ball i:nth-child(7){top:80%;left:52%}.golf-ball i:nth-child(8){top:10%;left:77%}.golf-ball i:nth-child(9){top:49%;left:3%}.visual-caption{position:absolute;right:7px;top:65px;font-size:10px;letter-spacing:1.9px;color:#a8beae;text-align:right}.scorecard-plate{position:absolute;bottom:36px;right:22px;background:#f0e6ca;color:var(--forest);padding:14px 17px;width:140px;transform:rotate(8deg);box-shadow:0 8px 30px #081b1761}.scorecard-plate small,.scorecard-plate span{display:block;letter-spacing:1px;font-size:8px;font-weight:750}.scorecard-plate strong{font-size:55px;letter-spacing:-4px;line-height:1.1}.scorecard-plate sup{font-size:16px;letter-spacing:0}
.page-body{padding-top:64px;padding-bottom:75px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px;gap:20px}.section-heading h2,.content-section h2{font-size:33px;line-height:1.2;letter-spacing:-1px;margin:10px 0 0;font-weight:870}.section-hint{color:#809088;font-size:12px}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px}.news-panel,.aside-card,.feature-card,.event-card,.round-card,.chart-panel,.admin-card,.invite-box{border-radius:var(--radius)}.news-panel{background:white;border:1px solid var(--line);min-height:420px;padding:31px 35px}.news-item{padding:0 0 29px;margin-bottom:29px;border-bottom:1px solid var(--line)}.news-item:last-child{border:0;margin-bottom:0;padding-bottom:0}.news-date{font-size:11px;font-weight:750;color:#a28a58;letter-spacing:1.2px;text-transform:uppercase}.news-item h3{font-size:23px;letter-spacing:-.5px;margin:9px 0 12px}.news-item p{color:#5f7167;font-size:14px;line-height:1.8}.news-author{font-size:11px;color:#94a299;margin-top:20px}.sidebar-panel{display:flex;flex-direction:column;gap:20px}.aside-card{padding:30px}.forest-card{background:var(--forest);color:white}.big-year{font-size:80px;line-height:1.05;letter-spacing:-4px;font-weight:950;color:var(--gold-2);margin:10px 0}.aside-card h3{font-size:18px;margin:8px 0}.aside-card p{color:#cfdbd1;font-size:13px}.round-line{display:flex;align-items:center;gap:8px;border-top:1px solid #527263;font-size:11px;padding:10px 0}.round-line span{color:#d2bc89}.round-line strong{font-weight:650;flex:1}.round-line small{color:#bfcebe}.aside-link{display:block;margin-top:18px;color:var(--gold-2);font-size:13px;font-weight:800}.light-card{background:#edeadd}.light-card p{color:#5f6d5e}.light-card a{color:var(--forest);font-weight:800;font-size:13px}.recap-year{display:block;font-size:49px;letter-spacing:-2px;margin:3px 0}.feature-grid{margin-top:32px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature-card{background:#fff;border:1px solid var(--line);padding:28px 30px;position:relative;transition:transform .15s,box-shadow .15s}.feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.feature-icon{display:grid;place-items:center;width:39px;height:39px;background:#e9eee7;border-radius:10px;color:#4f7964;font-size:23px}.feature-card h3{font-size:17px;margin:19px 0 4px}.feature-card p{color:var(--muted);font-size:13px;margin:0}.feature-arrow{position:absolute;right:25px;top:29px;color:#899d90;font-size:19px}.empty-state{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:260px;text-align:center;padding:35px;background:white;border-radius:12px}.empty-state h3{margin:12px 0 6px}.empty-state p{color:var(--muted);max-width:330px;margin:0}.empty-icon{font-size:33px;color:var(--gold)}.small-empty{min-height:110px;border:1px dashed #d9e0d6;color:var(--muted)}
.page-top{background:var(--forest);color:white;padding:60px 0 67px;position:relative;overflow:hidden}.page-top:after{content:'';position:absolute;width:400px;height:400px;border:1px solid #547362;right:-90px;top:-230px;border-radius:50%;box-shadow:0 0 0 60px #ffffff08,0 0 0 140px #ffffff05}.page-top h1{font-size:clamp(42px,5.1vw,70px);letter-spacing:-2.8px;line-height:1.12;margin:15px 0}.page-top h1 span{color:var(--gold)}.page-top p{color:#c5d5c9;max-width:670px;margin:0;line-height:1.8}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.event-card{display:block;background:white;border:1px solid var(--line);padding:26px 29px;transition:transform .18s,box-shadow .18s}.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.event-card-top{display:flex;justify-content:space-between;align-items:center}.tag{font-size:10px;font-weight:800;letter-spacing:1px;color:#317456;background:#e2f2e7;padding:5px 9px;border-radius:4px}.tag-upcoming{color:#99702a;background:#fff4d9}.event-card-arrow{font-size:23px;color:#87a08f}.event-card>strong{display:block;font-size:63px;line-height:1.2;letter-spacing:-3px;margin-top:15px;color:var(--forest)}.event-card h3{font-size:16px;font-weight:750;margin:8px 0 25px}.event-divider{height:1px;background:var(--line);margin-bottom:16px}.event-course{display:grid;grid-template-columns:24px 1fr;gap:9px;padding:7px 0;font-size:13px}.event-course>span:first-child{font-weight:850;color:var(--gold)}.event-card>p{font-size:13px;color:var(--muted)}.detail-top{padding-top:33px}.back-link{display:inline-block;color:#cfddce;font-size:12px;margin-bottom:28px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px}.content-section{padding-bottom:45px;margin-bottom:42px;border-bottom:1px solid var(--line)}.content-section h2{margin:9px 0 18px}.large-body{font-size:15px;line-height:1.9;color:#5f7066}.round-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:26px}.round-card{background:white;border:1px solid var(--line);padding:26px}.round-card h3{font-size:19px;margin:10px 0 2px}.round-card p{font-size:13px;color:var(--muted);margin:0 0 25px}.round-card strong{font-size:13px}.results-table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:11px}.results-table{border-collapse:collapse;width:100%;text-align:left}.results-table th{font-size:10px;letter-spacing:1.2px;color:#7f9086;background:#f0f3ee;padding:15px 17px}.results-table td{padding:17px;border-top:1px solid var(--line);font-size:14px}.winner-row td{font-weight:850;background:#fffaeb}.place-pill{font-weight:850;color:var(--forest)}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.photo-grid figure{margin:0;background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.photo-grid img{display:block;width:100%;height:190px;object-fit:cover}.photo-grid figcaption{font-size:12px;color:#67756e;padding:9px 13px}.detail-aside .fact-item{display:flex;flex-direction:column;gap:3px;padding:16px 0;border-bottom:1px solid #456854}.detail-aside .fact-item small{font-size:10px;letter-spacing:1.3px;color:#b1c6b6}.detail-aside .fact-item strong{font-size:16px}.aside-secondary{display:block;background:#eaeade;border-radius:9px;color:var(--forest);padding:19px;font-size:13px;font-weight:750;margin-top:17px}
.map-frame{height:580px;position:relative;border-radius:15px;overflow:hidden;border:1px solid #dde4db;box-shadow:var(--shadow);background:#dfe9dc}#golf-map{height:100%;width:100%;z-index:1}.map-empty{position:absolute;z-index:5;top:18px;left:50%;transform:translateX(-50%);background:white;padding:12px 20px;box-shadow:0 4px 16px #0002;border-radius:9px;color:var(--muted);font-size:13px}.helper-note{color:var(--muted);font-size:11px;margin-top:18px}.map-popup strong{display:block;color:var(--forest);font-size:17px;margin-bottom:2px}.map-popup>small{display:block;color:#86958b;margin-bottom:9px}.popup-event{display:flex;flex-direction:column;gap:1px;color:var(--forest);padding:10px 0;border-top:1px solid #e2e8e2}.popup-event span{font-size:12px;color:#5a6c60}.popup-event:hover{text-decoration:underline}.stat-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:57px}.stat-number-card{background:white;border-radius:12px;border:1px solid var(--line);padding:23px 28px}.stat-number-card strong{display:block;font-size:46px;letter-spacing:-2px;line-height:1.2;color:var(--forest)}.stat-number-card span{font-size:10px;letter-spacing:1.3px;font-weight:800;color:#8b978e}.stat-number-card .stat-record-years{display:block;margin-top:7px;color:#637467;font-weight:600;font-size:12px;letter-spacing:0}
.chart-panel{padding:34px 40px;background:white;border:1px solid var(--line)}.chart-header{display:flex;justify-content:space-between}.chart-header h3{font-size:22px;margin-bottom:3px}.chart-header p{font-size:13px;color:var(--muted)}.chart-icon{font-size:33px;color:var(--gold)}.chart-height{height:330px;margin:25px 0}.winner-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;list-style:none;padding:25px 0 0;margin:0;border-top:1px solid var(--line)}.winner-legend li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.winner-legend li>span:last-child{margin-left:auto;color:var(--muted)}.legend-rank{color:#b0965b;font-size:16px;font-weight:900}
.admin-intro{padding:17px 22px;background:#e9eee5;border-left:3px solid var(--gold);border-radius:7px;color:#456251;margin-bottom:30px;font-size:13px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-card{background:white;border:1px solid var(--line);padding:29px;min-width:0}.admin-card-head{display:flex;align-items:center;gap:15px;margin-bottom:24px}.admin-index{display:grid;place-items:center;width:43px;height:43px;background:#e8efe7;color:var(--forest);border-radius:11px;font-size:16px;font-weight:900;flex-shrink:0}.admin-card-head h2{margin:0;font-size:19px}.admin-card-head p{margin:2px 0 0;font-size:12px;color:var(--muted)}.admin-card form{display:flex;flex-direction:column;gap:13px}.admin-card label,.form-stack label{display:block;font-weight:760;font-size:12px;color:#354c40}.admin-card input:not([type='checkbox']):not([type='radio']),.admin-card textarea,.admin-card select,.form-stack input,.copy-row input{display:block;width:100%;border:1px solid #d8e1d8;border-radius:7px;background:#fdfefb;margin-top:7px;padding:12px 14px;color:var(--ink);outline:none}.admin-card input:focus,.admin-card textarea:focus,.admin-card select:focus,.form-stack input:focus,.copy-row input:focus{border-color:#8fae97;box-shadow:0 0 0 3px #d6e9d9}.admin-card textarea{resize:vertical}.admin-card .btn{width:100%;margin-top:6px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check-label{display:flex!important;align-items:center;gap:9px;font-size:13px!important;font-weight:600!important}.check-label input{accent-color:var(--forest)}.mini-list{margin-top:17px}.mini-list>div{font-size:11px;border-top:1px solid var(--line);padding:8px 0;display:flex;justify-content:space-between}.mini-list small{color:#89978b}.admin-bottom{margin:38px 0;padding:28px 30px;border-radius:12px;background:white;border:1px solid var(--line)}.admin-bottom h2{font-size:23px}.manage-event{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);padding:14px 0}.manage-event a{font-weight:800}.manage-event span{color:var(--muted);font-size:12px}.manage-event button{font-size:11px;border:1px solid var(--line);padding:7px;background:white;border-radius:6px;color:var(--forest)}.message-success,.message-error{border-radius:7px;padding:13px 17px;margin-bottom:22px;font-size:13px}.message-success{background:#e4f2e7;color:#255e39}.message-error{background:#fcf0e4;color:#945a2f}.invite-box{max-width:780px;margin:0 auto;padding:34px;background:white;border:1px solid var(--line)}.invite-box p{color:var(--muted)}.copy-row{display:flex;gap:10px;align-items:end;margin:23px 0}.copy-row input{margin:0;flex:1;min-width:0}.copy-row button{flex-shrink:0}.invite-box .subdued{margin:20px 0}.invite-box .text-link{font-size:13px}
.auth-page{background:#fff}.auth-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-art{background:radial-gradient(circle at 54% 43%,#345d46 0,#1f4534 34%,#112f23 76%);position:relative;overflow:hidden;display:flex;align-items:center;color:white}.auth-art:before,.auth-art:after{content:'';position:absolute;border:1px solid #ffffff1c;border-radius:50%;width:580px;height:580px;left:42%;top:30%;transform:translate(-50%,-50%)}.auth-art:after{width:780px;height:780px}.auth-art-content{position:relative;z-index:1;width:min(550px,90%);margin:0 auto;padding:60px 30px}.auth-title{font-weight:950;font-size:clamp(50px,5.8vw,89px);line-height:1.06;letter-spacing:-3px;margin:26px 0}.auth-title span{color:var(--gold)}.auth-art-content>p{font-size:18px;line-height:1.9;color:#c9dfcd}.auth-emblem{display:inline-block;margin-top:80px;border:1px solid #ffffff61;border-radius:100px;padding:9px 19px;letter-spacing:4px;font-size:11px;font-weight:850}.auth-emblem span{color:var(--gold)}.course-lines{position:relative;width:290px;height:75px;border-top:1px solid #ffffff25;transform:rotate(-13deg);border-radius:70%;margin-top:45px}.course-lines span{display:block;height:15px;border-bottom:1px solid #ffffff20;border-radius:65%}.auth-form-side{display:flex;align-items:center;justify-content:center;padding:55px 52px;background:#fdfdfb}.auth-form-wrap{width:min(425px,100%)}.auth-logo{display:flex;align-items:baseline;gap:11px;font-size:30px;font-weight:950;letter-spacing:-2px;color:var(--forest);margin-bottom:69px}.auth-logo>span{color:var(--gold);margin-left:-11px}.auth-logo small{font-size:11px;font-weight:900;letter-spacing:2px;margin-left:10px}.auth-form-wrap h1{font-size:44px;letter-spacing:-1.7px;line-height:1.14;margin:15px 0 16px}.lede{font-size:14px;line-height:1.8;color:#7b8c81;margin-bottom:28px}.form-stack{display:flex;flex-direction:column;gap:17px}.form-stack input{padding:14px;margin-top:8px}.form-stack>.btn{margin-top:10px;width:100%}.auth-notice{display:flex;gap:14px;border-top:1px solid #e4e9e2;margin-top:38px;padding-top:27px;font-size:12px;color:#637569}.auth-notice>span{font-size:18px}.auth-notice strong{font-size:12px;color:#496051}.auth-notice p{margin:5px 0;line-height:1.7}.site-footer{background:#f0f2ed;border-top:1px solid #e2e6de;padding:25px 0}.footer-inner{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#6a7c71;font-weight:700;letter-spacing:.6px}.golf-symbol{font-size:15px}
@media(max-width:1020px){.header-inner{flex-wrap:wrap;padding-top:18px;padding-bottom:16px}.main-nav{order:3;width:100%;justify-content:space-between;gap:12px}.main-nav a.active:after{bottom:-16px}.hero-grid{grid-template-columns:1.2fr .8fr}.welcome-name{display:none}.home-grid{grid-template-columns:minmax(0,1fr) 285px}.detail-layout{grid-template-columns:minmax(0,1fr) 250px;gap:25px}}
@media(max-width:760px){.container{width:min(100% - 36px,1190px)}.header-inner{gap:13px}.brand-name small{display:none}.main-nav{overflow:auto;padding-bottom:3px;gap:17px}.main-nav a{font-size:12px}.user-actions{margin-left:auto}.hero-grid{display:block;min-height:auto}.hero-copy{padding:60px 0}.hero h1{font-size:43px}.hero-visual{display:none}.home-grid,.detail-layout,.admin-grid{grid-template-columns:1fr}.feature-grid,.event-grid{grid-template-columns:1fr 1fr}.page-body{padding-top:42px}.section-heading h2,.content-section h2{font-size:28px}.page-top{padding:48px 0}.detail-aside{order:-1}.stat-summary{grid-template-columns:repeat(3,1fr)}.stat-number-card{padding:17px}.stat-number-card strong{font-size:36px}.stat-number-card span{font-size:9px}.auth-layout{grid-template-columns:1fr}.auth-art{min-height:260px}.auth-art-content{padding:26px 25px}.auth-title{font-size:47px;margin:15px 0}.auth-art-content>p{font-size:13px;margin:0}.auth-emblem,.course-lines{display:none}.auth-form-side{padding:38px 28px}.auth-logo{margin-bottom:35px}.auth-form-wrap h1{font-size:38px}.map-frame{height:480px}}
@media(max-width:520px){.brand-name{display:none}.main-nav{gap:15px}.main-nav a{font-size:11px}.welcome-name{display:none}.section-hint{display:none}.news-panel{padding:24px 21px}.feature-grid,.event-grid,.round-grid,.stat-summary,.winner-legend{grid-template-columns:1fr}.hero h1{font-size:34px;letter-spacing:-1.5px}.hero-actions{flex-wrap:wrap}.chart-panel{padding:24px 18px}.chart-height{height:265px}.chart-header h3{font-size:19px}.stat-number-card{display:flex;align-items:center;gap:19px}.footer-inner{display:block}.footer-inner>span{display:block;margin-bottom:7px}.field-row{grid-template-columns:1fr}.copy-row{flex-direction:column;align-items:stretch}.copy-row input{flex:auto}.manage-event{flex-wrap:wrap}.map-frame{height:390px}}

/* Offline-capable bar chart: no external scripts required. */
.custom-bar-chart{padding:42px 0 44px;display:flex;flex-direction:column;gap:28px;min-height:285px;justify-content:center}.bar-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:19px;align-items:center}.bar-name{font-weight:750;font-size:14px;color:#3b5344}.bar-track{height:45px;background:#f1f4ee;border-radius:7px;overflow:hidden}.bar-fill{height:100%;border-radius:7px;min-width:75px;background:#c4a466;display:flex;align-items:center;justify-content:flex-end;padding:0 15px;transition:width .35s;white-space:nowrap}.bar-fill span{font-weight:850;font-size:12px;color:#234134}.bar-row:nth-child(2) .bar-fill{background:#94ad9c}.bar-row:nth-child(3) .bar-fill{background:#c4ccc2}@media(max-width:520px){.bar-row{grid-template-columns:1fr;gap:6px}.custom-bar-chart{gap:18px;padding:20px 0 35px}}

/* Släktfejden v2 – poängresultat och vinnarmarkering */
.result-player{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.winner-badge{display:inline-flex;align-items:center;gap:5px;border-radius:24px;background:#d8bc78;color:#183b2d;padding:5px 11px;font-size:10px;line-height:1;white-space:nowrap;font-weight:900;letter-spacing:.65px}
.winner-row td{background:#fff9e8}
.winner-row td:first-child{box-shadow:inset 4px 0 #c5a260}
.result-points{font-size:17px!important;font-weight:850;font-variant-numeric:tabular-nums;color:#244837;white-space:nowrap}
.points-unit{font-size:11px;color:#72877a;font-weight:700;margin-left:5px}
.result-footnote{color:#7a877b;font-size:12px;line-height:1.7;margin:11px 2px 0}

/* Släktfejden v3 – avgjort utslag vid delad högsta poäng */
.badge-leading{background:#e8eadc;color:#5b6b51}
.tiebreak-note{padding:12px 16px;margin:13px 0 0;background:#fff8e8;border-left:3px solid #c9a760;border-radius:3px;font-size:13px;color:#4c604f}
.tiebreak-note strong{color:#2b5039}
.tiebreak-admin-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-left:12px;border-left:2px solid #c9a760;color:#687869}
.text-danger-button{border:1px solid #e0d8cc;border-radius:5px;background:#fff8ef;color:#815e37;padding:7px 10px;font-size:11px;font-weight:700}

/* Släktfejden v4 · tournament creation, day-by-day reporting */
.wizard-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:30px;align-items:start}.wizard-main{min-width:0}.wizard-form{display:flex;flex-direction:column;gap:22px}.wizard-panel{background:#fff;border:1px solid var(--line);padding:29px 33px;border-radius:9px;margin-bottom:18px}.wizard-heading{display:flex;gap:15px;align-items:center;margin-bottom:24px}.wizard-heading h2{font-size:23px;margin:0}.wizard-heading p{font-size:13px;color:var(--muted);margin:5px 0 0}.wizard-panel label,.winner-form label,.coords-form label{display:block;color:#354c40;font-size:13px;font-weight:760;margin-bottom:13px}.wizard-panel input:not([type=checkbox]),.wizard-panel select,.wizard-panel textarea,.winner-form input,.winner-form select,.coords-form input{display:block;width:100%;padding:12px 13px;margin-top:7px;background:#fff;border:1px solid #d7e1d8;border-radius:7px;color:var(--ink);font:inherit}.wizard-panel textarea{resize:vertical}.wizard-day{border-top:1px solid #e5ece3;padding:20px 0 5px}.wizard-day:first-child{border-top:0;padding-top:0}.wizard-day-title{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:15px}.day-dot{background:#dfe8dc;color:#284c35;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:900}.wizard-person{margin-bottom:11px!important}.wizard-count{max-width:260px}.small-help{font-size:12px;line-height:1.7;color:#718475}.wizard-steps{font-size:13px;line-height:1.9;padding-left:21px;color:#d7e2d5}.wizard-steps li{padding:5px 0}.wizard-submit{background:#e9eee5;padding:23px;border-radius:9px}.wizard-submit p{margin:0 0 16px;font-size:13px;color:#47624c;line-height:1.6}.wizard-aside{position:sticky;top:20px}.admin-summary-bar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px}.admin-summary-bar h2{margin:3px 0;font-size:28px}.score-overview{max-width:900px}.round-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-area-title{margin:34px 0 22px;font-size:27px}.score-day-card{margin:0}.score-day-header{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px}.score-day-header h3{font-size:21px;margin:4px 0 0}.status-pill{border:1px solid #e4dcbf;background:#faf6ea;color:#856d3d;font-size:10px;font-weight:800;letter-spacing:.5px;padding:7px 10px;border-radius:25px;white-space:nowrap}.status-done{border-color:#cde3c9;background:#e9f3e6;color:#315d3f}.status-cancelled{border-color:#ead7cb;background:#faf0ea;color:#8b4e32}.score-day-form{display:flex;flex-direction:column;gap:7px}.score-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 64px;gap:9px;align-items:center;border-bottom:1px solid #f0f2ec;padding:8px 0}.score-row strong{font-size:13px;font-weight:700;overflow-wrap:anywhere}.score-row input[type=number]{width:100%;margin:0;padding:9px;font-size:14px;text-align:center}.score-head{font-size:10px;font-weight:850;letter-spacing:.5px;color:#839487}.dns-label{margin:0!important;display:flex!important;gap:5px;align-items:center;white-space:nowrap;font-size:12px!important}.dns-label input{accent-color:#244837}.cancel-day{margin-top:18px;border-top:1px solid var(--line);padding-top:13px}.cancel-day summary{cursor:pointer;color:#86623e;font-size:12px;font-weight:800}.cancel-day form{margin-top:18px}.cancel-note{background:#faf0e8;border-left:3px solid #bb9167;padding:12px 15px;font-size:13px;color:#724e31}.winner-confirm-card{background:#fff;border:1px solid #d5d8c3;border-top:4px solid #c6a666;border-radius:8px;padding:30px 33px;margin:30px 0}.winner-confirm-card h2{font-size:27px;margin:7px 0 13px}.winner-confirm-card p{font-size:14px;color:#526656;line-height:1.7}.winner-form{max-width:440px;display:flex;flex-direction:column;gap:10px}.coords-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding:13px 0}.coords-form strong{min-width:160px;font-size:13px}.coords-form label{max-width:150px;margin:0!important}.coords-form .btn{padding:11px 15px}.admin-create-banner{border-radius:12px;background:linear-gradient(110deg,#183e2d,#2e6146);color:#fff;padding:25px 29px;display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:26px}.admin-create-banner h2{font-size:25px;color:#fff;margin:5px 0}.admin-create-banner p{margin:5px 0;color:#d0dfd1;font-size:13px}.admin-create-banner .btn{white-space:nowrap}.legacy-tools{border:1px solid var(--line);background:#fff;border-radius:10px;padding:18px 22px;margin:18px 0}.legacy-tools>summary{font-size:14px;cursor:pointer;font-weight:800;color:#536957}.legacy-tools>.admin-grid{margin-top:22px}.manage-event .btn{font-size:12px}.detail-status{padding:13px 17px;background:#eaf1e8;border-left:3px solid #c5a364;color:#315542;font-size:13px;margin-bottom:16px}.detail-status.status-completed{background:#fff8e7}.result-days{font-size:12px!important;color:#586e5b}.results-table-wrap{overflow-x:auto}.results-table{min-width:490px}@media(max-width:900px){.wizard-layout{grid-template-columns:1fr}.wizard-aside{position:static}.round-admin-grid{grid-template-columns:1fr}}@media(max-width:620px){.wizard-panel{padding:22px 17px}.admin-create-banner{flex-direction:column;align-items:start}.score-day-header{flex-wrap:wrap}.score-row{grid-template-columns:minmax(0,1fr) 80px 58px;gap:5px}.winner-confirm-card{padding:24px 20px}.admin-summary-bar{align-items:start;flex-direction:column}}

.legacy-tools{grid-column:1/-1}

/* Version 5: admin-controlled course map */
.admin-map-banner{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:26px;padding:25px 29px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:11px}
.admin-map-banner h2{margin:5px 0;font-size:23px;letter-spacing:-.4px}
.admin-map-banner p{color:var(--muted);font-size:13px;max-width:610px;margin:6px 0 0}
.admin-map-banner .btn{white-space:nowrap}
.map-editor-panel{margin-top:30px}
.map-editor-panel>h2{font-size:27px;margin:6px 0 9px}
.map-editor-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(295px,1fr);gap:20px;align-items:start;margin:23px 0}
.map-editor-map-wrap{min-width:0;position:sticky;top:18px}
#admin-course-map{height:470px;background:#e2eadf;border:1px solid #d4dfd1;border-radius:12px;z-index:0}
.map-editor-hint{background:#e8f0e6;border:1px solid #d0decf;color:#345443;border-radius:8px;font-size:12px;padding:11px 14px;margin-top:12px}
.map-editor-controls{display:flex;flex-direction:column;gap:12px}
.map-course-form{padding:18px;background:#f8faf7;border:1px solid #dfe7df;border-radius:10px;transition:border-color .15s,box-shadow .15s}
.map-course-form.map-course-active{border-color:#bc9e5e;box-shadow:0 0 0 2px rgba(201,167,96,.16);background:#fffcf3}
.map-course-form-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:14px}
.map-course-form-heading strong{font-size:15px;line-height:1.35;display:block}
.map-course-form-heading small{font-size:11px;color:var(--muted);display:block;margin-top:4px}
.map-course-status{font-size:10px;color:#55755e;font-weight:800;white-space:nowrap}
.map-select-button{border:1px solid #cbd9cb;border-radius:6px;background:#fff;padding:9px 12px;color:var(--forest);font-weight:780;font-size:12px;width:100%;text-align:center}
.map-select-button[aria-pressed="true"]{background:#28513b;color:white;border-color:#28513b}
.map-coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:13px 0 14px}
.map-coordinate-fields label{font-size:11px;margin:0;color:#627469}
.map-coordinate-fields input{margin-top:5px!important;font-size:12px!important;padding:9px 8px!important}
.map-course-form .map-save-button{font-size:12px;justify-content:center;width:100%;padding:10px 12px}
.map-course-unsaved .map-save-button{background:#c9a760;color:#193427}
.map-editor-footnote{margin:7px 0 0}
@media(max-width:950px){.map-editor-grid{grid-template-columns:1fr}.map-editor-map-wrap{position:static}#admin-course-map{height:410px}}
@media(max-width:650px){.admin-map-banner{flex-direction:column;align-items:start}.admin-map-banner .btn{width:100%}#admin-course-map{height:340px}.map-course-form-heading{flex-wrap:wrap}}

/* v6: inbjudna medlemmars bilder och diskussioner */
.social-section{scroll-margin-top:100px}
.social-intro{color:#68796d;font-size:14px;line-height:1.65;margin:4px 0 20px}
.member-upload-panel{border:1px solid #d9e3dc;border-radius:14px;padding:22px;background:#f5f8f4;margin:20px 0 28px}
.member-upload-panel h3{margin:0 0 14px;color:#173f32;font-family:inherit}
.member-upload-form{display:grid;gap:14px}
.member-upload-form label,.comment-form label{font-size:13px;font-weight:700;color:#294437;display:block}
.member-upload-form input[type=file],.member-upload-form textarea,.comment-form textarea{width:100%;margin-top:7px;border-radius:8px;border:1px solid #cfdcd3;background:white;padding:12px;font:inherit;color:#21392c}
.member-upload-form input[type=file]{font-size:12px}
.subtle-inline{font-size:11px;font-weight:400;color:#738879}
.photo-consent-box{background:#fffdf7;border:1px solid #d8c9a4;border-left:4px solid #c6a75f;padding:16px;border-radius:9px}
.photo-consent-box strong{color:#3a4b35;font-size:13px}
.photo-consent-box p{color:#526357;line-height:1.6;margin:8px 0 12px;font-size:13px}
.photo-consent-box .consent-label,.consent-label{display:flex;gap:11px;align-items:flex-start;font-weight:600!important;font-size:13px;line-height:1.45}
.photo-consent-box .consent-label input,.consent-label input{flex-shrink:0;margin:2px 0 0;width:17px;height:17px;accent-color:#265d43}
.community-gallery{display:grid;gap:21px}
.community-photo{overflow:hidden;border:1px solid #dbe6dd;border-radius:13px;background:white;box-shadow:0 7px 24px rgba(15,49,33,.045)}
.community-photo-link{display:block;background:#e8efe7;text-align:center}
.community-photo-link img{display:block;max-height:450px;max-width:100%;width:100%;object-fit:contain}
.community-photo-body{padding:18px 20px 22px}
.community-photo-meta{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.author-avatar{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:#e5efdf;color:#205339;font-weight:800;flex-shrink:0}
.community-photo-meta strong{display:block;font-size:13px;color:#1c4231}
.community-photo-meta small{font-size:11px;color:#7a887d;display:block;margin-top:2px}
.photo-caption{color:#314337;line-height:1.55;font-size:14px;margin:12px 0 18px}
.comment-divider{border-top:1px solid #edf0eb;margin:16px 0}
.community-photo h4{font-size:13px;color:#1d4532;margin:0 0 14px}
.comment-count{color:#8b9b8d;margin-left:5px}
.social-comment{display:flex;gap:11px;align-items:flex-start;margin:12px 0;padding:12px 0;border-bottom:1px solid #edf1ec}
.comment-content{min-width:0;flex:1}
.comment-byline{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.comment-byline strong{font-size:12px;color:#244b37}
.comment-byline time{font-size:10px;color:#89978c}
.social-comment p{font-size:13px;color:#4b5f50;line-height:1.65;margin:5px 0 0;overflow-wrap:anywhere}
.delete-inline{margin-top:7px}
.social-comment .text-danger-button{font-size:11px;flex-shrink:0}
.comment-form{margin-top:15px;display:grid;gap:9px}
.comment-form textarea{margin-top:0}
.comment-form .btn{justify-self:start}
.event-discussion{background:#fff;border:1px solid #dbe5dc;padding:20px;border-radius:13px}
.event-comment{align-items:flex-start}
.discussion-compose{border-top:1px solid #e7ede7;padding-top:19px;margin-top:19px}
@media(max-width:600px){.member-upload-panel,.event-discussion{padding:15px}.community-photo-body{padding:13px}.social-comment{gap:6px}.social-comment .text-danger-button{font-size:10px}}

/* v8: kontosäkerhet och tvåfaktor */
.member-management{scroll-margin-top:115px}
.member-list{display:grid;gap:12px;margin-top:18px}
.member-item{border:1px solid #dfe8df;border-radius:12px;background:#fff;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.member-summary{display:flex;flex-direction:column;gap:5px}
.member-summary strong{font-size:15px;color:#193e2c}.member-summary small{font-size:12px;color:#66786c}
.member-state{font-size:11px;color:#286d45;font-weight:700}.member-state.frozen{color:#a04331}
.member-controls{display:flex;gap:8px;flex-wrap:wrap}.member-controls .btn{font-size:12px;padding:10px 15px}
.secret-card{background:#fff9ed;border:1px solid #e2d1a8;padding:16px;border-radius:10px;margin:17px 0}.secret-card label{font-size:12px;font-weight:700}.secret-card p{font-size:12px;line-height:1.6}
.mfa-secret{display:block;word-break:break-all;letter-spacing:1px;font-size:13px;padding:12px 0;color:#244b37}
.security-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:24px 0}.security-code-grid code{font-size:12px;padding:14px;background:#edf3eb;word-break:break-all;border-radius:6px}
.reset-url input{width:100%;padding:15px;border:1px solid #cbdacd;border-radius:7px;color:#234a35;font-size:14px}
@media(max-width:600px){.security-code-grid{grid-template-columns:1fr}.member-controls{width:100%}.member-item{align-items:start}}

/* v11: members-only golf directory. No remote widgets, no external links. */
.public-members-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0 50px}
.public-member-card{display:flex;align-items:flex-start;gap:17px;border-radius:12px;border:1px solid var(--line);background:white;padding:24px;transition:box-shadow .15s,border-color .15s}
.public-member-card:hover{box-shadow:var(--shadow);border-color:var(--gold)}
.public-member-info{flex:1;min-width:0}.public-member-info h2{font-size:19px;line-height:1.35;margin:0 0 13px;color:var(--forest);overflow-wrap:anywhere}
.public-member-facts{display:flex;gap:7px;flex-wrap:wrap;flex-direction:column;color:#667568;font-size:13px;overflow-wrap:anywhere}
.public-member-facts strong{color:#304d39}.public-member-arrow{color:#ab8d52;font-weight:800}
.public-profile-card{max-width:680px;margin-top:24px}.public-profile-fact{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 0;gap:18px;overflow-wrap:anywhere}
.public-profile-fact strong{color:#4c6654}.public-profile-fact span{color:#203f30;font-weight:700}
@media(max-width:720px){.public-members-grid{grid-template-columns:1fr}.public-member-card{padding:18px}}


/* Version 14: handset layout and historic winner-only pages. */
.mobile-menu{display:none}.historic-result-card{background:#fff9e9;border:1px solid #e8d8ae;border-left:5px solid var(--gold);border-radius:10px;padding:25px 28px;max-width:690px}.historic-winner-name{font-size:clamp(24px,4vw,36px);font-weight:850;color:var(--forest);letter-spacing:-.8px;margin:12px 0 3px;overflow-wrap:anywhere}.historic-result-card>p{margin:6px 0;color:#556b59}.historic-confirmed{padding:16px;border-radius:9px;background:#fff6dc;color:var(--forest);font-size:22px;font-weight:850;margin:12px 0 22px}.historical-winner-editor{max-width:900px}.historic-day{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.historic-day>div{min-width:0;overflow-wrap:anywhere}.historic-day p{color:var(--muted);font-size:13px;margin:3px 0}.historic-day form{min-width:220px;max-width:280px}.historic-day label{margin:0 0 8px!important}.unknown-points-option{border:1px solid #e0d2a6;background:#fffaf0;padding:16px 18px;border-radius:9px;margin:22px 0}.unknown-points-label{display:flex!important;align-items:start;gap:12px;margin:0!important;cursor:pointer}.unknown-points-label input{width:20px;height:20px;accent-color:var(--forest);flex-shrink:0;margin:2px 0 0}.unknown-points-label small{display:block;margin-top:4px;color:#647568;font-weight:450;line-height:1.6}.table-swipe-hint{display:none;font-size:12px;color:#5d7264}.archive-year-card{min-height:175px}.archive-year-card h3{margin-bottom:0}
@media(max-width:760px){
 .header-inner{position:relative;flex-wrap:nowrap;min-height:70px;gap:12px;padding-top:8px;padding-bottom:8px}.main-nav{display:none}.mobile-menu{display:block;margin-left:auto}.mobile-menu>summary{list-style:none;display:flex;align-items:center;gap:7px;border:1px solid #e0e8dd;padding:11px 13px;border-radius:8px;font-size:14px;font-weight:750;color:var(--forest);min-height:44px;cursor:pointer}.mobile-menu>summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;top:calc(100% - 1px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:0 0 10px 10px;z-index:50;box-shadow:0 15px 24px #12332118;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:8px}.mobile-menu nav a{padding:13px 12px;color:var(--forest);font-weight:750;border-radius:7px;font-size:14px;min-height:44px}.mobile-menu nav a:hover,.mobile-menu nav a:focus-visible{background:#eff3ee}.user-actions{margin-left:0}.logout{min-height:44px;padding:10px}.hero-copy{padding:40px 0}.table-swipe-hint{display:block}.historic-day{flex-wrap:wrap}.historic-day form{max-width:none;width:100%}.historic-result-card{padding:20px 18px}.results-table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.results-table{min-width:590px}.map-frame{max-width:100%}img{height:auto}
}
@media(max-width:520px){
 .container{width:calc(100% - 28px)}.header-inner{gap:9px}.brand-mark{font-size:25px}.site-header .user-actions{flex-shrink:0}.auth-form-side{padding:32px 18px}.auth-art{min-height:190px}.auth-title{font-size:36px}.page-top{padding:33px 0}.page-top h1{overflow-wrap:anywhere}.page-body{padding-top:27px;padding-bottom:44px}.wizard-panel,.winner-confirm-card{padding:19px 14px}.hero h1{font-size:clamp(28px,8vw,38px)}.hero-actions .btn{width:100%}.detail-layout>*{min-width:0}.score-day-form .score-row{grid-template-columns:minmax(0,1fr) 83px 55px}.event-grid-years{grid-template-columns:1fr}.archive-year-card{min-height:145px}.results-table th,.results-table td{padding:10px 12px}.historic-confirmed{font-size:19px}.btn{min-height:44px}input:not([type=checkbox]),select,textarea{max-width:100%;font-size:16px}.content-section,.news-panel{min-width:0}.auth-form-wrap{min-width:0}
}

/* Årsspecifika spelregler – texten är enbart server-escapad, aldrig HTML. */
.game-rules-section{border-top:3px solid var(--gold);background:#fff;border-radius:10px;padding:28px 32px}
.game-rules-section h2{margin-bottom:18px}
.game-rules-text{font-size:15px;line-height:1.9;color:#334d3c;white-space:pre-wrap;overflow-wrap:anywhere}
.game-rules-editor{margin:0 0 28px}
.game-rules-editor form{max-width:760px}
.game-rules-editor label{display:block;font-size:13px;font-weight:750;margin-bottom:5px}
.game-rules-editor textarea{width:100%;display:block;border:1px solid #d7e1d8;border-radius:7px;padding:14px;font:inherit;font-size:16px;line-height:1.65;min-height:165px;resize:vertical;color:var(--ink)}
.game-rules-editor .btn{margin-top:10px}
@media(max-width:620px){.game-rules-section{padding:22px 18px}.game-rules-text{font-size:14px}}

/* Year-specific organizer badge and member selection (v16) */
.organizer-badge {display:inline-flex;align-items:center;white-space:nowrap;gap:.2rem;padding:.2rem .48rem;border-radius:999px;background:#f5edd8;color:#59461b;font-size:.68rem;font-weight:800;letter-spacing:.035em;margin-left:.4rem;vertical-align:middle;line-height:1.4}
.organizer-checklist {display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:.6rem;margin:.8rem 0 1.1rem}
.organizer-checklist .check-label {display:flex;align-items:center;gap:.6rem;font-size:.95rem;margin:0;padding:.55rem .7rem;border:1px solid rgba(125,135,115,.18);border-radius:9px}
.organizer-checklist input[type=checkbox] {flex-shrink:0;width:18px;height:18px;accent-color:#315a45}
.organizer-editor {margin-bottom:1.3rem}
.legacy-organizer-edit {margin:.6rem 0;width:100%}
.legacy-organizer-edit form {display:grid;gap:.6rem;max-width:670px;padding:1rem 0}
@media(max-width:600px) {.organizer-checklist {grid-template-columns:1fr}.organizer-badge {font-size:.63rem}}

/* Invitation radio buttons must remain compact even inside the shared admin input styles. */
#sf-invite-form input[type="radio"]{width:auto;flex:0 0 auto;margin:0;accent-color:var(--forest)}
#sf-invite-existing[hidden]{display:none}
#inbjudningar .mini-list form{display:block;margin:0}
#inbjudningar .mini-list button{font-size:11px;padding:6px 9px;margin:0;width:auto}

/* v21: read-only names clearly distinguished from editable profile fields. */
.locked-profile-input, .locked-profile-input:focus{background:#e9ece8!important;border-color:#d5ddd6!important;color:#506458!important;cursor:not-allowed;box-shadow:none!important}
.member-item .member-controls label{min-width:140px}
.member-item .member-controls input:not([type=hidden]){max-width:240px}
@media(max-width:650px){.member-item .member-controls label,.member-item .member-controls input:not([type=hidden]){max-width:100%;width:100%}}

/* Version 22 – destructive actions belong at the end, inside a closed disclosure. */
.tournament-delete-zone { margin-top: 2rem; border: 1px solid #d3af9d; background: #fbf7f4; }
.tournament-delete-zone summary { cursor: pointer; color: #7d3430; font-weight: 650; padding: .35rem 0; }
.tournament-delete-zone details[open] summary { margin-bottom: 1rem; }
.tournament-delete-zone .tournament-delete-form { max-width: 470px; display: grid; gap: .8rem; }
.tournament-delete-zone .tournament-delete-form label { display: grid; gap: .3rem; }
.tournament-delete-zone .tournament-delete-form button { justify-self: start; }

/* Version 23: konsekvenser vid permanent radering av ett tävlingsår. */
.tournament-delete-zone .delete-consequences{margin:1.1rem 0 1.3rem;max-width:850px;font-size:13px;line-height:1.65;color:#34483b}
.tournament-delete-zone .delete-intro{padding:13px 16px;background:#fff0e5;border-left:3px solid #b37757;border-radius:4px;margin:0 0 16px}
.tournament-delete-zone .delete-consequence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.tournament-delete-zone .delete-consequence-column{background:white;border:1px solid #e4ded6;border-radius:9px;padding:16px 18px}
.tournament-delete-zone .delete-consequence-removed{border-top:3px solid #ad6b58}
.tournament-delete-zone .delete-consequence-saved{border-top:3px solid #5b8865}
.tournament-delete-zone .delete-consequence-column h3{font-size:14px;color:#213d30;margin:0 0 8px}
.tournament-delete-zone .delete-consequence-column ul{margin:0;padding-left:19px}
.tournament-delete-zone .delete-consequence-column li{margin:0 0 7px;overflow-wrap:anywhere}
.tournament-delete-zone .delete-effects{margin:15px 0 0;padding:11px 14px;background:#fff;border-radius:6px;border:1px solid #e9e5dd}
.tournament-delete-zone .delete-final-warning{margin:15px 0;padding:13px 15px;background:#f8e8e4;color:#813d35;border:1px solid #eac9c2;border-radius:6px}
@media(max-width:650px){.tournament-delete-zone .delete-consequence-grid{grid-template-columns:1fr}.tournament-delete-zone .delete-consequence-column{padding:14px}}

/* v24: historiska speldagar */
.same-course-checkbox{margin-top:14px;line-height:1.45}.form-optional{font-weight:500;color:#718475}.admin-card select:disabled,.admin-card input:disabled{background:#eff2ed;color:#88968a;cursor:not-allowed;opacity:.7}#sf-all-days-hint:not([hidden]){padding:12px 14px;background:#eef3eb;border-left:3px solid #b7a06c;border-radius:5px}#sf-legacy-round-form .small-help{display:block;margin-top:6px}

/* V25: classic Leaflet pin preserved; red indicates an upcoming/ongoing tournament. */
#golf-map .leaflet-marker-icon.map-pin-red {
  filter: hue-rotate(153deg) saturate(1.7);
}
.map-legend {display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin:0 0 15px;color:var(--forest);font-weight:600;font-size:13px}
.map-legend span {display:inline-flex;align-items:center;gap:8px}
.map-legend-dot {width:13px;height:13px;display:inline-block;border-radius:50%;flex:none;border:2px solid #fff;box-shadow:0 0 0 1px #a8b9ab}
.map-legend-blue {background:#2686cc}
.map-legend-red {background:#d72f3a}

/* v26: keep the shared-venue options consistent with existing admin cards */
.same-place-options{padding:14px 16px;margin:10px 0;border:1px solid #dfe7da;background:#f8faf6;border-radius:12px}
.same-place-options[hidden],#sf-track-names[hidden]{display:none!important}
.same-place-options>.check-label{margin-top:12px}
.round-track-name{color:#416b4d;font-weight:700;font-size:13px;margin:4px 0}
#sf-different-tracks-label[hidden],#sf-all-days-hint[hidden]{display:none!important}

/* v27: optional course names in both ordinary and same-club day forms */
#sf-regular-track-label[hidden],#sf-clear-track-label[hidden],#sf-shared-track-label[hidden]{display:none!important}
#sf-regular-track-label>.check-label{margin-top:8px;font-size:13px}

/* v28: year archive shows known place names and official winner, without repeating the year. */
.archive-year-card .archive-locations {
    color: var(--forest);
    font-size: 15px;
    font-weight: 750;
    line-height: 1.45;
    margin: 8px 0 0;
    overflow-wrap: anywhere;
}
.archive-year-card .archive-winner {
    color: #607468;
    font-size: 13px;
    line-height: 1.5;
    margin: 9px 0 0;
    overflow-wrap: anywhere;
}
.archive-year-card .archive-winner span {color: var(--forest); font-weight: 750;}

/* Version 29: optional unknown placement on historic results. */
.unknown-place-choice{margin-top:12px;cursor:pointer}.unknown-place-choice input{width:17px;height:17px}
#sf-result-place{display:block;width:100%;border:1px solid #d8e1d8;border-radius:7px;background:#fdfefb;margin-top:7px;padding:12px 14px;color:var(--ink)}
#sf-result-place:disabled{background:#eff2ed;color:#88968a;cursor:not-allowed;opacity:.7}

/* Version 30: edit saved historical results without creating duplicates. */
.legacy-result-edit{margin-top:20px;padding:15px 16px;border:1px solid var(--line);border-radius:9px;background:#f8faf6}
.legacy-result-edit>summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--forest)}
.legacy-result-edit[open]>summary{margin-bottom:13px}
.legacy-result-year{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}
.legacy-result-year h3{font-size:15px;margin:0 0 10px}
.admin-card form.legacy-result-row{display:grid;grid-template-columns:minmax(115px,1.4fr) minmax(115px,1fr) minmax(105px,1fr) auto;gap:10px;align-items:center;margin:10px 0;padding:11px 12px;background:white;border:1px solid var(--line);border-radius:9px}
.legacy-result-person{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere;font-size:13px}
.legacy-result-person span{font-size:11px;color:var(--muted)}
.admin-card .legacy-result-row label{font-size:11px}
.admin-card .legacy-result-row input[type=number]{padding:9px 8px;margin-top:4px}
.legacy-result-row .check-label{margin-top:6px}
.admin-card .legacy-result-row .btn{width:auto;margin-top:0;white-space:nowrap;padding:10px}
@media(max-width:820px){.admin-card form.legacy-result-row{grid-template-columns:1fr 1fr}.legacy-result-person{grid-column:1/-1}.admin-card .legacy-result-row .btn{grid-column:1/-1;width:100%}}
@media(max-width:480px){.admin-card form.legacy-result-row{grid-template-columns:1fr}.legacy-result-person,.admin-card .legacy-result-row .btn{grid-column:auto}}

/* V31: historical results on a dedicated page, rather than inside point 07. */
.legacy-results-page{max-width:1040px}
.legacy-results-page>.admin-card{border-radius:12px;margin-top:22px}
.legacy-results-page .legacy-result-editor h2{margin:0 0 8px;font-size:25px}
.legacy-results-page .legacy-result-row{margin:15px 0}
.manage-event-result-link{font-size:13px;font-weight:800;color:var(--forest)}
.reset-link-content { padding: 55px 0; max-width: 770px; }
.mfa-codes-content { padding: 65px 0; max-width: 730px; }

/* Archive chronology: oldest year starts in the bottom-left of the grid.
   Wrap in reverse places subsequent groups on the rows above. The page itself
   scrolls normally as more tournaments are recorded. */
.archive-chronological{display:flex;flex-wrap:wrap-reverse;align-content:flex-start;gap:22px}
.archive-chronological>.archive-year-card{flex:0 0 calc((100% - 44px)/3);min-width:0}
@media(max-width:760px){.archive-chronological>.archive-year-card{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:520px){.archive-chronological>.archive-year-card{flex-basis:100%}}
/* Year-specific map: compact, square sidebar panel matching the action buttons. */
.year-map-widget{width:100%;min-width:0;margin-top:17px}
.year-map-heading{margin:0 0 10px;font-size:16px;font-weight:800;line-height:1.3;color:var(--forest)}
.year-map-frame{width:100%;aspect-ratio:1/1;position:relative;overflow:hidden;border:1px solid #dde4db;border-radius:10px;background:#dfe9dc}
#year-golf-map{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.year-map-attribution{font-size:10px;line-height:1.5;margin:7px 0 0;color:var(--muted)}

/* Four Hall-of-Fame highlights, with shared medal colours based on rank. */
.stat-summary-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat-summary-four .stat-number-card{min-width:0}
.stat-summary-four .stat-number-card .stat-record-years{overflow-wrap:anywhere}
.podium-rank-1 .bar-fill{background:#bea164!important}
.podium-rank-2 .bar-fill{background:#aab5af!important}
.podium-rank-3 .bar-fill{background:#c3a18a!important}
.club-stats-heading{margin-top:58px}
.club-bar-row .bar-fill{background:#8fa99a}
.course-name-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.course-name-editor{min-width:0;border:1px solid var(--line);padding:18px;border-radius:10px}
.course-name-editor label{display:block;font-size:13px}
.course-name-editor input{display:block;width:100%;margin:7px 0 13px;padding:10px;border:1px solid var(--line);border-radius:7px}
@media(max-width:760px){.stat-summary-four{grid-template-columns:repeat(2,minmax(0,1fr))}.course-name-editor-grid{grid-template-columns:1fr}}
@media(max-width:520px){.stat-summary-four{grid-template-columns:1fr}.stat-summary-four .stat-number-card{display:block}}

/* Unambiguous duplicate-year warning in tournament wizard. */
.wizard-panel #tournamentYear.year-field-conflict{border-color:#b43e37;box-shadow:0 0 0 2px #b43e3720;background:#fff8f7}
.year-conflict-message{display:block;color:#ad2929;font-size:12px;font-weight:800;margin:6px 0 0}
.year-conflict-message[hidden]{display:none!important}
#createTournamentSubmit:disabled{background:#adb3ae;color:#eef0ed;cursor:not-allowed;transform:none;filter:none;opacity:.9}
.tournament-list-row{gap:22px;min-height:58px}
.tournament-list-row>a:first-child{min-width:170px}
.tournament-list-row>span{margin-right:auto}
.legacy-organizer-edit-form{display:grid;gap:16px;max-width:680px}
.legacy-organizer-edit-form label{font-weight:750;font-size:13px}
.legacy-organizer-edit-form textarea{display:block;width:100%;border:1px solid var(--line);border-radius:7px;padding:12px;margin-top:8px}
@media(max-width:640px){.tournament-list-row{flex-wrap:wrap}.tournament-list-row>a:first-child{min-width:0}.tournament-list-row>span{margin-right:0}.tournament-list-row .manage-event-result-link{width:100%}}

/* Advanced editor uses the same occupied-year feedback as the guided editor. */
.admin-card #advancedTournamentYear.year-field-conflict{border-color:#b43e37;box-shadow:0 0 0 2px #b43e3720;background:#fff8f7}
#advancedCreateTournamentSubmit:disabled{background:#adb3ae;color:#eef0ed;cursor:not-allowed;transform:none;filter:none;opacity:.9}


/* Cancelled playing days: discreet diagonal lines behind legible content. */
.round-card-cancelled{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-color:#efcece;
  background:repeating-linear-gradient(135deg,rgba(206,60,60,.15) 0,rgba(206,60,60,.15) 2px,transparent 2px,transparent 47px),#fff;
}
.round-card-cancelled .round-cancelled-badge{
  position:absolute;
  top:22px;
  right:20px;
  border-radius:7px;
  padding:6px 10px;
  background:#fff2f2;
  color:#9b2626;
  font-size:12px;
  font-weight:800;
}
.round-card-cancelled .eyebrow{padding-right:86px}
.round-card-cancelled .round-cancelled-reason{
  margin:15px 0 16px;
  color:#9b2626;
  font-weight:650;
  overflow-wrap:anywhere;
}

/* Explain identity collisions without changing historical records. */
.participant-duplicate-warning{display:block;margin-top:5px;color:#9b4f32;font-size:11px}
.admin-participant-id{display:block;margin-top:4px;color:var(--muted);font-size:11px}

/* Dangerous registry deletion stays behind an explicit admin-only disclosure. */
.unused-player-delete{width:100%;max-width:500px;margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.unused-player-delete summary{cursor:pointer;color:#873e35;font-size:12px;font-weight:700}
.unused-player-delete p{font-size:12px;line-height:1.5;color:var(--muted)}
.unused-player-delete form{display:grid;gap:10px;margin-top:10px}
.unused-player-delete label{font-size:12px;display:grid;gap:5px}
.unused-player-delete input{width:100%;max-width:350px;border:1px solid var(--line);padding:10px;border-radius:6px}
.unused-player-delete button{justify-self:start}
.unused-player-blocked{font-size:11px;color:var(--muted)}
