:root{font-family:Arial,Helvetica,sans-serif;color:#183d32;background:#f4f6f3;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;min-height:48px;border-radius:9px;padding:12px 20px;font-weight:700}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b3cd47;outline-offset:3px}header{background:#103f30;color:white;min-height:88px;padding:20px max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-family:Georgia,serif;font-size:27px;display:flex;align-items:center;gap:12px}.mark{color:#d5ee8a;font-size:34px}.small{font-size:12px;letter-spacing:2px}main{max-width:1120px;margin:auto;padding:28px 24px}.demo{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;border-bottom:1px solid #d8dfd8;padding-bottom:16px;color:#496257}.textbutton{border:0;background:transparent;color:inherit;padding:8px 12px;font-size:14px;text-decoration:underline}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:34px 0 28px}.eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:700;color:#527060;margin:0 0 12px}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(30px,4vw,44px);margin:0;letter-spacing:-1px}h2{font-family:Georgia,serif;font-weight:400;font-size:28px;margin:0 0 20px}.layout{display:grid;grid-template-columns:1.45fr 1fr;gap:24px}.round{background:#104632;color:white;border-radius:16px;padding:30px}.roundtop{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:30px}.pill{color:#183d32;background:#dcf09c;border-radius:30px;font-size:12px;font-weight:700;letter-spacing:1px;padding:9px 13px}.round h2{font-size:36px;margin-bottom:10px}.date{font-size:20px;color:#e2eddf;margin:0}.rule{border-top:1px solid #4a6e59;margin:27px 0}.detail>span{font-size:12px;letter-spacing:1.5px;color:#c9dbc9}.times{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 25px}.time{border:1px solid #688675;border-radius:6px;padding:8px 11px;font-size:16px}.deadline{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:14px;color:#e2eddf}.capacity{display:flex;justify-content:space-between;gap:10px;margin:28px 0 12px}.capacity span{color:#dcf09c}.track{height:8px;background:#416953;border-radius:8px;overflow:hidden}#bar{background:#d5eb95;height:100%;transition:width .2s}.muted{font-size:14px;line-height:1.6;color:#617268}.round .muted{color:#c8d9ca;margin-bottom:0}.rsvp{border:1px solid #dbe2d9;background:white;border-radius:16px;padding:30px}label{display:block;font-size:14px;font-weight:700;margin:16px 0 8px}input,select{width:100%;min-height:50px;border:1px solid #becac1;border-radius:8px;padding:12px;background:white;color:#183d32;margin-top:8px}.rsvp select{margin-top:0}.primary{background:#d9ee98;border:1px solid #cadf88;color:#193f30}.secondary{border:1px solid #bdcdbf;background:transparent;color:#214a38}.rsvp button{width:100%;margin:6px 0}.response{min-height:22px;font-size:14px;font-weight:700}.rsvp .muted{margin-top:18px}#notice{font-size:14px;line-height:1.5;color:#185b39}.roster{margin-top:34px;background:white;border:1px solid #dbe2d9;border-radius:16px;padding:28px}.rosterhead{display:flex;justify-content:space-between;align-items:center;gap:12px}.roster h2{margin:0}.tabs{display:flex;gap:8px;border-bottom:1px solid #dbe2d9;margin:20px 0;overflow:auto;padding-bottom:12px}.tabs button{white-space:nowrap;background:transparent;border:0;color:#5c6e62;font-weight:400}.tabs button.active{background:#e8f0e4;color:#17442c;font-weight:700}.players{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.person{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e0e6df;border-radius:8px}.avatar{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#edf1e9;color:#426149;font-size:13px}.person strong{font-size:14px}.person small{display:block;color:#67776c;margin-top:5px;font-size:12px}footer{display:flex;justify-content:space-between;gap:20px;padding:30px 0 10px;color:#6c7c6d;font-size:12px;letter-spacing:1px}footer span{letter-spacing:0}dialog{border:0;border-radius:16px;padding:28px;width:min(540px,calc(100% - 24px));max-height:90vh;color:#183d32}dialog::backdrop{background:#07281999}.dialoghead{display:flex;justify-content:space-between;gap:12px;align-items:center}.dialoghead h2{margin:0}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}form .primary{width:100%}#formerror{color:#a52e21;font-size:14px}button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){header{padding:18px 22px;min-height:76px}.small{display:none}main{padding:18px 16px}.heading{align-items:flex-start;margin:26px 0 22px}.heading .secondary{padding:10px;white-space:nowrap;font-size:14px}h1{font-size:32px}.eyebrow{font-size:11px;line-height:1.5}.layout{grid-template-columns:1fr;gap:16px}.round,.rsvp{padding:24px}.round h2{font-size:32px}.players{grid-template-columns:1fr 1fr}.roster{padding:20px}.rosterhead{align-items:flex-start;flex-direction:column}.demo{font-size:12px;gap:6px}.demo .textbutton{white-space:nowrap;padding:6px}footer{font-size:11px}.formgrid{grid-template-columns:1fr}}@media(max-width:380px){.players{grid-template-columns:1fr}.heading{flex-direction:column}}

.addrow{display:flex;gap:10px;align-items:center}.addrow input{margin:0;min-width:0}.addrow button{white-space:nowrap}.manage-row{padding:14px 0;border-top:1px solid #dbe2d9}.manage-row label{margin:0}.manage-actions{display:flex;gap:12px;margin-top:10px}#manager-message{font-size:14px;line-height:1.5;color:#245b3c}.person strong{overflow-wrap:anywhere}.person>div{min-width:0}@media(max-width:450px){.addrow{align-items:stretch;flex-direction:column}}

.golf-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.golf-group{border:1px solid #dbe2d9;border-radius:10px;padding:18px;margin:10px 0}.golf-group h3{font-size:16px;margin:0 0 12px}.golf-group ol{padding-left:22px;margin:0}.golf-group li{padding:6px 0;overflow-wrap:anywhere}#holder-name{font-size:22px;font-weight:700}#save-groups{width:100%}#holder-form .primary{margin-top:14px}
.arranged-heading{border-top:1px solid #dbe2d9;margin-top:24px;padding-top:24px}.arranged-heading button{margin-bottom:20px}.arranged-heading h2{margin:0}
.response{min-height:34px;font-size:22px;line-height:1.25;font-weight:800;letter-spacing:.02em;margin:18px 0}.response-in{color:#087540}.response-out{color:#b13b2e}.response-pending{color:#52675c;font-size:18px}.response-closed{color:#7b201a}.rsvp .choice-in{background:#087540;border:2px solid #075e35;color:#fff;box-shadow:0 0 0 3px #c6ead5}.rsvp .choice-out{background:#b13b2e;border:2px solid #8f2d23;color:#fff;box-shadow:0 0 0 3px #f2d0cb}

.round-picker{margin:0 0 24px;max-width:600px}#openstatus{font-size:22px;font-weight:800;padding:10px 14px;border-radius:8px}.status-open{background:#ffdc73;color:#513800}.status-closed{background:#ffcdc5;color:#7b201a}.roundtop{flex-wrap:wrap;gap:12px}.games{border-top:1px solid #dbe2d9;padding-top:24px;margin-top:20px}#games-display{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}textarea{font:inherit;width:100%;padding:12px;border:1px solid #becac1;border-radius:8px;margin-top:8px;resize:vertical;min-height:120px;color:#183d32}fieldset{border:1px solid #dbe2d9;border-radius:8px;margin:20px 0;padding:14px}legend{font-size:16px;font-weight:bold}.tee-row{display:flex;gap:8px;align-items:end}.tee-row label{flex:1;min-width:0}.tee-row button{margin-bottom:8px}.golf-group ul{padding-left:22px}.golf-group li{font-size:16px}

.player-buttons{display:flex;gap:10px;flex-wrap:wrap}.player-dialog,#manager{width:min(760px,calc(100% - 24px))}.player-details-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(92px,.65fr);gap:12px}.player-details-grid label{min-width:0}.manage-row{padding:18px 0}.manage-actions{margin-top:12px}#add-player-message{font-size:14px;line-height:1.5;color:#245b3c}@media(max-width:600px){.player-details-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 86px;gap:6px}.player-details-grid label{font-size:12px}.player-details-grid input{padding:8px 6px;font-size:13px}.player-buttons{width:100%}.player-buttons button{flex:1;padding:10px 8px}}

#delete-round{color:#9a2f25;border-color:#d7a39e}.danger:not(:disabled):hover{background:#fff0ee}.round-form-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:16px}.round-form-actions .primary{width:auto}.round-form-actions button{padding-left:10px;padding-right:10px}
.round-choice-or{text-align:center;font-size:26px;font-weight:800;letter-spacing:.12em;color:#315c48;margin:18px 0 12px}#new-round{width:100%}
.member-migration{flex-basis:100%;border-top:1px solid #dbe2d9;padding-top:10px}.member-migration summary{cursor:pointer;font-weight:700;color:#174b36}.member-migration>p{margin:10px 0;color:#52675c;font-size:14px}.migration-rounds{display:grid;gap:12px}.migration-round{display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.4fr) auto;align-items:end;gap:10px;border-top:1px solid #e5ebe5;padding-top:12px}.migration-round label{margin:0}.migration-round .migration-confirmation{grid-column:1/-1;font-size:13px}.migration-round [role="status"]{grid-column:1/-1;margin:0;color:#245b3c}@media(max-width:700px){.migration-round{grid-template-columns:1fr}.migration-round .migration-confirmation,.migration-round [role="status"]{grid-column:1}}
@media(max-width:520px){.round-form-actions{grid-template-columns:1fr}.round-form-actions button{width:100%}}

.tabs[hidden],.players[hidden],#group-directory[hidden]{display:none}#group-directory{margin-top:22px;display:grid;gap:12px}.member-card{border:1px solid #dbe2d9;border-radius:10px;padding:16px;background:#fbfcfa}.member-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.member-name{border:0;background:transparent;color:#174b36;font-family:Georgia,serif;font-size:21px;text-align:left;padding:6px 0;min-height:44px;text-decoration:underline}.member-delete{color:#9a2f25}.member-details{display:grid;grid-template-columns:1.5fr 1fr .65fr;gap:12px;margin:12px 0 0}.member-details div{min-width:0}.member-details dt{font-size:12px;font-weight:700;color:#617268;margin-bottom:4px}.member-details dd{margin:0;overflow-wrap:anywhere}.member-edit-form{border-top:1px solid #dbe2d9;margin-top:16px;padding-top:4px}.member-edit-form .primary{margin-top:14px}@media(max-width:600px){.member-details{grid-template-columns:1fr}.member-card-heading{align-items:flex-start}.member-name{font-size:19px}}

.selected-games{border-top:1px solid #4a6e59;margin-top:24px;padding-top:20px}.selected-games h3{font-family:Georgia,serif;font-size:24px;font-weight:400;margin:0}.selected-games textarea{min-height:88px;background:#fff;color:#183d32}.selected-games .round-note-save{width:100%;margin-top:10px;background:#d9ee98;border:1px solid #cadf88;color:#193f30}
.round-comments{border-top:1px solid #4a6e59;margin-top:24px;padding-top:20px}.round-comments h3{margin-bottom:10px}.round-comments textarea{min-height:72px}.round-comment{background:#fff;color:#183d32;border-radius:8px;padding:12px;margin-top:10px}.round-comment p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.comment-empty{color:#c8d9ca;font-size:14px;margin:12px 0 0}
.comment-step .primary{width:100%;margin-top:12px}.comment-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.comment-actions button{width:100%}#comment-dialog .muted{color:#617268}#comment-error{color:#a52e21;font-size:14px}
.comment-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.comment-delete{min-height:36px;padding:7px 10px;border:1px solid #d8a49d;background:#fff5f3;color:#8c2d22;font-size:13px}
.deadline{justify-content:flex-start;align-items:baseline;gap:8px}
.games[hidden],label[hidden]{display:none}
.demo[hidden]{display:none}

.rsvp-toast{position:fixed;z-index:20;top:22px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 32px));padding:20px 24px;border-radius:14px;text-align:center;font-size:20px;font-weight:800;line-height:1.35;box-shadow:0 14px 40px #092b1f40;animation:rsvp-pop .22s ease-out}.rsvp-toast.toast-in{background:#dff59b;border:3px solid #2d7d46;color:#123f29}.rsvp-toast.toast-out{background:#fff0e6;border:3px solid #bf6b4a;color:#743725}.rsvp-toast[hidden]{display:none}@keyframes rsvp-pop{from{opacity:0;transform:translate(-50%,-12px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media(max-width:600px){.rsvp-toast{top:12px;font-size:18px;padding:17px 18px}}

/* Centered group motto in the site banner. */
header{display:grid;grid-template-columns:1fr auto 1fr}
.banner-motto{color:#dff58f;font-size:19px;font-weight:800;text-align:center;letter-spacing:.3px}
.small{text-align:right}
@media(max-width:700px){header{grid-template-columns:1fr;gap:4px;text-align:center;padding:14px 18px}.brand{justify-content:center}.banner-motto{font-size:16px}}

/* Keep the page steady and comfortably inside narrow phone screens. */
html,body{width:100%;max-width:100%;overflow-x:hidden;overflow-x:clip}main,header,footer,.layout,.layout>*,.round,.rsvp,.roster{min-width:0;max-width:100%}.round h2,.roster h2,.deadline strong{overflow-wrap:anywhere}
@media(max-width:700px){main{width:100%;padding:16px 12px}.round,.rsvp{padding:20px}.roster{padding:18px}.heading{gap:12px}.golf-groups{grid-template-columns:minmax(0,1fr)}dialog{max-width:calc(100% - 20px)}}
@media(max-width:430px){.heading{flex-direction:column;align-items:stretch}.heading .secondary{width:100%}.round-picker{width:100%}}

.round-selector-row{display:flex;align-items:end;gap:14px;margin-bottom:24px}.round-selector-row .round-picker{flex:1;margin:0}.round-selector-row>.textbutton{white-space:nowrap}.sync-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #dbe2d9;border-radius:12px;padding:14px 16px;margin:-8px 0 24px}.sync-status strong{font-size:15px}.sync-status span{flex:1;color:#52675c;font-size:14px}.sync-status button{min-height:40px;padding:8px 14px}.organizer-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 8px}.organizer-actions button{flex:1;min-width:190px}.organizer-actions button.needs-update{background:#fff0e6;border-color:#bf6b4a;color:#743725}.late-withdrawal{color:#a53a2c;font-weight:700}.round-cancelled{background:#ffd3cc;color:#7b201a}.archive-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid #dbe2d9}.archive-row:first-child{border-top:0}.archive-row button{min-height:42px}.archive-empty{color:#617268}.round-form-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:700px){.round-selector-row{align-items:stretch;flex-direction:column;gap:4px}.round-selector-row>.textbutton{align-self:flex-start}.organizer-actions{display:grid;grid-template-columns:1fr}.organizer-actions button{min-width:0;width:100%}.round-form-actions{grid-template-columns:1fr}}
.sync-status[hidden]{display:none}
.member-sign-in-dialog{width:min(440px,calc(100% - 32px));box-sizing:border-box}.member-sign-in-dialog label{display:block;margin:16px 0}.member-sign-in-dialog input{display:block;width:100%;box-sizing:border-box;margin-top:8px;font-size:16px;min-height:48px}.member-auth-actions{display:flex;gap:12px;margin:18px 0}.member-auth-actions button{flex:1}.member-auth-message{min-height:1.5em}
.admin-round-player{border-top:1px solid #dbe2d9;margin-top:24px;padding-top:20px}.admin-round-player h3{font-family:Georgia,serif;font-weight:400;font-size:23px;margin:0}.admin-round-player .muted{margin:10px 0}.admin-round-player [role=status]{font-size:14px;line-height:1.5;color:#185b39}
.round-archived{background:#ffe3de;color:#a5231b}
.round-picker{position:relative;min-width:0}
.round-picker label{display:block;margin:0 0 8px}
.round-picker-button{width:100%;text-align:left;background:#fff;color:#183d32;border:1px solid #c9d2c9;padding-right:42px;position:relative;font-weight:400;line-height:1.5;overflow-wrap:anywhere}
.round-picker-button::after{content:'▾';position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#52675c}
.round-picker-list{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:1px solid #b8c6bb;border-radius:9px;margin-top:5px;padding:5px;max-height:320px;max-height:min(320px,50vh);overflow-y:auto;box-shadow:0 8px 24px #183d3226}
.round-picker-option{padding:14px 12px;border-radius:6px;min-height:48px;cursor:pointer;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.round-picker-option[aria-selected=true]{background:#eef4e6}
.round-picker-option:hover,.round-picker-option:focus{background:#e4eddf;outline:2px solid #557c42;outline-offset:-2px}
.round-inactive-label{color:#b42318;font-weight:800}
[hidden]{display:none!important}
.welcome-screen{max-width:620px;margin:0 auto;padding:44px 24px}
.welcome-card{background:#fff;border:1px solid #dbe2d9;border-radius:18px;padding:32px;box-shadow:0 12px 35px #173f2b0b}
.welcome-card h1{margin:8px 0 16px;font-size:40px}
.welcome-card>p{line-height:1.6;color:#52675c}
.welcome-card .member-sign-in-dialog{width:100%;padding:0;box-shadow:none}
.welcome-card .member-sign-in-dialog h2{font-family:inherit;font-size:20px;margin-top:18px}
.welcome-card .member-auth-actions{display:block}
.welcome-card .member-auth-actions .primary{width:100%}
.welcome-card .member-auth-actions [data-action=close]{display:none}
#welcome-status{min-height:1.6em;font-size:15px}
.welcome-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.welcome-note{font-size:14px;margin:24px 0 0}
.limit-control{display:flex;align-items:center;gap:10px}.limit-control input{width:20px;min-height:20px;flex:0 0 20px;accent-color:#176d4d}
.toast-wait{background:#fff4ce;color:#634a00;border:2px solid #c79628}.response-wait{color:#805d00;background:#fff4ce}
.welcome-card .welcome-motto{font-size:22px;font-weight:800;color:#315c48;margin:0 0 22px}
@media(max-width:600px){.welcome-screen{padding:28px 16px}.welcome-card{padding:24px}.welcome-card h1{font-size:32px}}
/* Preview-only grouping controls; shared saves retain the server permission checks. */
#groups-dialog{width:min(860px,calc(100vw - 32px))}
.group-draw-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}
.group-draw-controls button{width:100%;min-height:48px}
.group-draw-controls .muted{margin:8px 0 0}
#group-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px;margin:16px 0}
#group-slots select{width:100%}
.group-handicap-total{font-weight:700;margin:8px 0 12px}
#group-draw-status{font-weight:600}
.group-planning-warning{color:#b42318;font-weight:600}
@media(max-width:600px){.group-draw-controls{grid-template-columns:1fr}#groups-dialog{padding:18px}}
/* Invitations always require an explicit review and send. */
#invitation-dialog{width:min(800px,calc(100vw - 32px))}
#invitation-body{min-height:320px}
#invitation-recipients{max-height:240px;overflow:auto;overflow-wrap:anywhere}
.invitation-warning{color:#924700;font-weight:600}
.roster-active-control{display:flex;align-items:center;gap:10px;margin:16px 0}
.roster-active-control input{width:20px;height:20px;flex:0 0 20px;margin:0}
