:root{--golf-green-dark: #1a5f3f;--golf-green: #2d8659;--golf-green-light: #4aad7a;--golf-green-bright: #5fc896;--golf-green-pale: #e8f5ee;--earth-brown: #8b6f47;--earth-tan: #d4c4a8;--sky-blue: #4a90e2;--sky-blue-light: #6ba8f0;--grass-green: #6b8e23;--sand-beige: #f5e6d3;--white: #ffffff;--text-dark: #1a2332;--text-medium: #4a5568;--text-light: #718096;--shadow-sm: 0 1px 3px rgba(26, 95, 63, .08), 0 1px 2px rgba(26, 95, 63, .06);--shadow-md: 0 4px 6px rgba(26, 95, 63, .1), 0 2px 4px rgba(26, 95, 63, .08);--shadow-lg: 0 10px 15px rgba(26, 95, 63, .12), 0 4px 6px rgba(26, 95, 63, .1);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f0f7f4;color:var(--text-dark);font-size:var(--font-size-base);line-height:1.7;letter-spacing:-.011em;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--text-dark)}p{line-height:1.7;color:var(--text-medium)}.home-page{max-width:1200px;margin:0 auto;padding:2rem}@media (max-width: 768px){.home-page{padding:1rem}.home-page header{flex-direction:column;gap:var(--spacing-md);text-align:center;padding:var(--spacing-lg)}.home-page header nav{flex-direction:column;width:100%}.home-page header nav button{width:100%}.handicap-display{grid-template-columns:1fr}.round-card-row,.course-card-row{gap:var(--spacing-sm)}.round-actions{margin-left:0;width:100%;justify-content:flex-start}.import-page{margin:2rem 1rem;padding:var(--spacing-lg)}}.home-page header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem;padding:1.5rem 2rem;background:var(--golf-green);border-radius:16px;box-shadow:var(--shadow-lg)}.home-page header h1{font-size:var(--font-size-4xl);color:var(--white);font-weight:800;letter-spacing:-.03em;line-height:1.1}.home-page header nav{display:flex;gap:1rem}.home-page button{padding:.75rem 1.5rem;background:var(--sky-blue);color:var(--white);border:none;border-radius:10px;cursor:pointer;font-size:var(--font-size-base);font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm);letter-spacing:.01em;line-height:1.5}.home-page button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--sky-blue-light)}.home-page button:active{transform:translateY(0)}.home-page button:focus-visible{outline:3px solid rgba(74,144,226,.4);outline-offset:2px}.home-page button.delete-button{background:#e74c3c}.home-page button.delete-button:hover{background:#c0392b}.home-page section{background:var(--white);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);border-radius:16px;box-shadow:var(--shadow-md);border:1px solid rgba(26,95,63,.08);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.home-page section:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.home-page section h2{margin-bottom:var(--spacing-xl);color:var(--golf-green-dark);font-size:var(--font-size-3xl);font-weight:800;padding-bottom:var(--spacing-md);border-bottom:3px solid var(--golf-green-light);display:flex;align-items:center;gap:var(--spacing-md);letter-spacing:-.02em}.home-page section h2:after{content:"";flex:1;height:3px;background:var(--golf-green-light);margin-left:var(--spacing-md)}.home-page section h2 .section-count{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 .625rem;background:var(--golf-green);color:var(--white);border-radius:1rem;font-size:var(--font-size-sm);font-weight:700;margin-left:auto}.handicap-display{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-top:1rem}.handicap-display>div{padding:var(--spacing-lg);background:var(--golf-green-pale);border-radius:12px;border:2px solid var(--golf-green-light);box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.4,0,.2,1)}.handicap-display>div:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--golf-green)}.handicap-display label{display:block;font-size:var(--font-size-sm);color:var(--text-medium);margin-bottom:var(--spacing-md);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.8125rem}.handicap-display .value{font-size:2.75rem;font-weight:800;color:var(--golf-green-dark);display:block;letter-spacing:-.03em;line-height:1;position:relative}.handicap-display .value:after{content:"";position:absolute;bottom:-.25rem;left:0;width:3rem;height:3px;background:var(--golf-green);border-radius:2px}.handicap-rounds-used{grid-column:1 / -1;margin-top:var(--spacing-md);padding:var(--spacing-lg);background:var(--white);border-radius:12px;border:2px solid var(--golf-green-light);box-shadow:var(--shadow-sm)}.handicap-rounds-used h3{font-size:var(--font-size-sm);color:var(--text-medium);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--spacing-sm);font-weight:600}.handicap-rounds-used-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--golf-green-light)}.handicap-rounds-used-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.handicap-rounds-used-table th,.handicap-rounds-used-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--golf-green-light)}.handicap-rounds-used-table th{font-weight:700;color:var(--golf-green-dark);text-transform:uppercase;letter-spacing:.08em;font-size:var(--font-size-xs);background:var(--golf-green-pale);border-bottom:2px solid var(--golf-green-light);white-space:nowrap}.handicap-rounds-used-table th:not(:first-child),.handicap-rounds-used-table td:not(:first-child){text-align:right}.handicap-rounds-used-table th:first-child,.handicap-rounds-used-table td:first-child{text-align:left}.handicap-rounds-used-table tbody tr{background:var(--white)}.handicap-rounds-used-table tbody tr:nth-child(2n){background:var(--golf-green-pale)}.handicap-rounds-used-table tbody tr:hover{background:#2d865914}.handicap-rounds-used-table .course{font-weight:600;color:var(--text-dark)}.handicap-rounds-used-table .date{color:var(--text-medium)}.handicap-rounds-used-table .score{font-weight:600;color:var(--golf-green-dark)}.handicap-rounds-used-table .shots-over{font-weight:600;font-variant-numeric:tabular-nums}.handicap-trend{grid-column:1 / -1;margin-top:var(--spacing-md);padding:var(--spacing-lg);background:var(--white);border-radius:12px;border:2px solid var(--golf-green-light);box-shadow:var(--shadow-sm)}.handicap-trend-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.handicap-trend-header h3{font-size:var(--font-size-sm);color:var(--text-medium);text-transform:uppercase;letter-spacing:.08em;margin:0;font-weight:600}.handicap-trend-lookback{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-dark);background:var(--white);border:1px solid var(--golf-green-light);border-radius:8px;cursor:pointer;font-family:inherit}.handicap-trend-lookback:hover,.handicap-trend-lookback:focus{border-color:var(--golf-green);outline:none}.handicap-trend-empty{margin:0;font-size:var(--font-size-sm);color:var(--text-light)}.handicap-trend-chart-wrap{width:100%;min-height:260px;aspect-ratio:2.2 / 1}.rounds-list,.courses-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:1rem}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--spacing-lg);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid rgba(26,95,63,.1)}.pagination button{min-width:6rem}.pagination button:disabled{opacity:.5;cursor:not-allowed;transform:none}.pagination button:disabled:hover{transform:none;box-shadow:var(--shadow-sm)}.pagination-info{font-size:var(--font-size-sm);color:var(--text-medium);font-weight:500}.round-card,.course-card{display:flex;flex-direction:column;padding:0;background:var(--white);border-radius:10px;border:1px solid var(--golf-green-light);box-shadow:var(--shadow-sm);transition:border-color .2s ease,box-shadow .2s ease;position:relative}.round-card:before,.course-card:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--golf-green-light);border-radius:10px 0 0 10px;opacity:0;transition:opacity .2s ease}.round-card:hover:before,.course-card:hover:before{opacity:1}.round-card:hover,.course-card:hover{box-shadow:var(--shadow-md);border-color:var(--golf-green)}.round-card-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg)}.round-header{display:flex;align-items:center;gap:var(--spacing-md);min-width:0;flex:1}.round-header h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-lg);color:var(--golf-green-dark);font-weight:700;letter-spacing:-.01em;line-height:1.3}.round-header .date{color:var(--text-medium);font-size:var(--font-size-sm);font-weight:600;background:var(--sand-beige);padding:.25rem .625rem;border-radius:6px;letter-spacing:.01em;white-space:nowrap;flex-shrink:0}.round-details{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);font-size:var(--font-size-sm)}.round-detail-item{display:flex;align-items:baseline;gap:.375rem}.round-detail-item label{font-weight:600;color:var(--text-medium);text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.06em}.round-details .score{font-size:var(--font-size-xl);font-weight:800;color:var(--golf-green-dark);letter-spacing:-.02em;line-height:1.2}.round-details .par{color:var(--text-medium);font-weight:600;font-size:var(--font-size-base)}.course-card-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg)}.course-card h3{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-lg);color:var(--golf-green-dark);font-weight:700}.course-details{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);font-size:var(--font-size-sm)}.course-detail-item{display:flex;align-items:baseline;gap:.375rem}.course-detail-item label,.course-details label{font-weight:600;color:var(--text-medium);text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.06em}.round-holes-table-wrap{margin:0;padding:var(--spacing-lg) var(--spacing-lg);padding-top:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);border-top:1px solid var(--golf-green-light)}.round-holes-block{overflow-x:auto;border-radius:8px;border:1px solid var(--golf-green-light);background:var(--golf-green-pale)}.round-holes-table{width:100%;border-collapse:collapse;font-size:var(--font-size-xs)}.round-holes-table th,.round-holes-table td{padding:.2rem .35rem;text-align:center;min-width:1.5rem}.round-holes-table th.round-holes-label,.round-holes-table td.round-holes-label{text-align:left;min-width:2.25rem;font-weight:600;color:var(--text-medium);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em}.round-holes-table th.round-holes-total,.round-holes-table td.round-holes-total{font-weight:700;border-left:1px solid var(--golf-green-light);min-width:2rem}.round-holes-table th{font-weight:700;color:var(--text-medium);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;border-bottom:2px solid var(--golf-green-light)}.round-holes-table td{color:var(--text-dark);font-weight:600;border-bottom:1px solid rgba(26,95,63,.1)}.round-holes-table tbody tr:last-child td{border-bottom:none}.hole-score-tooltip-wrap{position:relative;display:inline-flex}.hole-score-tooltip-popup{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:.35rem .6rem;background:var(--text-dark);color:var(--white);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;border-radius:6px;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s ease,transform .15s ease;z-index:10}.hole-score-tooltip-popup:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:var(--text-dark)}.hole-score-tooltip-wrap:hover .hole-score-tooltip-popup{opacity:1;visibility:visible}.hole-score-decorator{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;padding:.25rem .5rem;border-radius:6px;font-weight:800;font-size:.8125rem;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.08);cursor:help}.hole-score-albatross{background:linear-gradient(135deg,#1a237e,#3949ab);color:var(--white);border-color:#fff3}.hole-score-eagle{background:var(--golf-green);color:var(--white);border-color:#00000026}.hole-score-birdie{background:var(--golf-green-pale);color:var(--golf-green-dark);border-color:#1a5f3f40}.hole-score-par{background:var(--sand-beige);color:var(--earth-brown);border-color:#8b6f4733}.hole-score-bogey{background:#fff3e0;color:#e65100;border-color:#e6510040}.hole-score-double-bogey{background:#ffebee;color:#c62828;border-color:#c6282833}.hole-score-triple-bogey{background:#ffcdd2;color:#c62828;border-color:#c6282840}.hole-score-quadruple-bogey{background:#ef9a9a;color:#b71c1c;border-color:#b71c1c4d}.hole-score-quintuple-bogey{background:#e57373;color:#fff;border-color:#b71c1c66}.hole-score-triple-plus{background:#c62828;color:var(--white);border-color:#b71c1c80}.score-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:.5rem;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-left:.5rem}.score-badge.under-par{background:var(--golf-green-pale);color:var(--golf-green-dark)}.score-badge.over-par{background:#fee;color:#c33}.score-badge.even-par{background:var(--sand-beige);color:var(--earth-brown)}.round-actions{display:flex;align-items:center;gap:var(--spacing-md);margin-left:auto;flex-shrink:0}.round-actions label{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-medium);font-weight:500;transition:color .2s ease}.round-actions label:hover{color:var(--golf-green-dark)}.round-actions input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--golf-green);transition:transform .2s ease}.round-actions input[type=checkbox]:focus-visible{outline:2px solid var(--golf-green);outline-offset:2px;border-radius:3px}.round-actions input[type=checkbox]:hover{transform:scale(1.1)}.rounds-count{font-size:var(--font-size-sm);color:var(--text-medium);font-weight:600;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0}.rounds-count:before{content:"📊";font-size:1rem}.rounds-info{grid-column:1 / -1;margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:2px solid var(--golf-green-light);font-size:var(--font-size-sm);color:var(--text-medium);font-weight:600;letter-spacing:.01em;text-align:center}.rounds-info p{margin:0;color:var(--text-medium)}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--text-medium);background:var(--golf-green-pale);border-radius:12px;border:2px dashed var(--golf-green-light)}.empty-state:before{content:"⛳";display:block;font-size:3rem;margin-bottom:var(--spacing-md);opacity:.6}.empty-state p{margin-bottom:var(--spacing-lg);font-size:var(--font-size-lg);line-height:1.6;color:var(--text-medium)}.empty-state button{margin-top:var(--spacing-md)}.import-page{max-width:500px;margin:4rem auto;padding:2.5rem;background:var(--white);border-radius:20px;box-shadow:var(--shadow-lg);border:2px solid var(--golf-green-light)}.import-page-banner{padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);background:#fef3cd;color:#856404;border:1px solid #ffc107;border-radius:10px;font-size:var(--font-size-sm);font-weight:600;text-align:center;line-height:1.5}.import-page h1{margin-bottom:var(--spacing-md);color:var(--golf-green-dark);font-size:var(--font-size-3xl);font-weight:800;text-align:center;letter-spacing:-.02em;line-height:1.2}.import-page p{margin-bottom:var(--spacing-lg);color:var(--text-medium);text-align:center;line-height:1.7;font-size:var(--font-size-base)}.import-page form{display:flex;flex-direction:column;gap:1.25rem}.import-page label{display:block;margin-bottom:var(--spacing-sm);font-weight:600;color:var(--golf-green-dark);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em}.import-page input{width:100%;padding:.875rem 1rem;border:2px solid var(--golf-green-light);border-radius:10px;font-size:var(--font-size-base);transition:all .2s cubic-bezier(.4,0,.2,1);background:var(--white);color:var(--text-dark);line-height:1.5;letter-spacing:.01em}.import-page input:focus{outline:none;border-color:var(--golf-green);box-shadow:0 0 0 4px #2d86591a;background:var(--golf-green-pale)}.import-page input::placeholder{color:var(--text-light)}.import-page button{padding:.875rem 1.5rem;background:var(--golf-green);color:var(--white);border:none;border-radius:10px;cursor:pointer;font-size:var(--font-size-base);font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm);letter-spacing:.01em;line-height:1.5}.import-page button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--golf-green-dark)}.import-page button:active{transform:translateY(0)}.import-page button:focus-visible{outline:3px solid rgba(45,134,89,.4);outline-offset:2px}.import-page button:disabled{opacity:.7;cursor:not-allowed;transform:none}.import-page button[type=button]{background:var(--text-medium)}.import-page button[type=button]:hover{background:var(--text-dark)}.import-page-submitting{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin:var(--spacing-md) 0;color:var(--text-medium);font-size:var(--font-size-sm);font-weight:500}.import-page-submitting .spinner{width:20px;height:20px;border-width:2px}.import-page-actions{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:var(--spacing-lg)}.import-page form>div:last-of-type{display:flex;gap:1rem;margin-top:.5rem}.error{padding:var(--spacing-md);background:#fee;color:#c33;border:2px solid #fcc;border-radius:10px;margin-bottom:var(--spacing-md);font-weight:500;font-size:var(--font-size-sm);box-shadow:var(--shadow-sm);line-height:1.6}.loading{text-align:center;padding:var(--spacing-xl);color:var(--text-medium);font-size:var(--font-size-lg);font-weight:500;letter-spacing:.01em}.loading:after{content:"...";animation:dots 1.5s steps(4,end) infinite}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.progress-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl) 0}.progress-spinner{display:flex;justify-content:center;align-items:center}.spinner{width:48px;height:48px;border:4px solid var(--golf-green-pale);border-top-color:var(--golf-green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-content{width:100%;display:flex;flex-direction:column;gap:var(--spacing-md)}.progress-message{text-align:center;color:var(--text-medium);font-size:var(--font-size-base);font-weight:500;margin:0}.progress-bar{width:100%;height:8px;background:var(--golf-green-pale);border-radius:4px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--golf-green-light),var(--golf-green));border-radius:4px;animation:progress 2s ease-in-out infinite;width:60%;position:absolute;left:-60%}@keyframes progress{0%{left:-60%}50%{left:100%}to{left:100%}}
