:root{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-card:#ffffffeb;--bg-card-hover:#fff;--bg-input:#ffffffdb;--bg-nav:#f6f6f8d1;--accent-green:#06c;--accent-green-dim:#004f9f;--accent-green-glow:#0066cc1c;--accent-gold:#a66b00;--accent-gold-dim:#704900;--accent-red:#d70015;--accent-blue:#06c;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-muted:#86868b;--border:#1d1d1f17;--border-active:#0066cc47;--shadow:0 16px 50px #00000014;--shadow-glow:0 14px 38px #0066cc14;--radius:24px;--radius-sm:14px;--radius-full:100px;--nav-height:76px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.app-container{max-width:480px;min-height:100vh;padding-bottom:calc(var(--nav-height) + 16px);margin:0 auto;position:relative}.page-header{margin-bottom:24px}.page-title{letter-spacing:-.5px;color:var(--text-primary);font-size:28px;font-weight:800}.page-subtitle{color:var(--text-secondary);margin-top:4px;font-size:14px}.bottom-nav{width:100%;max-width:480px;height:var(--nav-height);background:var(--bg-nav);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0);z-index:100;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{border-radius:var(--radius-sm);color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;font-size:10px;font-weight:600;text-decoration:none;transition:all .2s;display:flex;position:relative}.nav-item:hover,.nav-item.active{color:var(--accent-green)}.nav-item.active:before{content:"";background:var(--accent-green);border-radius:0 0 4px 4px;width:24px;height:3px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.nav-icon{font-size:22px;line-height:1}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:20px;transition:all .2s}.card:hover{border-color:var(--border-active);box-shadow:var(--shadow-glow)}.card-glass{-webkit-backdrop-filter:blur(12px);background:#16201999}.summary-cards{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:16px 12px}.summary-card .value{color:var(--accent-green);font-size:28px;font-weight:800;line-height:1}.summary-card .label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:6px;font-size:11px;font-weight:600}.stat-bar-container{margin-bottom:12px}.stat-bar-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.stat-bar-name{color:var(--text-primary);font-size:13px;font-weight:500}.stat-bar-info{color:var(--text-secondary);gap:8px;font-size:12px;display:flex}.stat-bar-info span{font-weight:600}.stat-bar-track{border-radius:var(--radius-full);background:#2ecc7114;height:8px;overflow:hidden}.stat-bar-fill{border-radius:var(--radius-full);min-width:2px;height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}.donut-container{justify-content:center;margin-bottom:8px;padding:20px 0;display:flex}.donut-chart{width:180px;height:180px;position:relative}.donut-center-text{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.donut-center-text .value{color:var(--accent-green);font-size:32px;font-weight:800}.donut-center-text .label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);appearance:none;outline:none;padding:14px 16px;font-family:inherit;font-size:15px;transition:all .2s}.form-select{background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%238a9e92' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;padding-right:40px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-green);box-shadow:0 0 0 3px var(--accent-green-glow)}.form-textarea{resize:vertical;min-height:80px}.form-input::placeholder{color:var(--text-muted)}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 24px;font-family:inherit;font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg,var(--accent-green),#27ae60);color:#fff;box-shadow:0 4px 16px #2ecc7140}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 24px #2ecc7159}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--border-active);background:var(--bg-card-hover)}.btn-danger{color:var(--accent-red);background:#e74c3c26;border:1px solid #e74c3c33}.btn-danger:hover{background:#e74c3c40}.btn-small{width:auto;padding:8px 16px;font-size:13px}.btn-icon{border-radius:var(--radius-sm);width:36px;height:36px;padding:0;font-size:16px}.round-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:14px;margin-bottom:8px;padding:16px;transition:all .2s;display:flex}.round-item:hover{border-color:var(--border-active)}.round-item-icon{border-radius:var(--radius-sm);background:var(--accent-green-glow);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:18px;display:flex}.round-item-content{flex:1;min-width:0}.round-item-club{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.round-item-date{color:var(--text-secondary);margin-top:2px;font-size:12px}.round-item-notes{color:var(--text-muted);margin-top:2px;font-size:12px;font-style:italic}.round-item-delete{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:8px;font-size:18px;transition:all .2s}.round-item-delete:hover{color:var(--accent-red);background:#e74c3c1a}.round-item-actions{gap:4px;display:flex}.round-item-edit{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:8px;font-size:18px;transition:all .2s}.round-item-edit:hover{color:var(--accent-green);background:var(--accent-green-glow)}.year-selector{justify-content:center;align-items:center;gap:12px;margin-bottom:20px;display:flex}.year-selector button{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex}.year-selector button:hover{border-color:var(--accent-green);color:var(--accent-green)}.year-selector .year-display{text-align:center;min-width:70px;color:var(--accent-green);font-size:20px;font-weight:700}.login-container{flex-direction:column;justify-content:center;align-items:center;max-width:400px;min-height:100vh;margin:0 auto;padding:24px;display:flex}.login-logo{margin-bottom:8px;font-size:48px}.login-title{background:linear-gradient(135deg,var(--text-primary),var(--accent-green));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-size:28px;font-weight:800}.login-subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:14px}.login-form{width:100%}.login-error{color:var(--accent-red);border-radius:var(--radius-sm);text-align:center;background:#e74c3c1a;border:1px solid #e74c3c33;margin-bottom:16px;padding:12px 16px;font-size:14px}.toast{background:var(--accent-green);color:#fff;border-radius:var(--radius-full);z-index:200;padding:12px 24px;font-size:14px;font-weight:600;animation:.3s toastIn,.3s 2.5s forwards toastOut;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #2ecc714d}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-20px)}}.user-list-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;margin-bottom:8px;padding:14px 16px;display:flex}.user-info{flex:1}.user-name{color:var(--text-primary);font-size:14px;font-weight:600}.user-meta{color:var(--text-secondary);margin-top:2px;font-size:12px}.user-actions{gap:6px;display:flex}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;align-items:center;padding:3px 8px;font-size:10px;font-weight:700;display:inline-flex}.badge-admin{color:var(--accent-gold);background:#f1c40f26}.badge-user{color:var(--accent-blue);background:#3498db26}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:150;background:#000000b3;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)var(--radius)0 0;width:100%;max-width:480px;max-height:85vh;padding:24px;animation:.3s slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{font-size:18px;font-weight:700}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:24px}.empty-state{text-align:center;color:var(--text-muted);padding:48px 24px}.empty-state-icon{margin-bottom:12px;font-size:48px}.empty-state-text{font-size:15px;font-weight:500}.empty-state-sub{margin-top:4px;font-size:13px}.loading{justify-content:center;align-items:center;padding:48px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent-green);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bar-color-0{background:#2ecc71}.bar-color-1{background:#27ae60}.bar-color-2{background:#1abc9c}.bar-color-3{background:#16a085}.bar-color-4{background:#3498db}.bar-color-5{background:#2980b9}.bar-color-6{background:#9b59b6}.bar-color-7{background:#8e44ad}.bar-color-8{background:#f1c40f}.bar-color-9{background:#f39c12}.bar-color-10{background:#e67e22}.bar-color-11{background:#e74c3c}.section-title{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:14px;font-size:16px;font-weight:700;display:flex}.profile-header{text-align:center;margin-bottom:20px;padding:24px 0}.profile-avatar{background:linear-gradient(135deg,var(--accent-green),#27ae60);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 12px;font-size:28px;font-weight:700;display:flex}.profile-name{font-size:20px;font-weight:700}.profile-role{color:var(--text-secondary);margin-top:4px;font-size:13px}.divider{background:var(--border);height:1px;margin:20px 0}.most-played{border-radius:var(--radius);background:linear-gradient(135deg,#2ecc7114,#27ae600a);border:1px solid #2ecc7133;align-items:center;gap:12px;margin-bottom:20px;padding:14px 16px;display:flex}.most-played-icon{font-size:24px}.most-played-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.most-played-name{color:var(--accent-green);font-size:15px;font-weight:700}@media (min-width:481px){.app-container{border-left:1px solid var(--border);border-right:1px solid var(--border)}}.holes-selector{background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border);grid-template-columns:1fr 1fr;gap:10px;padding:4px;display:grid}.hole-btn{border-radius:calc(var(--radius-sm) - 4px);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:12px;font-size:14px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.hole-btn.active{background:var(--accent-green);color:#fff;box-shadow:0 4px 12px #2ecc7133}.review-overlay{-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;background:#000000d9!important}.review-card{background:var(--bg-secondary)!important;border:1px solid var(--border)!important;color:var(--text-primary)!important}.review-header{border-bottom:1px solid var(--border)!important}.review-header h2{color:var(--text-primary)!important}.review-header p{color:var(--text-secondary)!important}.review-item{background:var(--bg-card)!important;border:1px solid var(--border)!important}.review-item:hover{background:var(--bg-card-hover)!important;border-color:var(--accent-green-dim)!important}.review-item-club{color:var(--text-primary)!important}.review-item-date{color:var(--text-muted)!important}.review-item-toggle.is-18{background:var(--accent-green-glow)!important;color:var(--accent-green)!important}.review-item-toggle.is-9{color:#9b59b6!important;background:#9b59b626!important}.review-footer{border-top:1px solid var(--border)!important}body{background:radial-gradient(circle at 50% -12%,#0066cc1a,transparent 34rem),var(--bg-primary)}button,input,select,textarea{font:inherit}.app-container{max-width:560px;padding-bottom:calc(var(--nav-height) + 28px + env(safe-area-inset-bottom,0px))}.page-content{padding:38px 20px 32px}.page-header{margin:4px 4px 32px}.page-title,.login-title{color:var(--text-primary);-webkit-text-fill-color:currentColor;letter-spacing:-.045em;background:0 0;font-size:clamp(32px,8vw,44px);font-weight:700;line-height:.98}.page-subtitle,.login-subtitle{margin-top:10px;font-size:15px;line-height:1.45}.bottom-nav{bottom:max(12px,env(safe-area-inset-bottom,0px));border:1px solid #1d1d1f1a;border-radius:24px;width:calc(100% - 24px);max-width:536px;height:68px;padding:6px 8px;box-shadow:0 14px 48px #00000024}.nav-item{min-width:58px;color:var(--text-secondary);letter-spacing:.01em;text-transform:none;border-radius:17px;gap:3px;padding:7px 10px;font-size:9px}.nav-item:hover,.nav-item.active{color:var(--accent-green);background:var(--accent-green-glow)}.nav-item.active:before{display:none}.nav-icon{font-size:20px}.card,.summary-card,.round-item,.user-list-item,.most-played,.holes-selector{border-color:var(--border);box-shadow:0 1px 1px #00000005,var(--shadow)}.card{margin-bottom:16px;padding:24px}.summary-cards{gap:12px;margin-bottom:24px}.summary-card{padding:20px 10px}.summary-card .value{letter-spacing:-.045em;font-size:32px;font-weight:700}.summary-card .label,.most-played-label,.form-label{text-transform:none;letter-spacing:0}.most-played{background:linear-gradient(145deg,#0066cc1a,#fffffff2);border-color:#0066cc1f;padding:18px}.form-input,.form-select,.form-textarea{border-color:#1d1d1f1c;min-height:50px;box-shadow:inset 0 1px 2px #00000006}.btn{border-radius:var(--radius-full);min-height:50px}.btn-primary{background:var(--accent-green);box-shadow:none}.btn-primary:hover{background:var(--accent-green-dim);box-shadow:none}.year-selector button{background:#ffffffdb;box-shadow:0 8px 24px #0000000f}.modal-content{border-radius:32px 32px 0 0;box-shadow:0 -20px 64px #0000001f}.login-container{max-width:440px}.login-logo{filter:saturate(.75)}.profile-avatar{background:var(--accent-green);box-shadow:0 16px 36px #0066cc2e}.toast{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#1d1d1feb;box-shadow:0 12px 40px #0000002e}@media (min-width:561px){.app-container{border:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
